pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

chromium: update to 127.0.6533.72



Module Name:	pkgsrc-wip
Committed By:	kikadf <kikadf.01%gmail.com@localhost>
Pushed By:	kikadf
Date:		Sun Aug 11 10:14:12 2024 +0200
Changeset:	02fe40119f38f9ba2a49f378e53bb1b2409d9803

Modified Files:
	chromium/Makefile
	chromium/PLIST
	chromium/TODO
	chromium/distinfo
	chromium/options.mk
	chromium/patches/patch-BUILD.gn
	chromium/patches/patch-apps_ui_views_app__window__frame__view.cc
	chromium/patches/patch-base_BUILD.gn
	chromium/patches/patch-base_base__paths__posix.cc
	chromium/patches/patch-base_debug_debugger__posix.cc
	chromium/patches/patch-base_debug_elf__reader.cc
	chromium/patches/patch-base_debug_stack__trace__posix.cc
	chromium/patches/patch-base_files_file__path__watcher__kqueue.cc
	chromium/patches/patch-base_files_file__path__watcher__unittest.cc
	chromium/patches/patch-base_files_file__util__posix.cc
	chromium/patches/patch-base_files_file__util__unittest.cc
	chromium/patches/patch-base_files_scoped__file.cc
	chromium/patches/patch-base_i18n_icu__util.cc
	chromium/patches/patch-base_linux__util.cc
	chromium/patches/patch-base_logging__unittest.cc
	chromium/patches/patch-base_memory_discardable__memory.cc
	chromium/patches/patch-base_memory_discardable__memory__internal.h
	chromium/patches/patch-base_memory_madv__free__discardable__memory__posix.cc
	chromium/patches/patch-base_memory_platform__shared__memory__region.h
	chromium/patches/patch-base_memory_platform__shared__memory__region__posix.cc
	chromium/patches/patch-base_native__library__posix.cc
	chromium/patches/patch-base_native__library__unittest.cc
	chromium/patches/patch-base_posix_can__lower__nice__to.cc
	chromium/patches/patch-base_posix_unix__domain__socket.cc
	chromium/patches/patch-base_process_internal__linux.h
	chromium/patches/patch-base_process_kill.h
	chromium/patches/patch-base_process_kill__posix.cc
	chromium/patches/patch-base_process_launch.h
	chromium/patches/patch-base_process_launch__posix.cc
	chromium/patches/patch-base_process_process__handle.cc
	chromium/patches/patch-base_process_process__handle.h
	chromium/patches/patch-base_process_process__handle__netbsd.cc
	chromium/patches/patch-base_process_process__iterator.h
	chromium/patches/patch-base_process_process__iterator__netbsd.cc
	chromium/patches/patch-base_process_process__metrics.cc
	chromium/patches/patch-base_process_process__metrics.h
	chromium/patches/patch-base_process_process__metrics__netbsd.cc
	chromium/patches/patch-base_process_process__metrics__posix.cc
	chromium/patches/patch-base_process_process__unittest.cc
	chromium/patches/patch-base_profiler_sampling__profiler__thread__token.cc
	chromium/patches/patch-base_profiler_sampling__profiler__thread__token.h
	chromium/patches/patch-base_profiler_stack__sampling__profiler__unittest.cc
	chromium/patches/patch-base_synchronization_lock__impl.h
	chromium/patches/patch-base_syslog__logging.cc
	chromium/patches/patch-base_system_sys__info.cc
	chromium/patches/patch-base_system_sys__info.h
	chromium/patches/patch-base_system_sys__info__netbsd.cc
	chromium/patches/patch-base_system_sys__info__posix.cc
	chromium/patches/patch-base_task_thread__pool_environment__config__unittest.cc
	chromium/patches/patch-base_test_launcher_test__launcher.cc
	chromium/patches/patch-base_test_test__file__util__posix.cc
	chromium/patches/patch-base_threading_platform__thread.h
	chromium/patches/patch-base_threading_platform__thread__posix.cc
	chromium/patches/patch-base_threading_platform__thread__unittest.cc
	chromium/patches/patch-base_trace__event_process__memory__dump.cc
	chromium/patches/patch-build_config_BUILD.gn
	chromium/patches/patch-build_config_BUILDCONFIG.gn
	chromium/patches/patch-build_config_compiler_BUILD.gn
	chromium/patches/patch-build_config_linux_pkg-config.py
	chromium/patches/patch-build_gn__run__binary.py
	chromium/patches/patch-build_toolchain_gcc__toolchain.gni
	chromium/patches/patch-build_toolchain_netbsd_BUILD.gn
	chromium/patches/patch-chrome_app_chrome__command__ids.h
	chromium/patches/patch-chrome_app_chrome__main.cc
	chromium/patches/patch-chrome_app_chrome__main__delegate.cc
	chromium/patches/patch-chrome_browser_BUILD.gn
	chromium/patches/patch-chrome_browser_about__flags.cc
	chromium/patches/patch-chrome_browser_after__startup__task__utils.cc
	chromium/patches/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc
	chromium/patches/patch-chrome_browser_background_background__mode__manager.cc
	chromium/patches/patch-chrome_browser_background_background__mode__optimizer.cc
	chromium/patches/patch-chrome_browser_chrome__browser__interface__binders.cc
	chromium/patches/patch-chrome_browser_chrome__browser__main.cc
	chromium/patches/patch-chrome_browser_chrome__browser__main__linux.cc
	chromium/patches/patch-chrome_browser_chrome__browser__main__posix.cc
	chromium/patches/patch-chrome_browser_chrome__content__browser__client.cc
	chromium/patches/patch-chrome_browser_chrome__content__browser__client.h
	chromium/patches/patch-chrome_browser_defaults.cc
	chromium/patches/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc
	chromium/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h
	chromium/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc
	chromium/patches/patch-chrome_browser_download_download__commands.cc
	chromium/patches/patch-chrome_browser_download_download__commands.h
	chromium/patches/patch-chrome_browser_download_download__item__model.cc
	chromium/patches/patch-chrome_browser_download_download__prefs.cc
	chromium/patches/patch-chrome_browser_download_download__prefs.h
	chromium/patches/patch-chrome_browser_extensions_BUILD.gn
	chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc
	chromium/patches/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc
	chromium/patches/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc
	chromium/patches/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc
	chromium/patches/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc
	chromium/patches/patch-chrome_browser_extensions_external__provider__impl.cc
	chromium/patches/patch-chrome_browser_first__run_first__run__dialog.h
	chromium/patches/patch-chrome_browser_first__run_first__run__internal.h
	chromium/patches/patch-chrome_browser_flag__descriptions.cc
	chromium/patches/patch-chrome_browser_flag__descriptions.h
	chromium/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc
	chromium/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc
	chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc
	chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc
	chromium/patches/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc
	chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc
	chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h
	chromium/patches/patch-chrome_browser_memory__details.cc
	chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
	chromium/patches/patch-chrome_browser_metrics_chrome__metrics__service__client.cc
	chromium/patches/patch-chrome_browser_net_system__network__context__manager.cc
	chromium/patches/patch-chrome_browser_notifications_notification__display__service__impl.cc
	chromium/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc
	chromium/patches/patch-chrome_browser_policy_browser__signin__policy__handler.cc
	chromium/patches/patch-chrome_browser_prefs_browser__prefs.cc
	chromium/patches/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc
	chromium/patches/patch-chrome_browser_process__singleton__posix.cc
	chromium/patches/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc
	chromium/patches/patch-chrome_browser_renderer__preferences__util.cc
	chromium/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc
	chromium/patches/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc
	chromium/patches/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc
	chromium/patches/patch-chrome_browser_sharing_sharing__device__registration.cc
	chromium/patches/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc
	chromium/patches/patch-chrome_browser_signin_signin__util.cc
	chromium/patches/patch-chrome_browser_sync_chrome__sync__client.cc
	chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.cc
	chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.h
	chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc
	chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.h
	chromium/patches/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc
	chromium/patches/patch-chrome_browser_task__manager_task__manager__observer.h
	chromium/patches/patch-chrome_browser_themes_theme__service__factory.cc
	chromium/patches/patch-chrome_browser_ui_browser__command__controller.cc
	chromium/patches/patch-chrome_browser_ui_browser__view__prefs.cc
	chromium/patches/patch-chrome_browser_ui_sad__tab.cc
	chromium/patches/patch-chrome_browser_ui_startup_bad__flags__prompt.cc
	chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc
	chromium/patches/patch-chrome_browser_ui_tab__helpers.cc
	chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__columns.cc
	chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc
	chromium/patches/patch-chrome_browser_ui_views_accelerator__table.cc
	chromium/patches/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc
	chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h
	chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc
	chromium/patches/patch-chrome_browser_ui_views_frame_browser__view.cc
	chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc
	chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc
	chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc
	chromium/patches/patch-chrome_browser_ui_views_hung__renderer__view.cc
	chromium/patches/patch-chrome_browser_ui_views_tabs_tab.cc
	chromium/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc
	chromium/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
	chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.cc
	chromium/patches/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc
	chromium/patches/patch-chrome_common_channel__info.h
	chromium/patches/patch-chrome_common_channel__info__posix.cc
	chromium/patches/patch-chrome_common_chrome__features.cc
	chromium/patches/patch-chrome_common_chrome__features.h
	chromium/patches/patch-chrome_common_chrome__paths.cc
	chromium/patches/patch-chrome_common_chrome__paths.h
	chromium/patches/patch-chrome_common_chrome__paths__internal.h
	chromium/patches/patch-chrome_common_chrome__switches.cc
	chromium/patches/patch-chrome_common_chrome__switches.h
	chromium/patches/patch-chrome_common_media_cdm__host__file__path.cc
	chromium/patches/patch-chrome_common_pref__names.h
	chromium/patches/patch-chrome_common_webui__url__constants.cc
	chromium/patches/patch-chrome_common_webui__url__constants.h
	chromium/patches/patch-chrome_test_chromedriver_chrome__launcher.cc
	chromium/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc
	chromium/patches/patch-chrome_test_chromedriver_key__converter__unittest.cc
	chromium/patches/patch-chromecast_browser_cast__browser__main__parts.cc
	chromium/patches/patch-chromecast_browser_cast__content__browser__client.cc
	chromium/patches/patch-components_autofill_core_common_autofill__payments__features.cc
	chromium/patches/patch-components_autofill_core_common_autofill__util.cc
	chromium/patches/patch-components_content__settings_core_browser_website__settings__registry.cc
	chromium/patches/patch-components_cookie__config_cookie__store__util.cc
	chromium/patches/patch-components_crash_core_common_BUILD.gn
	chromium/patches/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc
	chromium/patches/patch-components_feature__engagement_public_event__constants.cc
	chromium/patches/patch-components_feature__engagement_public_event__constants.h
	chromium/patches/patch-components_feature__engagement_public_feature__constants.cc
	chromium/patches/patch-components_feature__engagement_public_feature__constants.h
	chromium/patches/patch-components_feature__engagement_public_feature__list.cc
	chromium/patches/patch-components_feature__engagement_public_feature__list.h
	chromium/patches/patch-components_flags__ui_flags__state.cc
	chromium/patches/patch-components_gwp__asan_BUILD.gn
	chromium/patches/patch-components_metrics_drive__metrics__provider__linux.cc
	chromium/patches/patch-components_metrics_metrics__log.cc
	chromium/patches/patch-components_neterror_resources_neterror.js
	chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator.cc
	chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__util.cc
	chromium/patches/patch-components_policy_tools_generate__policy__source.py
	chromium/patches/patch-components_security__interstitials_content_utils.cc
	chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc
	chromium/patches/patch-components_storage__monitor_BUILD.gn
	chromium/patches/patch-components_storage__monitor_removable__device__constants.cc
	chromium/patches/patch-components_storage__monitor_removable__device__constants.h
	chromium/patches/patch-components_sync__device__info_local__device__info__util.cc
	chromium/patches/patch-components_sync__device__info_local__device__info__util__linux.cc
	chromium/patches/patch-components_update__client_update__query__params.cc
	chromium/patches/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc
	chromium/patches/patch-components_viz_common_features.cc
	chromium/patches/patch-components_viz_host_host__display__client.cc
	chromium/patches/patch-components_viz_host_host__display__client.h
	chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.cc
	chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.h
	chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc
	chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h
	chromium/patches/patch-components_viz_test_mock__display__client.h
	chromium/patches/patch-content_app_content__main__runner__impl.cc
	chromium/patches/patch-content_browser_BUILD.gn
	chromium/patches/patch-content_browser_browser__main__loop.cc
	chromium/patches/patch-content_browser_child__process__launcher__helper__linux.cc
	chromium/patches/patch-content_browser_compositor_viz__process__transport__factory.cc
	chromium/patches/patch-content_browser_devtools_protocol_system__info__handler.cc
	chromium/patches/patch-content_browser_gpu_gpu__process__host.cc
	chromium/patches/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc
	chromium/patches/patch-content_browser_renderer__host_input_input__device__change__observer.cc
	chromium/patches/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc
	chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.cc
	chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.h
	chromium/patches/patch-content_browser_renderer__host_render__view__host__impl.cc
	chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc
	chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
	chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.cc
	chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.h
	chromium/patches/patch-content_browser_utility__process__host.cc
	chromium/patches/patch-content_browser_utility__process__host__receiver__bindings.cc
	chromium/patches/patch-content_browser_v8__snapshot__files.cc
	chromium/patches/patch-content_child_BUILD.gn
	chromium/patches/patch-content_common_BUILD.gn
	chromium/patches/patch-content_gpu_gpu__main.cc
	chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc
	chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h
	chromium/patches/patch-content_public_common_content__features.cc
	chromium/patches/patch-content_public_common_content__switches.cc
	chromium/patches/patch-content_public_common_content__switches.h
	chromium/patches/patch-content_renderer_render__thread__impl.cc
	chromium/patches/patch-content_renderer_renderer__blink__platform__impl.cc
	chromium/patches/patch-content_renderer_renderer__blink__platform__impl.h
	chromium/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc
	chromium/patches/patch-content_shell_BUILD.gn
	chromium/patches/patch-content_shell_app_shell__main__delegate.cc
	chromium/patches/patch-content_shell_browser_shell__browser__main__parts.cc
	chromium/patches/patch-content_test_BUILD.gn
	chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc
	chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h
	chromium/patches/patch-content_zygote_BUILD.gn
	chromium/patches/patch-content_zygote_zygote__main__linux.cc
	chromium/patches/patch-device_gamepad_BUILD.gn
	chromium/patches/patch-device_gamepad_gamepad__provider.cc
	chromium/patches/patch-device_gamepad_hid__writer__linux.cc
	chromium/patches/patch-extensions_browser_api_messaging_message__service.cc
	chromium/patches/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc
	chromium/patches/patch-extensions_common_api___permission__features.json
	chromium/patches/patch-extensions_common_api_runtime.json
	chromium/patches/patch-extensions_common_features_feature.cc
	chromium/patches/patch-extensions_renderer_bindings_api__binding__util.cc
	chromium/patches/patch-extensions_shell_app_shell__main__delegate.cc
	chromium/patches/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc
	chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.cc
	chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.h
	chromium/patches/patch-google__apis_gcm_engine_heartbeat__manager.cc
	chromium/patches/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc
	chromium/patches/patch-gpu_config_gpu__control__list.cc
	chromium/patches/patch-gpu_config_gpu__test__config.cc
	chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.cc
	chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.h
	chromium/patches/patch-gpu_ipc_service_gpu__init.cc
	chromium/patches/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc
	chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.cc
	chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.h
	chromium/patches/patch-headless_lib_browser_headless__content__browser__client.h
	chromium/patches/patch-headless_lib_browser_headless__request__context__manager.cc
	chromium/patches/patch-headless_lib_headless__content__main__delegate.cc
	chromium/patches/patch-ipc_ipc__channel.h
	chromium/patches/patch-ipc_ipc__channel__common.cc
	chromium/patches/patch-ipc_ipc__channel__mojo.cc
	chromium/patches/patch-ipc_ipc__message__utils.cc
	chromium/patches/patch-ipc_ipc__message__utils.h
	chromium/patches/patch-media_audio_BUILD.gn
	chromium/patches/patch-media_audio_alsa_audio__manager__alsa.cc
	chromium/patches/patch-media_audio_audio__input__device.cc
	chromium/patches/patch-media_base_audio__latency.cc
	chromium/patches/patch-media_base_media__switches.cc
	chromium/patches/patch-media_base_media__switches.h
	chromium/patches/patch-media_base_video__frame.cc
	chromium/patches/patch-media_base_video__frame.h
	chromium/patches/patch-media_capture_video_create__video__capture__device__factory.cc
	chromium/patches/patch-media_capture_video_fake__video__capture__device__factory.cc
	chromium/patches/patch-media_capture_video_file__video__capture__device__factory.cc
	chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc
	chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h
	chromium/patches/patch-media_capture_video_video__capture__device__client.cc
	chromium/patches/patch-media_cdm_library__cdm_cdm__paths.gni
	chromium/patches/patch-media_gpu_buffer__validation.cc
	chromium/patches/patch-media_media__options.gni
	chromium/patches/patch-media_mojo_mojom_video__frame__mojom__traits.cc
	chromium/patches/patch-media_video_fake__gpu__memory__buffer.cc
	chromium/patches/patch-media_video_gpu__memory__buffer__video__frame__pool.cc
	chromium/patches/patch-mojo_core_BUILD.gn
	chromium/patches/patch-mojo_public_c_system_thunks.cc
	chromium/patches/patch-mojo_public_cpp_platform_socket__utils__posix.cc
	chromium/patches/patch-mojo_public_tools_bindings_mojom.gni
	chromium/patches/patch-net_BUILD.gn
	chromium/patches/patch-net_base_network__change__notifier.cc
	chromium/patches/patch-net_base_network__change__notifier.h
	chromium/patches/patch-net_base_network__interfaces__posix.h
	chromium/patches/patch-net_dns_address__sorter__posix.cc
	chromium/patches/patch-net_dns_dns__reloader.cc
	chromium/patches/patch-net_dns_dns__util.cc
	chromium/patches/patch-net_dns_host__resolver__proc.cc
	chromium/patches/patch-net_http_http__auth__gssapi__posix.cc
	chromium/patches/patch-net_http_http__auth__gssapi__posix.h
	chromium/patches/patch-net_proxy__resolution_proxy__config__service__linux.cc
	chromium/patches/patch-net_socket_socket__posix.cc
	chromium/patches/patch-net_socket_socks5__client__socket.cc
	chromium/patches/patch-net_socket_tcp__socket__posix.cc
	chromium/patches/patch-net_socket_udp__socket__posix.cc
	chromium/patches/patch-net_third__party_quiche_BUILD.gn
	chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__tool.cc
	chromium/patches/patch-net_traffic__annotation_network__traffic__annotation.h
	chromium/patches/patch-net_url__request_url__request__context.cc
	chromium/patches/patch-net_url__request_url__request__context.h
	chromium/patches/patch-net_url__request_url__request__context__builder.cc
	chromium/patches/patch-pdf_pdfium_pdfium__engine.cc
	chromium/patches/patch-printing_print__settings.h
	chromium/patches/patch-printing_print__settings__conversion.cc
	chromium/patches/patch-remoting_base_chromoting__event.cc
	chromium/patches/patch-remoting_client_display_sys__opengl.h
	chromium/patches/patch-remoting_host_evaluate__capability.cc
	chromium/patches/patch-remoting_host_host__attributes.cc
	chromium/patches/patch-remoting_host_host__details.cc
	chromium/patches/patch-remoting_host_host__main.cc
	chromium/patches/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc
	chromium/patches/patch-remoting_host_me2me__desktop__environment.cc
	chromium/patches/patch-remoting_host_remoting__me2me__host.cc
	chromium/patches/patch-sandbox_linux_BUILD.gn
	chromium/patches/patch-sandbox_linux_services_init__process__reaper.cc
	chromium/patches/patch-sandbox_linux_services_libc__interceptor.cc
	chromium/patches/patch-services_device_BUILD.gn
	chromium/patches/patch-services_device_hid_BUILD.gn
	chromium/patches/patch-services_device_hid_hid__connection__netbsd.h
	chromium/patches/patch-services_device_hid_hid__service__netbsd.cc
	chromium/patches/patch-services_device_hid_hid__service__netbsd.h
	chromium/patches/patch-services_device_serial_BUILD.gn
	chromium/patches/patch-services_device_serial_serial__device__enumerator.cc
	chromium/patches/patch-services_device_serial_serial__io__handler__posix.cc
	chromium/patches/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc
	chromium/patches/patch-services_network_BUILD.gn
	chromium/patches/patch-services_network_network__context.cc
	chromium/patches/patch-services_network_network__sandbox__hook__linux.cc
	chromium/patches/patch-services_network_network__service.cc
	chromium/patches/patch-services_network_network__service.h
	chromium/patches/patch-services_network_public_mojom_BUILD.gn
	chromium/patches/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc
	chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h
	chromium/patches/patch-services_service__manager_public_cpp_service__executable_BUILD.gn
	chromium/patches/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc
	chromium/patches/patch-skia_ext_SkMemory__new__handler.cpp
	chromium/patches/patch-skia_ext_platform__canvas.h
	chromium/patches/patch-third__party_angle_BUILD.gn
	chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h
	chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp
	chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp
	chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp
	chromium/patches/patch-third__party_angle_src_libANGLE_Display.cpp
	chromium/patches/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h
	chromium/patches/patch-third__party_angle_util_BUILD.gn
	chromium/patches/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py
	chromium/patches/patch-third__party_blink_renderer_controller_blink__initializer.cc
	chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc
	chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h
	chromium/patches/patch-third__party_blink_renderer_core_editing_editing__behavior.cc
	chromium/patches/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc
	chromium/patches/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc
	chromium/patches/patch-third__party_blink_renderer_core_layout_layout__view.cc
	chromium/patches/patch-third__party_blink_renderer_core_paint_paint__layer.cc
	chromium/patches/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc
	chromium/patches/patch-third__party_blink_renderer_platform_BUILD.gn
	chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.cc
	chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.h
	chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__description.cc
	chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc
	chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc
	chromium/patches/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
	chromium/patches/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc
	chromium/patches/patch-third__party_blink_renderer_platform_wtf_container__annotations.h
	chromium/patches/patch-third__party_blink_renderer_platform_wtf_stack__util.cc
	chromium/patches/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni
	chromium/patches/patch-third__party_crashpad_crashpad_client_BUILD.gn
	chromium/patches/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc
	chromium/patches/patch-third__party_crashpad_crashpad_util_misc_address__types.h
	chromium/patches/patch-third__party_crashpad_crashpad_util_misc_capture__context.h
	chromium/patches/patch-third__party_crashpad_crashpad_util_misc_metrics.cc
	chromium/patches/patch-third__party_crashpad_crashpad_util_misc_uuid.cc
	chromium/patches/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc
	chromium/patches/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc
	chromium/patches/patch-third__party_crashpad_crashpad_util_posix_signals.cc
	chromium/patches/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc
	chromium/patches/patch-third__party_crc32c_BUILD.gn
	chromium/patches/patch-third__party_ffmpeg_libavutil_mem.c
	chromium/patches/patch-third__party_leveldatabase_env__chromium.cc
	chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h
	chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h
	chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h
	chromium/patches/patch-third__party_nasm_config_config-linux.h
	chromium/patches/patch-third__party_node_node.py
	chromium/patches/patch-third__party_perfetto_include_perfetto_base_build__config.h
	chromium/patches/patch-third__party_perfetto_include_perfetto_base_thread__utils.h
	chromium/patches/patch-third__party_perfetto_include_perfetto_base_time.h
	chromium/patches/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h
	chromium/patches/patch-third__party_sqlite_BUILD.gn
	chromium/patches/patch-third__party_swiftshader_src_Reactor_Debug.cpp
	chromium/patches/patch-third__party_swiftshader_third__party_marl_src_memory.cpp
	chromium/patches/patch-third__party_swiftshader_third__party_marl_src_thread.cpp
	chromium/patches/patch-third__party_webrtc_BUILD.gn
	chromium/patches/patch-third__party_webrtc_modules_audio__device_BUILD.gn
	chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.cc
	chromium/patches/patch-third__party_webrtc_rtc__base_network.cc
	chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.cc
	chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.h
	chromium/patches/patch-third__party_webrtc_rtc__base_platform__thread__types.cc
	chromium/patches/patch-third__party_webrtc_system__wrappers_BUILD.gn
	chromium/patches/patch-third__party_zlib_BUILD.gn
	chromium/patches/patch-third__party_zlib_cpu__features.c
	chromium/patches/patch-tools_gn_build_gen.py
	chromium/patches/patch-tools_gn_src_gn_version.h
	chromium/patches/patch-tools_gn_src_util_exe__path.cc
	chromium/patches/patch-tools_json__schema__compiler_feature__compiler.py
	chromium/patches/patch-tools_perf_chrome__telemetry__build_BUILD.gn
	chromium/patches/patch-tools_variations_fieldtrial__to__struct.py
	chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc
	chromium/patches/patch-ui_base_ime_init_input__method__initializer.cc
	chromium/patches/patch-ui_base_resource_resource__bundle.cc
	chromium/patches/patch-ui_base_ui__base__features.cc
	chromium/patches/patch-ui_base_webui_web__ui__util.cc
	chromium/patches/patch-ui_base_x_x11__shm__image__pool.cc
	chromium/patches/patch-ui_compositor_compositor.cc
	chromium/patches/patch-ui_compositor_compositor.h
	chromium/patches/patch-ui_compositor_compositor__observer.h
	chromium/patches/patch-ui_events_devices_x11_device__data__manager__x11.cc
	chromium/patches/patch-ui_events_event__switches.cc
	chromium/patches/patch-ui_events_event__switches.h
	chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.cc
	chromium/patches/patch-ui_gfx_BUILD.gn
	chromium/patches/patch-ui_gfx_canvas__skia.cc
	chromium/patches/patch-ui_gfx_font__fallback__linux.cc
	chromium/patches/patch-ui_gfx_font__render__params.h
	chromium/patches/patch-ui_gfx_font__util.cc
	chromium/patches/patch-ui_gfx_gpu__memory__buffer.cc
	chromium/patches/patch-ui_gfx_gpu__memory__buffer.h
	chromium/patches/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc
	chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc
	chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h
	chromium/patches/patch-ui_gfx_native__pixmap__handle.cc
	chromium/patches/patch-ui_gfx_native__pixmap__handle.h
	chromium/patches/patch-ui_gfx_native__widget__types.h
	chromium/patches/patch-ui_gl_BUILD.gn
	chromium/patches/patch-ui_gl_gl__fence.cc
	chromium/patches/patch-ui_gl_sync__control__vsync__provider.cc
	chromium/patches/patch-ui_gl_sync__control__vsync__provider.h
	chromium/patches/patch-ui_gtk_printing_print__dialog__gtk.cc
	chromium/patches/patch-ui_message__center_views_message__popup__view.cc
	chromium/patches/patch-ui_native__theme_native__theme.h
	chromium/patches/patch-ui_native__theme_native__theme__base.cc
	chromium/patches/patch-ui_platform__window_platform__window__init__properties.h
	chromium/patches/patch-ui_views_controls_textfield_textfield.cc
	chromium/patches/patch-ui_views_corewm_tooltip__aura.cc
	chromium/patches/patch-ui_views_examples_widget__example.cc
	chromium/patches/patch-ui_views_style_platform__style.cc
	chromium/patches/patch-ui_views_views__delegate.cc
	chromium/patches/patch-ui_views_views__delegate.h
	chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc
	chromium/patches/patch-ui_views_window_custom__frame__view.cc
	chromium/patches/patch-ui_views_window_dialog__delegate.cc
	chromium/patches/patch-ui_views_window_frame__background.cc
	chromium/patches/patch-v8_BUILD.gn
	chromium/patches/patch-v8_src_api_api.cc
	chromium/patches/patch-v8_src_base_platform_platform-posix.cc
	chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.cc
	chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.h
Added Files:
	chromium/files/chrome
	chromium/files/chromium-browser.desktop
	chromium/files/nb-delta.patch
	chromium/patches/patch-ash_display_mirror__window__controller.cc
	chromium/patches/patch-base_allocator_dispatcher_tls.h
	chromium/patches/patch-base_allocator_partition__allocator_partition__alloc.gni
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc
	chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc
	chromium/patches/patch-base_atomicops.h
	chromium/patches/patch-base_compiler__specific.h
	chromium/patches/patch-base_debug_proc__maps__linux.cc
	chromium/patches/patch-base_debug_stack__trace.cc
	chromium/patches/patch-base_features.cc
	chromium/patches/patch-base_files_dir__reader__linux.h
	chromium/patches/patch-base_files_dir__reader__posix.h
	chromium/patches/patch-base_files_file__path__watcher.h
	chromium/patches/patch-base_files_file__path__watcher__bsd.cc
	chromium/patches/patch-base_files_file__path__watcher__kqueue.h
	chromium/patches/patch-base_files_important__file__writer__cleaner.cc
	chromium/patches/patch-base_functional_unretained__traits.h
	chromium/patches/patch-base_message__loop_message__pump__glib.cc
	chromium/patches/patch-base_posix_sysctl.cc
	chromium/patches/patch-base_posix_unix__domain__socket__unittest.cc
	chromium/patches/patch-base_process_memory__linux.cc
	chromium/patches/patch-base_process_process__handle__freebsd.cc
	chromium/patches/patch-base_process_process__handle__openbsd.cc
	chromium/patches/patch-base_process_process__iterator__freebsd.cc
	chromium/patches/patch-base_process_process__iterator__openbsd.cc
	chromium/patches/patch-base_process_process__metrics__freebsd.cc
	chromium/patches/patch-base_process_process__metrics__openbsd.cc
	chromium/patches/patch-base_process_process__metrics__unittest.cc
	chromium/patches/patch-base_process_process__posix.cc
	chromium/patches/patch-base_profiler_module__cache.cc
	chromium/patches/patch-base_profiler_stack__base__address__posix.cc
	chromium/patches/patch-base_profiler_stack__sampling__profiler__test__util.cc
	chromium/patches/patch-base_profiler_thread__delegate__posix.cc
	chromium/patches/patch-base_rand__util.h
	chromium/patches/patch-base_rand__util__posix.cc
	chromium/patches/patch-base_strings_safe__sprintf__unittest.cc
	chromium/patches/patch-base_system_sys__info__freebsd.cc
	chromium/patches/patch-base_system_sys__info__openbsd.cc
	chromium/patches/patch-base_system_sys__info__unittest.cc
	chromium/patches/patch-base_test_test__file__util__linux.cc
	chromium/patches/patch-base_threading_hang__watcher.cc
	chromium/patches/patch-base_threading_platform__thread__bsd.cc
	chromium/patches/patch-base_threading_platform__thread__internal__posix.cc
	chromium/patches/patch-base_trace__event_malloc__dump__provider.cc
	chromium/patches/patch-base_trace__event_memory__dump__manager.cc
	chromium/patches/patch-base_tracing_trace__time.cc
	chromium/patches/patch-base_tracing_trace__time.h
	chromium/patches/patch-build_config_clang_BUILD.gn
	chromium/patches/patch-build_config_linux_BUILD.gn
	chromium/patches/patch-build_config_ozone.gni
	chromium/patches/patch-build_config_rust.gni
	chromium/patches/patch-build_config_v8__target__cpu.gni
	chromium/patches/patch-build_detect__host__arch.py
	chromium/patches/patch-build_linux_chrome.map
	chromium/patches/patch-build_linux_strip__binary.py
	chromium/patches/patch-build_linux_unbundle_dav1d.gn
	chromium/patches/patch-build_linux_unbundle_icu.gn
	chromium/patches/patch-build_linux_unbundle_libevent.gn
	chromium/patches/patch-build_linux_unbundle_libusb.gn
	chromium/patches/patch-build_rust_rust__bindgen.gni
	chromium/patches/patch-build_rust_std_BUILD.gn
	chromium/patches/patch-build_toolchain_freebsd_BUILD.gn
	chromium/patches/patch-build_toolchain_gcc__solink__wrapper.py
	chromium/patches/patch-build_toolchain_openbsd_BUILD.gn
	chromium/patches/patch-build_toolchain_toolchain.gni
	chromium/patches/patch-cc_BUILD.gn
	chromium/patches/patch-cc_base_features.cc
	chromium/patches/patch-chrome_browser_apps_app__service_publishers_extension__apps.cc
	chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc
	chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.h
	chromium/patches/patch-chrome_browser_browser__features.cc
	chromium/patches/patch-chrome_browser_browser__process__impl.cc
	chromium/patches/patch-chrome_browser_browser__process__impl.h
	chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc
	chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc
	chromium/patches/patch-chrome_browser_chrome__browser__main__linux.h
	chromium/patches/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc
	chromium/patches/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc
	chromium/patches/patch-chrome_browser_download_download__file__picker.cc
	chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.cc
	chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.h
	chromium/patches/patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc
	chromium/patches/patch-chrome_browser_enterprise_connectors_connectors__service.cc
	chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc
	chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc
	chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc
	chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc
	chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc
	chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc
	chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc
	chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc
	chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h
	chromium/patches/patch-chrome_browser_enterprise_identifiers_profile__id__delegate__impl.cc
	chromium/patches/patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc
	chromium/patches/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc
	chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc
	chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc
	chromium/patches/patch-chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc
	chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc
	chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h
	chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc
	chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h
	chromium/patches/patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc
	chromium/patches/patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc
	chromium/patches/patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc
	chromium/patches/patch-chrome_browser_extensions_api_tabs_tabs__api.cc
	chromium/patches/patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc
	chromium/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc
	chromium/patches/patch-chrome_browser_gcm_gcm__profile__service__factory.cc
	chromium/patches/patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc
	chromium/patches/patch-chrome_browser_headless_headless__mode__util.cc
	chromium/patches/patch-chrome_browser_intranet__redirect__detector.h
	chromium/patches/patch-chrome_browser_media_audio__service__util.cc
	chromium/patches/patch-chrome_browser_media_router_discovery_BUILD.gn
	chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc
	chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h
	chromium/patches/patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc
	chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h
	chromium/patches/patch-chrome_browser_metrics_perf_cpu__identity.cc
	chromium/patches/patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc
	chromium/patches/patch-chrome_browser_metrics_power_process__monitor.cc
	chromium/patches/patch-chrome_browser_metrics_power_process__monitor.h
	chromium/patches/patch-chrome_browser_net_system__network__context__manager.h
	chromium/patches/patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc
	chromium/patches/patch-chrome_browser_new__tab__page_new__tab__page__util.cc
	chromium/patches/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc
	chromium/patches/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc
	chromium/patches/patch-chrome_browser_platform__util__linux.cc
	chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc
	chromium/patches/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc
	chromium/patches/patch-chrome_browser_policy_device__management__service__configuration.cc
	chromium/patches/patch-chrome_browser_policy_policy__value__and__status__aggregator.cc
	chromium/patches/patch-chrome_browser_printing_print__backend__service__manager.cc
	chromium/patches/patch-chrome_browser_printing_printer__query.cc
	chromium/patches/patch-chrome_browser_profiles_profile__impl.cc
	chromium/patches/patch-chrome_browser_profiles_profiles__state.cc
	chromium/patches/patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css
	chromium/patches/patch-chrome_browser_resources_signin_signin__shared.css
	chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc
	chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_deep__scanning__utils.cc
	chromium/patches/patch-chrome_browser_screen__ai_screen__ai__install__state.cc
	chromium/patches/patch-chrome_browser_screen__ai_screen__ai__service__router.cc
	chromium/patches/patch-chrome_browser_sessions_session__restore.cc
	chromium/patches/patch-chrome_browser_shortcuts_icon__badging.cc
	chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc
	chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc
	chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h
	chromium/patches/patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc
	chromium/patches/patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc
	chromium/patches/patch-chrome_browser_sync_device__info__sync__client__impl.cc
	chromium/patches/patch-chrome_browser_sync_sync__service__factory.cc
	chromium/patches/patch-chrome_browser_sync_sync__service__util.cc
	chromium/patches/patch-chrome_browser_themes_theme__helper.cc
	chromium/patches/patch-chrome_browser_themes_theme__service.cc
	chromium/patches/patch-chrome_browser_themes_theme__service__aura__linux.cc
	chromium/patches/patch-chrome_browser_ui_actions_chrome__action__id.h
	chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc
	chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h
	chromium/patches/patch-chrome_browser_ui_browser.h
	chromium/patches/patch-chrome_browser_ui_browser__commands.cc
	chromium/patches/patch-chrome_browser_ui_browser__ui__prefs.cc
	chromium/patches/patch-chrome_browser_ui_chrome__pages.cc
	chromium/patches/patch-chrome_browser_ui_chrome__pages.h
	chromium/patches/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc
	chromium/patches/patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc
	chromium/patches/patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc
	chromium/patches/patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc
	chromium/patches/patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h
	chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller.cc
	chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller__delegate.h
	chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc
	chromium/patches/patch-chrome_browser_ui_startup_startup__tab__provider.cc
	chromium/patches/patch-chrome_browser_ui_tabs_features.cc
	chromium/patches/patch-chrome_browser_ui_tabs_tab__strip__prefs.cc
	chromium/patches/patch-chrome_browser_ui_test_popup__browsertest.cc
	chromium/patches/patch-chrome_browser_ui_test_test__browser__ui.cc
	chromium/patches/patch-chrome_browser_ui_ui__features.cc
	chromium/patches/patch-chrome_browser_ui_ui__features.h
	chromium/patches/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc
	chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc
	chromium/patches/patch-chrome_browser_ui_views_compose_compose__dialog__view.cc
	chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.h
	chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc
	chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc
	chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc
	chromium/patches/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc
	chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h
	chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h
	chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc
	chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h
	chromium/patches/patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc
	chromium/patches/patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc
	chromium/patches/patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc
	chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view.cc
	chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc
	chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc
	chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h
	chromium/patches/patch-chrome_browser_ui_views_side__panel_BUILD.gn
	chromium/patches/patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc
	chromium/patches/patch-chrome_browser_ui_views_tabs_tab__style__views.cc
	chromium/patches/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc
	chromium/patches/patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc
	chromium/patches/patch-chrome_browser_ui_web__applications_web__app__dialogs.h
	chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc
	chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h
	chromium/patches/patch-chrome_browser_ui_webui_about_about__ui.cc
	chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc
	chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h
	chromium/patches/patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc
	chromium/patches/patch-chrome_browser_ui_webui_management_management__ui.cc
	chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.cc
	chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.h
	chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.cc
	chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.h
	chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc
	chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc
	chromium/patches/patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc
	chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.cc
	chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.h
	chromium/patches/patch-chrome_browser_ui_window__sizer_window__sizer.cc
	chromium/patches/patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc
	chromium/patches/patch-chrome_browser_web__applications_extension__status__utils.h
	chromium/patches/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc
	chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc
	chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h
	chromium/patches/patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc
	chromium/patches/patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc
	chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h
	chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc
	chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h
	chromium/patches/patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc
	chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc
	chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h
	chromium/patches/patch-chrome_browser_web__applications_web__app__helpers.cc
	chromium/patches/patch-chrome_browser_web__applications_web__app__install__info.h
	chromium/patches/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc
	chromium/patches/patch-chrome_browser_webauthn_enclave__manager.cc
	chromium/patches/patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc
	chromium/patches/patch-chrome_common_media_cdm__registration.cc
	chromium/patches/patch-chrome_common_media_cdm__registration.h
	chromium/patches/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h
	chromium/patches/patch-chrome_common_url__constants.h
	chromium/patches/patch-chrome_enterprise__companion_enterprise__companion__client.cc
	chromium/patches/patch-chrome_enterprise__companion_lock.cc
	chromium/patches/patch-chrome_services_printing_print__backend__service__impl.cc
	chromium/patches/patch-chrome_services_speech_audio__source__fetcher__impl.cc
	chromium/patches/patch-chrome_test_base_scoped__channel__override__posix.cc
	chromium/patches/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc
	chromium/patches/patch-chrome_updater_configurator.cc
	chromium/patches/patch-chrome_updater_lock.cc
	chromium/patches/patch-chrome_updater_util_posix__util.cc
	chromium/patches/patch-chrome_utility_services.cc
	chromium/patches/patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc
	chromium/patches/patch-chromecast_media_base_default__monotonic__clock.cc
	chromium/patches/patch-components_autofill_core_browser_payments__data__manager.cc
	chromium/patches/patch-components_autofill_core_common_autofill__features.cc
	chromium/patches/patch-components_commerce_core_commerce__feature__list.cc
	chromium/patches/patch-components_constrained__window_constrained__window__views.cc
	chromium/patches/patch-components_crash_core_app_BUILD.gn
	chromium/patches/patch-components_crash_core_app_chrome__crashpad__handler.cc
	chromium/patches/patch-components_crash_core_app_crashpad__handler__main.cc
	chromium/patches/patch-components_crash_core_browser_crash__upload__list__crashpad.cc
	chromium/patches/patch-components_device__signals_core_browser_mock__signals__aggregator.h
	chromium/patches/patch-components_device__signals_core_browser_signals__aggregator.h
	chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.cc
	chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.h
	chromium/patches/patch-components_device__signals_core_browser_user__permission__service.h
	chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.cc
	chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.h
	chromium/patches/patch-components_device__signals_core_common_signals__features.cc
	chromium/patches/patch-components_device__signals_core_common_signals__features.h
	chromium/patches/patch-components_device__signals_core_system__signals_platform__delegate.cc
	chromium/patches/patch-components_device__signals_test_signals__contract.cc
	chromium/patches/patch-components_embedder__support_user__agent__utils.cc
	chromium/patches/patch-components_embedder__support_user__agent__utils__unittest.cc
	chromium/patches/patch-components_enterprise_watermarking_watermark.cc
	chromium/patches/patch-components_eye__dropper_eye__dropper__view.cc
	chromium/patches/patch-components_feature__engagement_public_feature__configurations.cc
	chromium/patches/patch-components_feed_core_proto_v2_wire_version.proto
	chromium/patches/patch-components_feed_core_v2_feed__network__impl__unittest.cc
	chromium/patches/patch-components_feed_core_v2_proto__util.cc
	chromium/patches/patch-components_feed_core_v2_proto__util__unittest.cc
	chromium/patches/patch-components_feed_core_v2_test_proto__printer.cc
	chromium/patches/patch-components_gwp__asan_client_guarded__page__allocator__posix.cc
	chromium/patches/patch-components_gwp__asan_client_gwp__asan.cc
	chromium/patches/patch-components_gwp__asan_client_gwp__asan__features.cc
	chromium/patches/patch-components_gwp__asan_crash__handler_crash__analyzer.cc
	chromium/patches/patch-components_live__caption_caption__util.cc
	chromium/patches/patch-components_live__caption_caption__util.h
	chromium/patches/patch-components_media__router_common_media__source.cc
	chromium/patches/patch-components_media__router_common_providers_cast_channel_cast__message__util.cc
	chromium/patches/patch-components_metrics_motherboard.cc
	chromium/patches/patch-components_named__mojo__ipc__server_connection__info.h
	chromium/patches/patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc
	chromium/patches/patch-components_named__system__lock_lock.h
	chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc
	chromium/patches/patch-components_optimization__guide_core_optimization__guide__util.cc
	chromium/patches/patch-components_os__crypt_sync_libsecret__util__linux.cc
	chromium/patches/patch-components_os__crypt_sync_os__crypt.h
	chromium/patches/patch-components_paint__preview_browser_paint__preview__client.cc
	chromium/patches/patch-components_paint__preview_browser_paint__preview__client__unittest.cc
	chromium/patches/patch-components_paint__preview_common_proto_paint__preview.proto
	chromium/patches/patch-components_paint__preview_player_player__compositor__delegate.cc
	chromium/patches/patch-components_password__manager_core_browser_features_password__features.cc
	chromium/patches/patch-components_password__manager_core_browser_features_password__features.h
	chromium/patches/patch-components_password__manager_core_browser_password__form__manager.cc
	chromium/patches/patch-components_password__manager_core_browser_password__manager.cc
	chromium/patches/patch-components_password__manager_core_browser_password__manager__client.h
	chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.cc
	chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.h
	chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc
	chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.h
	chromium/patches/patch-components_password__manager_core_browser_password__store_login__database.cc
	chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc
	chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__unittest.cc
	chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.cc
	chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.h
	chromium/patches/patch-components_password__manager_core_common_password__manager__pref__names.h
	chromium/patches/patch-components_performance__manager_public_features.h
	chromium/patches/patch-components_permissions_prediction__service_prediction__common.cc
	chromium/patches/patch-components_policy_core_browser_policy__pref__mapping__test.cc
	chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__client.cc
	chromium/patches/patch-components_policy_core_common_policy__loader__common.cc
	chromium/patches/patch-components_policy_core_common_policy__paths.cc
	chromium/patches/patch-components_policy_core_common_policy__utils.cc
	chromium/patches/patch-components_power__metrics_BUILD.gn
	chromium/patches/patch-components_power__metrics_energy__metrics__provider.cc
	chromium/patches/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc
	chromium/patches/patch-components_safe__browsing_content_resources_gen__file__type__proto.py
	chromium/patches/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc
	chromium/patches/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc
	chromium/patches/patch-components_safe__browsing_core_common_features.cc
	chromium/patches/patch-components_search__engines_search__engine__choice_search__engine__choice__service.cc
	chromium/patches/patch-components_search__engines_template__url__service.cc
	chromium/patches/patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc
	chromium/patches/patch-components_signin_public_base_signin__switches.cc
	chromium/patches/patch-components_signin_public_base_signin__switches.h
	chromium/patches/patch-components_soda_soda__util.cc
	chromium/patches/patch-components_startup__metric__utils_common_startup__metric__utils.cc
	chromium/patches/patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc
	chromium/patches/patch-components_supervised__user_core_browser_supervised__user__preferences.cc
	chromium/patches/patch-components_supervised__user_core_browser_supervised__user__service.cc
	chromium/patches/patch-components_supervised__user_core_common_features.cc
	chromium/patches/patch-components_supervised__user_core_common_features.h
	chromium/patches/patch-components_supervised__user_core_common_pref__names.h
	chromium/patches/patch-components_sync_base_sync__util.cc
	chromium/patches/patch-components_system__cpu_cpu__probe.cc
	chromium/patches/patch-components_translate_core_common_translate__util.cc
	chromium/patches/patch-components_user__education_views_help__bubble__view.cc
	chromium/patches/patch-components_variations_service_variations__service.cc
	chromium/patches/patch-components_visited__url__ranking_public_url__visit__util.cc
	chromium/patches/patch-components_viz_common_features.h
	chromium/patches/patch-components_viz_service_display__embedder_skia__output__device__buffer__queue.cc
	chromium/patches/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc
	chromium/patches/patch-components_viz_service_display_skia__renderer.cc
	chromium/patches/patch-components_viz_test_fake__display__client.cc
	chromium/patches/patch-components_viz_test_fake__display__client.h
	chromium/patches/patch-content_app_BUILD.gn
	chromium/patches/patch-content_app_content__main.cc
	chromium/patches/patch-content_browser_audio_audio__service.cc
	chromium/patches/patch-content_browser_browser__child__process__host__impl.cc
	chromium/patches/patch-content_browser_browser__child__process__host__impl.h
	chromium/patches/patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc
	chromium/patches/patch-content_browser_child__process__launcher__helper.h
	chromium/patches/patch-content_browser_child__thread__type__switcher__linux.cc
	chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.cc
	chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.h
	chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h
	chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc
	chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h
	chromium/patches/patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc
	chromium/patches/patch-content_browser_font__access_font__enumeration__data__source.cc
	chromium/patches/patch-content_browser_gpu_compositor__util.cc
	chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.cc
	chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.h
	chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.cc
	chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.h
	chromium/patches/patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc
	chromium/patches/patch-content_browser_media_frameless__media__interface__proxy.h
	chromium/patches/patch-content_browser_media_media__keys__listener__manager__impl.cc
	chromium/patches/patch-content_browser_network__service__instance__impl.cc
	chromium/patches/patch-content_browser_renderer__host_delegated__frame__host.cc
	chromium/patches/patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc
	chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.h
	chromium/patches/patch-content_browser_sandbox__host__linux.cc
	chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc
	chromium/patches/patch-content_browser_utility__process__host.h
	chromium/patches/patch-content_browser_utility__sandbox__delegate.cc
	chromium/patches/patch-content_browser_web__contents_web__contents__view__aura.cc
	chromium/patches/patch-content_browser_web__contents_web__contents__view__aura__unittest.cc
	chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.cc
	chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.h
	chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.cc
	chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.h
	chromium/patches/patch-content_child_child__process.cc
	chromium/patches/patch-content_child_child__process.h
	chromium/patches/patch-content_common_features.cc
	chromium/patches/patch-content_common_features.h
	chromium/patches/patch-content_common_font__list__unittest.cc
	chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.cc
	chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.h
	chromium/patches/patch-content_common_gpu__pre__sandbox__hook__linux.h
	chromium/patches/patch-content_common_mojo__core__library__support.cc
	chromium/patches/patch-content_common_user__agent.cc
	chromium/patches/patch-content_gpu_gpu__child__thread.cc
	chromium/patches/patch-content_ppapi__plugin_ppapi__plugin__main.cc
	chromium/patches/patch-content_public_browser_content__browser__client.cc
	chromium/patches/patch-content_public_browser_service__process__host.cc
	chromium/patches/patch-content_public_browser_zygote__host_zygote__host__linux.h
	chromium/patches/patch-content_public_common_zygote_features.gni
	chromium/patches/patch-content_renderer_media_gpu_gpu__video__accelerator__factories__impl.cc
	chromium/patches/patch-content_shell_browser_shell__paths.cc
	chromium/patches/patch-content_shell_renderer_shell__content__renderer__client.cc
	chromium/patches/patch-content_shell_utility_shell__content__utility__client.cc
	chromium/patches/patch-content_utility_services.cc
	chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc
	chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h
	chromium/patches/patch-content_utility_utility__main.cc
	chromium/patches/patch-content_utility_utility__thread__impl.cc
	chromium/patches/patch-content_zygote_zygote__linux.cc
	chromium/patches/patch-device_bluetooth_bluetooth__adapter.cc
	chromium/patches/patch-device_bluetooth_cast__bluetooth.gni
	chromium/patches/patch-device_fido_fido__discovery__factory.cc
	chromium/patches/patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc
	chromium/patches/patch-extensions_browser_api_management_management__api.cc
	chromium/patches/patch-extensions_common_command.cc
	chromium/patches/patch-extensions_renderer_bindings_argument__spec.cc
	chromium/patches/patch-extensions_shell_browser_shell__browser__main__parts.cc
	chromium/patches/patch-gpu_command__buffer_service_dawn__context__provider.cc
	chromium/patches/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc
	chromium/patches/patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc
	chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc
	chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc
	chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc
	chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc
	chromium/patches/patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc
	chromium/patches/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc
	chromium/patches/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc
	chromium/patches/patch-gpu_config_gpu__finch__features.cc
	chromium/patches/patch-gpu_config_gpu__info__collector.cc
	chromium/patches/patch-gpu_ipc_service_x__util.h
	chromium/patches/patch-gpu_vulkan_generate__bindings.py
	chromium/patches/patch-gpu_vulkan_semaphore__handle.cc
	chromium/patches/patch-gpu_vulkan_vulkan__device__queue.cc
	chromium/patches/patch-gpu_vulkan_vulkan__device__queue.h
	chromium/patches/patch-gpu_vulkan_vulkan__image.h
	chromium/patches/patch-gpu_vulkan_vulkan__util.cc
	chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__posix.cc
	chromium/patches/patch-headless_lib_browser_headless__web__contents__impl.cc
	chromium/patches/patch-media_BUILD.gn
	chromium/patches/patch-media_audio_audio__output__proxy__unittest.cc
	chromium/patches/patch-media_audio_pulse_pulse__util.cc
	chromium/patches/patch-media_audio_sndio_audio__manager__sndio.cc
	chromium/patches/patch-media_audio_sndio_audio__manager__sndio.h
	chromium/patches/patch-media_audio_sndio_sndio__input.cc
	chromium/patches/patch-media_audio_sndio_sndio__input.h
	chromium/patches/patch-media_audio_sndio_sndio__output.cc
	chromium/patches/patch-media_audio_sndio_sndio__output.h
	chromium/patches/patch-media_base_libaom__thread__wrapper.cc
	chromium/patches/patch-media_base_libvpx__thread__wrapper.cc
	chromium/patches/patch-media_base_user__input__monitor__unittest.cc
	chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.cc
	chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.h
	chromium/patches/patch-media_capture_video_linux_v4l2__capture__device.h
	chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.cc
	chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.h
	chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc
	chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.h
	chromium/patches/patch-media_capture_video_linux_video__capture__device__linux.cc
	chromium/patches/patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc
	chromium/patches/patch-media_cdm_cdm__paths__unittest.cc
	chromium/patches/patch-media_ffmpeg_scripts_build__ffmpeg.py
	chromium/patches/patch-media_ffmpeg_scripts_robo__lib_config.py
	chromium/patches/patch-media_gpu_chromeos_gl__image__processor__backend.cc
	chromium/patches/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc
	chromium/patches/patch-media_gpu_chromeos_mailbox__video__frame__converter.cc
	chromium/patches/patch-media_gpu_chromeos_native__pixmap__frame__resource.cc
	chromium/patches/patch-media_gpu_chromeos_platform__video__frame__utils.cc
	chromium/patches/patch-media_gpu_chromeos_video__decoder__pipeline.cc
	chromium/patches/patch-media_gpu_gpu__video__encode__accelerator__factory.cc
	chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc
	chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h
	chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc
	chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h
	chromium/patches/patch-media_gpu_vaapi_vaapi__video__decoder.cc
	chromium/patches/patch-media_gpu_vaapi_vaapi__wrapper.cc
	chromium/patches/patch-media_mojo_mojom_stable_BUILD.gn
	chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc
	chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h
	chromium/patches/patch-media_video_video__encode__accelerator__adapter.cc
	chromium/patches/patch-media_video_video__encode__accelerator__adapter__test.cc
	chromium/patches/patch-media_webrtc_audio__processor.cc
	chromium/patches/patch-media_webrtc_helpers.cc
	chromium/patches/patch-media_webrtc_helpers__unittests.cc
	chromium/patches/patch-mojo_core_channel.cc
	chromium/patches/patch-mojo_core_embedder_features.h
	chromium/patches/patch-net_base_features.cc
	chromium/patches/patch-net_base_mock__network__change__notifier.cc
	chromium/patches/patch-net_base_mock__network__change__notifier.h
	chromium/patches/patch-net_base_network__change__notifier__passive.cc
	chromium/patches/patch-net_base_sockaddr__util__posix.cc
	chromium/patches/patch-net_base_sockaddr__util__posix__unittest.cc
	chromium/patches/patch-net_cert_cert__verify__proc.h
	chromium/patches/patch-net_disk__cache_simple_simple__file__tracker.cc
	chromium/patches/patch-net_dns_BUILD.gn
	chromium/patches/patch-net_dns_address__info.cc
	chromium/patches/patch-net_dns_dns__config__service__posix.cc
	chromium/patches/patch-net_dns_public_BUILD.gn
	chromium/patches/patch-net_dns_public_resolv__reader.cc
	chromium/patches/patch-net_dns_public_resolv__reader.h
	chromium/patches/patch-net_dns_public_scoped__res__state.cc
	chromium/patches/patch-net_dns_public_scoped__res__state.h
	chromium/patches/patch-net_filter_zstd__source__stream.cc
	chromium/patches/patch-net_http_http__auth__handler__negotiate.cc
	chromium/patches/patch-net_http_http__auth__preferences.cc
	chromium/patches/patch-net_http_http__auth__preferences.h
	chromium/patches/patch-net_http_http__network__session.cc
	chromium/patches/patch-net_proxy__resolution_proxy__config__service.cc
	chromium/patches/patch-net_socket_udp__socket__unittest.cc
	chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc
	chromium/patches/patch-net_tools_net__watcher_net__watcher.cc
	chromium/patches/patch-ppapi_tests_test__utils.h
	chromium/patches/patch-printing_backend_cups__ipp__helper.cc
	chromium/patches/patch-printing_backend_print__backend__cups.cc
	chromium/patches/patch-printing_mojom_printing__context__mojom__traits.cc
	chromium/patches/patch-printing_mojom_printing__context__mojom__traits.h
	chromium/patches/patch-printing_print__settings.cc
	chromium/patches/patch-printing_printing__context__linux.cc
	chromium/patches/patch-printing_printing__features.cc
	chromium/patches/patch-printing_printing__features.h
	chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc
	chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.h
	chromium/patches/patch-remoting_base_host__settings.cc
	chromium/patches/patch-remoting_codec_webrtc__video__encoder__vpx.cc
	chromium/patches/patch-remoting_host_base_desktop__environment__options.cc
	chromium/patches/patch-remoting_host_base_switches.cc
	chromium/patches/patch-remoting_host_base_switches.h
	chromium/patches/patch-remoting_host_basic__desktop__environment.cc
	chromium/patches/patch-remoting_host_chromoting__host.cc
	chromium/patches/patch-remoting_host_chromoting__host.h
	chromium/patches/patch-remoting_host_chromoting__host__context.cc
	chromium/patches/patch-remoting_host_chromoting__host__services__client.cc
	chromium/patches/patch-remoting_host_client__session.cc
	chromium/patches/patch-remoting_host_crash_crash__file__uploader.cc
	chromium/patches/patch-remoting_host_desktop__and__cursor__conditional__composer.cc
	chromium/patches/patch-remoting_host_desktop__capturer__proxy.cc
	chromium/patches/patch-remoting_host_desktop__capturer__wrapper.cc
	chromium/patches/patch-remoting_host_ipc__constants.cc
	chromium/patches/patch-remoting_host_it2me_it2me__host.cc
	chromium/patches/patch-remoting_host_mouse__cursor__monitor__proxy.cc
	chromium/patches/patch-remoting_host_policy__watcher.cc
	chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__client.cc
	chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__util.cc
	chromium/patches/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc
	chromium/patches/patch-remoting_host_setup_start__host__main.cc
	chromium/patches/patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc
	chromium/patches/patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc
	chromium/patches/patch-remoting_protocol_webrtc__video__stream.cc
	chromium/patches/patch-sandbox_BUILD.gn
	chromium/patches/patch-sandbox_features.gni
	chromium/patches/patch-sandbox_policy_BUILD.gn
	chromium/patches/patch-sandbox_policy_features.cc
	chromium/patches/patch-sandbox_policy_features.h
	chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.cc
	chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.h
	chromium/patches/patch-sandbox_policy_mojom_sandbox.mojom
	chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.cc
	chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.h
	chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.cc
	chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.h
	chromium/patches/patch-sandbox_policy_sandbox.cc
	chromium/patches/patch-sandbox_policy_sandbox.h
	chromium/patches/patch-sandbox_policy_sandbox__type.cc
	chromium/patches/patch-sandbox_policy_switches.cc
	chromium/patches/patch-sandbox_policy_switches.h
	chromium/patches/patch-services_audio_audio__sandbox__hook__linux.cc
	chromium/patches/patch-services_audio_audio__sandbox__hook__linux.h
	chromium/patches/patch-services_device_hid_hid__connection__fido.cc
	chromium/patches/patch-services_device_hid_hid__connection__fido.h
	chromium/patches/patch-services_device_hid_hid__connection__freebsd.cc
	chromium/patches/patch-services_device_hid_hid__connection__freebsd.h
	chromium/patches/patch-services_device_hid_hid__connection__netbsd.cc
	chromium/patches/patch-services_device_hid_hid__service.cc
	chromium/patches/patch-services_device_hid_hid__service__fido.cc
	chromium/patches/patch-services_device_hid_hid__service__fido.h
	chromium/patches/patch-services_device_hid_hid__service__freebsd.cc
	chromium/patches/patch-services_device_hid_hid__service__freebsd.h
	chromium/patches/patch-services_device_public_cpp_generic__sensor_sensor__reading.h
	chromium/patches/patch-services_device_public_mojom_BUILD.gn
	chromium/patches/patch-services_device_usb_BUILD.gn
	chromium/patches/patch-services_device_usb_usb__service.cc
	chromium/patches/patch-services_device_usb_usb__service__fake.cc
	chromium/patches/patch-services_device_usb_usb__service__fake.h
	chromium/patches/patch-services_network_network__context.h
	chromium/patches/patch-services_network_network__sandbox__hook__linux.h
	chromium/patches/patch-services_network_public_cpp_BUILD.gn
	chromium/patches/patch-services_network_public_cpp_features.cc
	chromium/patches/patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h
	chromium/patches/patch-services_on__device__model_on__device__model__service.h
	chromium/patches/patch-services_on__device__model_pre__sandbox__init.cc
	chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn
	chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc
	chromium/patches/patch-services_screen__ai_public_cpp_utilities.cc
	chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc
	chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h
	chromium/patches/patch-services_service__manager_BUILD.gn
	chromium/patches/patch-services_video__capture_public_mojom_video__capture__service.mojom
	chromium/patches/patch-services_video__capture_video__capture__service__impl.cc
	chromium/patches/patch-services_video__capture_video__capture__service__impl.h
	chromium/patches/patch-skia_ext_font__utils.cc
	chromium/patches/patch-skia_ext_skcolorspace__trfn.cc
	chromium/patches/patch-third__party_abseil-cpp_absl_base_config.h
	chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_raw__logging.cc
	chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc
	chromium/patches/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h
	chromium/patches/patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc
	chromium/patches/patch-third__party_afl_src_afl-fuzz.c
	chromium/patches/patch-third__party_angle_src_common_platform.h
	chromium/patches/patch-third__party_angle_src_common_platform__helpers.h
	chromium/patches/patch-third__party_angle_src_common_system__utils.cpp
	chromium/patches/patch-third__party_angle_src_common_system__utils__linux.cpp
	chromium/patches/patch-third__party_angle_src_libANGLE_formatutils.cpp
	chromium/patches/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp
	chromium/patches/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc
	chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h
	chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h
	chromium/patches/patch-third__party_blink_public_platform_platform.h
	chromium/patches/patch-third__party_blink_public_platform_web__vector.h
	chromium/patches/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py
	chromium/patches/patch-third__party_blink_renderer_core_execution__context_navigator__base.cc
	chromium/patches/patch-third__party_blink_renderer_core_exported_web__view__impl.cc
	chromium/patches/patch-third__party_blink_renderer_core_frame_web__frame__test.cc
	chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor.h
	chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc
	chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc
	chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc
	chromium/patches/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc
	chromium/patches/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc
	chromium/patches/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc
	chromium/patches/patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc
	chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__platform__data.cc
	chromium/patches/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc
	chromium/patches/patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc
	chromium/patches/patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc
	chromium/patches/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
	chromium/patches/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc
	chromium/patches/patch-third__party_blink_renderer_platform_video__capture_video__capture__impl.cc
	chromium/patches/patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc
	chromium/patches/patch-third__party_blink_renderer_platform_wtf_math__extras.h
	chromium/patches/patch-third__party_blink_renderer_platform_wtf_text_text__codec__icu.cc
	chromium/patches/patch-third__party_blink_renderer_platform_wtf_thread__specific.h
	chromium/patches/patch-third__party_brotli_common_platform.h
	chromium/patches/patch-third__party_cpuinfo_cpuinfo.gni
	chromium/patches/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc
	chromium/patches/patch-third__party_dawn_include_dawn_native_VulkanBackend.h
	chromium/patches/patch-third__party_dawn_src_dawn_common_Platform.h
	chromium/patches/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp
	chromium/patches/patch-third__party_ffmpeg_BUILD.gn
	chromium/patches/patch-third__party_ffmpeg_libavcodec_x86_cabac.h
	chromium/patches/patch-third__party_ffmpeg_libavutil_cpu.c
	chromium/patches/patch-third__party_ffmpeg_libavutil_random__seed.c
	chromium/patches/patch-third__party_ffmpeg_libavutil_x86_x86inc.asm
	chromium/patches/patch-third__party_fontconfig_include_config.h
	chromium/patches/patch-third__party_fontconfig_src_src_fccompat.c
	chromium/patches/patch-third__party_ipcz_src_reference__drivers_random.cc
	chromium/patches/patch-third__party_ipcz_src_standalone_base_logging.cc
	chromium/patches/patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c
	chromium/patches/patch-third__party_libc++_src_src_chrono.cpp
	chromium/patches/patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp
	chromium/patches/patch-third__party_libc++abi_src_src_cxa__guard__impl.h
	chromium/patches/patch-third__party_libdrm_src_xf86drmMode.c
	chromium/patches/patch-third__party_libsync_src_include_sync_sync.h
	chromium/patches/patch-third__party_libsync_src_sync.c
	chromium/patches/patch-third__party_libusb_BUILD.gn
	chromium/patches/patch-third__party_libusb_src_libusb_core.c
	chromium/patches/patch-third__party_libusb_src_libusb_os_threads__posix.c
	chromium/patches/patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c
	chromium/patches/patch-third__party_lzma__sdk_C_CpuArch.c
	chromium/patches/patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc
	chromium/patches/patch-third__party_nasm_BUILD.gn
	chromium/patches/patch-third__party_node_node.gni
	chromium/patches/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp
	chromium/patches/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp
	chromium/patches/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp
	chromium/patches/patch-third__party_pdfium_pdfium.gni
	chromium/patches/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp
	chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h
	chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h
	chromium/patches/patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h
	chromium/patches/patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto
	chromium/patches/patch-third__party_perfetto_src_base_event__fd.cc
	chromium/patches/patch-third__party_perfetto_src_base_periodic__task.cc
	chromium/patches/patch-third__party_perfetto_src_base_string__utils.cc
	chromium/patches/patch-third__party_perfetto_src_base_subprocess__posix.cc
	chromium/patches/patch-third__party_perfetto_src_base_test_vm__test__utils.cc
	chromium/patches/patch-third__party_perfetto_src_base_thread__task__runner.cc
	chromium/patches/patch-third__party_perfetto_src_base_unix__socket.cc
	chromium/patches/patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc
	chromium/patches/patch-third__party_perfetto_src_tracing_core_clock__snapshots.cc
	chromium/patches/patch-third__party_perfetto_src_tracing_ipc_memfd.cc
	chromium/patches/patch-third__party_perfetto_src_tracing_track.cc
	chromium/patches/patch-third__party_skia_src_gpu_ganesh_GrAutoLocaleSetter.h
	chromium/patches/patch-third__party_skia_src_ports_SkMemory__malloc.cpp
	chromium/patches/patch-third__party_skia_src_ports_SkOSFile__posix.cpp
	chromium/patches/patch-third__party_speech-dispatcher_libspeechd__version.h
	chromium/patches/patch-third__party_speech-dispatcher_speechd__types.h
	chromium/patches/patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c
	chromium/patches/patch-third__party_sqlite_src_amalgamation_sqlite3.c
	chromium/patches/patch-third__party_swiftshader_src_System_Configurator.cpp
	chromium/patches/patch-third__party_swiftshader_src_System_Linux_MemFd.cpp
	chromium/patches/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp
	chromium/patches/patch-third__party_swiftshader_src_WSI_libXCB.cpp
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h
	chromium/patches/patch-third__party_test__fonts_fontconfig_BUILD.gn
	chromium/patches/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc
	chromium/patches/patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc
	chromium/patches/patch-third__party_tflite_features.gni
	chromium/patches/patch-third__party_unrar_src_crypt.cpp
	chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h
	chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_vulkan_generated_vk__function__pointers.cpp
	chromium/patches/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h
	chromium/patches/patch-third__party_wayland_BUILD.gn
	chromium/patches/patch-third__party_wayland_include_config.h
	chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc
	chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc
	chromium/patches/patch-third__party_webrtc_rtc__base_byte__order.h
	chromium/patches/patch-third__party_webrtc_rtc__base_net__test__helpers.cc
	chromium/patches/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h
	chromium/patches/patch-third__party_widevine_cdm_widevine.gni
	chromium/patches/patch-tools_generate__shim__headers_generate__shim__headers.py
	chromium/patches/patch-tools_generate__stubs_rules.gni
	chromium/patches/patch-tools_gn_build_build__linux.ninja.template
	chromium/patches/patch-tools_gn_src_base_files_file__posix.cc
	chromium/patches/patch-tools_grit_grit_node_base.py
	chromium/patches/patch-tools_json__schema__compiler_cpp__bundle__generator.py
	chromium/patches/patch-tools_memory_partition__allocator_inspect__utils.h
	chromium/patches/patch-tools_protoc__wrapper_protoc__wrapper.py
	chromium/patches/patch-tools_v8__context__snapshot_BUILD.gn
	chromium/patches/patch-ui_aura_client_drag__drop__client.h
	chromium/patches/patch-ui_aura_screen__ozone.cc
	chromium/patches/patch-ui_aura_screen__ozone.h
	chromium/patches/patch-ui_base_clipboard_clipboard__constants.cc
	chromium/patches/patch-ui_base_clipboard_clipboard__constants.h
	chromium/patches/patch-ui_base_clipboard_clipboard__non__backed.cc
	chromium/patches/patch-ui_base_cursor_cursor__factory.cc
	chromium/patches/patch-ui_base_cursor_cursor__factory.h
	chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc
	chromium/patches/patch-ui_base_ime_dummy__text__input__client.cc
	chromium/patches/patch-ui_base_ime_dummy__text__input__client.h
	chromium/patches/patch-ui_base_ime_fake__text__input__client.cc
	chromium/patches/patch-ui_base_ime_fake__text__input__client.h
	chromium/patches/patch-ui_base_ime_linux_linux__input__method__context__factory.cc
	chromium/patches/patch-ui_base_ime_text__input__client.h
	chromium/patches/patch-ui_base_test_skia__gold__pixel__diff.cc
	chromium/patches/patch-ui_base_test_ui__controls.h
	chromium/patches/patch-ui_base_ui__base__switches.cc
	chromium/patches/patch-ui_base_ui__base__switches.h
	chromium/patches/patch-ui_base_x_x11__cursor__factory.cc
	chromium/patches/patch-ui_base_x_x11__cursor__factory.h
	chromium/patches/patch-ui_base_x_x11__cursor__loader.cc
	chromium/patches/patch-ui_base_x_x11__display__manager.cc
	chromium/patches/patch-ui_base_x_x11__display__util.cc
	chromium/patches/patch-ui_base_x_x11__util.cc
	chromium/patches/patch-ui_base_x_x11__util.h
	chromium/patches/patch-ui_color_color__id.h
	chromium/patches/patch-ui_color_color__provider__utils.cc
	chromium/patches/patch-ui_color_system__theme.h
	chromium/patches/patch-ui_display_screen.cc
	chromium/patches/patch-ui_display_screen.h
	chromium/patches/patch-ui_events_event.cc
	chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.h
	chromium/patches/patch-ui_gfx_font__render__params__linux.cc
	chromium/patches/patch-ui_gfx_linux_dmabuf__uapi.h
	chromium/patches/patch-ui_gfx_linux_gbm__wrapper.cc
	chromium/patches/patch-ui_gfx_platform__font__skia.cc
	chromium/patches/patch-ui_gfx_render__text__api__fuzzer.cc
	chromium/patches/patch-ui_gfx_render__text__fuzzer.cc
	chromium/patches/patch-ui_gfx_switches.cc
	chromium/patches/patch-ui_gfx_switches.h
	chromium/patches/patch-ui_gfx_x_generated__protos_dri3.cc
	chromium/patches/patch-ui_gfx_x_generated__protos_shm.cc
	chromium/patches/patch-ui_gfx_x_xlib__support.cc
	chromium/patches/patch-ui_gl_gl__bindings.h
	chromium/patches/patch-ui_gl_gl__context.cc
	chromium/patches/patch-ui_gl_gl__implementation.cc
	chromium/patches/patch-ui_gl_gl__switches.cc
	chromium/patches/patch-ui_gtk_gtk__compat.cc
	chromium/patches/patch-ui_native__theme_native__theme__features.cc
	chromium/patches/patch-ui_ozone_common_egl__util.cc
	chromium/patches/patch-ui_ozone_common_features.cc
	chromium/patches/patch-ui_ozone_platform_headless_headless__surface__factory.cc
	chromium/patches/patch-ui_ozone_platform_headless_ozone__platform__headless.cc
	chromium/patches/patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc
	chromium/patches/patch-ui_ozone_platform_wayland_common_wayland__util.cc
	chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.cc
	chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.h
	chromium/patches/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc
	chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__connection.cc
	chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__input__method__context.cc
	chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__popup.cc
	chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.cc
	chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.h
	chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.cc
	chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.h
	chromium/patches/patch-ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc
	chromium/patches/patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc
	chromium/patches/patch-ui_ozone_platform_wayland_ozone__platform__wayland.cc
	chromium/patches/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc
	chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.cc
	chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.h
	chromium/patches/patch-ui_ozone_platform_x11_x11__window.cc
	chromium/patches/patch-ui_ozone_test_mock__platform__window__delegate.h
	chromium/patches/patch-ui_platform__window_platform__window__delegate.cc
	chromium/patches/patch-ui_platform__window_platform__window__delegate.h
	chromium/patches/patch-ui_qt_BUILD.gn
	chromium/patches/patch-ui_qt_qt.gni
	chromium/patches/patch-ui_strings_translations_app__locale__settings__bn.xtb
	chromium/patches/patch-ui_strings_translations_app__locale__settings__ja.xtb
	chromium/patches/patch-ui_strings_translations_app__locale__settings__ko.xtb
	chromium/patches/patch-ui_strings_translations_app__locale__settings__ml.xtb
	chromium/patches/patch-ui_strings_translations_app__locale__settings__th.xtb
	chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-CN.xtb
	chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-TW.xtb
	chromium/patches/patch-ui_views_controls_prefix__selector.cc
	chromium/patches/patch-ui_views_controls_prefix__selector.h
	chromium/patches/patch-ui_views_controls_textfield_textfield.h
	chromium/patches/patch-ui_views_focus_focus__manager.cc
	chromium/patches/patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc
	chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc
	chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h
	chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform__impl__interactive__uitest.cc
	chromium/patches/patch-ui_views_widget_root__view.cc
	chromium/patches/patch-ui_views_widget_widget.cc
	chromium/patches/patch-v8_include_v8-internal.h
	chromium/patches/patch-v8_include_v8config.h
	chromium/patches/patch-v8_src_base_atomicops.h
	chromium/patches/patch-v8_src_base_platform_memory.h
	chromium/patches/patch-v8_src_base_platform_platform-freebsd.cc
	chromium/patches/patch-v8_src_base_platform_platform-openbsd.cc
	chromium/patches/patch-v8_src_base_small-vector.h
	chromium/patches/patch-v8_src_base_strings.h
	chromium/patches/patch-v8_src_base_sys-info.cc
	chromium/patches/patch-v8_src_base_utils_random-number-generator.cc
	chromium/patches/patch-v8_src_diagnostics_perf-jit.cc
	chromium/patches/patch-v8_src_diagnostics_perf-jit.h
	chromium/patches/patch-v8_src_execution_isolate.cc
	chromium/patches/patch-v8_src_flags_flags.cc
	chromium/patches/patch-v8_src_sandbox_sandbox.cc
	chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc
	chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h
	chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc
	chromium/patches/patch-v8_src_trap-handler_trap-handler.h
	chromium/patches/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h
	chromium/patches/patch-v8_tools_run-paxctl.py
	chromium/patches/patch-v8_tools_run.py
	chromium/tests.mk
Removed Files:
	chromium/patches/patch-apps_app__restore__service__browsertest.cc
	chromium/patches/patch-base_allocator_BUILD.gn
	chromium/patches/patch-base_allocator_allocator__shim__unittest.cc
	chromium/patches/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h
	chromium/patches/patch-base_allocator_partition__allocator_partition__alloc__unittest.cc
	chromium/patches/patch-base_base__switches.cc
	chromium/patches/patch-base_base__switches.h
	chromium/patches/patch-base_cpu.cc
	chromium/patches/patch-base_debug_proc_maps_linux.cc
	chromium/patches/patch-base_debug_stack__trace__unittest.cc
	chromium/patches/patch-base_files_file__path__unittest.cc
	chromium/patches/patch-base_files_file__path__watcher__stub.cc
	chromium/patches/patch-base_files_file__util.h
	chromium/patches/patch-base_location__unittest.cc
	chromium/patches/patch-base_memory_shared__memory__region__unittest.cc
	chromium/patches/patch-base_path__service__unittest.cc
	chromium/patches/patch-base_process_launch.cc
	chromium/patches/patch-base_process_memory.cc
	chromium/patches/patch-base_process_memory.h
	chromium/patches/patch-base_process_memory__unittest.cc
	chromium/patches/patch-base_process_process__linux.cc
	chromium/patches/patch-base_process_process__util__unittest.cc
	chromium/patches/patch-base_profiler_register__context.h
	chromium/patches/patch-base_profiler_stack__copier__signal.cc
	chromium/patches/patch-base_sampling__heap__profiler_sampling__heap__profiler.cc
	chromium/patches/patch-base_security__unittest.cc
	chromium/patches/patch-base_test_BUILD.gn
	chromium/patches/patch-base_test_test__suite.cc
	chromium/patches/patch-base_third__party_libevent_BUILD.gn
	chromium/patches/patch-base_third__party_libevent_event-config.h
	chromium/patches/patch-base_third__party_libevent_netbsd_config.h
	chromium/patches/patch-base_third__party_libevent_netbsd_event-config.h
	chromium/patches/patch-base_threading_platform__thread__linux.cc
	chromium/patches/patch-base_trace__event_malloc__dump__dump__provider.cc
	chromium/patches/patch-base_trace__event_process__memory__dump.h
	chromium/patches/patch-build_config_compiler_compiler.gni
	chromium/patches/patch-build_config_crypto.gni
	chromium/patches/patch-build_config_features.gni
	chromium/patches/patch-build_config_linux_dri_BUILD.gn
	chromium/patches/patch-build_config_linux_gtk_BUILD.gn
	chromium/patches/patch-build_config_linux_libdrm_BUILD.gn
	chromium/patches/patch-build_config_linux_nss_BUILD.gn
	chromium/patches/patch-build_config_linux_pangocairo_pangocairo.gni
	chromium/patches/patch-build_config_ui.gni
	chromium/patches/patch-build_linux_libpci_BUILD.gn
	chromium/patches/patch-build_linux_unbundle_fontconfig.gn
	chromium/patches/patch-chrome_BUILD.gn
	chromium/patches/patch-chrome_app_BUILD.gn
	chromium/patches/patch-chrome_app_chromium__strings.grd
	chromium/patches/patch-chrome_app_generated__resources.grd
	chromium/patches/patch-chrome_app_google__chrome__strings.grd
	chromium/patches/patch-chrome_app_settings__strings.grdp
	chromium/patches/patch-chrome_app_shutdown__signal__handlers__posix.cc
	chromium/patches/patch-chrome_app_theme_chrome__unscaled__resources.grd
	chromium/patches/patch-chrome_app_theme_theme__resources.grd
	chromium/patches/patch-chrome_browser_apps_platform_apps_api_music__manager__private_device__id__linux.cc
	chromium/patches/patch-chrome_browser_browser__resources.grd
	chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list.cc
	chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc
	chromium/patches/patch-chrome_browser_custom__handlers_protocol__handler__registry.cc
	chromium/patches/patch-chrome_browser_dev__ui__browser__resources.grd
	chromium/patches/patch-chrome_browser_devtools_devtools__eye__dropper.cc
	chromium/patches/patch-chrome_browser_download_download__query.cc
	chromium/patches/patch-chrome_browser_download_download__shelf__context__menu.cc
	chromium/patches/patch-chrome_browser_extensions_activity__log_activity__log.cc
	chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc
	chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc
	chromium/patches/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc
	chromium/patches/patch-chrome_browser_first__run_first__run__internal__posix.cc
	chromium/patches/patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc
	chromium/patches/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc
	chromium/patches/patch-chrome_browser_memory__details__linux.cc
	chromium/patches/patch-chrome_browser_metrics_process__memory__metrics__emitter.cc
	chromium/patches/patch-chrome_browser_native__file__system_chrome__native__file__system__permission__context.cc
	chromium/patches/patch-chrome_browser_password__manager_password__store__factory.cc
	chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.cc
	chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.h
	chromium/patches/patch-chrome_browser_plugins_plugin__info__host__impl.cc
	chromium/patches/patch-chrome_browser_plugins_plugins__resource__service.cc
	chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller.cc
	chromium/patches/patch-chrome_browser_profiles_profile__attributes__entry.cc
	chromium/patches/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc
	chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js
	chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html
	chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.js
	chromium/patches/patch-chrome_browser_search_search__suggest_search__suggest__service.cc
	chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.cc
	chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.h
	chromium/patches/patch-chrome_browser_sharing_sharing__service.cc
	chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.cc
	chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.h
	chromium/patches/patch-chrome_browser_tracing_crash__service__uploader.cc
	chromium/patches/patch-chrome_browser_ui_BUILD.gn
	chromium/patches/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc
	chromium/patches/patch-chrome_browser_ui_views_download_download__item__view.cc
	chromium/patches/patch-chrome_browser_ui_views_first__run__dialog.cc
	chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc
	chromium/patches/patch-chrome_browser_ui_views_tabs_new__tab__button.cc
	chromium/patches/patch-chrome_browser_ui_webui_about__ui.cc
	chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.h
	chromium/patches/patch-chrome_browser_web__applications_components_web__app__file__handler__registration.h
	chromium/patches/patch-chrome_browser_web__applications_components_web__app__shortcut.cc
	chromium/patches/patch-chrome_browser_web__applications_extensions_bookmark__app__finalizer__utils.cc
	chromium/patches/patch-chrome_common_BUILD.gn
	chromium/patches/patch-chrome_common_chrome__content__client.cc
	chromium/patches/patch-chrome_common_component__flash__hint__file__linux.h
	chromium/patches/patch-chrome_common_extensions_api_api__sources.gni
	chromium/patches/patch-chrome_common_extensions_command.cc
	chromium/patches/patch-chrome_common_features.gni
	chromium/patches/patch-chrome_common_pref__names.cc
	chromium/patches/patch-chrome_renderer_BUILD.gn
	chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc
	chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h
	chromium/patches/patch-chrome_service_cloud__print_print__system.cc
	chromium/patches/patch-chrome_test_BUILD.gn
	chromium/patches/patch-chrome_test_base_chrome__test__launcher.cc
	chromium/patches/patch-chrome_test_base_in__process__browser__test.cc
	chromium/patches/patch-chrome_test_base_interactive__ui__tests__main.cc
	chromium/patches/patch-chrome_test_base_test__browser__window.h
	chromium/patches/patch-chrome_test_base_testing__browser__process.h
	chromium/patches/patch-chromecast_BUILD.gn
	chromium/patches/patch-chromecast_bindings_BUILD.gn
	chromium/patches/patch-chromecast_browser_BUILD.gn
	chromium/patches/patch-chromecast_browser_metrics_BUILD.gn
	chromium/patches/patch-chromecast_browser_tts_tts__controller__impl.cc
	chromium/patches/patch-chromecast_chromecast.gni
	chromium/patches/patch-chromecast_external__mojo_public_cpp_external__mojo__broker.cc
	chromium/patches/patch-chromecast_net_BUILD.gn
	chromium/patches/patch-chromecast_renderer_cast__content__renderer__client.cc
	chromium/patches/patch-components_BUILD.gn
	chromium/patches/patch-components_autofill__payments__strings.grdp
	chromium/patches/patch-components_autofill_content_renderer_password__form__conversion__utils.cc
	chromium/patches/patch-components_autofill_core_browser_autofill__external__delegate.cc
	chromium/patches/patch-components_autofill_core_browser_personal__data__manager.cc
	chromium/patches/patch-components_crash_content_browser_BUILD.gn
	chromium/patches/patch-components_cronet_BUILD.gn
	chromium/patches/patch-components_download_internal_common_base__file.cc
	chromium/patches/patch-components_exo_BUILD.gn
	chromium/patches/patch-components_feedback_anonymizer__tool.cc
	chromium/patches/patch-components_gcm__driver_gcm__client.h
	chromium/patches/patch-components_gcm__driver_gcm__client__impl.cc
	chromium/patches/patch-components_keyed__service_core_dependency__graph__unittest.cc
	chromium/patches/patch-components_metrics_BUILD.gn
	chromium/patches/patch-components_metrics_system__memory__stats__recorder__linux.cc
	chromium/patches/patch-components_new__or__sad__tab__strings.grdp
	chromium/patches/patch-components_os__crypt_os__crypt.h
	chromium/patches/patch-components_os__crypt_os__crypt__unittest.cc
	chromium/patches/patch-components_password__manager_core_browser_BUILD.gn
	chromium/patches/patch-components_plugins_renderer_plugin__placeholder.cc
	chromium/patches/patch-components_policy_BUILD.gn
	chromium/patches/patch-components_policy_core_common_BUILD.gn
	chromium/patches/patch-components_policy_core_common_schema.cc
	chromium/patches/patch-components_previews_core_previews__features.cc
	chromium/patches/patch-components_safe__browsing_core_resources_BUILD.gn
	chromium/patches/patch-components_safe__browsing_core_resources_gen__file__type__proto.py
	chromium/patches/patch-components_security__interstitials_content_captive__portal__blocking__page.cc
	chromium/patches/patch-components_services_font_BUILD.gn
	chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h
	chromium/patches/patch-components_signin_features.gni
	chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.cc
	chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.h
	chromium/patches/patch-components_url__matcher_regex__set__matcher.cc
	chromium/patches/patch-components_url__matcher_url__matcher__factory.cc
	chromium/patches/patch-components_viz_common_gpu_dawn__context__provider.cc
	chromium/patches/patch-components_viz_test_fake__output__surface.cc
	chromium/patches/patch-components_viz_test_fake__output__surface.h
	chromium/patches/patch-components_webcrypto_algorithms_test__helpers.cc
	chromium/patches/patch-content_browser_memory_swap__metrics__driver__impl__linux.cc
	chromium/patches/patch-content_browser_ppapi__plugin__process__host.cc
	chromium/patches/patch-content_browser_renderer__host_render__message__filter.cc
	chromium/patches/patch-content_browser_renderer__host_render__message__filter.h
	chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor.cc
	chromium/patches/patch-content_browser_webui_shared__resources__data__source.cc
	chromium/patches/patch-content_common_common__sandbox__support__linux.cc
	chromium/patches/patch-content_common_features.gni
	chromium/patches/patch-content_gpu_BUILD.gn
	chromium/patches/patch-content_gpu_gpu__sandbox__hook__linux.cc
	chromium/patches/patch-content_ppapi__plugin_BUILD.gn
	chromium/patches/patch-content_public_app_content__main__delegate.cc
	chromium/patches/patch-content_public_app_content__main__delegate.h
	chromium/patches/patch-content_public_common_child__process__host.h
	chromium/patches/patch-content_public_common_common__param__traits__macros.h
	chromium/patches/patch-content_public_common_content__constants.cc
	chromium/patches/patch-content_public_common_content__constants.h
	chromium/patches/patch-content_public_common_use__zoom__for__dsf__policy.cc
	chromium/patches/patch-content_public_test_browser__test__base.cc
	chromium/patches/patch-content_public_test_content__browser__test.cc
	chromium/patches/patch-content_public_test_mock__render__thread.cc
	chromium/patches/patch-content_renderer_BUILD.gn
	chromium/patches/patch-content_renderer_media_audio_audio__device__factory.cc
	chromium/patches/patch-content_renderer_render__process__impl.cc
	chromium/patches/patch-content_shell_browser_shell__browser__context.cc
	chromium/patches/patch-content_shell_browser_web__test_web__test__browser__context.cc
	chromium/patches/patch-content_shell_browser_web__test_web__test__browser__main__parts.cc
	chromium/patches/patch-content_shell_renderer_web__test_test__runner.cc
	chromium/patches/patch-content_test_content__test__suite.cc
	chromium/patches/patch-content_utility_BUILD.gn
	chromium/patches/patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc
	chromium/patches/patch-extensions_browser_api_web__request_form__data__parser.cc
	chromium/patches/patch-extensions_browser_browser__context__keyed__service__factories.cc
	chromium/patches/patch-extensions_common_feature__switch.cc
	chromium/patches/patch-extensions_common_image__util.cc
	chromium/patches/patch-extensions_common_stack__frame.cc
	chromium/patches/patch-extensions_shell_BUILD.gn
	chromium/patches/patch-gpu_BUILD.gn
	chromium/patches/patch-gpu_command__buffer_service_BUILD.gn
	chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.cc
	chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.h
	chromium/patches/patch-gpu_command__buffer_service_external__vk__image__gl__representation.cc
	chromium/patches/patch-gpu_command__buffer_service_program__manager.cc
	chromium/patches/patch-gpu_command__buffer_tests_gl__copy__texture__CHROMIUM__unittest.cc
	chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.cc
	chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.h
	chromium/patches/patch-gpu_config_BUILD.gn
	chromium/patches/patch-gpu_gles2__conform__support_BUILD.gn
	chromium/patches/patch-gpu_gles2__conform__support_native_BUILD.gn
	chromium/patches/patch-gpu_ipc_common_BUILD.gn
	chromium/patches/patch-gpu_ipc_service_BUILD.gn
	chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.cc
	chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.h
	chromium/patches/patch-gpu_khronos__glcts__support_BUILD.gn
	chromium/patches/patch-gpu_tools_compositor__model__bench_BUILD.gn
	chromium/patches/patch-gpu_vulkan_features.gni
	chromium/patches/patch-headless_BUILD.gn
	chromium/patches/patch-headless_lib_browser_headless__browser__main__parts.h
	chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__linux.cc
	chromium/patches/patch-headless_lib_browser_headless__content__browser__client.cc
	chromium/patches/patch-headless_lib_headless__content__main__delegate.h
	chromium/patches/patch-headless_lib_headless__macros.h
	chromium/patches/patch-media_audio_audio__features.cc
	chromium/patches/patch-media_audio_audio__manager.cc
	chromium/patches/patch-media_audio_audio__manager.h
	chromium/patches/patch-media_base_BUILD.gn
	chromium/patches/patch-media_base_scopedfd__helper.h
	chromium/patches/patch-media_base_status.cc
	chromium/patches/patch-media_capture_BUILD.gn
	chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__factory__linux.cc
	chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__linux.cc
	chromium/patches/patch-media_capture_video_video__capture__buffer__pool__impl.cc
	chromium/patches/patch-media_cast_BUILD.gn
	chromium/patches/patch-media_filters_vp9__parser.h
	chromium/patches/patch-media_gpu_chromeos_BUILD.gn
	chromium/patches/patch-media_gpu_vaapi_BUILD.gn
	chromium/patches/patch-media_mojo_clients_mojo__video__encode__accelerator.cc
	chromium/patches/patch-media_mojo_services_gpu__mojo__media__client.cc
	chromium/patches/patch-mojo_core_test_BUILD.gn
	chromium/patches/patch-mojo_public_js_mojo__bindings__resources.grd
	chromium/patches/patch-net_base_address__tracker__linux.cc
	chromium/patches/patch-net_base_address__tracker__linux.h
	chromium/patches/patch-net_base_address__tracker__linux__unittest.cc
	chromium/patches/patch-net_cert_cert__verify__proc.cc
	chromium/patches/patch-net_cert_test__root__certs.h
	chromium/patches/patch-net_disk__cache_blockfile_disk__format.h
	chromium/patches/patch-net_dns_dns__config__service__posix__unittest.cc
	chromium/patches/patch-net_features.gni
	chromium/patches/patch-net_nqe_network__quality__estimator__unittest.cc
	chromium/patches/patch-net_proxy__resolution_configured__proxy__resolution__service.cc
	chromium/patches/patch-net_socket_udp__socket__posix.h
	chromium/patches/patch-net_socket_unix__domain__client__socket__posix.cc
	chromium/patches/patch-net_tools_quic_quic__http__proxy__backend.cc
	chromium/patches/patch-net_url__request_url__fetcher.cc
	chromium/patches/patch-net_url__request_url__fetcher.h
	chromium/patches/patch-pdf_BUILD.gn
	chromium/patches/patch-ppapi_proxy_flash__resource.cc
	chromium/patches/patch-printing_BUILD.gn
	chromium/patches/patch-printing_buildflags_buildflags.gni
	chromium/patches/patch-printing_cups__config__helper.py
	chromium/patches/patch-remoting_BUILD.gn
	chromium/patches/patch-remoting_client_display_BUILD.gn
	chromium/patches/patch-remoting_host_BUILD.gn
	chromium/patches/patch-remoting_host_switches.cc
	chromium/patches/patch-remoting_host_switches.h
	chromium/patches/patch-remoting_protocol_BUILD.gn
	chromium/patches/patch-remoting_remoting__options.gni
	chromium/patches/patch-remoting_resources_remoting__strings.grd
	chromium/patches/patch-services_audio_BUILD.gn
	chromium/patches/patch-services_device_battery_BUILD.gn
	chromium/patches/patch-services_device_geolocation_BUILD.gn
	chromium/patches/patch-services_device_geolocation_location__arbitrator.cc
	chromium/patches/patch-services_device_hid_hid__connection__netbsd.c
	chromium/patches/patch-services_device_wake__lock_power__save__blocker_BUILD.gn
	chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__linux.cc
	chromium/patches/patch-services_resource__coordinator_public_mojom_BUILD.gn
	chromium/patches/patch-services_service__manager_embedder_BUILD.gn
	chromium/patches/patch-services_service__manager_embedder_main.cc
	chromium/patches/patch-services_service__manager_embedder_set__process__title__linux.h
	chromium/patches/patch-services_service__manager_sandbox_switches.cc
	chromium/patches/patch-services_service__manager_sandbox_switches.h
	chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.cc
	chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.h
	chromium/patches/patch-services_video__capture_broadcasting__receiver.cc
	chromium/patches/patch-services_viz_privileged_mojom_compositing_display__private.mojom
	chromium/patches/patch-skia_BUILD.gn
	chromium/patches/patch-third__party_angle_gni_angle.gni
	chromium/patches/patch-third__party_angle_src_compiler_translator_InfoSink.h
	chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.cpp
	chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.h
	chromium/patches/patch-third__party_angle_src_libGLESv2.gni
	chromium/patches/patch-third__party_angle_src_tests_BUILD.gn
	chromium/patches/patch-third__party_angle_third__party_glmark2_BUILD.gn
	chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_loader.c
	chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_vk__loader__platform.h
	chromium/patches/patch-third__party_angle_third__party_vulkan-validation-layers_src_layers_vk__loader__platform.h
	chromium/patches/patch-third__party_blink_public_mojom_BUILD.gn
	chromium/patches/patch-third__party_blink_renderer_BUILD.gn
	chromium/patches/patch-third__party_blink_renderer_controller_BUILD.gn
	chromium/patches/patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc
	chromium/patches/patch-third__party_blink_renderer_core_layout_BUILD.gn
	chromium/patches/patch-third__party_blink_renderer_modules_mediastream_processed__local__audio__source.cc
	chromium/patches/patch-third__party_blink_renderer_platform_scheduler_BUILD.gn
	chromium/patches/patch-third__party_boringssl_BUILD.gn
	chromium/patches/patch-third__party_boringssl_src_crypto_bio_socket__helper.c
	chromium/patches/patch-third__party_boringssl_src_crypto_ex__data.c
	chromium/patches/patch-third__party_boringssl_src_include_openssl_thread.h
	chromium/patches/patch-third__party_breakpad_BUILD.gn
	chromium/patches/patch-third__party_breakpad_breakpad_src_common_simple__string__dictionary.h
	chromium/patches/patch-third__party_brotli_common_transform.c
	chromium/patches/patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h
	chromium/patches/patch-third__party_closure__compiler_compile__js.gni
	chromium/patches/patch-third__party_dav1d_BUILD.gn
	chromium/patches/patch-third__party_dawn_scripts_dawn__component.gni
	chromium/patches/patch-third__party_dawn_scripts_dawn__features.gni
	chromium/patches/patch-third__party_dawn_src_common_BUILD.gn
	chromium/patches/patch-third__party_dawn_third__party_gn_glfw_BUILD.gn
	chromium/patches/patch-third__party_devtools-frontend_src_BUILD.gn
	chromium/patches/patch-third__party_expat_BUILD.gn
	chromium/patches/patch-third__party_ffmpeg_ffmpeg__generated.gni
	chromium/patches/patch-third__party_ffmpeg_ffmpeg__options.gni
	chromium/patches/patch-third__party_flatbuffers_src_src_util.cpp
	chromium/patches/patch-third__party_fontconfig_BUILD.gn
	chromium/patches/patch-third__party_fontconfig_fontconfig.gni
	chromium/patches/patch-third__party_freetype_BUILD.gn
	chromium/patches/patch-third__party_icu_BUILD.gn
	chromium/patches/patch-third__party_icu_source_common_putil.cpp
	chromium/patches/patch-third__party_icu_source_common_umapfile.cpp
	chromium/patches/patch-third__party_ijar_BUILD.gn
	chromium/patches/patch-third__party_libXNVCtrl_NVCtrl.c
	chromium/patches/patch-third__party_libdrm_BUILD.gn
	chromium/patches/patch-third__party_libjpeg__turbo_BUILD.gn
	chromium/patches/patch-third__party_libpng_pnglibconf.h
	chromium/patches/patch-third__party_libxml_BUILD.gn
	chromium/patches/patch-third__party_libxslt_BUILD.gn
	chromium/patches/patch-third__party_libyuv_BUILD.gn
	chromium/patches/patch-third__party_minigbm_BUILD.gn
	chromium/patches/patch-third__party_openh264_BUILD.gn
	chromium/patches/patch-third__party_openscreen_src_build_config_BUILD.gn
	chromium/patches/patch-third__party_openscreen_src_build_config_BUILDCONFIG.gn
	chromium/patches/patch-third__party_openscreen_src_platform_BUILD.gn
	chromium/patches/patch-third__party_openscreen_src_third__party_boringssl_BUILD.gn
	chromium/patches/patch-third__party_openscreen_src_third__party_chromium__quic_build_base_BUILD.gn
	chromium/patches/patch-third__party_pdfium_BUILD.gn
	chromium/patches/patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp
	chromium/patches/patch-third__party_pdfium_core_fxcrt_fx__system.h
	chromium/patches/patch-third__party_pdfium_core_fxge_BUILD.gn
	chromium/patches/patch-third__party_pdfium_core_fxge_fx__ge__linux.cpp
	chromium/patches/patch-third__party_pdfium_fxjs_cjs__publicmethods.cpp
	chromium/patches/patch-third__party_pdfium_fxjs_cjs__runtime.cpp
	chromium/patches/patch-third__party_pdfium_skia_BUILD.gn
	chromium/patches/patch-third__party_pdfium_xfa_fgas_font_cfx__fontsourceenum__file.cpp
	chromium/patches/patch-third__party_perfetto_buildtools_BUILD.gn
	chromium/patches/patch-third__party_perfetto_gn_BUILD.gn
	chromium/patches/patch-third__party_perfetto_gn_perfetto.gni
	chromium/patches/patch-third__party_perfetto_gn_perfetto__unittests.gni
	chromium/patches/patch-third__party_perfetto_gn_standalone_BUILD.gn
	chromium/patches/patch-third__party_perfetto_include_perfetto_base_unix__socket.cc
	chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_unix__socket.h
	chromium/patches/patch-third__party_perfetto_src_base_BUILD.gn
	chromium/patches/patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc
	chromium/patches/patch-third__party_perfetto_tools_BUILD.gn
	chromium/patches/patch-third__party_skia_BUILD.gn
	chromium/patches/patch-third__party_skia_gn_BUILD.gn
	chromium/patches/patch-third__party_skia_gn_skia.gni
	chromium/patches/patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h
	chromium/patches/patch-third__party_skia_src_images_SkJpegEncoder.cpp
	chromium/patches/patch-third__party_skia_src_sksl_SkSLString.h
	chromium/patches/patch-third__party_skia_third__party_angle2_BUILD.gn
	chromium/patches/patch-third__party_skia_third__party_libsdl_BUILD.gn
	chromium/patches/patch-third__party_skia_third__party_opencl_BUILD.gn
	chromium/patches/patch-third__party_swiftshader_BUILD.gn
	chromium/patches/patch-third__party_swiftshader_src_Common_Configurator.cpp
	chromium/patches/patch-third__party_swiftshader_src_Common_MutexLock.hpp
	chromium/patches/patch-third__party_swiftshader_src_Common_SharedLibrary.hpp
	chromium/patches/patch-third__party_swiftshader_src_Main_BUILD.gn
	chromium/patches/patch-third__party_swiftshader_src_Main_SwiftConfig.cpp
	chromium/patches/patch-third__party_swiftshader_src_OpenGL_compiler_BUILD.gn
	chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_BUILD.gn
	chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp
	chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp
	chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp
	chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp
	chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLES__CM_libGLES__CM.hpp
	chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_BUILD.gn
	chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp
	chromium/patches/patch-third__party_swiftshader_src_Reactor_BUILD.gn
	chromium/patches/patch-third__party_swiftshader_src_System_BUILD.gn
	chromium/patches/patch-third__party_swiftshader_src_System_Debug.cpp
	chromium/patches/patch-third__party_swiftshader_src_WSI_BUILD.gn
	chromium/patches/patch-third__party_swiftshader_src_vulkan_BUILD.gn
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_BUILD.gn
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmParsers.def
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmPrinters.def
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Disassemblers.def
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Targets.def
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_abi-breaking.h
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_config.h
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_llvm-config.h
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_CMakeDirectoryInformation.cmake
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_progress.marks
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmParsers.def
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmPrinters.def
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Disassemblers.def
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Targets.def
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_abi-breaking.h
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_config.h
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_llvm-config.h
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Attributes.gen
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_CMakeDirectoryInformation.cmake
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_DependInfo.cmake
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_build.make
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_cmake__clean.cmake
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_progress.make
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_progress.marks
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Intrinsics.gen
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Makefile
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_cmake__install.cmake
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Makefile
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_CMakeDirectoryInformation.cmake
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_DependInfo.cmake
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_build.make
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_cmake__clean.cmake
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_progress.make
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_progress.marks
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_Makefile
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_VCSRevision.h
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_cmake__install.cmake
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_cmake__install.cmake
	chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_module.modulemap
	chromium/patches/patch-third__party_usrsctp_BUILD.gn
	chromium/patches/patch-third__party_webrtc_audio_BUILD.gn
	chromium/patches/patch-third__party_webrtc_examples_BUILD.gn
	chromium/patches/patch-third__party_webrtc_modules_audio__coding_BUILD.gn
	chromium/patches/patch-third__party_webrtc_modules_desktop__capture_BUILD.gn
	chromium/patches/patch-third__party_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc
	chromium/patches/patch-third__party_webrtc_modules_video__capture_BUILD.gn
	chromium/patches/patch-third__party_webrtc_rtc__base_BUILD.gn
	chromium/patches/patch-third__party_webrtc_rtc__base_ifaddrs__converter.h
	chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.h
	chromium/patches/patch-third__party_webrtc_rtc__base_network.h
	chromium/patches/patch-third__party_webrtc_test_BUILD.gn
	chromium/patches/patch-third__party_webrtc_webrtc.gni
	chromium/patches/patch-tools_binary__size_BUILD.gn
	chromium/patches/patch-tools_binary__size_libsupersize_caspian_BUILD.gn
	chromium/patches/patch-tools_gn_src_base_files_file__util.h
	chromium/patches/patch-tools_gn_src_base_files_file__util__posix.cc
	chromium/patches/patch-tools_gn_src_base_files_scoped__file.cc
	chromium/patches/patch-tools_gn_src_gn_args.cc
	chromium/patches/patch-tools_grit_grit__rule.gni
	chromium/patches/patch-tools_ipc__fuzzer_ipc__fuzzer.gni
	chromium/patches/patch-tools_json__schema__compiler_model.py
	chromium/patches/patch-ui_aura_BUILD.gn
	chromium/patches/patch-ui_base_BUILD.gn
	chromium/patches/patch-ui_base_idle_BUILD.gn
	chromium/patches/patch-ui_base_ime_linux_BUILD.gn
	chromium/patches/patch-ui_base_resource_resource__bundle__netbsd.cc
	chromium/patches/patch-ui_base_ui__base__features.h
	chromium/patches/patch-ui_base_ui__features.gni
	chromium/patches/patch-ui_color_BUILD.gn
	chromium/patches/patch-ui_compositor_BUILD.gn
	chromium/patches/patch-ui_events_devices_BUILD.gn
	chromium/patches/patch-ui_events_ozone_BUILD.gn
	chromium/patches/patch-ui_gfx_codec_jpeg__codec.cc
	chromium/patches/patch-ui_gfx_font__list.cc
	chromium/patches/patch-ui_gfx_font__names__testing.cc
	chromium/patches/patch-ui_gfx_ipc_gfx__param__traits__macros.h
	chromium/patches/patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc
	chromium/patches/patch-ui_gfx_mojom_BUILD.gn
	chromium/patches/patch-ui_gfx_mojom_native__handle__types.mojom
	chromium/patches/patch-ui_gl_features.gni
	chromium/patches/patch-ui_gtk_BUILD.gn
	chromium/patches/patch-ui_ozone_platform_wayland_BUILD.gn
	chromium/patches/patch-ui_platform__window_common_BUILD.gn
	chromium/patches/patch-ui_platform__window_extensions_BUILD.gn
	chromium/patches/patch-ui_shell__dialogs_BUILD.gn
	chromium/patches/patch-ui_strings_app__locale__settings.grd
	chromium/patches/patch-ui_views_BUILD.gn
	chromium/patches/patch-ui_views_bubble_bubble__dialog__delegate__view.cc
	chromium/patches/patch-ui_views_controls_label.cc
	chromium/patches/patch-ui_views_controls_webview_BUILD.gn
	chromium/patches/patch-ui_views_examples_BUILD.gn
	chromium/patches/patch-ui_views_selection__controller.cc
	chromium/patches/patch-ui_views_widget_native__widget__aura.cc
	chromium/patches/patch-ui_webui_resources_js_cr.js
	chromium/patches/patch-ui_webui_resources_js_icon.js
	chromium/patches/patch-ui_webui_webui__features.gni
	chromium/patches/patch-v8_gni_v8.gni
	chromium/patches/patch-v8_src_base_cpu.cc
	chromium/patches/patch-weblayer_BUILD.gn
	chromium/patches/patch-weblayer_app_content__main__delegate__impl.cc
	chromium/patches/patch-weblayer_browser_browser__main__parts__impl.cc
	chromium/patches/patch-weblayer_browser_content__browser__client__impl.cc
	chromium/patches/patch-weblayer_browser_content__browser__client__impl.h
	chromium/patches/patch-weblayer_browser_system__network__context__manager.cc
	chromium/patches/patch-weblayer_common_weblayer__paths.cc
	chromium/patches/patch-weblayer_shell_BUILD.gn

Log Message:
chromium: update to 127.0.6533.72

ok from @ryoon

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=02fe40119f38f9ba2a49f378e53bb1b2409d9803

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 chromium/Makefile                                  |   492 +-
 chromium/PLIST                                     |   227 +-
 chromium/TODO                                      |    15 +-
 chromium/distinfo                                  |  2350 +-
 chromium/files/chrome                              |    72 +
 chromium/files/chromium-browser.desktop            |   220 +
 chromium/files/nb-delta.patch                      |  4858 +++
 chromium/options.mk                                |    13 +-
 chromium/patches/patch-BUILD.gn                    |   267 +-
 ...atch-apps_app__restore__service__browsertest.cc |    13 -
 ...patch-apps_ui_views_app__window__frame__view.cc |    16 +-
 ...patch-ash_display_mirror__window__controller.cc |    20 +
 chromium/patches/patch-base_BUILD.gn               |   256 +-
 chromium/patches/patch-base_allocator_BUILD.gn     |    22 -
 ...tch-base_allocator_allocator__shim__unittest.cc |    13 -
 .../patches/patch-base_allocator_dispatcher_tls.h  |    17 +
 ...__allocator_page__allocator__internals__posix.h |    13 -
 ...cator_partition__allocator_partition__alloc.gni |    26 +
 ...tition__allocator_partition__alloc__unittest.cc |    19 -
 ...tition__allocator_src_partition__alloc_BUILD.gn |    17 +
 ...artition__alloc_address__space__randomization.h |    26 +
 ...llocator_src_partition__alloc_page__allocator.h |    17 +
 ...c_partition__alloc_page__allocator__constants.h |    17 +
 ...tion__alloc_page__allocator__internals__posix.h |    22 +
 ...ition__alloc__base_debug_stack__trace__posix.cc |    40 +
 ...loc_partition__alloc__base_rand__util__posix.cc |    19 +
 ...ition__alloc__base_threading_platform__thread.h |    17 +
 ...e_threading_platform__thread__internal__posix.h |    17 +
 ...lloc__base_threading_platform__thread__posix.cc |    17 +
 ...src_partition__alloc_partition__alloc__config.h |    26 +
 ..._partition__alloc_partition__alloc__constants.h |    17 +
 ...rc_partition__alloc_partition__alloc__forward.h |    22 +
 ...locator_src_partition__alloc_partition__root.cc |    35 +
 ...locator_src_partition__alloc_spinning__mutex.cc |    65 +
 ...__allocator_src_partition__alloc_stack_stack.cc |    56 +
 ..._src_partition__alloc_thread__isolation_pkey.cc |    17 +
 chromium/patches/patch-base_atomicops.h            |    20 +
 chromium/patches/patch-base_base__paths__posix.cc  |   129 +-
 chromium/patches/patch-base_base__switches.cc      |    22 -
 chromium/patches/patch-base_base__switches.h       |    22 -
 chromium/patches/patch-base_compiler__specific.h   |    18 +
 chromium/patches/patch-base_cpu.cc                 |    31 -
 .../patches/patch-base_debug_debugger__posix.cc    |    83 +-
 chromium/patches/patch-base_debug_elf__reader.cc   |    35 +-
 .../patches/patch-base_debug_proc__maps__linux.cc  |    17 +
 .../patches/patch-base_debug_proc_maps_linux.cc    |    71 -
 chromium/patches/patch-base_debug_stack__trace.cc  |    35 +
 .../patch-base_debug_stack__trace__posix.cc        |   104 +-
 .../patch-base_debug_stack__trace__unittest.cc     |    24 -
 chromium/patches/patch-base_features.cc            |    34 +
 .../patches/patch-base_files_dir__reader__linux.h  |    45 +
 .../patches/patch-base_files_dir__reader__posix.h  |    26 +
 .../patch-base_files_file__path__unittest.cc       |    13 -
 .../patches/patch-base_files_file__path__watcher.h |    17 +
 .../patch-base_files_file__path__watcher__bsd.cc   |    63 +
 ...patch-base_files_file__path__watcher__kqueue.cc |    19 +-
 .../patch-base_files_file__path__watcher__kqueue.h |    16 +
 .../patch-base_files_file__path__watcher__stub.cc  |    49 -
 ...tch-base_files_file__path__watcher__unittest.cc |    35 +-
 chromium/patches/patch-base_files_file__util.h     |    13 -
 .../patches/patch-base_files_file__util__posix.cc  |    66 +-
 .../patch-base_files_file__util__unittest.cc       |    23 +-
 ...-base_files_important__file__writer__cleaner.cc |    18 +
 chromium/patches/patch-base_files_scoped__file.cc  |    14 +-
 .../patch-base_functional_unretained__traits.h     |    17 +
 chromium/patches/patch-base_i18n_icu__util.cc      |    24 +-
 chromium/patches/patch-base_linux__util.cc         |    29 +-
 chromium/patches/patch-base_location__unittest.cc  |    13 -
 chromium/patches/patch-base_logging__unittest.cc   |    34 +-
 .../patch-base_memory_discardable__memory.cc       |    40 +-
 ...tch-base_memory_discardable__memory__internal.h |    10 +-
 ...emory_madv__free__discardable__memory__posix.cc |    24 +-
 ...-base_memory_platform__shared__memory__region.h |    28 +-
 ...mory_platform__shared__memory__region__posix.cc |    31 +-
 ...base_memory_shared__memory__region__unittest.cc |    17 -
 ...patch-base_message__loop_message__pump__glib.cc |    34 +
 .../patches/patch-base_native__library__posix.cc   |    12 +-
 .../patch-base_native__library__unittest.cc        |    12 +-
 .../patches/patch-base_path__service__unittest.cc  |    13 -
 .../patch-base_posix_can__lower__nice__to.cc       |    32 +-
 chromium/patches/patch-base_posix_sysctl.cc        |    38 +
 .../patch-base_posix_unix__domain__socket.cc       |    79 +-
 ...ch-base_posix_unix__domain__socket__unittest.cc |    17 +
 .../patches/patch-base_process_internal__linux.h   |    41 +-
 chromium/patches/patch-base_process_kill.h         |    12 +-
 chromium/patches/patch-base_process_kill__posix.cc |    14 +-
 chromium/patches/patch-base_process_launch.cc      |    13 -
 chromium/patches/patch-base_process_launch.h       |    14 +-
 .../patches/patch-base_process_launch__posix.cc    |    24 +-
 chromium/patches/patch-base_process_memory.cc      |    22 -
 chromium/patches/patch-base_process_memory.h       |    13 -
 .../patches/patch-base_process_memory__linux.cc    |    50 +
 .../patches/patch-base_process_memory__unittest.cc |    13 -
 .../patches/patch-base_process_process__handle.cc  |    10 +-
 .../patches/patch-base_process_process__handle.h   |    12 +-
 .../patch-base_process_process__handle__freebsd.cc |    33 +
 .../patch-base_process_process__handle__netbsd.cc  |    59 +-
 .../patch-base_process_process__handle__openbsd.cc |   140 +
 .../patches/patch-base_process_process__iterator.h |    36 +-
 ...atch-base_process_process__iterator__freebsd.cc |    57 +
 ...patch-base_process_process__iterator__netbsd.cc |    60 +-
 ...atch-base_process_process__iterator__openbsd.cc |    51 +
 .../patches/patch-base_process_process__linux.cc   |    34 -
 .../patches/patch-base_process_process__metrics.cc |    57 +-
 .../patches/patch-base_process_process__metrics.h  |   118 +-
 ...patch-base_process_process__metrics__freebsd.cc |   309 +
 .../patch-base_process_process__metrics__netbsd.cc |   178 +-
 ...patch-base_process_process__metrics__openbsd.cc |   240 +
 .../patch-base_process_process__metrics__posix.cc  |    25 +-
 ...atch-base_process_process__metrics__unittest.cc |    18 +
 .../patches/patch-base_process_process__posix.cc   |   100 +
 .../patch-base_process_process__unittest.cc        |    12 +-
 .../patch-base_process_process__util__unittest.cc  |    31 -
 .../patches/patch-base_profiler_module__cache.cc   |    17 +
 .../patch-base_profiler_register__context.h        |    13 -
 ...e_profiler_sampling__profiler__thread__token.cc |    31 +-
 ...se_profiler_sampling__profiler__thread__token.h |    30 +-
 ...ch-base_profiler_stack__base__address__posix.cc |    69 +
 .../patch-base_profiler_stack__copier__signal.cc   |    20 -
 ...ofiler_stack__sampling__profiler__test__util.cc |    17 +
 ...profiler_stack__sampling__profiler__unittest.cc |    12 +-
 .../patch-base_profiler_thread__delegate__posix.cc |    26 +
 chromium/patches/patch-base_rand__util.h           |    17 +
 chromium/patches/patch-base_rand__util__posix.cc   |    68 +
 ...ing__heap__profiler_sampling__heap__profiler.cc |    28 -
 chromium/patches/patch-base_security__unittest.cc  |    13 -
 .../patch-base_strings_safe__sprintf__unittest.cc  |    24 +
 .../patch-base_synchronization_lock__impl.h        |    32 +-
 chromium/patches/patch-base_syslog__logging.cc     |    20 +-
 chromium/patches/patch-base_system_sys__info.cc    |    24 +-
 chromium/patches/patch-base_system_sys__info.h     |    24 +-
 .../patch-base_system_sys__info__freebsd.cc        |   121 +
 .../patches/patch-base_system_sys__info__netbsd.cc |    59 +-
 .../patch-base_system_sys__info__openbsd.cc        |    97 +
 .../patches/patch-base_system_sys__info__posix.cc  |    34 +-
 .../patch-base_system_sys__info__unittest.cc       |    26 +
 ...k_thread__pool_environment__config__unittest.cc |    27 +-
 chromium/patches/patch-base_test_BUILD.gn          |    22 -
 .../patch-base_test_launcher_test__launcher.cc     |    25 +-
 .../patch-base_test_test__file__util__linux.cc     |    19 +
 .../patch-base_test_test__file__util__posix.cc     |    14 +-
 chromium/patches/patch-base_test_test__suite.cc    |    31 -
 .../patch-base_third__party_libevent_BUILD.gn      |    31 -
 ...patch-base_third__party_libevent_event-config.h |    13 -
 ...atch-base_third__party_libevent_netbsd_config.h |   271 -
 ...ase_third__party_libevent_netbsd_event-config.h |   289 -
 .../patches/patch-base_threading_hang__watcher.cc  |    17 +
 .../patch-base_threading_platform__thread.h        |    24 +-
 .../patch-base_threading_platform__thread__bsd.cc  |    40 +
 ..._threading_platform__thread__internal__posix.cc |    17 +
 ...patch-base_threading_platform__thread__linux.cc |    32 -
 ...patch-base_threading_platform__thread__posix.cc |    62 +-
 ...ch-base_threading_platform__thread__unittest.cc |    54 +-
 ...se_trace__event_malloc__dump__dump__provider.cc |    23 -
 ...tch-base_trace__event_malloc__dump__provider.cc |    36 +
 ...atch-base_trace__event_memory__dump__manager.cc |    17 +
 ...atch-base_trace__event_process__memory__dump.cc |    25 +-
 ...patch-base_trace__event_process__memory__dump.h |    13 -
 chromium/patches/patch-base_tracing_trace__time.cc |    36 +
 chromium/patches/patch-base_tracing_trace__time.h  |    17 +
 chromium/patches/patch-build_config_BUILD.gn       |    48 +-
 chromium/patches/patch-build_config_BUILDCONFIG.gn |    87 +-
 chromium/patches/patch-build_config_clang_BUILD.gn |    17 +
 .../patches/patch-build_config_compiler_BUILD.gn   |   222 +-
 .../patch-build_config_compiler_compiler.gni       |    31 -
 chromium/patches/patch-build_config_crypto.gni     |    10 -
 chromium/patches/patch-build_config_features.gni   |    16 -
 chromium/patches/patch-build_config_linux_BUILD.gn |    17 +
 .../patches/patch-build_config_linux_dri_BUILD.gn  |    13 -
 .../patches/patch-build_config_linux_gtk_BUILD.gn  |    13 -
 .../patch-build_config_linux_libdrm_BUILD.gn       |    13 -
 .../patches/patch-build_config_linux_nss_BUILD.gn  |    13 -
 ...ch-build_config_linux_pangocairo_pangocairo.gni |    11 -
 .../patches/patch-build_config_linux_pkg-config.py |    28 +-
 chromium/patches/patch-build_config_ozone.gni      |    29 +
 chromium/patches/patch-build_config_rust.gni       |    19 +
 chromium/patches/patch-build_config_ui.gni         |    32 -
 .../patches/patch-build_config_v8__target__cpu.gni |    19 +
 chromium/patches/patch-build_detect__host__arch.py |    17 +
 chromium/patches/patch-build_gn__run__binary.py    |    10 +-
 chromium/patches/patch-build_linux_chrome.map      |    19 +
 chromium/patches/patch-build_linux_libpci_BUILD.gn |    28 -
 .../patches/patch-build_linux_strip__binary.py     |    16 +
 .../patches/patch-build_linux_unbundle_dav1d.gn    |    31 +
 .../patch-build_linux_unbundle_fontconfig.gn       |    13 -
 chromium/patches/patch-build_linux_unbundle_icu.gn |    35 +
 .../patches/patch-build_linux_unbundle_libevent.gn |    21 +
 .../patches/patch-build_linux_unbundle_libusb.gn   |    36 +
 .../patches/patch-build_rust_rust__bindgen.gni     |    25 +
 chromium/patches/patch-build_rust_std_BUILD.gn     |    16 +
 .../patches/patch-build_toolchain_freebsd_BUILD.gn |    75 +
 .../patch-build_toolchain_gcc__solink__wrapper.py  |    17 +
 .../patch-build_toolchain_gcc__toolchain.gni       |    70 +-
 .../patches/patch-build_toolchain_netbsd_BUILD.gn  |   254 +-
 .../patches/patch-build_toolchain_openbsd_BUILD.gn |    75 +
 .../patches/patch-build_toolchain_toolchain.gni    |    17 +
 chromium/patches/patch-cc_BUILD.gn                 |    25 +
 chromium/patches/patch-cc_base_features.cc         |    17 +
 chromium/patches/patch-chrome_BUILD.gn             |    40 -
 chromium/patches/patch-chrome_app_BUILD.gn         |    13 -
 .../patch-chrome_app_chrome__command__ids.h        |    22 +-
 chromium/patches/patch-chrome_app_chrome__main.cc  |    56 +-
 .../patch-chrome_app_chrome__main__delegate.cc     |   186 +-
 .../patches/patch-chrome_app_chromium__strings.grd |    31 -
 .../patch-chrome_app_generated__resources.grd      |    31 -
 .../patch-chrome_app_google__chrome__strings.grd   |    31 -
 .../patch-chrome_app_settings__strings.grdp        |    22 -
 ...chrome_app_shutdown__signal__handlers__posix.cc |    24 -
 ...hrome_app_theme_chrome__unscaled__resources.grd |    13 -
 .../patch-chrome_app_theme_theme__resources.grd    |    13 -
 chromium/patches/patch-chrome_browser_BUILD.gn     |    76 +-
 .../patches/patch-chrome_browser_about__flags.cc   |   344 +-
 ...h-chrome_browser_after__startup__task__utils.cc |    36 +-
 ...apps_app__service_publishers_extension__apps.cc |    17 +
 ...er_apps_platform__apps_platform__app__launch.cc |    71 +
 ...ser_apps_platform__apps_platform__app__launch.h |    17 +
 ...pi_music__manager__private_device__id__linux.cc |    72 -
 ...ete_chrome__autocomplete__scheme__classifier.cc |    14 +-
 ...browser_background_background__mode__manager.cc |    14 +-
 ...owser_background_background__mode__optimizer.cc |    18 +-
 .../patch-chrome_browser_browser__features.cc      |    26 +
 .../patch-chrome_browser_browser__process__impl.cc |    35 +
 .../patch-chrome_browser_browser__process__impl.h  |    17 +
 .../patch-chrome_browser_browser__resources.grd    |    13 -
 ..._browser_chrome__browser__interface__binders.cc |    95 +-
 .../patch-chrome_browser_chrome__browser__main.cc  |   142 +-
 ...r_chrome__browser__main__extra__parts__linux.cc |    17 +
 ...r_chrome__browser__main__extra__parts__ozone.cc |    17 +
 ...-chrome_browser_chrome__browser__main__linux.cc |    57 +-
 ...h-chrome_browser_chrome__browser__main__linux.h |    17 +
 ...-chrome_browser_chrome__browser__main__posix.cc |    25 +-
 ...ome_browser_chrome__content__browser__client.cc |   230 +-
 ...rome_browser_chrome__content__browser__client.h |    18 +-
 ..._updater_widevine__cdm__component__installer.cc |    44 +
 ...wser_crash__upload__list_crash__upload__list.cc |    13 -
 ...__upload__list_crash__upload__list__crashpad.cc |    33 -
 ...hrome__protocol__handler__registry__delegate.cc |    17 +
 ...custom__handlers_protocol__handler__registry.cc |    13 -
 chromium/patches/patch-chrome_browser_defaults.cc  |    14 +-
 ...-chrome_browser_dev__ui__browser__resources.grd |    13 -
 ...tity_device__oauth2__token__service__factory.cc |    16 +-
 ...rome_browser_devtools_devtools__eye__dropper.cc |    13 -
 ...hrome_browser_diagnostics_diagnostics__writer.h |    10 +-
 ...download_chrome__download__manager__delegate.cc |    43 +-
 ...h-chrome_browser_download_download__commands.cc |    33 +-
 ...ch-chrome_browser_download_download__commands.h |    14 +-
 ...rome_browser_download_download__file__picker.cc |    26 +
 ...hrome_browser_download_download__item__model.cc |    31 +-
 ...atch-chrome_browser_download_download__prefs.cc |   109 +-
 ...patch-chrome_browser_download_download__prefs.h |    24 +-
 ...atch-chrome_browser_download_download__query.cc |    13 -
 ...wser_download_download__shelf__context__menu.cc |    13 -
 ...ser__management_browser__management__service.cc |    35 +
 ...wser__management_browser__management__service.h |    17 +
 ...nectors_analysis_analysis__service__settings.cc |    17 +
 ...er_enterprise_connectors_connectors__service.cc |    17 +
 ...t_device__trust__connector__service__factory.cc |    35 +
 ...evice__trust_device__trust__service__factory.cc |    35 +
 ...ser_commands_key__rotation__command__factory.cc |    26 +
 ...sistence_key__persistence__delegate__factory.cc |    26 +
 ...ice__trust_signals_signals__service__factory.cc |    26 +
 ...tors_reporting_browser__crash__event__router.cc |    26 +
 ...nnectors_reporting_crash__reporting__context.cc |    17 +
 ...ectors_reporting_realtime__reporting__client.cc |    53 +
 ...nectors_reporting_realtime__reporting__client.h |    26 +
 ...rise_identifiers_profile__id__delegate__impl.cc |    26 +
 ...nt_profile__management__navigation__throttle.cc |    19 +
 ...te__commands_cbcm__remote__commands__factory.cc |    26 +
 ...ser_enterprise_signals_device__info__fetcher.cc |    26 +
 ...erprise_signals_device__info__fetcher__linux.cc |    83 +
 .../patch-chrome_browser_extensions_BUILD.gn       |    26 +-
 ...owser_extensions_activity__log_activity__log.cc |    13 -
 ..._browser__context__keyed__service__factories.cc |    26 +
 ...ate_chrome__desktop__report__request__helper.cc |    34 +-
 ...rprise__reporting__private_conversion__utils.cc |    17 +
 ...erprise__reporting__private_conversion__utils.h |    17 +
 ...se__reporting__private_device__info__fetcher.cc |    22 -
 ...orting__private_device__info__fetcher__linux.cc |    42 -
 ..._private_enterprise__reporting__private__api.cc |    44 +
 ...__private_enterprise__reporting__private__api.h |    35 +
 ...writer__private_removable__storage__provider.cc |    14 +-
 ...management_chrome__management__api__delegate.cc |    17 +
 ...i_messaging_native__process__launcher__posix.cc |    17 +
 ...__private_passwords__private__delegate__impl.cc |    17 +
 ...s_api_runtime_chrome__runtime__api__delegate.cc |    20 +-
 ...extensions_api_settings__private_prefs__util.cc |    34 +-
 ...chrome_browser_extensions_api_tabs_tabs__api.cc |    17 +
 ...gging__private_webrtc__logging__private__api.cc |    24 +-
 ...api_webstore__private_webstore__private__api.cc |    17 +
 ..._browser__context__keyed__service__factories.cc |    22 -
 ..._browser_extensions_external__provider__impl.cc |    32 +-
 ...e__file__system__access__permission__context.cc |    17 +
 ...-chrome_browser_first__run_first__run__dialog.h |    18 +-
 ...hrome_browser_first__run_first__run__internal.h |    12 +-
 ...owser_first__run_first__run__internal__posix.cc |    22 -
 .../patch-chrome_browser_flag__descriptions.cc     |   126 +-
 .../patch-chrome_browser_flag__descriptions.h      |   122 +-
 ...e_browser_gcm_gcm__profile__service__factory.cc |    26 +
 ...__id_instance__id__profile__service__factory.cc |    26 +
 ...chrome_browser_headless_headless__mode__util.cc |    26 +
 ...h-chrome_browser_intranet__redirect__detector.h |    17 +
 ..._galleries_fileapi_mtp__device__map__service.cc |    12 +-
 ...dia__galleries_media__file__system__registry.cc |    14 +-
 ...ch-chrome_browser_media_audio__service__util.cc |    26 +
 ...-chrome_browser_media_router_discovery_BUILD.gn |    17 +
 ...er_discovery_discovery__network__list__posix.cc |    42 +-
 ...covery_discovery__network__list__wifi__linux.cc |    18 +-
 ...splay_wired__display__media__route__provider.cc |    25 -
 ...wser_media_webrtc_chrome__screen__enumerator.cc |    53 +
 ...owser_media_webrtc_chrome__screen__enumerator.h |    26 +
 ...ia_webrtc_desktop__media__picker__controller.cc |    17 +
 ...er_media_webrtc_webrtc__event__log__uploader.cc |    13 -
 ...e_browser_media_webrtc_webrtc__log__uploader.cc |    22 +-
 ...ser_media_webrtc_webrtc__logging__controller.cc |    39 +-
 ...wser_media_webrtc_webrtc__logging__controller.h |    22 +-
 .../patch-chrome_browser_memory__details.cc        |    18 +-
 .../patch-chrome_browser_memory__details__linux.cc |    15 -
 ...chrome__browser__main__extra__parts__metrics.cc |    57 +-
 ..._chrome__browser__main__extra__parts__metrics.h |    26 +
 ...ser_metrics_chrome__metrics__service__client.cc |    96 +-
 ...ch-chrome_browser_metrics_perf_cpu__identity.cc |    17 +
 ...trics_power_process__metrics__recorder__util.cc |    17 +
 ...hrome_browser_metrics_power_process__monitor.cc |    35 +
 ...chrome_browser_metrics_power_process__monitor.h |    17 +
 ...er_metrics_process__memory__metrics__emitter.cc |    22 -
 ...e__native__file__system__permission__context.cc |    19 -
 ...rowser_net_system__network__context__manager.cc |   195 +-
 ...browser_net_system__network__context__manager.h |    35 +
 ...page_modules_file__suggestion_drive__service.cc |    17 +
 ..._browser_new__tab__page_new__tab__page__util.cc |    17 +
 ...cations_notification__display__service__impl.cc |    50 +-
 ...ns_notification__platform__bridge__delegator.cc |    17 +
 ...d__manager_chrome__password__manager__client.cc |    31 +-
 ...d__manager_password__reuse__manager__factory.cc |    17 +
 ...r_password__manager_password__store__factory.cc |    13 -
 ...rformance__monitor_process__metrics__history.cc |    40 -
 ...erformance__monitor_process__metrics__history.h |    13 -
 .../patch-chrome_browser_platform__util__linux.cc  |    18 +
 ...ome_browser_plugins_plugin__info__host__impl.cc |    13 -
 ...e_browser_plugins_plugins__resource__service.cc |    13 -
 ...wser_policy_browser__signin__policy__handler.cc |    22 +-
 ...rome__browser__cloud__management__controller.cc |    13 -
 ...wser__cloud__management__controller__desktop.cc |    44 +
 ...onfiguration__policy__handler__list__factory.cc |   260 +
 ...y_device__management__service__configuration.cc |    26 +
 ...olicy_policy__value__and__status__aggregator.cc |    17 +
 .../patch-chrome_browser_prefs_browser__prefs.cc   |    61 +-
 ...er_prefs_pref__service__incognito__allowlist.cc |    12 +-
 ...er_printing_print__backend__service__manager.cc |    35 +
 ...patch-chrome_browser_printing_printer__query.cc |    17 +
 ...tch-chrome_browser_process__singleton__posix.cc |    38 +-
 ...hrome__browser__main__extra__parts__profiles.cc |   124 +-
 ..._browser_profiles_profile__attributes__entry.cc |    13 -
 .../patch-chrome_browser_profiles_profile__impl.cc |    46 +
 ...atch-chrome_browser_profiles_profiles__state.cc |    35 +
 ...r__context__menu_render__view__context__menu.cc |    31 -
 ...h-chrome_browser_renderer__preferences__util.cc |    36 +-
 ..._appearance__page_appearance__browser__proxy.js |    22 -
 ...settings_appearance__page_appearance__page.html |    31 -
 ...s_settings_appearance__page_appearance__page.js |    35 -
 ...s_settings_autofill__page_passwords__shared.css |    17 +
 ...ome_browser_resources_signin_signin__shared.css |    17 +
 ...d__content__scanning_binary__upload__service.cc |    26 +
 ...oud__content__scanning_deep__scanning__utils.cc |    26 +
 ...dent__reporting_incident__reporting__service.cc |    14 +-
 ...rowser_screen__ai_screen__ai__install__state.cc |    26 +
 ...owser_screen__ai_screen__ai__service__router.cc |    26 +
 ...rch_search__suggest_search__suggest__service.cc |    13 -
 ...b__to__self_receiving__ui__handler__registry.cc |    34 +-
 ...o__self_send__tab__to__self__client__service.cc |    23 +-
 ...tch-chrome_browser_sessions_session__restore.cc |    26 +
 ...ser_sharing_shared__clipboard_feature__flags.cc |    13 -
 ...wser_sharing_shared__clipboard_feature__flags.h |    13 -
 ...rowser_sharing_sharing__device__registration.cc |    25 +-
 ...ser_sharing_sharing__handler__registry__impl.cc |    28 +-
 ...atch-chrome_browser_sharing_sharing__service.cc |    13 -
 ...-chrome_browser_sharing_webrtc_webrtc__flags.cc |    13 -
 ...h-chrome_browser_sharing_webrtc_webrtc__flags.h |    13 -
 ...patch-chrome_browser_shortcuts_icon__badging.cc |    17 +
 .../patch-chrome_browser_signin_signin__util.cc    |    22 +-
 ...supervised__user__extensions__delegate__impl.cc |    17 +
 ...__user_supervised__user__extensions__manager.cc |    26 +
 ...d__user_supervised__user__extensions__manager.h |    17 +
 ..._supervised__user__metrics__service__factory.cc |    26 +
 ..._user_supervised__user__navigation__observer.cc |    26 +
 ...tch-chrome_browser_sync_chrome__sync__client.cc |    45 +-
 ...rowser_sync_device__info__sync__client__impl.cc |    17 +
 ...h-chrome_browser_sync_sync__service__factory.cc |    35 +
 ...atch-chrome_browser_sync_sync__service__util.cc |    26 +
 ...e_browser_task__manager_sampling_task__group.cc |    50 +-
 ...me_browser_task__manager_sampling_task__group.h |    40 +-
 ..._task__manager_sampling_task__group__sampler.cc |    48 +-
 ...r_task__manager_sampling_task__group__sampler.h |    48 +-
 ...r_task__manager_sampling_task__manager__impl.cc |    12 +-
 ...browser_task__manager_task__manager__observer.h |    12 +-
 .../patch-chrome_browser_themes_theme__helper.cc   |    17 +
 .../patch-chrome_browser_themes_theme__service.cc  |    26 +
 ...e_browser_themes_theme__service__aura__linux.cc |    17 +
 ...hrome_browser_themes_theme__service__factory.cc |    48 +-
 ...ome_browser_tracing_crash__service__uploader.cc |    13 -
 chromium/patches/patch-chrome_browser_ui_BUILD.gn  |    60 -
 ...-chrome_browser_ui_actions_chrome__action__id.h |    17 +
 ..._payments_desktop__payments__window__manager.cc |    26 +
 ...l_payments_desktop__payments__window__manager.h |    44 +
 chromium/patches/patch-chrome_browser_ui_browser.h |    17 +
 ...rome_browser_ui_browser__command__controller.cc |    86 +-
 .../patch-chrome_browser_ui_browser__commands.cc   |    17 +
 .../patch-chrome_browser_ui_browser__ui__prefs.cc  |    17 +
 ...patch-chrome_browser_ui_browser__view__prefs.cc |    28 +-
 .../patch-chrome_browser_ui_chrome__pages.cc       |    35 +
 .../patch-chrome_browser_ui_chrome__pages.h        |    26 +
 ...rowser_ui_color_native__chrome__color__mixer.cc |    17 +
 ..._exclusive__access_exclusive__access__bubble.cc |    13 -
 ...r_ui_omnibox_omnibox__pedal__implementations.cc |    17 +
 ...rollers_relaunch__chrome__bubble__controller.cc |    26 +
 ..._passwords_manage__passwords__ui__controller.cc |    26 +
 .../patches/patch-chrome_browser_ui_sad__tab.cc    |    12 +-
 ...sharing__hub_sharing__hub__bubble__controller.h |    17 +
 ...e_browser_ui_signin_signin__view__controller.cc |    17 +
 ..._ui_signin_signin__view__controller__delegate.h |    17 +
 ...chrome_browser_ui_startup_bad__flags__prompt.cc |    16 +-
 ...browser_ui_startup_startup__browser__creator.cc |    54 +-
 ...r_ui_startup_startup__browser__creator__impl.cc |    35 +
 ...me_browser_ui_startup_startup__tab__provider.cc |    26 +
 .../patch-chrome_browser_ui_tab__helpers.cc        |    37 +-
 .../patch-chrome_browser_ui_tabs_features.cc       |    17 +
 ...tch-chrome_browser_ui_tabs_tab__strip__prefs.cc |    17 +
 ...wser_ui_task__manager_task__manager__columns.cc |    16 +-
 ...ui_task__manager_task__manager__table__model.cc |    24 +-
 ...ch-chrome_browser_ui_test_popup__browsertest.cc |    26 +
 ...tch-chrome_browser_ui_test_test__browser__ui.cc |    26 +
 .../patch-chrome_browser_ui_ui__features.cc        |    26 +
 .../patches/patch-chrome_browser_ui_ui__features.h |    26 +
 ...h-chrome_browser_ui_views_accelerator__table.cc |    40 +-
 ...pps_chrome__native__app__window__views__aura.cc |    26 +
 ...s_chrome__browser__main__extra__parts__views.cc |    22 +-
 ...rome_browser_ui_views_chrome__views__delegate.h |    23 +-
 ...wser_ui_views_chrome__views__delegate__linux.cc |    26 +
 ...owser_ui_views_compose_compose__dialog__view.cc |    17 +
 ...owser_ui_views_download_download__item__view.cc |    22 -
 ...h-chrome_browser_ui_views_first__run__dialog.cc |    15 -
 ...chrome_browser_ui_views_frame_browser__frame.cc |    58 +-
 ...-chrome_browser_ui_views_frame_browser__frame.h |    26 +
 ...ws_frame_browser__frame__view__layout__linux.cc |    17 +
 ..._browser__frame__view__layout__linux__native.cc |    17 +
 ...r_ui_views_frame_browser__frame__view__linux.cc |    26 +
 ...er__non__client__frame__view__factory__views.cc |    26 +
 ...-chrome_browser_ui_views_frame_browser__view.cc |    24 +-
 ..._ui_views_frame_opaque__browser__frame__view.cc |    49 +-
 ...r_ui_views_frame_opaque__browser__frame__view.h |    26 +
 ...paque__browser__frame__view__layout__delegate.h |    26 +
 ...ue__browser__frame__view__platform__specific.cc |    13 -
 ...e_picture__in__picture__browser__frame__view.cc |    98 +
 ...me_picture__in__picture__browser__frame__view.h |    53 +
 ..._ui_views_frame_system__menu__model__builder.cc |    36 +-
 ...ui_views_frame_system__menu__model__delegate.cc |    32 +-
 ...wser_ui_views_frame_tab__strip__region__view.cc |    17 +
 ...chrome_browser_ui_views_hung__renderer__view.cc |    12 +-
 ...rowser_ui_views_omnibox_omnibox__view__views.cc |    17 +
 ...views_passwords_password__bubble__view__base.cc |    26 +
 ...rowser_ui_views_profiles_profile__menu__view.cc |    26 +
 ..._ui_views_profiles_profile__menu__view__base.cc |    17 +
 ...es_signin__view__controller__delegate__views.cc |    53 +
 ...les_signin__view__controller__delegate__views.h |    26 +
 ...ch-chrome_browser_ui_views_side__panel_BUILD.gn |    46 +
 ...hrome_browser_ui_views_tabs_new__tab__button.cc |    13 -
 .../patch-chrome_browser_ui_views_tabs_tab.cc      |    16 +-
 ..._browser_ui_views_tabs_tab__drag__controller.cc |    65 +-
 ...ui_views_tabs_tab__hover__card__bubble__view.cc |    17 +
 ...rome_browser_ui_views_tabs_tab__style__views.cc |    17 +
 ..._education_browser__user__education__service.cc |    17 +
 ...eb__apps_web__app__integration__test__driver.cc |    89 +
 ...rowser_ui_web__applications_web__app__dialogs.h |    17 +
 ...eb__applications_web__app__ui__manager__impl.cc |    26 +
 ...web__applications_web__app__ui__manager__impl.h |    17 +
 .../patch-chrome_browser_ui_webui_about__ui.cc     |    22 -
 ...atch-chrome_browser_ui_webui_about_about__ui.cc |    26 +
 ..._ui_webui_app__home_app__home__page__handler.cc |    17 +
 ...r_ui_webui_app__home_app__home__page__handler.h |    17 +
 ...i_webui_chrome__web__ui__controller__factory.cc |   115 +-
 ...i_connectors__internals_device__trust__utils.cc |    35 +
 ...e_browser_ui_webui_management_management__ui.cc |    22 +
 ...i_webui_management_management__ui__constants.cc |    23 +
 ...ui_webui_management_management__ui__constants.h |    25 +
 ..._ui_webui_management_management__ui__handler.cc |    35 +
 ...r_ui_webui_management_management__ui__handler.h |    26 +
 ...ebui_password__manager_promo__cards__handler.cc |    26 +
 ...manager_promo__cards_relaunch__chrome__promo.cc |    26 +
 ...rowser_ui_webui_searchbox_searchbox__handler.cc |    35 +
 ..._webui_settings_accessibility__main__handler.cc |    52 +
 ...i_webui_settings_accessibility__main__handler.h |    53 +
 ...rowser_ui_webui_settings_appearance__handler.cc |    29 +-
 ...browser_ui_webui_settings_appearance__handler.h |    13 -
 ...tings_settings__localized__strings__provider.cc |    78 +-
 ...hrome_browser_ui_window__sizer_window__sizer.cc |    17 +
 ...king_visited__url__ranking__service__factory.cc |    26 +
 ...ponents_web__app__file__handler__registration.h |    13 -
 ...__applications_components_web__app__shortcut.cc |    13 -
 ...er_web__applications_extension__status__utils.h |    17 +
 ...s_extensions_bookmark__app__finalizer__utils.cc |    13 -
 ...ications_extensions_extension__status__utils.cc |    26 +
 ...ons_os__integration_os__integration__manager.cc |    17 +
 ...__integration_os__integration__test__override.h |    17 +
 ...integration_run__on__os__login__sub__manager.cc |    17 +
 ...tions_os__integration_shortcut__sub__manager.cc |    17 +
 ...gration_web__app__file__handler__registration.h |    17 +
 ...lications_os__integration_web__app__shortcut.cc |    26 +
 ...plications_os__integration_web__app__shortcut.h |    26 +
 ...pplications_policy_web__app__policy__manager.cc |    17 +
 ...s_test_os__integration__test__override__impl.cc |   125 +
 ...ns_test_os__integration__test__override__impl.h |    44 +
 ..._browser_web__applications_web__app__helpers.cc |    17 +
 ...ser_web__applications_web__app__install__info.h |    17 +
 ...thn_chrome__authenticator__request__delegate.cc |    17 +
 ...tch-chrome_browser_webauthn_enclave__manager.cc |    26 +
 chromium/patches/patch-chrome_common_BUILD.gn      |    16 -
 .../patches/patch-chrome_common_channel__info.h    |    25 +-
 .../patch-chrome_common_channel__info__posix.cc    |    21 +-
 .../patch-chrome_common_chrome__content__client.cc |    31 -
 .../patch-chrome_common_chrome__features.cc        |    59 +-
 .../patches/patch-chrome_common_chrome__features.h |    52 +-
 .../patches/patch-chrome_common_chrome__paths.cc   |    90 +-
 .../patches/patch-chrome_common_chrome__paths.h    |    54 +-
 .../patch-chrome_common_chrome__paths__internal.h  |    12 +-
 .../patch-chrome_common_chrome__switches.cc        |    22 +-
 .../patches/patch-chrome_common_chrome__switches.h |    20 +-
 ...me_common_component__flash__hint__file__linux.h |    13 -
 ...h-chrome_common_extensions_api_api__sources.gni |    13 -
 .../patch-chrome_common_extensions_command.cc      |    13 -
 ...rmissions_chrome__permission__message__rules.cc |    17 +
 chromium/patches/patch-chrome_common_features.gni  |    13 -
 ...ch-chrome_common_media_cdm__host__file__path.cc |    12 +-
 .../patch-chrome_common_media_cdm__registration.cc |    62 +
 .../patch-chrome_common_media_cdm__registration.h  |    17 +
 ...a_component__widevine__cdm__hint__file__linux.h |    17 +
 .../patches/patch-chrome_common_pref__names.cc     |    49 -
 chromium/patches/patch-chrome_common_pref__names.h |   124 +-
 .../patches/patch-chrome_common_url__constants.h   |    17 +
 .../patch-chrome_common_webui__url__constants.cc   |   107 +-
 .../patch-chrome_common_webui__url__constants.h    |    62 +-
 ...ise__companion_enterprise__companion__client.cc |    17 +
 .../patch-chrome_enterprise__companion_lock.cc     |    26 +
 chromium/patches/patch-chrome_renderer_BUILD.gn    |    13 -
 ...derer_pepper_pepper__flash__font__file__host.cc |    31 -
 ...nderer_pepper_pepper__flash__font__file__host.h |    22 -
 ...ch-chrome_service_cloud__print_print__system.cc |    13 -
 ...vices_printing_print__backend__service__impl.cc |    53 +
 ...services_speech_audio__source__fetcher__impl.cc |    17 +
 chromium/patches/patch-chrome_test_BUILD.gn        |   220 -
 ...atch-chrome_test_base_chrome__test__launcher.cc |    49 -
 ...-chrome_test_base_in__process__browser__test.cc |    42 -
 ...hrome_test_base_interactive__ui__tests__main.cc |    22 -
 ...e_test_base_scoped__channel__override__posix.cc |    17 +
 .../patch-chrome_test_base_test__browser__window.h |    13 -
 ...ch-chrome_test_base_testing__browser__process.h |    16 -
 ...ch-chrome_test_chromedriver_chrome__launcher.cc |    23 +-
 ...rome_test_chromedriver_chrome_chrome__finder.cc |    37 +-
 ...e_test_chromedriver_key__converter__unittest.cc |    38 +-
 ...medriver_keycode__text__conversion__unittest.cc |    26 +
 .../patches/patch-chrome_updater_configurator.cc   |    17 +
 chromium/patches/patch-chrome_updater_lock.cc      |    17 +
 .../patch-chrome_updater_util_posix__util.cc       |    17 +
 chromium/patches/patch-chrome_utility_services.cc  |    35 +
 chromium/patches/patch-chromecast_BUILD.gn         |    13 -
 .../patches/patch-chromecast_bindings_BUILD.gn     |    22 -
 chromium/patches/patch-chromecast_browser_BUILD.gn |    31 -
 ...hromecast_browser_cast__browser__main__parts.cc |    40 +-
 ...ecast_browser_cast__content__browser__client.cc |    12 +-
 .../patch-chromecast_browser_metrics_BUILD.gn      |    13 -
 ...chromecast_browser_tts_tts__controller__impl.cc |    16 -
 ..._browser_runtime__application__service__impl.cc |    17 +
 chromium/patches/patch-chromecast_chromecast.gni   |    22 -
 ...rnal__mojo_public_cpp_external__mojo__broker.cc |    22 -
 ...omecast_media_base_default__monotonic__clock.cc |    26 +
 chromium/patches/patch-chromecast_net_BUILD.gn     |    13 -
 ...ast_renderer_cast__content__renderer__client.cc |    13 -
 chromium/patches/patch-components_BUILD.gn         |    47 -
 ...tch-components_autofill__payments__strings.grdp |    13 -
 ...t_renderer_password__form__conversion__utils.cc |    13 -
 ...ll_core_browser_autofill__external__delegate.cc |    13 -
 ...utofill_core_browser_payments__data__manager.cc |    17 +
 ...utofill_core_browser_personal__data__manager.cc |    22 -
 ...ents_autofill_core_common_autofill__features.cc |    17 +
 ...ill_core_common_autofill__payments__features.cc |    18 +-
 ...mponents_autofill_core_common_autofill__util.cc |    14 +-
 ...onents_commerce_core_commerce__feature__list.cc |    26 +
 ...nstrained__window_constrained__window__views.cc |    17 +
 ...ngs_core_browser_website__settings__registry.cc |    16 +-
 ...omponents_cookie__config_cookie__store__util.cc |    14 +-
 ...patch-components_crash_content_browser_BUILD.gn |    20 -
 .../patch-components_crash_core_app_BUILD.gn       |    49 +
 ...nts_crash_core_app_chrome__crashpad__handler.cc |    18 +
 ...nents_crash_core_app_crashpad__handler__main.cc |    26 +
 ...h_core_browser_crash__upload__list__crashpad.cc |    32 +
 .../patch-components_crash_core_common_BUILD.gn    |    28 +-
 chromium/patches/patch-components_cronet_BUILD.gn  |    22 -
 ...ignals_core_browser_mock__signals__aggregator.h |    17 +
 ...ice__signals_core_browser_signals__aggregator.h |    17 +
 ...gnals_core_browser_signals__aggregator__impl.cc |    17 +
 ...ignals_core_browser_signals__aggregator__impl.h |    17 +
 ...ignals_core_browser_user__permission__service.h |    17 +
 ...core_browser_user__permission__service__impl.cc |    17 +
 ..._core_browser_user__permission__service__impl.h |    17 +
 ...evice__signals_core_common_signals__features.cc |    17 +
 ...device__signals_core_common_signals__features.h |    17 +
 ...nals_core_system__signals_platform__delegate.cc |    17 +
 ...nents_device__signals_test_signals__contract.cc |    17 +
 ...service_discardable__shared__memory__manager.cc |    29 +-
 ...mponents_download_internal_common_base__file.cc |    13 -
 ...ponents_embedder__support_user__agent__utils.cc |    18 +
 ...bedder__support_user__agent__utils__unittest.cc |    35 +
 ...components_enterprise_watermarking_watermark.cc |    26 +
 chromium/patches/patch-components_exo_BUILD.gn     |    13 -
 ...h-components_eye__dropper_eye__dropper__view.cc |    17 +
 ..._feature__engagement_public_event__constants.cc |    21 +-
 ...s_feature__engagement_public_event__constants.h |    23 +-
 ...e__engagement_public_feature__configurations.cc |    35 +
 ...eature__engagement_public_feature__constants.cc |    41 +-
 ...feature__engagement_public_feature__constants.h |    43 +-
 ...nts_feature__engagement_public_feature__list.cc |    43 +-
 ...ents_feature__engagement_public_feature__list.h |    78 +-
 ...omponents_feed_core_proto_v2_wire_version.proto |    19 +
 ...s_feed_core_v2_feed__network__impl__unittest.cc |    19 +
 .../patch-components_feed_core_v2_proto__util.cc   |    30 +
 ...omponents_feed_core_v2_proto__util__unittest.cc |    19 +
 ...-components_feed_core_v2_test_proto__printer.cc |    19 +
 .../patch-components_feedback_anonymizer__tool.cc  |    13 -
 .../patch-components_flags__ui_flags__state.cc     |    18 +-
 .../patch-components_gcm__driver_gcm__client.h     |    12 -
 ...tch-components_gcm__driver_gcm__client__impl.cc |    14 -
 .../patches/patch-components_gwp__asan_BUILD.gn    |    14 +-
 ..._asan_client_guarded__page__allocator__posix.cc |    19 +
 .../patch-components_gwp__asan_client_gwp__asan.cc |    17 +
 ...ponents_gwp__asan_client_gwp__asan__features.cc |    17 +
 ...nts_gwp__asan_crash__handler_crash__analyzer.cc |    26 +
 ...ed__service_core_dependency__graph__unittest.cc |    13 -
 ...patch-components_live__caption_caption__util.cc |    17 +
 .../patch-components_live__caption_caption__util.h |    17 +
 ...omponents_media__router_common_media__source.cc |    17 +
 ...n_providers_cast_channel_cast__message__util.cc |    17 +
 chromium/patches/patch-components_metrics_BUILD.gn |    22 -
 ...ents_metrics_drive__metrics__provider__linux.cc |     8 +-
 .../patch-components_metrics_metrics__log.cc       |    41 +-
 .../patch-components_metrics_motherboard.cc        |    16 +
 ...trics_system__memory__stats__recorder__linux.cc |    20 -
 ...nts_named__mojo__ipc__server_connection__info.h |    33 +
 ...erver_named__mojo__ipc__server__client__util.cc |    17 +
 .../patch-components_named__system__lock_lock.h    |    17 +
 ...patch-components_neterror_resources_neterror.js |    16 +-
 ...rator_browser_network__session__configurator.cc |    18 +-
 ...ser_network__session__configurator__unittest.cc |    17 +
 ...atch-components_new__or__sad__tab__strings.grdp |    49 -
 ...zation__guide_core_optimization__guide__util.cc |    17 +
 .../patches/patch-components_os__crypt_os__crypt.h |    38 -
 ...tch-components_os__crypt_os__crypt__unittest.cc |    13 -
 ...onents_os__crypt_sync_libsecret__util__linux.cc |    33 +
 .../patch-components_os__crypt_sync_os__crypt.h    |    78 +
 ...aint__preview_browser_paint__preview__client.cc |    19 +
 ...iew_browser_paint__preview__client__unittest.cc |    19 +
 ...aint__preview_common_proto_paint__preview.proto |    19 +
 ..._preview_player_player__compositor__delegate.cc |    19 +
 ...ponents_password__manager_core_browser_BUILD.gn |    13 -
 ...ger_core_browser_features_password__features.cc |    35 +
 ...ager_core_browser_features_password__features.h |    17 +
 ...manager_core_browser_password__form__manager.cc |    35 +
 ...word__manager_core_browser_password__manager.cc |    17 +
 ...anager_core_browser_password__manager__client.h |    26 +
 ...ger_core_browser_password__manager__switches.cc |    17 +
 ...ager_core_browser_password__manager__switches.h |    17 +
 ...ore_browser_password__manual__fallback__flow.cc |    17 +
 ...core_browser_password__manual__fallback__flow.h |    26 +
 ...core_browser_password__store_login__database.cc |    26 +
 ...ssword__store_login__database__async__helper.cc |    17 +
 ...er_password__store_login__database__unittest.cc |    17 +
 ...core_browser_stub__password__manager__client.cc |    17 +
 ..._core_browser_stub__password__manager__client.h |    17 +
 ...er_core_common_password__manager__pref__names.h |    17 +
 ...mponents_performance__manager_public_features.h |    17 +
 ...sions_prediction__service_prediction__common.cc |    26 +
 ...ponents_plugins_renderer_plugin__placeholder.cc |    13 -
 chromium/patches/patch-components_policy_BUILD.gn  |    13 -
 ...icy_core_browser_policy__pref__mapping__test.cc |    17 +
 .../patch-components_policy_core_common_BUILD.gn   |    40 -
 ...licy_core_common_cloud_cloud__policy__client.cc |    17 +
 ...policy_core_common_cloud_cloud__policy__util.cc |    67 +-
 ...ts_policy_core_common_policy__loader__common.cc |    26 +
 ...-components_policy_core_common_policy__paths.cc |    19 +
 ...-components_policy_core_common_policy__utils.cc |    17 +
 .../patch-components_policy_core_common_schema.cc  |    13 -
 ...onents_policy_tools_generate__policy__source.py |    27 +-
 .../patch-components_power__metrics_BUILD.gn       |    17 +
 ...nts_power__metrics_energy__metrics__provider.cc |    27 +
 ...-components_previews_core_previews__features.cc |    13 -
 ...ontent_common_file__type__policies__unittest.cc |    17 +
 ...ing_content_resources_gen__file__type__proto.py |    27 +
 ..._core_browser_db_v4__protocol__manager__util.cc |    17 +
 ..._browser_realtime_url__lookup__service__base.cc |    17 +
 ...mponents_safe__browsing_core_common_features.cc |    26 +
 ...mponents_safe__browsing_core_resources_BUILD.gn |    13 -
 ...owsing_core_resources_gen__file__type__proto.py |    21 -
 ...gine__choice_search__engine__choice__service.cc |    17 +
 ...nents_search__engines_template__url__service.cc |    17 +
 ...ials_content_captive__portal__blocking__page.cc |    20 -
 ...onents_security__interstitials_content_utils.cc |    14 +-
 ..._default__model_cross__device__user__segment.cc |    17 +
 .../patch-components_services_font_BUILD.gn        |    19 -
 ...paint__preview__compositor__collection__impl.cc |    30 +-
 ..._paint__preview__compositor__collection__impl.h |    22 -
 .../patches/patch-components_signin_features.gni   |    13 -
 ...mponents_signin_public_base_signin__switches.cc |    31 +
 ...omponents_signin_public_base_signin__switches.h |    17 +
 .../patches/patch-components_soda_soda__util.cc    |    35 +
 ..._metric__utils_common_startup__metric__utils.cc |    17 +
 .../patch-components_storage__monitor_BUILD.gn     |    35 +-
 ...torage__monitor_removable__device__constants.cc |    10 +-
 ...storage__monitor_removable__device__constants.h |    12 +-
 ...ts_storage__monitor_storage__monitor__netbsd.cc |    59 -
 ...nts_storage__monitor_storage__monitor__netbsd.h |    50 -
 ...e_browser_supervised__user__metrics__service.cc |    17 +
 ...r_core_browser_supervised__user__preferences.cc |    17 +
 ..._user_core_browser_supervised__user__service.cc |    17 +
 ...onents_supervised__user_core_common_features.cc |    35 +
 ...ponents_supervised__user_core_common_features.h |    26 +
 ...ents_supervised__user_core_common_pref__names.h |    17 +
 ...sync__device__info_local__device__info__util.cc |    34 +-
 ...evice__info_local__device__info__util__linux.cc |    29 +-
 .../patch-components_sync_base_sync__util.cc       |    17 +
 .../patch-components_system__cpu_cpu__probe.cc     |    18 +
 ...onents_translate_core_common_translate__util.cc |    17 +
 ...ponents_update__client_update__query__params.cc |    10 +-
 ..._formatter_spoof__checks_idn__spoof__checker.cc |    12 +-
 ...-components_url__matcher_regex__set__matcher.cc |    15 -
 ...omponents_url__matcher_url__matcher__factory.cc |    13 -
 ...nts_user__education_views_help__bubble__view.cc |    17 +
 ...nents_variations_service_variations__service.cc |    17 +
 ...isited__url__ranking_public_url__visit__util.cc |    17 +
 .../patch-components_viz_common_features.cc        |    31 +-
 .../patches/patch-components_viz_common_features.h |    26 +
 ...nents_viz_common_gpu_dawn__context__provider.cc |    13 -
 ...ch-components_viz_host_host__display__client.cc |    12 +-
 ...tch-components_viz_host_host__display__client.h |    16 +-
 ...embedder_skia__output__device__buffer__queue.cc |    17 +
 ...isplay__embedder_skia__output__surface__impl.cc |    17 +
 ..._display__embedder_software__output__surface.cc |    26 +-
 ...e_display__embedder_software__output__surface.h |    26 +-
 ...omponents_viz_service_display_skia__renderer.cc |    17 +
 ...e__sinks_root__compositor__frame__sink__impl.cc |    22 +-
 ...me__sinks_root__compositor__frame__sink__impl.h |    18 +-
 ...ch-components_viz_test_fake__display__client.cc |    17 +
 ...tch-components_viz_test_fake__display__client.h |    17 +
 ...ch-components_viz_test_fake__output__surface.cc |    13 -
 ...tch-components_viz_test_fake__output__surface.h |    13 -
 ...tch-components_viz_test_mock__display__client.h |    14 +-
 ...omponents_webcrypto_algorithms_test__helpers.cc |    13 -
 chromium/patches/patch-content_app_BUILD.gn        |    21 +
 .../patches/patch-content_app_content__main.cc     |    17 +
 ...atch-content_app_content__main__runner__impl.cc |   141 +-
 chromium/patches/patch-content_browser_BUILD.gn    |    94 +-
 .../patch-content_browser_audio_audio__service.cc  |    26 +
 ..._browser_browser__child__process__host__impl.cc |    25 +
 ...t_browser_browser__child__process__host__impl.h |    26 +
 ...ild__process__host__impl__receiver__bindings.cc |    17 +
 .../patch-content_browser_browser__main__loop.cc   |    39 +-
 ...tent_browser_child__process__launcher__helper.h |    17 +
 ...wser_child__process__launcher__helper__linux.cc |   122 +-
 ...browser_child__thread__type__switcher__linux.cc |    26 +
 ..._compositor_viz__process__transport__factory.cc |    12 +-
 ...wser_devtools_devtools__frontend__host__impl.cc |    44 +
 ...owser_devtools_devtools__frontend__host__impl.h |    17 +
 ...wser_devtools_protocol_system__info__handler.cc |    20 +-
 ...ccess_file__path__watcher_file__path__watcher.h |    17 +
 ...file__path__watcher_file__path__watcher__bsd.cc |    64 +
 ...le__path__watcher_file__path__watcher__kqueue.h |    16 +
 ...s_file__system__access__local__path__watcher.cc |    17 +
 ...font__access_font__enumeration__data__source.cc |    35 +
 .../patch-content_browser_gpu_compositor__util.cc  |    26 +
 ...content_browser_gpu_gpu__data__manager__impl.cc |    17 +
 ...-content_browser_gpu_gpu__data__manager__impl.h |    17 +
 ...rowser_gpu_gpu__data__manager__impl__private.cc |    17 +
 ...browser_gpu_gpu__data__manager__impl__private.h |    26 +
 ..._gpu_gpu__memory__buffer__manager__singleton.cc |    26 +
 ...patch-content_browser_gpu_gpu__process__host.cc |    32 +-
 ...wser_media_frameless__media__interface__proxy.h |    26 +
 ...r_media_media__keys__listener__manager__impl.cc |    17 +
 ...er_memory_swap__metrics__driver__impl__linux.cc |    22 -
 ...ent_browser_network__service__instance__impl.cc |    35 +
 ...content_browser_ppapi__plugin__process__host.cc |    13 -
 ...i__plugin__process__host__receiver__bindings.cc |    14 +-
 ...rowser_renderer__host_delegated__frame__host.cc |    17 +
 ...__host_input_input__device__change__observer.cc |    36 +-
 ...ia_service__video__capture__device__launcher.cc |    26 +
 ...renderer__host_pepper_pepper__file__io__host.cc |    18 +-
 ...owser_renderer__host_render__message__filter.cc |    31 -
 ...rowser_renderer__host_render__message__filter.h |    21 -
 ...r_renderer__host_render__process__host__impl.cc |   104 +-
 ...er_renderer__host_render__process__host__impl.h |    22 +-
 ...wser_renderer__host_render__view__host__impl.cc |    18 +-
 ...derer__host_render__widget__host__view__aura.cc |    58 +-
 ...nderer__host_render__widget__host__view__aura.h |    17 +
 ...t_render__widget__host__view__event__handler.cc |    12 +-
 .../patch-content_browser_sandbox__host__linux.cc  |    24 +
 ...owser_scheduler_responsiveness_jank__monitor.cc |    13 -
 ...scheduler_responsiveness_jank__monitor__impl.cc |    17 +
 ...duler_responsiveness_native__event__observer.cc |    14 +-
 ...eduler_responsiveness_native__event__observer.h |    48 +-
 ...patch-content_browser_utility__process__host.cc |    91 +-
 .../patch-content_browser_utility__process__host.h |    26 +
 ...r_utility__process__host__receiver__bindings.cc |    31 +-
 ...h-content_browser_utility__sandbox__delegate.cc |    34 +
 .../patch-content_browser_v8__snapshot__files.cc   |    24 +-
 ...wser_web__contents_web__contents__view__aura.cc |    35 +
 ...contents_web__contents__view__aura__unittest.cc |    17 +
 ...rowser_webui_shared__resources__data__source.cc |    13 -
 ...browser_webui_web__ui__main__frame__observer.cc |    44 +
 ..._browser_webui_web__ui__main__frame__observer.h |    26 +
 ...owser_zygote__host_zygote__host__impl__linux.cc |    87 +
 ...rowser_zygote__host_zygote__host__impl__linux.h |    35 +
 chromium/patches/patch-content_child_BUILD.gn      |    31 +-
 .../patches/patch-content_child_child__process.cc  |    35 +
 .../patches/patch-content_child_child__process.h   |    17 +
 chromium/patches/patch-content_common_BUILD.gn     |    56 +-
 ...ntent_common_common__sandbox__support__linux.cc |    12 -
 chromium/patches/patch-content_common_features.cc  |    26 +
 chromium/patches/patch-content_common_features.gni |    10 -
 chromium/patches/patch-content_common_features.h   |    26 +
 .../patch-content_common_font__list__unittest.cc   |    17 +
 ...-content_common_gpu__pre__sandbox__hook__bsd.cc |    77 +
 ...h-content_common_gpu__pre__sandbox__hook__bsd.h |    29 +
 ...content_common_gpu__pre__sandbox__hook__linux.h |    22 +
 ...-content_common_mojo__core__library__support.cc |    17 +
 .../patches/patch-content_common_user__agent.cc    |    43 +
 chromium/patches/patch-content_gpu_BUILD.gn        |    22 -
 .../patch-content_gpu_gpu__child__thread.cc        |    27 +
 chromium/patches/patch-content_gpu_gpu__main.cc    |    76 +-
 .../patch-content_gpu_gpu__sandbox__hook__linux.cc |    79 -
 .../patches/patch-content_ppapi__plugin_BUILD.gn   |    13 -
 ...t_ppapi__plugin_ppapi__blink__platform__impl.cc |    26 +-
 ...nt_ppapi__plugin_ppapi__blink__platform__impl.h |    30 +-
 ...ch-content_ppapi__plugin_ppapi__plugin__main.cc |    29 +
 ...h-content_public_app_content__main__delegate.cc |    13 -
 ...ch-content_public_app_content__main__delegate.h |    13 -
 ...tent_public_browser_content__browser__client.cc |    17 +
 ...ontent_public_browser_service__process__host.cc |    17 +
 ...blic_browser_zygote__host_zygote__host__linux.h |    22 +
 ...ch-content_public_common_child__process__host.h |    13 -
 ...t_public_common_common__param__traits__macros.h |    13 -
 ...tch-content_public_common_content__constants.cc |    13 -
 ...atch-content_public_common_content__constants.h |    13 -
 ...atch-content_public_common_content__features.cc |    62 +-
 ...atch-content_public_common_content__switches.cc |    25 +-
 ...patch-content_public_common_content__switches.h |    26 +-
 ...nt_public_common_use__zoom__for__dsf__policy.cc |    13 -
 ...patch-content_public_common_zygote_features.gni |    14 +
 ...atch-content_public_test_browser__test__base.cc |    22 -
 ...h-content_public_test_content__browser__test.cc |    31 -
 ...tch-content_public_test_mock__render__thread.cc |    13 -
 chromium/patches/patch-content_renderer_BUILD.gn   |    22 -
 ..._renderer_media_audio_audio__device__factory.cc |    13 -
 ...gpu_gpu__video__accelerator__factories__impl.cc |    17 +
 ...patch-content_renderer_render__process__impl.cc |    22 -
 .../patch-content_renderer_render__thread__impl.cc |    57 +-
 ...ent_renderer_renderer__blink__platform__impl.cc |    54 +-
 ...tent_renderer_renderer__blink__platform__impl.h |    34 +-
 ...er_renderer__main__platform__delegate__linux.cc |    28 +-
 chromium/patches/patch-content_shell_BUILD.gn      |    48 +-
 ...atch-content_shell_app_shell__main__delegate.cc |    23 +-
 ...ontent_shell_browser_shell__browser__context.cc |    22 -
 ...nt_shell_browser_shell__browser__main__parts.cc |    57 +-
 .../patch-content_shell_browser_shell__paths.cc    |    26 +
 ...rowser_web__test_web__test__browser__context.cc |    13 -
 ...er_web__test_web__test__browser__main__parts.cc |    13 -
 ...ll_renderer_shell__content__renderer__client.cc |    17 +
 ...ontent_shell_renderer_web__test_test__runner.cc |    31 -
 ...hell_utility_shell__content__utility__client.cc |    26 +
 chromium/patches/patch-content_test_BUILD.gn       |    99 +-
 .../patch-content_test_content__test__suite.cc     |    20 -
 chromium/patches/patch-content_utility_BUILD.gn    |    13 -
 chromium/patches/patch-content_utility_services.cc |   105 +
 ...ch_speech__recognition__sandbox__hook__linux.cc |    43 +
 ...ech_speech__recognition__sandbox__hook__linux.h |    22 +
 ...link__platform__with__sandbox__support__impl.cc |    22 +-
 ...blink__platform__with__sandbox__support__impl.h |    27 +-
 .../patches/patch-content_utility_utility__main.cc |   134 +
 .../patch-content_utility_utility__thread__impl.cc |    27 +
 chromium/patches/patch-content_zygote_BUILD.gn     |    23 +-
 .../patches/patch-content_zygote_zygote__linux.cc  |    21 +
 .../patch-content_zygote_zygote__main__linux.cc    |    62 +-
 .../patch-device_bluetooth_bluetooth__adapter.cc   |    17 +
 .../patch-device_bluetooth_cast__bluetooth.gni     |    15 +
 .../patch-device_fido_fido__discovery__factory.cc  |    17 +
 chromium/patches/patch-device_gamepad_BUILD.gn     |    24 +-
 .../patch-device_gamepad_gamepad__provider.cc      |    14 +-
 .../patch-device_gamepad_hid__writer__linux.cc     |    16 +-
 ..._browser__context__keyed__service__factories.cc |    17 +
 ...i_declarative__webrequest_webrequest__action.cc |    13 -
 ...sions_browser_api_management_management__api.cc |    17 +
 ...sions_browser_api_messaging_message__service.cc |    33 +-
 ...ivate_networking__private__delegate__factory.cc |    34 +-
 ..._browser_api_web__request_form__data__parser.cc |    13 -
 ..._browser__context__keyed__service__factories.cc |    13 -
 ...tensions_common_api___permission__features.json |    30 +-
 .../patch-extensions_common_api_runtime.json       |    22 +-
 .../patches/patch-extensions_common_command.cc     |    17 +
 .../patch-extensions_common_feature__switch.cc     |    13 -
 .../patch-extensions_common_features_feature.cc    |    24 +-
 .../patches/patch-extensions_common_image__util.cc |    13 -
 .../patch-extensions_common_stack__frame.cc        |    13 -
 ...ensions_renderer_bindings_api__binding__util.cc |    22 +-
 ...-extensions_renderer_bindings_argument__spec.cc |    17 +
 chromium/patches/patch-extensions_shell_BUILD.gn   |    22 -
 ...h-extensions_shell_app_shell__main__delegate.cc |    26 +-
 ...er_api_runtime_shell__runtime__api__delegate.cc |    18 +-
 ...ns_shell_browser_shell__browser__main__parts.cc |    17 +
 ...shell_browser_shell__extensions__api__client.cc |    25 +-
 ..._shell_browser_shell__extensions__api__client.h |    25 +-
 ...h-google__apis_gcm_engine_heartbeat__manager.cc |    22 +-
 chromium/patches/patch-gpu_BUILD.gn                |    47 -
 ...__buffer_common_gpu__memory__buffer__support.cc |    30 +-
 .../patch-gpu_command__buffer_service_BUILD.gn     |    22 -
 ...mand__buffer_service_dawn__context__provider.cc |    17 +
 ..._buffer_service_external__vk__image__backing.cc |    31 -
 ...__buffer_service_external__vk__image__backing.h |    13 -
 ...vice_external__vk__image__gl__representation.cc |    13 -
 ..._command__buffer_service_gles2__cmd__decoder.cc |    17 +
 ...gpu_command__buffer_service_program__manager.cc |    13 -
 ...image_angle__vulkan__image__backing__factory.cc |    17 +
 ...e_shared__image_external__vk__image__backing.cc |    26 +
 ..._image_external__vk__image__backing__factory.cc |    17 +
 ...service_shared__image_shared__image__factory.cc |    17 +
 ...service_shared__image_shared__image__manager.cc |    17 +
 ...ce_shared__image_wrapped__sk__image__backing.cc |    17 +
 ...ommand__buffer_service_webgpu__decoder__impl.cc |    26 +
 ..._tests_gl__copy__texture__CHROMIUM__unittest.cc |    13 -
 ...ffer_tests_gl__gpu__memory__buffer__unittest.cc |    26 +
 ...ch-gpu_command__buffer_tests_gl__test__utils.cc |    22 -
 ...tch-gpu_command__buffer_tests_gl__test__utils.h |    13 -
 chromium/patches/patch-gpu_config_BUILD.gn         |    13 -
 .../patches/patch-gpu_config_gpu__control__list.cc |    35 +-
 .../patch-gpu_config_gpu__finch__features.cc       |    26 +
 .../patch-gpu_config_gpu__info__collector.cc       |    17 +
 .../patches/patch-gpu_config_gpu__test__config.cc  |    18 +-
 .../patch-gpu_gles2__conform__support_BUILD.gn     |    13 -
 ...tch-gpu_gles2__conform__support_native_BUILD.gn |    13 -
 chromium/patches/patch-gpu_ipc_common_BUILD.gn     |    13 -
 ...-gpu_ipc_common_gpu__memory__buffer__support.cc |    49 +-
 ...h-gpu_ipc_common_gpu__memory__buffer__support.h |    32 +-
 chromium/patches/patch-gpu_ipc_service_BUILD.gn    |    17 -
 .../patches/patch-gpu_ipc_service_gpu__init.cc     |   101 +-
 ...gpu_ipc_service_gpu__memory__buffer__factory.cc |    22 +-
 .../patch-gpu_ipc_service_gpu__watchdog__thread.cc |    58 -
 .../patch-gpu_ipc_service_gpu__watchdog__thread.h  |    22 -
 chromium/patches/patch-gpu_ipc_service_x__util.h   |    17 +
 .../patch-gpu_khronos__glcts__support_BUILD.gn     |    76 -
 ...tch-gpu_tools_compositor__model__bench_BUILD.gn |    13 -
 chromium/patches/patch-gpu_vulkan_features.gni     |    13 -
 .../patches/patch-gpu_vulkan_generate__bindings.py |    17 +
 .../patches/patch-gpu_vulkan_semaphore__handle.cc  |    26 +
 .../patch-gpu_vulkan_vulkan__device__queue.cc      |    26 +
 .../patch-gpu_vulkan_vulkan__device__queue.h       |    17 +
 .../patch-gpu_vulkan_vulkan__function__pointers.cc |    34 +-
 .../patch-gpu_vulkan_vulkan__function__pointers.h  |    58 +-
 chromium/patches/patch-gpu_vulkan_vulkan__image.h  |    26 +
 chromium/patches/patch-gpu_vulkan_vulkan__util.cc  |    17 +
 chromium/patches/patch-headless_BUILD.gn           |    40 -
 ...ss_lib_browser_headless__browser__main__parts.h |    13 -
 ...rowser_headless__browser__main__parts__linux.cc |    13 -
 ...rowser_headless__browser__main__parts__posix.cc |    45 +
 ...b_browser_headless__content__browser__client.cc |    22 -
 ...ib_browser_headless__content__browser__client.h |    14 +-
 ..._browser_headless__request__context__manager.cc |    40 +-
 ...ss_lib_browser_headless__web__contents__impl.cc |    17 +
 ...adless_lib_headless__content__main__delegate.cc |    33 +-
 ...eadless_lib_headless__content__main__delegate.h |    13 -
 .../patches/patch-headless_lib_headless__macros.h  |    13 -
 chromium/patches/patch-ipc_ipc__channel.h          |    12 +-
 chromium/patches/patch-ipc_ipc__channel__common.cc |    10 +-
 chromium/patches/patch-ipc_ipc__channel__mojo.cc   |    14 +-
 chromium/patches/patch-ipc_ipc__message__utils.cc  |    16 +-
 chromium/patches/patch-ipc_ipc__message__utils.h   |    16 +-
 chromium/patches/patch-media_BUILD.gn              |    18 +
 chromium/patches/patch-media_audio_BUILD.gn        |    28 +-
 .../patch-media_audio_alsa_audio__manager__alsa.cc |    36 +-
 .../patches/patch-media_audio_audio__features.cc   |    13 -
 .../patch-media_audio_audio__input__device.cc      |    16 +-
 .../patches/patch-media_audio_audio__manager.cc    |    31 -
 .../patches/patch-media_audio_audio__manager.h     |    13 -
 ...h-media_audio_audio__output__proxy__unittest.cc |    20 +
 .../patches/patch-media_audio_pulse_pulse__util.cc |    21 +
 ...atch-media_audio_sndio_audio__manager__sndio.cc |   222 +
 ...patch-media_audio_sndio_audio__manager__sndio.h |    75 +
 .../patch-media_audio_sndio_sndio__input.cc        |   209 +
 .../patches/patch-media_audio_sndio_sndio__input.h |   100 +
 .../patch-media_audio_sndio_sndio__output.cc       |   196 +
 .../patch-media_audio_sndio_sndio__output.h        |    97 +
 chromium/patches/patch-media_base_BUILD.gn         |    31 -
 .../patches/patch-media_base_audio__latency.cc     |    14 +-
 .../patch-media_base_libaom__thread__wrapper.cc    |    30 +
 .../patch-media_base_libvpx__thread__wrapper.cc    |    31 +
 .../patches/patch-media_base_media__switches.cc    |   159 +-
 .../patches/patch-media_base_media__switches.h     |    69 +-
 .../patches/patch-media_base_scopedfd__helper.h    |    13 -
 chromium/patches/patch-media_base_status.cc        |    14 -
 ...ch-media_base_user__input__monitor__unittest.cc |    35 +
 chromium/patches/patch-media_base_video__frame.cc  |    81 +-
 chromium/patches/patch-media_base_video__frame.h   |    62 +-
 chromium/patches/patch-media_capture_BUILD.gn      |    13 -
 ...ideo_create__video__capture__device__factory.cc |    26 +-
 ..._video_fake__video__capture__device__factory.cc |    22 +-
 ..._video_file__video__capture__device__factory.cc |    22 +-
 ...h-media_capture_video_linux_fake__v4l2__impl.cc |    17 +
 ...ch-media_capture_video_linux_fake__v4l2__impl.h |    31 +
 ..._capture_video_linux_v4l2__capture__delegate.cc |   236 +-
 ...a_capture_video_linux_v4l2__capture__delegate.h |    61 +-
 ...dia_capture_video_linux_v4l2__capture__device.h |    17 +
 ..._linux_v4l2__capture__device__factory__linux.cc |    47 -
 ...ture_video_linux_v4l2__capture__device__impl.cc |    17 +
 ...pture_video_linux_v4l2__capture__device__impl.h |    17 +
 ...ure_video_linux_v4l2__capture__device__linux.cc |    45 -
 ..._linux_video__capture__device__factory__v4l2.cc |    86 +
 ...o_linux_video__capture__device__factory__v4l2.h |    17 +
 ...re_video_linux_video__capture__device__linux.cc |    17 +
 ...ure_video_video__capture__buffer__pool__impl.cc |    13 -
 ...deo__capture__buffer__tracker__factory__impl.cc |    26 +
 ...capture_video_video__capture__device__client.cc |    24 +-
 chromium/patches/patch-media_cast_BUILD.gn         |    22 -
 .../patch-media_cdm_cdm__paths__unittest.cc        |    17 +
 .../patch-media_cdm_library__cdm_cdm__paths.gni    |     8 +-
 .../patch-media_ffmpeg_scripts_build__ffmpeg.py    |    82 +
 .../patch-media_ffmpeg_scripts_robo__lib_config.py |    64 +
 chromium/patches/patch-media_filters_vp9__parser.h |    12 -
 .../patches/patch-media_gpu_buffer__validation.cc  |    53 +-
 chromium/patches/patch-media_gpu_chromeos_BUILD.gn |    13 -
 ...a_gpu_chromeos_gl__image__processor__backend.cc |    19 +
 ...u_chromeos_libyuv__image__processor__backend.cc |    35 +
 ...pu_chromeos_mailbox__video__frame__converter.cc |    17 +
 ...gpu_chromeos_native__pixmap__frame__resource.cc |    17 +
 ...a_gpu_chromeos_platform__video__frame__utils.cc |    35 +
 ...-media_gpu_chromeos_video__decoder__pipeline.cc |    35 +
 ...gpu_gpu__video__encode__accelerator__factory.cc |    17 +
 ...dware__video__decoding__sandbox__hook__linux.cc |    50 +
 ...rdware__video__decoding__sandbox__hook__linux.h |    22 +
 ...dware__video__encoding__sandbox__hook__linux.cc |    32 +
 ...rdware__video__encoding__sandbox__hook__linux.h |    29 +
 chromium/patches/patch-media_gpu_vaapi_BUILD.gn    |    13 -
 .../patch-media_gpu_vaapi_vaapi__video__decoder.cc |    17 +
 .../patch-media_gpu_vaapi_vaapi__wrapper.cc        |    17 +
 chromium/patches/patch-media_media__options.gni    |    30 +-
 ...ojo_clients_mojo__video__encode__accelerator.cc |    13 -
 .../patches/patch-media_mojo_mojom_stable_BUILD.gn |    17 +
 ...stable__video__decoder__types__mojom__traits.cc |    26 +
 ..._stable__video__decoder__types__mojom__traits.h |    17 +
 ...media_mojo_mojom_video__frame__mojom__traits.cc |    34 +-
 ...media_mojo_services_gpu__mojo__media__client.cc |    22 -
 .../patch-media_video_fake__gpu__memory__buffer.cc |    34 +-
 ...ideo_gpu__memory__buffer__video__frame__pool.cc |    30 +-
 ...ia_video_video__encode__accelerator__adapter.cc |    26 +
 ...eo_video__encode__accelerator__adapter__test.cc |    17 +
 .../patches/patch-media_webrtc_audio__processor.cc |    17 +
 chromium/patches/patch-media_webrtc_helpers.cc     |    25 +
 .../patch-media_webrtc_helpers__unittests.cc       |    44 +
 chromium/patches/patch-mojo_core_BUILD.gn          |    31 +-
 chromium/patches/patch-mojo_core_channel.cc        |    20 +
 .../patches/patch-mojo_core_embedder_features.h    |    17 +
 chromium/patches/patch-mojo_core_test_BUILD.gn     |    22 -
 .../patches/patch-mojo_public_c_system_thunks.cc   |    44 +-
 ...ojo_public_cpp_platform_socket__utils__posix.cc |    10 +-
 ...ch-mojo_public_js_mojo__bindings__resources.grd |    13 -
 .../patch-mojo_public_tools_bindings_mojom.gni     |    46 +-
 chromium/patches/patch-net_BUILD.gn                |   149 +-
 .../patch-net_base_address__tracker__linux.cc      |    75 -
 .../patch-net_base_address__tracker__linux.h       |    15 -
 ...h-net_base_address__tracker__linux__unittest.cc |    16 -
 chromium/patches/patch-net_base_features.cc        |    30 +
 ...tch-net_base_mock__network__change__notifier.cc |    17 +
 ...atch-net_base_mock__network__change__notifier.h |    26 +
 .../patch-net_base_network__change__notifier.cc    |    60 +-
 .../patch-net_base_network__change__notifier.h     |    50 +-
 ...-net_base_network__change__notifier__passive.cc |    17 +
 .../patch-net_base_network__interfaces__posix.h    |     6 +-
 .../patch-net_base_sockaddr__util__posix.cc        |    18 +
 ...tch-net_base_sockaddr__util__posix__unittest.cc |    18 +
 .../patches/patch-net_cert_cert__verify__proc.cc   |    13 -
 .../patches/patch-net_cert_cert__verify__proc.h    |    17 +
 .../patches/patch-net_cert_test__root__certs.h     |    28 -
 .../patch-net_disk__cache_blockfile_disk__format.h |    14 -
 ...net_disk__cache_simple_simple__file__tracker.cc |    26 +
 chromium/patches/patch-net_dns_BUILD.gn            |    49 +
 chromium/patches/patch-net_dns_address__info.cc    |    22 +
 .../patch-net_dns_address__sorter__posix.cc        |    20 +-
 .../patch-net_dns_dns__config__service__posix.cc   |    32 +
 ...et_dns_dns__config__service__posix__unittest.cc |    40 -
 chromium/patches/patch-net_dns_dns__reloader.cc    |    26 +-
 chromium/patches/patch-net_dns_dns__util.cc        |    17 +-
 .../patches/patch-net_dns_host__resolver__proc.cc  |    24 +-
 chromium/patches/patch-net_dns_public_BUILD.gn     |    17 +
 .../patches/patch-net_dns_public_resolv__reader.cc |    17 +
 .../patches/patch-net_dns_public_resolv__reader.h  |    16 +
 .../patch-net_dns_public_scoped__res__state.cc     |    17 +
 .../patch-net_dns_public_scoped__res__state.h      |    16 +
 chromium/patches/patch-net_features.gni            |    13 -
 .../patch-net_filter_zstd__source__stream.cc       |    16 +
 .../patch-net_http_http__auth__gssapi__posix.cc    |    20 +-
 .../patch-net_http_http__auth__gssapi__posix.h     |    21 +-
 ...atch-net_http_http__auth__handler__negotiate.cc |    17 +
 .../patch-net_http_http__auth__preferences.cc      |    17 +
 .../patch-net_http_http__auth__preferences.h       |    35 +
 .../patch-net_http_http__network__session.cc       |    18 +
 ...et_nqe_network__quality__estimator__unittest.cc |    13 -
 ...ution_configured__proxy__resolution__service.cc |    31 -
 ...net_proxy__resolution_proxy__config__service.cc |    41 +
 ...xy__resolution_proxy__config__service__linux.cc |    39 +-
 chromium/patches/patch-net_socket_socket__posix.cc |    12 +-
 .../patch-net_socket_socks5__client__socket.cc     |    19 +-
 .../patches/patch-net_socket_tcp__socket__posix.cc |    22 +-
 .../patches/patch-net_socket_udp__socket__posix.cc |   139 +-
 .../patches/patch-net_socket_udp__socket__posix.h  |    13 -
 .../patch-net_socket_udp__socket__unittest.cc      |    53 +
 ...t_socket_unix__domain__client__socket__posix.cc |    13 -
 .../patches/patch-net_third__party_quiche_BUILD.gn |    22 +-
 ...verify__tool_cert__verify__comparision__tool.cc |    35 +
 ..._tools_cert__verify__tool_cert__verify__tool.cc |    40 +-
 .../patch-net_tools_net__watcher_net__watcher.cc   |    35 +
 ...ch-net_tools_quic_quic__http__proxy__backend.cc |    13 -
 ...ffic__annotation_network__traffic__annotation.h |    26 +-
 .../patches/patch-net_url__request_url__fetcher.cc |    13 -
 .../patches/patch-net_url__request_url__fetcher.h  |    13 -
 ...patch-net_url__request_url__request__context.cc |    18 +-
 .../patch-net_url__request_url__request__context.h |    18 +-
 ..._url__request_url__request__context__builder.cc |    14 +-
 chromium/patches/patch-pdf_BUILD.gn                |    13 -
 .../patches/patch-pdf_pdfium_pdfium__engine.cc     |    62 +-
 .../patches/patch-ppapi_proxy_flash__resource.cc   |    13 -
 chromium/patches/patch-ppapi_tests_test__utils.h   |    27 +
 chromium/patches/patch-printing_BUILD.gn           |    22 -
 .../patch-printing_backend_cups__ipp__helper.cc    |    17 +
 .../patch-printing_backend_print__backend__cups.cc |    26 +
 .../patch-printing_buildflags_buildflags.gni       |    13 -
 .../patches/patch-printing_cups__config__helper.py |    13 -
 ...nting_mojom_printing__context__mojom__traits.cc |    35 +
 ...inting_mojom_printing__context__mojom__traits.h |    17 +
 chromium/patches/patch-printing_print__settings.cc |    44 +
 chromium/patches/patch-printing_print__settings.h  |    55 +-
 .../patch-printing_print__settings__conversion.cc  |    18 +-
 .../patch-printing_printing__context__linux.cc     |    44 +
 .../patches/patch-printing_printing__features.cc   |    23 +
 .../patches/patch-printing_printing__features.h    |    17 +
 ...sandbox_print__backend__sandbox__hook__linux.cc |    56 +
 ..._sandbox_print__backend__sandbox__hook__linux.h |    22 +
 chromium/patches/patch-remoting_BUILD.gn           |    13 -
 .../patch-remoting_base_chromoting__event.cc       |    14 +-
 .../patches/patch-remoting_base_host__settings.cc  |    26 +
 .../patches/patch-remoting_client_display_BUILD.gn |    13 -
 .../patch-remoting_client_display_sys__opengl.h    |    12 +-
 ...h-remoting_codec_webrtc__video__encoder__vpx.cc |    17 +
 chromium/patches/patch-remoting_host_BUILD.gn      |    40 -
 ...ting_host_base_desktop__environment__options.cc |    17 +
 .../patches/patch-remoting_host_base_switches.cc   |    24 +
 .../patches/patch-remoting_host_base_switches.h    |    24 +
 ...ch-remoting_host_basic__desktop__environment.cc |    17 +
 .../patch-remoting_host_chromoting__host.cc        |    17 +
 .../patches/patch-remoting_host_chromoting__host.h |    35 +
 ...atch-remoting_host_chromoting__host__context.cc |    17 +
 ...ting_host_chromoting__host__services__client.cc |    26 +
 .../patches/patch-remoting_host_client__session.cc |    17 +
 ...ch-remoting_host_crash_crash__file__uploader.cc |    17 +
 ..._desktop__and__cursor__conditional__composer.cc |    26 +
 ...patch-remoting_host_desktop__capturer__proxy.cc |    35 +
 ...tch-remoting_host_desktop__capturer__wrapper.cc |    35 +
 .../patch-remoting_host_evaluate__capability.cc    |    12 +-
 .../patch-remoting_host_host__attributes.cc        |    14 +-
 .../patches/patch-remoting_host_host__details.cc   |    16 +-
 chromium/patches/patch-remoting_host_host__main.cc |    50 +-
 .../patches/patch-remoting_host_ipc__constants.cc  |    26 +
 .../patch-remoting_host_it2me_it2me__host.cc       |    35 +
 ...t_it2me_it2me__native__messaging__host__main.cc |    53 +-
 ...ch-remoting_host_me2me__desktop__environment.cc |    41 +-
 ...-remoting_host_mouse__cursor__monitor__proxy.cc |    17 +
 .../patches/patch-remoting_host_policy__watcher.cc |    17 +
 ..._remote__open__url_remote__open__url__client.cc |    26 +
 ...st_remote__open__url_remote__open__url__util.cc |    17 +
 ...mote__open__url_url__forwarder__configurator.cc |    17 +
 .../patch-remoting_host_remoting__me2me__host.cc   |   177 +-
 .../patch-remoting_host_setup_start__host__main.cc |    35 +
 chromium/patches/patch-remoting_host_switches.cc   |    13 -
 chromium/patches/patch-remoting_host_switches.h    |    13 -
 ...hn_remote__webauthn__caller__security__utils.cc |    35 +
 ...bauthn_remote__webauthn__extension__notifier.cc |    34 +
 chromium/patches/patch-remoting_protocol_BUILD.gn  |    13 -
 ...atch-remoting_protocol_webrtc__video__stream.cc |    17 +
 .../patches/patch-remoting_remoting__options.gni   |    15 -
 .../patch-remoting_resources_remoting__strings.grd |    13 -
 chromium/patches/patch-sandbox_BUILD.gn            |    17 +
 chromium/patches/patch-sandbox_features.gni        |    17 +
 chromium/patches/patch-sandbox_linux_BUILD.gn      |    69 +-
 ...sandbox_linux_services_init__process__reaper.cc |    12 +-
 ...tch-sandbox_linux_services_libc__interceptor.cc |    12 +-
 chromium/patches/patch-sandbox_policy_BUILD.gn     |    56 +
 chromium/patches/patch-sandbox_policy_features.cc  |    29 +
 chromium/patches/patch-sandbox_policy_features.h   |    17 +
 ...atch-sandbox_policy_freebsd_sandbox__freebsd.cc |   254 +
 ...patch-sandbox_policy_freebsd_sandbox__freebsd.h |   287 +
 .../patch-sandbox_policy_mojom_sandbox.mojom       |    24 +
 .../patch-sandbox_policy_netbsd_sandbox__netbsd.cc |   254 +
 .../patch-sandbox_policy_netbsd_sandbox__netbsd.h  |   287 +
 ...atch-sandbox_policy_openbsd_sandbox__openbsd.cc |   433 +
 ...patch-sandbox_policy_openbsd_sandbox__openbsd.h |   291 +
 chromium/patches/patch-sandbox_policy_sandbox.cc   |    28 +
 chromium/patches/patch-sandbox_policy_sandbox.h    |    32 +
 .../patches/patch-sandbox_policy_sandbox__type.cc  |   121 +
 chromium/patches/patch-sandbox_policy_switches.cc  |    32 +
 chromium/patches/patch-sandbox_policy_switches.h   |    31 +
 chromium/patches/patch-services_audio_BUILD.gn     |    13 -
 ...h-services_audio_audio__sandbox__hook__linux.cc |    37 +
 ...ch-services_audio_audio__sandbox__hook__linux.h |    22 +
 chromium/patches/patch-services_device_BUILD.gn    |    23 +-
 .../patches/patch-services_device_battery_BUILD.gn |    13 -
 .../patch-services_device_geolocation_BUILD.gn     |    13 -
 ...ices_device_geolocation_location__arbitrator.cc |    13 -
 .../patches/patch-services_device_hid_BUILD.gn     |    48 +-
 ...ch-services_device_hid_hid__connection__fido.cc |   225 +
 ...tch-services_device_hid_hid__connection__fido.h |    69 +
 ...services_device_hid_hid__connection__freebsd.cc |   249 +
 ...-services_device_hid_hid__connection__freebsd.h |    76 +
 ...h-services_device_hid_hid__connection__netbsd.c |   245 -
 ...-services_device_hid_hid__connection__netbsd.cc |   249 +
 ...h-services_device_hid_hid__connection__netbsd.h |    33 +-
 .../patch-services_device_hid_hid__service.cc      |    30 +
 ...patch-services_device_hid_hid__service__fido.cc |   405 +
 .../patch-services_device_hid_hid__service__fido.h |    74 +
 ...ch-services_device_hid_hid__service__freebsd.cc |   404 +
 ...tch-services_device_hid_hid__service__freebsd.h |    58 +
 ...tch-services_device_hid_hid__service__netbsd.cc |    85 +-
 ...atch-services_device_hid_hid__service__netbsd.h |    26 +-
 ...ce_public_cpp_generic__sensor_sensor__reading.h |    17 +
 .../patch-services_device_public_mojom_BUILD.gn    |    17 +
 .../patches/patch-services_device_serial_BUILD.gn  |    14 +-
 ...ces_device_serial_serial__device__enumerator.cc |    26 +-
 ...ces_device_serial_serial__io__handler__posix.cc |    12 +-
 ...me__zone__monitor_time__zone__monitor__linux.cc |    14 +-
 .../patches/patch-services_device_usb_BUILD.gn     |    40 +
 .../patch-services_device_usb_usb__service.cc      |    42 +
 ...patch-services_device_usb_usb__service__fake.cc |    58 +
 .../patch-services_device_usb_usb__service__fake.h |    57 +
 ...device_wake__lock_power__save__blocker_BUILD.gn |    13 -
 chromium/patches/patch-services_network_BUILD.gn   |    33 +-
 .../patch-services_network_network__context.cc     |    31 +-
 .../patch-services_network_network__context.h      |    17 +
 ...rvices_network_network__sandbox__hook__linux.cc |    45 +-
 ...ervices_network_network__sandbox__hook__linux.h |    20 +
 .../patch-services_network_network__service.cc     |    39 +-
 .../patch-services_network_network__service.h      |    42 +-
 .../patch-services_network_public_cpp_BUILD.gn     |    26 +
 .../patch-services_network_public_cpp_features.cc  |    17 +
 .../patch-services_network_public_mojom_BUILD.gn   |    32 +-
 ...ionary_shared__dictionary__writer__in__memory.h |    17 +
 ..._on__device__model_on__device__model__service.h |    28 +
 ...ervices_on__device__model_pre__sandbox__init.cc |    44 +
 ..._instrumentation_queued__request__dispatcher.cc |    62 +-
 ...tor_public_cpp_memory__instrumentation_BUILD.gn |    24 +
 ...ublic_cpp_memory__instrumentation_os__metrics.h |    22 +-
 ...cpp_memory__instrumentation_os__metrics__bsd.cc |    75 +
 ...p_memory__instrumentation_os__metrics__linux.cc |    75 -
 ...ces_resource__coordinator_public_mojom_BUILD.gn |    13 -
 ...tch-services_screen__ai_public_cpp_utilities.cc |    35 +
 ..._ai_sandbox_screen__ai__sandbox__hook__linux.cc |    24 +
 ...__ai_sandbox_screen__ai__sandbox__hook__linux.h |    22 +
 .../patch-services_service__manager_BUILD.gn       |    17 +
 ...tch-services_service__manager_embedder_BUILD.gn |    22 -
 ...atch-services_service__manager_embedder_main.cc |    13 -
 ...__manager_embedder_set__process__title__linux.h |    22 -
 ...manager_public_cpp_service__executable_BUILD.gn |    23 +-
 ...h-services_service__manager_sandbox_switches.cc |    13 -
 ...ch-services_service__manager_sandbox_switches.h |    13 -
 ...ices_tracing_public_cpp_perfetto_trace__time.cc |    27 -
 ...vices_tracing_public_cpp_perfetto_trace__time.h |    13 -
 ...p_stack__sampling_tracing__sampler__profiler.cc |    22 +-
 ...rvices_video__capture_broadcasting__receiver.cc |    22 -
 ...ture_public_mojom_video__capture__service.mojom |    21 +
 ...video__capture_video__capture__service__impl.cc |    44 +
 ..._video__capture_video__capture__service__impl.h |    35 +
 ...ileged_mojom_compositing_display__private.mojom |    13 -
 chromium/patches/patch-skia_BUILD.gn               |    40 -
 .../patch-skia_ext_SkMemory__new__handler.cpp      |    34 +-
 chromium/patches/patch-skia_ext_font__utils.cc     |    26 +
 chromium/patches/patch-skia_ext_platform__canvas.h |     6 +-
 .../patches/patch-skia_ext_skcolorspace__trfn.cc   |    17 +
 ...atch-third__party_abseil-cpp_absl_base_config.h |    27 +
 ...y_abseil-cpp_absl_base_internal_raw__logging.cc |    17 +
 ..._party_abseil-cpp_absl_base_internal_sysinfo.cc |    71 +
 ...l-cpp_absl_debugging_internal_elf__mem__image.h |    18 +
 ...sl_time_internal_cctz_src_time__zone__format.cc |    18 +
 .../patches/patch-third__party_afl_src_afl-fuzz.c  |    48 +
 chromium/patches/patch-third__party_angle_BUILD.gn |    54 +-
 .../patches/patch-third__party_angle_gni_angle.gni |    49 -
 .../patch-third__party_angle_src_common_platform.h |    30 +
 ...ird__party_angle_src_common_platform__helpers.h |    17 +
 ...third__party_angle_src_common_system__utils.cpp |    17 +
 ...party_angle_src_common_system__utils__linux.cpp |    45 +
 ..._party_angle_src_compiler_translator_InfoSink.h |    13 -
 ...ngle_src_gpu__info__util_SystemInfo__internal.h |    22 +-
 ...ngle_src_gpu__info__util_SystemInfo__libpci.cpp |    97 +-
 ...angle_src_gpu__info__util_SystemInfo__linux.cpp |    31 +-
 ...y_angle_src_gpu__info__util_SystemInfo__x11.cpp |    17 +-
 ...tch-third__party_angle_src_libANGLE_Display.cpp |    42 +-
 ...third__party_angle_src_libANGLE_formatutils.cpp |    17 +
 ...y_angle_src_libANGLE_renderer_driver__utils.cpp |    52 -
 ...rty_angle_src_libANGLE_renderer_driver__utils.h |    13 -
 ...e_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp |    21 +
 ...e_src_libANGLE_renderer_vulkan_DisplayVk__api.h |    14 +-
 .../patch-third__party_angle_src_libGLESv2.gni     |    13 -
 .../patch-third__party_angle_src_tests_BUILD.gn    |    92 -
 ...hird__party_angle_third__party_glmark2_BUILD.gn |    38 -
 ..._third__party_vulkan-loader_src_loader_loader.c |    13 -
 ...vulkan-loader_src_loader_vk__loader__platform.h |    13 -
 ...dation-layers_src_layers_vk__loader__platform.h |    13 -
 .../patches/patch-third__party_angle_util_BUILD.gn |    21 +-
 ...erences_renderer__preferences__mojom__traits.cc |    17 +
 ...n_renderer__preferences_renderer__preferences.h |    17 +
 ...ferences_renderer__preferences__mojom__traits.h |    17 +
 .../patch-third__party_blink_public_mojom_BUILD.gn |    13 -
 ...h-third__party_blink_public_platform_platform.h |    17 +
 ...hird__party_blink_public_platform_web__vector.h |    17 +
 .../patch-third__party_blink_renderer_BUILD.gn     |    13 -
 ...rer_bindings_scripts_bind__gen_style__format.py |    37 +-
 ...renderer_build_scripts_run__with__pythonpath.py |    16 +
 ...third__party_blink_renderer_controller_BUILD.gn |    40 -
 ...blink_renderer_controller_blink__initializer.cc |    50 +-
 ...rer_controller_memory__usage__monitor__posix.cc |    22 +-
 ...erer_controller_memory__usage__monitor__posix.h |    36 +-
 ...link_renderer_core_editing_editing__behavior.cc |    12 +-
 ...erer_core_execution__context_navigator__base.cc |    17 +
 ...blink_renderer_core_exported_web__view__impl.cc |    26 +
 ...y_blink_renderer_core_frame_web__frame__test.cc |    26 +
 ...ore_html_canvas_canvas__async__blob__creator.cc |    14 +-
 ...nderer_core_html_forms_internal__popup__menu.cc |    13 -
 ...erer_core_inspector_inspector__memory__agent.cc |    18 +-
 ...hird__party_blink_renderer_core_layout_BUILD.gn |    13 -
 ...arty_blink_renderer_core_layout_layout__view.cc |    26 +-
 ...party_blink_renderer_core_paint_paint__layer.cc |    18 +-
 ..._renderer_core_scroll_scrollbar__theme__aura.cc |    28 +-
 ...party_blink_renderer_core_xml_xslt__processor.h |    20 +
 ...k_renderer_core_xml_xslt__processor__libxslt.cc |    20 +
 ...r_modules_media_audio_audio__device__factory.cc |    17 +
 ..._audio_audio__renderer__mixer__manager__test.cc |    17 +
 ..._mediastream_processed__local__audio__source.cc |    13 -
 ...peerconnection_webrtc__audio__renderer__test.cc |    17 +
 ...odules_webaudio_audio__worklet__thread__test.cc |    17 +
 ...odules_webgl_webgl__rendering__context__base.cc |    17 +
 ...rty_blink_renderer_modules_webgpu_gpu__queue.cc |    17 +
 ...h-third__party_blink_renderer_platform_BUILD.gn |    22 +-
 ...ty_blink_renderer_platform_fonts_font__cache.cc |    22 +-
 ...rty_blink_renderer_platform_fonts_font__cache.h |    48 +-
 ...nk_renderer_platform_fonts_font__description.cc |    22 +-
 ..._blink_renderer_platform_fonts_font__metrics.cc |    40 +-
 ...renderer_platform_fonts_font__platform__data.cc |    26 +
 ...er_platform_fonts_font__unique__name__lookup.cc |    26 +-
 ...nderer_platform_fonts_skia_font__cache__skia.cc |    33 +-
 ...rer_platform_graphics_begin__frame__provider.cc |    21 +
 ...er_platform_graphics_video__frame__submitter.cc |    16 +-
 ...ion_partition__alloc__memory__dump__provider.cc |    34 +
 ..._peerconnection_rtc__video__encoder__factory.cc |    23 +
 ...derer_platform_runtime__enabled__features.json5 |    98 +
 ...arty_blink_renderer_platform_scheduler_BUILD.gn |    13 -
 ...nk_renderer_platform_scheduler_common_thread.cc |    17 +
 ...platform_video__capture_video__capture__impl.cc |    17 +
 ...g_blink__categorized__worker__pool__delegate.cc |    17 +
 ..._renderer_platform_wtf_container__annotations.h |    20 +-
 ...arty_blink_renderer_platform_wtf_math__extras.h |    29 +
 ...arty_blink_renderer_platform_wtf_stack__util.cc |    76 +-
 ..._renderer_platform_wtf_text_text__codec__icu.cc |    24 +
 ..._blink_renderer_platform_wtf_thread__specific.h |    18 +
 .../patches/patch-third__party_boringssl_BUILD.gn  |    46 -
 ...party_boringssl_src_crypto_bio_socket__helper.c |    15 -
 ...ch-third__party_boringssl_src_crypto_ex__data.c |    15 -
 ...d__party_boringssl_src_include_openssl_thread.h |    16 -
 .../patches/patch-third__party_breakpad_BUILD.gn   |    13 -
 ...reakpad_src_common_simple__string__dictionary.h |    13 -
 .../patch-third__party_brotli_common_platform.h    |    17 +
 .../patch-third__party_brotli_common_transform.c   |    13 -
 ...on_src_google_cacheinvalidation_include_types.h |    13 -
 ...-third__party_closure__compiler_compile__js.gni |    13 -
 .../patches/patch-third__party_cpuinfo_cpuinfo.gni |    17 +
 ...ashpad_crashpad_build_crashpad__buildconfig.gni |    27 +-
 ...-third__party_crashpad_crashpad_client_BUILD.gn |    17 +-
 ...hpad_crashpad_client_crashpad__client__posix.cc |    12 +-
 ...ashpad_minidump_minidump__misc__info__writer.cc |    21 +
 ...ty_crashpad_crashpad_util_misc_address__types.h |    18 +-
 ..._crashpad_crashpad_util_misc_capture__context.h |    30 +-
 ...d__party_crashpad_crashpad_util_misc_metrics.cc |    14 +-
 ...hird__party_crashpad_crashpad_util_misc_uuid.cc |    14 +-
 ...crashpad_crashpad_util_posix_close__multiple.cc |    23 +-
 ...rashpad_crashpad_util_posix_drop__privileges.cc |    10 +-
 ...__party_crashpad_crashpad_util_posix_signals.cc |    37 +-
 ...ashpad_util_posix_symbolic__constants__posix.cc |    20 +-
 .../patches/patch-third__party_crc32c_BUILD.gn     |    10 +-
 chromium/patches/patch-third__party_dav1d_BUILD.gn |    13 -
 ..._party_dawn_include_dawn_native_VulkanBackend.h |    18 +
 ...h-third__party_dawn_scripts_dawn__component.gni |    13 -
 ...ch-third__party_dawn_scripts_dawn__features.gni |    28 -
 .../patch-third__party_dawn_src_common_BUILD.gn    |    13 -
 ...ch-third__party_dawn_src_dawn_common_Platform.h |    20 +
 ...party_dawn_src_dawn_native_vulkan_BackendVk.cpp |    17 +
 ...third__party_dawn_third__party_gn_glfw_BUILD.gn |    30 -
 ...tch-third__party_devtools-frontend_src_BUILD.gn |    22 -
 chromium/patches/patch-third__party_expat_BUILD.gn |    13 -
 .../patches/patch-third__party_ffmpeg_BUILD.gn     |    16 +
 ...patch-third__party_ffmpeg_ffmpeg__generated.gni |    13 -
 .../patch-third__party_ffmpeg_ffmpeg__options.gni  |    13 -
 ...atch-third__party_ffmpeg_libavcodec_x86_cabac.h |    18 +
 .../patch-third__party_ffmpeg_libavutil_cpu.c      |    20 +
 .../patch-third__party_ffmpeg_libavutil_mem.c      |    12 +-
 ...ch-third__party_ffmpeg_libavutil_random__seed.c |    31 +
 ...ch-third__party_ffmpeg_libavutil_x86_x86inc.asm |    29 +
 ...patch-third__party_flatbuffers_src_src_util.cpp |    22 -
 .../patches/patch-third__party_fontconfig_BUILD.gn |    13 -
 .../patch-third__party_fontconfig_fontconfig.gni   |    15 -
 .../patch-third__party_fontconfig_include_config.h |    55 +
 ...atch-third__party_fontconfig_src_src_fccompat.c |    19 +
 .../patches/patch-third__party_freetype_BUILD.gn   |    20 -
 chromium/patches/patch-third__party_icu_BUILD.gn   |    31 -
 .../patch-third__party_icu_source_common_putil.cpp |    13 -
 ...tch-third__party_icu_source_common_umapfile.cpp |    13 -
 chromium/patches/patch-third__party_ijar_BUILD.gn  |    13 -
 ...rd__party_ipcz_src_reference__drivers_random.cc |    55 +
 ...hird__party_ipcz_src_standalone_base_logging.cc |    18 +
 ...tch-third__party_leveldatabase_env__chromium.cc |    23 +-
 .../patches/patch-third__party_libXNVCtrl_NVCtrl.c |    27 -
 ...m_source_libaom_aom__ports_aarch64__cpudetect.c |    56 +
 .../patch-third__party_libc++_src_src_chrono.cpp   |    18 +
 ...libc++_src_src_filesystem_filesystem__clock.cpp |    18 +
 ...ird__party_libc++abi_src_src_cxa__guard__impl.h |    26 +
 .../patches/patch-third__party_libdrm_BUILD.gn     |    13 -
 .../patch-third__party_libdrm_src_xf86drmMode.c    |    29 +
 .../patch-third__party_libjpeg__turbo_BUILD.gn     |    13 -
 ...st_cpp_src_phonenumbers_base_memory_singleton.h |    25 +-
 ...pp_src_phonenumbers_base_synchronization_lock.h |    25 +-
 ...ist_cpp_src_phonenumbers_base_thread__checker.h |    26 +-
 .../patches/patch-third__party_libpng_pnglibconf.h |    15 -
 ...ch-third__party_libsync_src_include_sync_sync.h |    18 +
 .../patches/patch-third__party_libsync_src_sync.c  |    31 +
 .../patches/patch-third__party_libusb_BUILD.gn     |    58 +
 .../patch-third__party_libusb_src_libusb_core.c    |    17 +
 ...rd__party_libusb_src_libusb_os_threads__posix.c |    30 +
 ...x_source_libvpx_vpx__ports_aarch64__cpudetect.c |    34 +
 .../patches/patch-third__party_libxml_BUILD.gn     |    22 -
 .../patches/patch-third__party_libxslt_BUILD.gn    |    13 -
 .../patches/patch-third__party_libyuv_BUILD.gn     |    31 -
 .../patch-third__party_lzma__sdk_C_CpuArch.c       |    50 +
 ...ial__color__utilities_src_cpp_palettes_tones.cc |    17 +
 .../patches/patch-third__party_minigbm_BUILD.gn    |    13 -
 chromium/patches/patch-third__party_nasm_BUILD.gn  |    22 +
 .../patch-third__party_nasm_config_config-linux.h  |   111 +-
 chromium/patches/patch-third__party_node_node.gni  |    17 +
 chromium/patches/patch-third__party_node_node.py   |    14 +-
 .../patches/patch-third__party_openh264_BUILD.gn   |    49 -
 ...ird__party_openscreen_src_build_config_BUILD.gn |    13 -
 ...arty_openscreen_src_build_config_BUILDCONFIG.gn |    25 -
 ...h-third__party_openscreen_src_platform_BUILD.gn |    22 -
 ..._openscreen_src_third__party_boringssl_BUILD.gn |    13 -
 ...third__party_chromium__quic_build_base_BUILD.gn |    35 -
 .../patches/patch-third__party_pdfium_BUILD.gn     |    13 -
 ...hird__party_pdfium_core_fxcrt_cfx__datetime.cpp |    13 -
 ...tch-third__party_pdfium_core_fxcrt_fx__system.h |    13 -
 .../patch-third__party_pdfium_core_fxge_BUILD.gn   |    13 -
 ...ird__party_pdfium_core_fxge_cfx__fontmapper.cpp |    17 +
 ...third__party_pdfium_core_fxge_fx__ge__linux.cpp |    12 -
 ...arty_pdfium_core_fxge_linux_fx__linux__impl.cpp |    29 +
 ...third__party_pdfium_fxjs_cjs__publicmethods.cpp |   108 -
 ...patch-third__party_pdfium_fxjs_cjs__runtime.cpp |    13 -
 ...-third__party_pdfium_fxjs_fx__date__helpers.cpp |    28 +
 .../patches/patch-third__party_pdfium_pdfium.gni   |    17 +
 .../patch-third__party_pdfium_skia_BUILD.gn        |    31 -
 ...ium_xfa_fgas_font_cfx__fontsourceenum__file.cpp |    12 -
 ...fium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp |    47 +
 ...patch-third__party_perfetto_buildtools_BUILD.gn |    22 -
 .../patch-third__party_perfetto_gn_BUILD.gn        |    13 -
 .../patch-third__party_perfetto_gn_perfetto.gni    |    22 -
 ...hird__party_perfetto_gn_perfetto__unittests.gni |    13 -
 ...ch-third__party_perfetto_gn_standalone_BUILD.gn |    40 -
 ..._perfetto_include_perfetto_base_build__config.h |   100 +-
 ..._perfetto_include_perfetto_base_thread__utils.h |    26 +-
 ...rd__party_perfetto_include_perfetto_base_time.h |    26 +-
 ..._perfetto_include_perfetto_base_unix__socket.cc |    28 -
 ..._perfetto_include_perfetto_ext_base_event__fd.h |    17 +
 ...fetto_include_perfetto_ext_base_thread__utils.h |    21 +
 ...rfetto_include_perfetto_ext_base_unix__socket.h |    14 -
 ...erfetto_tracing_internal_track__event__legacy.h |    17 +
 ...erfetto_protos_perfetto_trace_ftrace_v4l2.proto |    62 +
 .../patch-third__party_perfetto_src_base_BUILD.gn  |    22 -
 ...tch-third__party_perfetto_src_base_event__fd.cc |    28 +
 ...hird__party_perfetto_src_base_periodic__task.cc |    26 +
 ...third__party_perfetto_src_base_string__utils.cc |    21 +
 ...d__party_perfetto_src_base_subprocess__posix.cc |    28 +
 ...party_perfetto_src_base_test_vm__test__utils.cc |    17 +
 ...party_perfetto_src_base_thread__task__runner.cc |    20 +
 ...-third__party_perfetto_src_base_unix__socket.cc |    46 +
 ...ce__processor_importers_ftrace_v4l2__tracker.cc |    62 +
 ...y_perfetto_src_tracing_core_clock__snapshots.cc |    18 +
 ...etto_src_tracing_core_tracing__service__impl.cc |    12 -
 ...-third__party_perfetto_src_tracing_ipc_memfd.cc |    18 +
 ...atch-third__party_perfetto_src_tracing_track.cc |    17 +
 .../patch-third__party_perfetto_tools_BUILD.gn     |    22 -
 ...uf_src_google_protobuf_stubs_platform__macros.h |    12 +-
 chromium/patches/patch-third__party_skia_BUILD.gn  |   123 -
 .../patches/patch-third__party_skia_gn_BUILD.gn    |    33 -
 .../patches/patch-third__party_skia_gn_skia.gni    |    36 -
 ...-third__party_skia_src_gpu_GrAutoLocaleSetter.h |    13 -
 ..._party_skia_src_gpu_ganesh_GrAutoLocaleSetter.h |    17 +
 ...-third__party_skia_src_images_SkJpegEncoder.cpp |    43 -
 ...hird__party_skia_src_ports_SkMemory__malloc.cpp |    27 +
 ...third__party_skia_src_ports_SkOSFile__posix.cpp |    17 +
 .../patch-third__party_skia_src_sksl_SkSLString.h  |    13 -
 ...-third__party_skia_third__party_angle2_BUILD.gn |    26 -
 ...-third__party_skia_third__party_libsdl_BUILD.gn |    15 -
 ...-third__party_skia_third__party_opencl_BUILD.gn |    15 -
 ...__party_speech-dispatcher_libspeechd__version.h |    38 +
 ...third__party_speech-dispatcher_speechd__types.h |   148 +
 .../patches/patch-third__party_sqlite_BUILD.gn     |    30 +-
 ...d__party_sqlite_src_amalgamation__dev_sqlite3.c |    18 +
 ...-third__party_sqlite_src_amalgamation_sqlite3.c |    47 +
 .../patch-third__party_swiftshader_BUILD.gn        |    13 -
 ...__party_swiftshader_src_Common_Configurator.cpp |    14 -
 ...ird__party_swiftshader_src_Common_MutexLock.hpp |    13 -
 ..._party_swiftshader_src_Common_SharedLibrary.hpp |    13 -
 ...atch-third__party_swiftshader_src_Main_BUILD.gn |    13 -
 ...ird__party_swiftshader_src_Main_SwiftConfig.cpp |    16 -
 ..._party_swiftshader_src_OpenGL_compiler_BUILD.gn |    13 -
 ...d__party_swiftshader_src_OpenGL_libEGL_BUILD.gn |    13 -
 ...party_swiftshader_src_OpenGL_libEGL_Display.cpp |    22 -
 ...party_swiftshader_src_OpenGL_libEGL_Surface.cpp |    13 -
 ..._party_swiftshader_src_OpenGL_libEGL_libEGL.cpp |    31 -
 ..._party_swiftshader_src_OpenGL_libEGL_libEGL.hpp |    13 -
 ...ftshader_src_OpenGL_libGLES__CM_libGLES__CM.hpp |    13 -
 ...party_swiftshader_src_OpenGL_libGLESv2_BUILD.gn |    13 -
 ..._swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp |    13 -
 ...h-third__party_swiftshader_src_Reactor_BUILD.gn |    40 -
 ...-third__party_swiftshader_src_Reactor_Debug.cpp |    56 +-
 ...ch-third__party_swiftshader_src_System_BUILD.gn |    22 -
 ...__party_swiftshader_src_System_Configurator.cpp |    18 +
 ...h-third__party_swiftshader_src_System_Debug.cpp |    58 -
 ...d__party_swiftshader_src_System_Linux_MemFd.cpp |    43 +
 ...tshader_src_Vulkan_VkSemaphoreExternalLinux.hpp |    26 +
 ...patch-third__party_swiftshader_src_WSI_BUILD.gn |    13 -
 ...tch-third__party_swiftshader_src_WSI_libXCB.cpp |    26 +
 ...ch-third__party_swiftshader_src_vulkan_BUILD.gn |    31 -
 ...10.0_configs_linux_include_llvm_Config_config.h |   180 +
 ...arty_swiftshader_third__party_llvm-7.0_BUILD.gn |    13 -
 ...nfigs_netbsd_include_llvm_Config_AsmParsers.def |    45 -
 ...figs_netbsd_include_llvm_Config_AsmPrinters.def |    48 -
 ...gs_netbsd_include_llvm_Config_Disassemblers.def |    46 -
 ..._configs_netbsd_include_llvm_Config_Targets.def |    47 -
 ...nfigs_netbsd_include_llvm_Config_abi-breaking.h |    55 -
 ...7.0_configs_netbsd_include_llvm_Config_config.h |   349 -
 ...onfigs_netbsd_include_llvm_Config_llvm-config.h |    90 -
 ...ubzero_build_Linux_include_llvm_Config_config.h |    53 +
 ...llvm_CMakeFiles_CMakeDirectoryInformation.cmake |    21 -
 ...d_NetBSD_include_llvm_CMakeFiles_progress.marks |     6 -
 ...build_NetBSD_include_llvm_Config_AsmParsers.def |    45 -
 ...uild_NetBSD_include_llvm_Config_AsmPrinters.def |    48 -
 ...ld_NetBSD_include_llvm_Config_Disassemblers.def |    46 -
 ...ro_build_NetBSD_include_llvm_Config_Targets.def |    47 -
 ...build_NetBSD_include_llvm_Config_abi-breaking.h |    55 -
 ...bzero_build_NetBSD_include_llvm_Config_config.h |   351 -
 ..._build_NetBSD_include_llvm_Config_llvm-config.h |    90 -
 ...ero_build_NetBSD_include_llvm_IR_Attributes.gen |   463 -
 ...m_IR_CMakeFiles_CMakeDirectoryInformation.cmake |    21 -
 ...CMakeFiles_intrinsics__gen.dir_DependInfo.cmake |    16 -
 ...vm_IR_CMakeFiles_intrinsics__gen.dir_build.make |   265 -
 ...akeFiles_intrinsics__gen.dir_cmake__clean.cmake |    19 -
 ...IR_CMakeFiles_intrinsics__gen.dir_progress.make |    12 -
 ...etBSD_include_llvm_IR_CMakeFiles_progress.marks |     6 -
 ...ero_build_NetBSD_include_llvm_IR_Intrinsics.gen | 34229 -------------------
 ...m-subzero_build_NetBSD_include_llvm_IR_Makefile |   249 -
 ...ild_NetBSD_include_llvm_IR_cmake__install.cmake |    39 -
 ...llvm-subzero_build_NetBSD_include_llvm_Makefile |   233 -
 ...port_CMakeFiles_CMakeDirectoryInformation.cmake |    21 -
 ...Files_llvm__vcsrevision__h.dir_DependInfo.cmake |    16 -
 ..._CMakeFiles_llvm__vcsrevision__h.dir_build.make |   101 -
 ...les_llvm__vcsrevision__h.dir_cmake__clean.cmake |    13 -
 ...akeFiles_llvm__vcsrevision__h.dir_progress.make |     6 -
 ..._include_llvm_Support_CMakeFiles_progress.marks |     6 -
 ...zero_build_NetBSD_include_llvm_Support_Makefile |   249 -
 ...build_NetBSD_include_llvm_Support_VCSRevision.h |     6 -
 ...etBSD_include_llvm_Support_cmake__install.cmake |    39 -
 ..._build_NetBSD_include_llvm_cmake__install.cmake |    46 -
 ...zero_build_NetBSD_include_llvm_module.modulemap |    18 -
 ...ty_swiftshader_third__party_marl_src_memory.cpp |    13 +-
 ...ty_swiftshader_third__party_marl_src_thread.cpp |    24 +-
 ...ch-third__party_test__fonts_fontconfig_BUILD.gn |    21 +
 ...st__fonts_fontconfig_fontconfig__util__linux.cc |    33 +
 ...onts_fontconfig_generate__fontconfig__caches.cc |    26 +
 .../patches/patch-third__party_tflite_features.gni |    19 +
 .../patches/patch-third__party_unrar_src_crypt.cpp |    17 +
 .../patches/patch-third__party_usrsctp_BUILD.gn    |    15 -
 ...layers_src_layers_external_vma_vk__mem__alloc.h |    17 +
 ...ers_vulkan_generated_vk__function__pointers.cpp |    18 +
 ...kan__memory__allocator_include_vk__mem__alloc.h |    17 +
 .../patches/patch-third__party_wayland_BUILD.gn    |    20 +
 .../patch-third__party_wayland_include_config.h    |    35 +
 .../patches/patch-third__party_webrtc_BUILD.gn     |    10 +-
 .../patch-third__party_webrtc_audio_BUILD.gn       |    13 -
 .../patch-third__party_webrtc_examples_BUILD.gn    |    31 -
 ...rd__party_webrtc_modules_audio__coding_BUILD.gn |    13 -
 ...rd__party_webrtc_modules_audio__device_BUILD.gn |    21 +-
 ..._party_webrtc_modules_desktop__capture_BUILD.gn |    31 -
 ...s_desktop__capture_linux_wayland_egl__dmabuf.cc |    24 +
 ...__capture_linux_x11_x__server__pixel__buffer.cc |    21 +
 ..._rtp__rtcp_source_forward__error__correction.cc |    12 -
 ...d__party_webrtc_modules_video__capture_BUILD.gn |    29 -
 .../patch-third__party_webrtc_rtc__base_BUILD.gn   |    17 -
 ...tch-third__party_webrtc_rtc__base_byte__order.h |    17 +
 ...rd__party_webrtc_rtc__base_ifaddrs__converter.h |    13 -
 ...ch-third__party_webrtc_rtc__base_ip__address.cc |    16 +-
 ...tch-third__party_webrtc_rtc__base_ip__address.h |    15 -
 ...d__party_webrtc_rtc__base_net__test__helpers.cc |    16 +
 .../patch-third__party_webrtc_rtc__base_network.cc |    10 +-
 .../patch-third__party_webrtc_rtc__base_network.h  |    15 -
 ...ty_webrtc_rtc__base_physical__socket__server.cc |    96 +-
 ...rty_webrtc_rtc__base_physical__socket__server.h |    20 +-
 ...rty_webrtc_rtc__base_platform__thread__types.cc |    52 +-
 ...webrtc_rtc__base_third__party_sigslot_sigslot.h |    29 +
 ...h-third__party_webrtc_system__wrappers_BUILD.gn |    25 +-
 .../patch-third__party_webrtc_test_BUILD.gn        |    25 -
 .../patches/patch-third__party_webrtc_webrtc.gni   |    13 -
 .../patch-third__party_widevine_cdm_widevine.gni   |    17 +
 chromium/patches/patch-third__party_zlib_BUILD.gn  |    32 +-
 .../patch-third__party_zlib_cpu__features.c        |    54 +-
 chromium/patches/patch-tools_binary__size_BUILD.gn |    13 -
 ...ools_binary__size_libsupersize_caspian_BUILD.gn |    13 -
 ...erate__shim__headers_generate__shim__headers.py |    27 +
 .../patches/patch-tools_generate__stubs_rules.gni  |    16 +
 ...atch-tools_gn_build_build__linux.ninja.template |    17 +
 chromium/patches/patch-tools_gn_build_gen.py       |    66 +-
 .../patch-tools_gn_src_base_files_file__posix.cc   |    17 +
 .../patch-tools_gn_src_base_files_file__util.h     |    15 -
 ...ch-tools_gn_src_base_files_file__util__posix.cc |    15 -
 .../patch-tools_gn_src_base_files_scoped__file.cc  |    15 -
 chromium/patches/patch-tools_gn_src_gn_args.cc     |    15 -
 chromium/patches/patch-tools_gn_src_gn_version.h   |    32 +-
 .../patches/patch-tools_gn_src_util_exe__path.cc   |    90 +-
 chromium/patches/patch-tools_grit_grit__rule.gni   |    22 -
 .../patches/patch-tools_grit_grit_node_base.py     |    18 +
 .../patch-tools_ipc__fuzzer_ipc__fuzzer.gni        |    11 -
 ...son__schema__compiler_cpp__bundle__generator.py |    17 +
 ...ols_json__schema__compiler_feature__compiler.py |    11 +-
 .../patch-tools_json__schema__compiler_model.py    |    13 -
 ...ls_memory_partition__allocator_inspect__utils.h |    17 +
 ...ch-tools_perf_chrome__telemetry__build_BUILD.gn |    19 +-
 .../patch-tools_protoc__wrapper_protoc__wrapper.py |    30 +
 .../patch-tools_v8__context__snapshot_BUILD.gn     |    46 +
 ...atch-tools_variations_fieldtrial__to__struct.py |    10 +-
 chromium/patches/patch-ui_aura_BUILD.gn            |    13 -
 .../patch-ui_aura_client_drag__drop__client.h      |    17 +
 chromium/patches/patch-ui_aura_screen__ozone.cc    |    17 +
 chromium/patches/patch-ui_aura_screen__ozone.h     |    26 +
 chromium/patches/patch-ui_base_BUILD.gn            |   108 -
 ...patch-ui_base_clipboard_clipboard__constants.cc |    17 +
 .../patch-ui_base_clipboard_clipboard__constants.h |    17 +
 ...tch-ui_base_clipboard_clipboard__non__backed.cc |    17 +
 .../patch-ui_base_cursor_cursor__factory.cc        |    17 +
 .../patches/patch-ui_base_cursor_cursor__factory.h |    17 +
 ...agdrop_os__exchange__data__provider__factory.cc |    32 +-
 ...op_os__exchange__data__provider__non__backed.cc |    17 +
 chromium/patches/patch-ui_base_idle_BUILD.gn       |    13 -
 ...patch-ui_base_ime_dummy__text__input__client.cc |    17 +
 .../patch-ui_base_ime_dummy__text__input__client.h |    17 +
 .../patch-ui_base_ime_fake__text__input__client.cc |    17 +
 .../patch-ui_base_ime_fake__text__input__client.h  |    17 +
 ...-ui_base_ime_init_input__method__initializer.cc |    59 +-
 chromium/patches/patch-ui_base_ime_linux_BUILD.gn  |    13 -
 ...linux_linux__input__method__context__factory.cc |    26 +
 .../patch-ui_base_ime_text__input__client.h        |    17 +
 .../patch-ui_base_resource_resource__bundle.cc     |    25 +-
 ...ch-ui_base_resource_resource__bundle__netbsd.cc |    26 -
 .../patch-ui_base_test_skia__gold__pixel__diff.cc  |    17 +
 chromium/patches/patch-ui_base_test_ui__controls.h |    17 +
 .../patches/patch-ui_base_ui__base__features.cc    |    49 +-
 .../patches/patch-ui_base_ui__base__features.h     |    13 -
 .../patches/patch-ui_base_ui__base__switches.cc    |    24 +
 .../patches/patch-ui_base_ui__base__switches.h     |    22 +
 chromium/patches/patch-ui_base_ui__features.gni    |    21 -
 .../patches/patch-ui_base_webui_web__ui__util.cc   |    31 +-
 .../patch-ui_base_x_x11__cursor__factory.cc        |    26 +
 .../patches/patch-ui_base_x_x11__cursor__factory.h |    26 +
 .../patches/patch-ui_base_x_x11__cursor__loader.cc |    47 +
 .../patch-ui_base_x_x11__display__manager.cc       |    26 +
 .../patches/patch-ui_base_x_x11__display__util.cc  |   371 +
 .../patch-ui_base_x_x11__shm__image__pool.cc       |    62 +-
 chromium/patches/patch-ui_base_x_x11__util.cc      |    29 +
 chromium/patches/patch-ui_base_x_x11__util.h       |    19 +
 chromium/patches/patch-ui_color_BUILD.gn           |    13 -
 chromium/patches/patch-ui_color_color__id.h        |    17 +
 .../patch-ui_color_color__provider__utils.cc       |    17 +
 chromium/patches/patch-ui_color_system__theme.h    |    17 +
 chromium/patches/patch-ui_compositor_BUILD.gn      |    13 -
 chromium/patches/patch-ui_compositor_compositor.cc |    14 +-
 chromium/patches/patch-ui_compositor_compositor.h  |    18 +-
 .../patch-ui_compositor_compositor__observer.h     |    12 +-
 chromium/patches/patch-ui_display_screen.cc        |    17 +
 chromium/patches/patch-ui_display_screen.h         |    26 +
 chromium/patches/patch-ui_events_devices_BUILD.gn  |    13 -
 ...vents_devices_x11_device__data__manager__x11.cc |    26 +-
 chromium/patches/patch-ui_events_event.cc          |    35 +
 .../patches/patch-ui_events_event__switches.cc     |    16 +-
 chromium/patches/patch-ui_events_event__switches.h |    12 +-
 ...ch-ui_events_keycodes_dom_keycode__converter.cc |    43 +-
 ...tch-ui_events_keycodes_dom_keycode__converter.h |    17 +
 chromium/patches/patch-ui_events_ozone_BUILD.gn    |    13 -
 chromium/patches/patch-ui_gfx_BUILD.gn             |    70 +-
 chromium/patches/patch-ui_gfx_canvas__skia.cc      |    12 +-
 chromium/patches/patch-ui_gfx_codec_jpeg__codec.cc |    22 -
 .../patches/patch-ui_gfx_font__fallback__linux.cc  |    10 +-
 chromium/patches/patch-ui_gfx_font__list.cc        |    13 -
 .../patches/patch-ui_gfx_font__names__testing.cc   |    31 -
 .../patches/patch-ui_gfx_font__render__params.h    |    20 +-
 .../patch-ui_gfx_font__render__params__linux.cc    |    26 +
 chromium/patches/patch-ui_gfx_font__util.cc        |    20 +-
 .../patches/patch-ui_gfx_gpu__memory__buffer.cc    |    16 +-
 .../patches/patch-ui_gfx_gpu__memory__buffer.h     |    24 +-
 .../patch-ui_gfx_ipc_gfx__param__traits__macros.h  |    46 -
 ...-ui_gfx_linux_client__native__pixmap__dmabuf.cc |    48 -
 chromium/patches/patch-ui_gfx_linux_dmabuf__uapi.h |    42 +
 .../patches/patch-ui_gfx_linux_gbm__wrapper.cc     |    17 +
 chromium/patches/patch-ui_gfx_mojom_BUILD.gn       |    13 -
 ...ch-ui_gfx_mojom_buffer__types__mojom__traits.cc |    18 +-
 .../patch-ui_gfx_mojom_native__handle__types.mojom |    13 -
 ...x_mojom_native__handle__types__mojom__traits.cc |    30 +-
 ...fx_mojom_native__handle__types__mojom__traits.h |    31 +-
 .../patches/patch-ui_gfx_native__pixmap__handle.cc |    68 +-
 .../patches/patch-ui_gfx_native__pixmap__handle.h  |    36 +-
 .../patches/patch-ui_gfx_native__widget__types.h   |    32 +-
 .../patches/patch-ui_gfx_platform__font__skia.cc   |    26 +
 .../patch-ui_gfx_render__text__api__fuzzer.cc      |    26 +
 .../patches/patch-ui_gfx_render__text__fuzzer.cc   |    26 +
 chromium/patches/patch-ui_gfx_switches.cc          |    17 +
 chromium/patches/patch-ui_gfx_switches.h           |    17 +
 .../patch-ui_gfx_x_generated__protos_dri3.cc       |    17 +
 .../patch-ui_gfx_x_generated__protos_shm.cc        |    17 +
 chromium/patches/patch-ui_gfx_x_xlib__support.cc   |    27 +
 chromium/patches/patch-ui_gl_BUILD.gn              |    56 +-
 chromium/patches/patch-ui_gl_features.gni          |    13 -
 chromium/patches/patch-ui_gl_gl__bindings.h        |    17 +
 chromium/patches/patch-ui_gl_gl__context.cc        |    17 +
 chromium/patches/patch-ui_gl_gl__fence.cc          |    16 +-
 chromium/patches/patch-ui_gl_gl__implementation.cc |    17 +
 chromium/patches/patch-ui_gl_gl__switches.cc       |    35 +
 .../patch-ui_gl_sync__control__vsync__provider.cc  |    28 +-
 .../patch-ui_gl_sync__control__vsync__provider.h   |    18 +-
 chromium/patches/patch-ui_gtk_BUILD.gn             |    13 -
 chromium/patches/patch-ui_gtk_gtk__compat.cc       |    56 +
 .../patch-ui_gtk_printing_print__dialog__gtk.cc    |    18 +-
 ...i_message__center_views_message__popup__view.cc |    18 +-
 .../patches/patch-ui_native__theme_native__theme.h |    16 +-
 .../patch-ui_native__theme_native__theme__base.cc  |    29 +-
 ...tch-ui_native__theme_native__theme__features.cc |    26 +
 .../patches/patch-ui_ozone_common_egl__util.cc     |    20 +
 chromium/patches/patch-ui_ozone_common_features.cc |    17 +
 ...platform_headless_headless__surface__factory.cc |    26 +
 ..._platform_headless_ozone__platform__headless.cc |    17 +
 ...rm_headless_vulkan__implementation__headless.cc |    35 +
 .../patch-ui_ozone_platform_wayland_BUILD.gn       |    13 -
 ..._ozone_platform_wayland_common_wayland__util.cc |    17 +
 ...form_wayland_emulate_wayland__input__emulate.cc |    17 +
 ...tform_wayland_emulate_wayland__input__emulate.h |    17 +
 ..._wayland_gpu_vulkan__implementation__wayland.cc |    20 +
 ...ne_platform_wayland_host_wayland__connection.cc |    17 +
 ...wayland_host_wayland__input__method__context.cc |    17 +
 ...i_ozone_platform_wayland_host_wayland__popup.cc |    17 +
 ...tform_wayland_host_wayland__toplevel__window.cc |    17 +
 ...atform_wayland_host_wayland__toplevel__window.h |    17 +
 ..._ozone_platform_wayland_host_wayland__window.cc |    50 +
 ...i_ozone_platform_wayland_host_wayland__window.h |    44 +
 ...rm_wayland_host_xdg__toplevel__wrapper__impl.cc |    17 +
 ...m_wayland_host_zwp__text__input__wrapper__v1.cc |    27 +
 ...ne_platform_wayland_ozone__platform__wayland.cc |    60 +
 ...one_platform_x11_vulkan__implementation__x11.cc |    20 +
 ...tch-ui_ozone_platform_x11_x11__screen__ozone.cc |    35 +
 ...atch-ui_ozone_platform_x11_x11__screen__ozone.h |    44 +
 .../patch-ui_ozone_platform_x11_x11__window.cc     |    17 +
 ...i_ozone_test_mock__platform__window__delegate.h |    17 +
 .../patch-ui_platform__window_common_BUILD.gn      |    13 -
 .../patch-ui_platform__window_extensions_BUILD.gn  |    13 -
 ..._platform__window_platform__window__delegate.cc |    17 +
 ...i_platform__window_platform__window__delegate.h |    17 +
 ...rm__window_platform__window__init__properties.h |    28 +-
 chromium/patches/patch-ui_qt_BUILD.gn              |    17 +
 chromium/patches/patch-ui_qt_qt.gni                |    17 +
 chromium/patches/patch-ui_shell__dialogs_BUILD.gn  |    13 -
 .../patch-ui_strings_app__locale__settings.grd     |    13 -
 ...ings_translations_app__locale__settings__bn.xtb |    17 +
 ...ings_translations_app__locale__settings__ja.xtb |    17 +
 ...ings_translations_app__locale__settings__ko.xtb |    17 +
 ...ings_translations_app__locale__settings__ml.xtb |    17 +
 ...ings_translations_app__locale__settings__th.xtb |    17 +
 ...s_translations_app__locale__settings__zh-CN.xtb |    17 +
 ...s_translations_app__locale__settings__zh-TW.xtb |    17 +
 chromium/patches/patch-ui_views_BUILD.gn           |    60 -
 ..._views_bubble_bubble__dialog__delegate__view.cc |    13 -
 chromium/patches/patch-ui_views_controls_label.cc  |    22 -
 .../patch-ui_views_controls_prefix__selector.cc    |    17 +
 .../patch-ui_views_controls_prefix__selector.h     |    17 +
 .../patch-ui_views_controls_textfield_textfield.cc |   101 +-
 .../patch-ui_views_controls_textfield_textfield.h  |    26 +
 .../patch-ui_views_controls_webview_BUILD.gn       |    13 -
 .../patches/patch-ui_views_corewm_tooltip__aura.cc |    16 +-
 chromium/patches/patch-ui_views_examples_BUILD.gn  |    13 -
 .../patch-ui_views_examples_widget__example.cc     |    22 +-
 .../patches/patch-ui_views_focus_focus__manager.cc |    26 +
 .../patch-ui_views_selection__controller.cc        |    13 -
 .../patch-ui_views_style_platform__style.cc        |    36 +-
 ..._ui__controls__factory__desktop__aura__ozone.cc |    17 +
 chromium/patches/patch-ui_views_views__delegate.cc |    14 +-
 chromium/patches/patch-ui_views_views__delegate.h  |    14 +-
 ...top__aura_desktop__drag__drop__client__ozone.cc |    17 +
 ...ktop__aura_desktop__drag__drop__client__ozone.h |    26 +
 ...__aura_desktop__window__tree__host__platform.cc |    30 +-
 ...e__host__platform__impl__interactive__uitest.cc |    17 +
 .../patch-ui_views_widget_native__widget__aura.cc  |    38 -
 .../patches/patch-ui_views_widget_root__view.cc    |    17 +
 chromium/patches/patch-ui_views_widget_widget.cc   |    26 +
 .../patch-ui_views_window_custom__frame__view.cc   |    16 +-
 .../patch-ui_views_window_dialog__delegate.cc      |    14 +-
 .../patch-ui_views_window_frame__background.cc     |    20 +-
 chromium/patches/patch-ui_webui_resources_js_cr.js |    16 -
 .../patches/patch-ui_webui_resources_js_icon.js    |    13 -
 .../patches/patch-ui_webui_webui__features.gni     |    11 -
 chromium/patches/patch-v8_BUILD.gn                 |   145 +-
 chromium/patches/patch-v8_gni_v8.gni               |    13 -
 chromium/patches/patch-v8_include_v8-internal.h    |    17 +
 chromium/patches/patch-v8_include_v8config.h       |    50 +
 chromium/patches/patch-v8_src_api_api.cc           |    26 +-
 chromium/patches/patch-v8_src_base_atomicops.h     |    30 +
 chromium/patches/patch-v8_src_base_cpu.cc          |    20 -
 .../patches/patch-v8_src_base_platform_memory.h    |    22 +
 .../patch-v8_src_base_platform_platform-freebsd.cc |    38 +
 .../patch-v8_src_base_platform_platform-openbsd.cc |    53 +
 .../patch-v8_src_base_platform_platform-posix.cc   |    93 +-
 chromium/patches/patch-v8_src_base_small-vector.h  |    17 +
 chromium/patches/patch-v8_src_base_strings.h       |    18 +
 chromium/patches/patch-v8_src_base_sys-info.cc     |    21 +
 ...ch-v8_src_base_utils_random-number-generator.cc |    17 +
 .../patches/patch-v8_src_diagnostics_perf-jit.cc   |    17 +
 .../patches/patch-v8_src_diagnostics_perf-jit.h    |    17 +
 chromium/patches/patch-v8_src_execution_isolate.cc |    33 +
 chromium/patches/patch-v8_src_flags_flags.cc       |    42 +
 chromium/patches/patch-v8_src_sandbox_sandbox.cc   |    17 +
 ..._embedded_platform-embedded-file-writer-base.cc |    17 +
 ...t_embedded_platform-embedded-file-writer-base.h |    16 +
 ...bedded_platform-embedded-file-writer-generic.cc |    48 +
 ...tch-v8_src_trap-handler_handler-inside-posix.cc |    35 +-
 ...atch-v8_src_trap-handler_handler-inside-posix.h |    12 +-
 .../patch-v8_src_trap-handler_trap-handler.h       |    17 +
 ...wasm_baseline_ia32_liftoff-assembler-ia32-inl.h |   134 +
 chromium/patches/patch-v8_tools_run-paxctl.py      |    25 +
 chromium/patches/patch-v8_tools_run.py             |    17 +
 chromium/patches/patch-weblayer_BUILD.gn           |    27 -
 ...h-weblayer_app_content__main__delegate__impl.cc |    13 -
 ...-weblayer_browser_browser__main__parts__impl.cc |    22 -
 ...layer_browser_content__browser__client__impl.cc |    31 -
 ...blayer_browser_content__browser__client__impl.h |    13 -
 ...er_browser_system__network__context__manager.cc |    13 -
 .../patch-weblayer_common_weblayer__paths.cc       |    22 -
 chromium/patches/patch-weblayer_shell_BUILD.gn     |    31 -
 chromium/tests.mk                                  |    62 +
 1864 files changed, 46958 insertions(+), 56524 deletions(-)

diffs:
diff --git a/chromium/Makefile b/chromium/Makefile
index d2d40be339..70ed926c88 100644
--- a/chromium/Makefile
+++ b/chromium/Makefile
@@ -1,142 +1,237 @@
-# $NetBSD: Makefile,v 1.14 2012/09/24 18:26:53 asau Exp $
-
-DISTNAME=	chromium-85.0.4183.39
-CATEGORIES=	www
-MASTER_SITES=	http://commondatastorage.googleapis.com/chromium-browser-official/
-EXTRACT_SUFX=	.tar.xz
-
-MAINTAINER=	ryoon%NetBSD.org@localhost
-HOMEPAGE=	https://www.chromium.org/Home
-COMMENT=	Open source web browser
-LICENSE=	modified-bsd AND gnu-lgpl-v3 AND mpl-2.0
-
-USE_TOOLS+=		bash bison flex:pkgsrc gmake pax perl pkg-config
-TOOLS_PLATFORM.flex=	# override the platform definition to use pkgsrc's flex.
-USE_LANGUAGES=		c c++
-
+# $NetBSD$
+
+DISTNAME=			chromium-${VERSION}
+VERSION=			127.0.6533.72
+CATEGORIES=			www
+MASTER_SITES=			http://commondatastorage.googleapis.com/chromium-browser-official/
+EXTRACT_SUFX=			.tar.xz
+
+PROFILE_DISTFILE=		chrome-linux-${VERSION}-llvm17.profdata${EXTRACT_SUFX}
+SITES.${PROFILE_DISTFILE}=	http://nerd.hu/distfiles/
+DISTFILES+=			${DISTNAME}${EXTRACT_SUFX}
+DISTFILES+=			${PROFILE_DISTFILE}
+
+MAINTAINER=			ryoon%NetBSD.org@localhost
+#MAINTAINER+=			kikadf.01%gmail.com@localhost
+HOMEPAGE=			https://www.chromium.org/Home
+COMMENT=			Open source web browser
+LICENSE=			modified-bsd AND gnu-lgpl-v3 AND mpl-2.0
+
+USE_TOOLS+=			bash bison flex:pkgsrc gmake pax perl pkg-config
+TOOLS_PLATFORM.flex=		# override the platform definition to use pkgsrc's flex.
+USE_LANGUAGES=			c c++
+
+CHECK_PORTABILITY_SKIP+=	third_party/dawn/third_party/dxc/utils/buildit/build_llvm
 CHECK_PORTABILITY_SKIP+=	third_party/sqlite/src/configure
 CHECK_PORTABILITY_SKIP+=	third_party/protobuf/post_process_dist.sh
 CHECK_PORTABILITY_SKIP+=	third_party/ffmpeg/configure
+CHECK_PORTABILITY_SKIP+=	third_party/nearby/src/embedded/build.sh
 CHECK_PORTABILITY_SKIP+=	third_party/xdg-utils/scripts/xdg-terminal
 CHECK_PORTABILITY_SKIP+=	third_party/xdg-utils/scripts/xdg-terminal.in
 CHECK_PORTABILITY_SKIP+=	third_party/llvm/flang/tools/f18/flang.sh.in
 CHECK_PORTABILITY_SKIP+=	third_party/llvm/polly/lib/External/isl/configure
 CHECK_PORTABILITY_SKIP+=	v8/tools/run-llprof.sh
+CHECK_PORTABILITY_SKIP+=	v8/tools/profiling/run-llprof.sh
 
-TOOL_DEPENDS+=	gperf>=3.0.1:../../devel/gperf
-TOOL_DEPENDS+=	yasm-[0-9]*:../../devel/yasm
-TOOL_DEPENDS+=	ninja-build-[0-9]*:../../devel/ninja-build
-TOOL_DEPENDS+=	${PYPKGPREFIX}-html5lib-[0-9]*:../../textproc/py-html5lib
-TOOL_DEPENDS+=	${PYPKGPREFIX}-beautifulsoup4-[0-9]*:../../www/py-beautifulsoup4
-TOOL_DEPENDS+=	${PYPKGPREFIX}-ply-[0-9]*:../../devel/py-ply
-TOOL_DEPENDS+=	nodejs-[0-9]*:../../lang/nodejs
-TOOL_DEPENDS+=	openjdk11-[0-9]*:../../lang/openjdk11
-#TOOL_DEPENDS+=	clang-[0-9]*:../../lang/clang # clang-format
-
-PYTHON_VERSIONS_ACCEPTED=	27 # python3 not supported.
+TOOL_DEPENDS+=			gperf>=3.0.1:../../devel/gperf
+TOOL_DEPENDS+=			nasm-[0-9]*:../../devel/nasm
+TOOL_DEPENDS+=			ninja-build-[0-9]*:../../devel/ninja-build
+TOOL_DEPENDS+=			${PYPKGPREFIX}-html5lib-[0-9]*:../../textproc/py-html5lib
+TOOL_DEPENDS+=			${PYPKGPREFIX}-beautifulsoup4-[0-9]*:../../www/py-beautifulsoup4
+TOOL_DEPENDS+=			${PYPKGPREFIX}-ply-[0-9]*:../../devel/py-ply
+TOOL_DEPENDS+=			nodejs-[0-9]*:../../lang/nodejs
+#TOOL_DEPENDS+=			openjdk11-[0-9]*:../../lang/openjdk11
+#TOOL_DEPENDS+=			clang-[0-9]*:../../lang/clang # clang-format
+TOOL_DEPENDS+=			rust-bindgen-[0-9]*:../../devel/rust-bindgen
 
-DEPENDS+=	xdg-utils-[0-9]*:../../misc/xdg-utils
+DEPENDS+=			xdg-utils-[0-9]*:../../misc/xdg-utils
 
 .include "../../mk/bsd.prefs.mk"
 .include "../../mk/compiler.mk"
 
-#ONLY_FOR_PLATFORM+=	*-*-arm # not yet
-#ONLY_FOR_PLATFORM+=	*-*-aarch64 # not yet
-#ONLY_FOR_PLATFORM+=	*-*-i386 # not yet
-ONLY_FOR_PLATFORM+=	*-*-x86_64
+#ONLY_FOR_PLATFORM+=		*-*-arm # not yet
+#ONLY_FOR_PLATFORM+=		*-*-aarch64 # not yet
+#ONLY_FOR_PLATFORM+=		*-*-i386 # not yet
+ONLY_FOR_PLATFORM+=		*-*-x86_64
 
 # Workaround for brotli and other commands.
-BUILDLINK_TRANSFORM.NetBSD+=	rm:-ldl
+#BUILDLINK_TRANSFORM.NetBSD+=	rm:-ldl
+
+# Let to chromium use the -Wl,-z,relro flag
+BUILDLINK_TRANSFORM+=		rm:-Wl,-zrelro
 
 # Do not use alloca(3) in libc.
 BUILDLINK_TRANSFORM+=		opt:-std=c11:-std=gnu11
 BUILDLINK_TRANSFORM+=		opt:-std=c99:-std=gnu99
 BUILDLINK_TRANSFORM+=		opt:-std=c++14:-std=gnu++14
 BUILDLINK_TRANSFORM+=		opt:-std=c++17:-std=gnu++17
+BUILDLINK_TRANSFORM+=		opt:-std=c++20:-std=gnu++20
 
 REPLACE_BASH=		chrome/tools/build/linux/chrome-wrapper
+FILES_SUBST+=		PYTHONBIN=${PYTHONBIN:Q}
 
 SUBST_CLASSES+=		path
-SUBST_STAGE.path=	post-patch
-SUBST_MESSAGE.path=	Fixing pkg path
+SUBST_STAGE.path=	pre-configure
+SUBST_MESSAGE.path=	Fixing pathes
+SUBST_FILES.path+=	build/rust/rust_bindgen.gni
 SUBST_FILES.path+=	chrome/common/chrome_paths.cc
-SUBST_FILES.path+=	third_party/pdfium/core/fxge/fx_ge_linux.cpp
-SUBST_FILES.path+=	third_party/pdfium/xfa/fgas/font/cfx_fontsourceenum_file.cpp
-SUBST_FILES.path+=	third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
-SUBST_VARS.path+=	PREFIX X11BASE
-
-CFLAGS+=		-fno-stack-protector
-CFLAGS+=		-isystem${PREFIX}/lib/clang/10.0.0/include # third_party/zlib with clang
+SUBST_FILES.path+=	components/policy/core/common/policy_paths.cc
+SUBST_FILES.path+=	sandbox/policy/openbsd/sandbox_openbsd.cc
+SUBST_FILES.path+=	services/device/hid/hid_service_freebsd.cc
+SUBST_FILES.path+=	services/device/hid/hid_service_netbsd.cc
+SUBST_FILES.path+=	services/device/time_zone_monitor/time_zone_monitor_linux.cc
+SUBST_FILES.path+=	ui/qt/qt.gni
+SUBST_FILES.path+=	chrome.sh
+SUBST_FILES.path+=	v8/tools/run-paxctl.py
+SUBST_VARS.path+=	PREFIX PKG_SYSCONFBASE VARBASE QTDIR X11BASE PYTHONBIN
+
+SUBST_CLASSES+=		man
+SUBST_STAGE.man=	pre-configure
+SUBST_MESSAGE.man=	Fixing manpage
+SUBST_FILES.man+=	chrome/app/resources/manpage.1.in
+SUBST_SED.man+=		-e 's,@@PACKAGE@@,chromium,g'
+SUBST_SED.man+=		-e 's,@@MENUNAME@@,Chromium Web Browser,g'
 
 .include "options.mk"
+.include "tests.mk"
 
 MAKE_ENV+=	BUILDTYPE=${BUILDTYPE}
 MAKE_ENV+=	GPERF=${PREFIX}/bin/gperf
+TARGET=		chrome chromedriver
+
+# These libraries are used from the system and the build infrastructure
+# removes them from the bundled third_party directory and replaces them
+# with hooks to use them from the system.
+GN_SYSTEM_LIBS=		dav1d
+GN_SYSTEM_LIBS+=	fontconfig
+GN_SYSTEM_LIBS+=	icu
+GN_SYSTEM_LIBS+=	libaom
+GN_SYSTEM_LIBS+=	libevent
+#GN_SYSTEM_LIBS+=	libjpeg # libjpeg-turbo
+GN_SYSTEM_LIBS+=	libpng
+GN_SYSTEM_LIBS+=	libvpx
+GN_SYSTEM_LIBS+=	libxml
+GN_SYSTEM_LIBS+=	libxslt
+GN_SYSTEM_LIBS+=	openh264
+GN_SYSTEM_LIBS+=	opus
+
+GN_ARGS+=	clang_use_chrome_plugins=false
+GN_ARGS+=	disable_fieldtrial_testing_config=true
+GN_ARGS+=	enable_backup_ref_ptr_support=false
+GN_ARGS+=	enable_hangout_services_extension=true
+GN_ARGS+=	enable_log_error_not_reached=true
+GN_ARGS+=	enable_nacl=false
+GN_ARGS+=	enable_remoting=false
+GN_ARGS+=	fatal_linker_warnings=false
+GN_ARGS+=	icu_use_data_file=false
+GN_ARGS+=	is_cfi=false
+GN_ARGS+=	is_clang=true
+GN_ARGS+=	optimize_webui=true
+GN_ARGS+=	thin_lto_enable_optimizations=true
+GN_ARGS+=	treat_warnings_as_errors=false
+GN_ARGS+=	use_allocator_shim=false
+GN_ARGS+=	use_cups=true
+GN_ARGS+=	use_custom_libcxx=true
+GN_ARGS+=	use_custom_libunwind=true
+#GN_ARGS+=	use_gold=false
+GN_ARGS+=	use_kerberos=false
+GN_ARGS+=	use_lld=false
+GN_ARGS+=	use_partition_alloc=true
+GN_ARGS+=	use_partition_alloc_as_malloc=false
+GN_ARGS+=	use_sysroot=false
+GN_ARGS+=	use_system_freetype=true
+GN_ARGS+=	use_system_harfbuzz=true
+GN_ARGS+=	use_system_libdrm=true
+#GN_ARGS+=	use_system_libjpeg=true #libjpeg-turbo
+GN_ARGS+=	use_thin_lto=false
+GN_ARGS+=	use_udev=false
+GN_ARGS+=	use_vaapi=false
+GN_ARGS+=	v8_enable_cet_ibt=true
+
+# flags
+CFLAGS+=	-fno-stack-protector
+CFLAGS+=	-isystem${PREFIX}/lib/clang/17/include # third_party/zlib with clang
+CFLAGS+=	-Wno-error=unused-command-line-argument
+CFLAGS+=	-Wno-unknown-warning-option
+
+EXTRA_LDFLAGS=	-L${PREFIX}/lib \
+		-L${X11BASE}/lib \
+		${COMPILER_RPATH_FLAG}${PREFIX}/lib \
+		${COMPILER_RPATH_FLAG}${PREFIX}/lib/nspr \
+		${COMPILER_RPATH_FLAG}${PREFIX}/lib/nss \
+		${COMPILER_RPATH_FLAG}${X11BASE}/lib
+EXTRA_CXXFLAGS=	-Wno-unknown-warning-option \
+		-I${BUILDLINK_DIR}/include \
+		-I${BUILDLINK_DIR}/include/glib \
+		-I${BUILDLINK_DIR}/include/nss
+
+# rust
+RUSTC_VERSION=	rustc -V
+MAKE_ENV+=	RUSTC_BOOTSTRAP=1
+GN_ARGS+=	enable_rust=true \
+		rust_sysroot_absolute=\"${PREFIX}\" \
+		rustc_version=\"${RUSTC_VERSION:sh}\"
+
+PLIST_VARS+=		swiftshader
+.if ${MACHINE_ARCH} == "aarch64"
+FFMPEG_TARGET=		arm64
+.elif ${MACHINE_ARCH} == "x86_64"
+PLIST.swiftshader=	yes
+FFMPEG_TARGET=		x64
+.elif ${MACHINE_ARCH} == "i386"
+EXTRA_LDFLAGS+=		-Wl,--no-keep-memory
+PLIST.swiftshader=	yes
+FFMPEG_TARGET=		ia32
+.endif
+
+GN_ARGS+=	extra_cxxflags=\"${EXTRA_CXXFLAGS}\" \
+		extra_ldflags=\"${EXTRA_LDFLAGS}\"
 
 # Proprietary codecs are enabled.
+FFMPEG_BRAND=	Chrome
+FFMPEG_BDIR=	${WRKSRC}/third_party/ffmpeg/build.${FFMPEG_TARGET}.${LOWER_OPSYS}/${FFMPEG_BRAND}
+FFMPEG_CDIR=	${WRKSRC}/third_party/ffmpeg/chromium/config/${FFMPEG_BRAND}/${LOWER_OPSYS}/${FFMPEG_TARGET}
+
 GN_ARGS+=	proprietary_codecs=true \
-		ffmpeg_branding="Chrome"
-
-GN_ARGS+=	clang_use_chrome_plugins=false \
-		enable_hangout_services_extension=true \
-		use_kerberos=false \
-		use_aura=true \
-		use_cups=true \
-		enable_nacl=false \
-		enable_remoting=false \
-		fieldtrial_testing_like_official_build=true \
-		toolkit_views=true \
-		treat_warnings_as_errors=false \
-		use_sysroot=false \
-		use_system_libjpeg=false \
-		use_system_harfbuzz=true \
-		use_system_freetype=true \
-		enable_one_click_signin=true \
-		use_allocator="none" \
-		use_allocator_shim=false \
-		is_clang=true \
-		use_lld=false \
-		use_custom_libcxx=true \
-		use_gold=false \
-		icu_use_data_file=false
-GN_ARGS+=	extra_cxxflags="-I${BUILDLINK_DIR}/include \
-			-I${BUILDLINK_DIR}/include/glib \
-			-I${BUILDLINK_DIR}/include/nss" \
-		extra_ldflags="-L${PREFIX}/lib \
-			-L${X11BASE}/lib \
-			${COMPILER_RPATH_FLAG}${PREFIX}/lib \
-			${COMPILER_RPATH_FLAG}${PREFIX}/lib/nspr \
-			${COMPILER_RPATH_FLAG}${PREFIX}/lib/nss \
-			${COMPILER_RPATH_FLAG}${PREFIX}/lib/ffmpeg4 \
-			${COMPILER_RPATH_FLAG}${X11BASE}/lib"
-
-GN_BOOTSTRAP_FLAGS+=	--no-clean --no-rebuild --skip-generate-buildfiles
+		ffmpeg_branding=\"${FFMPEG_BRAND}\"
+
+GN_BOOTSTRAP_FLAGS+=	--no-clean --no-rebuild
 
 # API key and OAuth credential for Google.
 # This is pkgsrc use only.
-GN_ARGS+=	google_api_key="AIzaSyAT_3ogzNMKbBMFk3xQ6T35fg52Y9GrFBg" \
-		google_default_client_id="74061691103-faqqnan75j2s8ej3p7lh2k98dhkee816.apps.googleusercontent.com" \
-		google_default_client_secret="3R9TyUv14OXgzJnZi6Ismela"
+GN_ARGS+=	google_api_key=\"AIzaSyAT_3ogzNMKbBMFk3xQ6T35fg52Y9GrFBg\"
 
-NOT_PAX_MPROTECT_SAFE+=	bin/chrome
-NOT_PAX_ASLR_SAFE+=	bin/chrome
+NOT_PAX_MPROTECT_SAFE+=	chrome/chrome
+#NOT_PAX_ASLR_SAFE+=	chrome/chrome
+
+#PKGSRC_COMPILER=	ccache clang
+PKG_CC=			clang
+PKG_CXX=		clang++
+#UNLIMIT_RESOURCES=	datasize
 
 post-extract:
-	cp -r ${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/linux \
-		${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/${LOWER_OPSYS}
+	${CP} ${FILESDIR}/chrome ${WRKSRC}/chrome.sh
 
 pre-configure:
-#	${MKDIR} ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin
-#	${LN} -sf ${PREFIX}/bin/clang++ \
-#		${WRKSRC}/third_party/llvm-build/Release+Asserts/bin/clang++
-#	${LN} -sf ${PREFIX}/bin/clang \
-#		${WRKSRC}/third_party/llvm-build/Release+Asserts/bin/clang
-#	${LN} -sf ${PREFIX}/bin/llvm-ar \
-#		${WRKSRC}/third_party/llvm-build/Release+Asserts/bin/llvm-ar
-	${LN} -sf ${PREFIX}/java/openjdk11/bin/java \
-		${BUILDLINK_DIR}/bin/java
-	cp -r ${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/linux \
-		${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/${LOWER_OPSYS}
+#	${LN} -sf ${PREFIX}/java/openjdk11/bin/java \
+#		${BUILDLINK_DIR}/bin/java
+#	cp -r ${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/linux \
+#		${WRKSRC}/third_party/ffmpeg/chromium/config/Chrome/${LOWER_OPSYS}
+	# Prepare internal ffmpeg
+	cd ${WRKSRC}/media/ffmpeg && \
+		${PYTHONBIN} scripts/build_ffmpeg.py \
+		${LOWER_OPSYS} ${FFMPEG_TARGET} --config-only --branding=${FFMPEG_BRAND}
+	cd ${FFMPEG_BDIR} && ${GMAKE} ffversion.h
+	${INSTALL_DATA_DIR} ${FFMPEG_CDIR}
+.for ffmpeg_part in config.h config.asm config_components.h libavcodec libavformat libavutil
+	cp -pR ${FFMPEG_BDIR}/${ffmpeg_part} ${FFMPEG_CDIR}
+.endfor
+
+	# Create symlink to NetBSD nodejs command.
+	${MKDIR} ${WRKSRC}/third_party/node/${LOWER_OPSYS}/node-${LOWER_OPSYS}/bin
+	${LN} -sf ${PREFIX}/bin/node \
+		${WRKSRC}/third_party/node/${LOWER_OPSYS}/node-${LOWER_OPSYS}/bin/node
+
 # a wrapper for rpath $ORIGIN removal
 #	echo "#! /bin/sh" > ${WRKSRC}/python
 #	echo "LD_LIBRARY_PATH=./ ${PYTHONBIN} \"\$$@\"" >> ${WRKSRC}/python
@@ -145,164 +240,149 @@ pre-configure:
 # Sadly rpath $ORIGIN/. is needed.
 #	rm -rf ${WRAPPER_DIR}
 
-	cd ${WRKSRC} && \
-	${PYTHONBIN} ./build/linux/unbundle/replace_gn_files.py \
-		--system-libraries \
-		ffmpeg flac fontconfig freetype harfbuzz-ng libdrm libpng \
-		libwebp libxml libxslt opus snappy \
-			|| ${FALSE}
-
 do-configure:
-	# Create symlink to NetBSD nodejs command.
-	${MKDIR} ${WRKSRC}/third_party/node/${LOWER_OPSYS}/node/bin
-	${LN} -sf ${PREFIX}/bin/node \
-		${WRKSRC}/third_party/node/${LOWER_OPSYS}/node/bin/node
-
-	cd ${WRKSRC} && \
-		${SETENV} ${CONFIGURE_ENV} \
-		${PYTHONBIN} ./tools/gn/bootstrap/bootstrap.py \
-			${GN_BOOTSTRAP_FLAGS} \
-			--gn-gen-args '${GN_ARGS}'
-	cd ${WRKSRC} && \
-		${SETENV} ${CONFIGURE_ENV} \
-		./out/${BUILDTYPE}/gn \
-			gen --args='${GN_ARGS}' \
-			--script-executable="${PYTHONBIN}" \
-			${GN_VERBOSE} \
-			out/${BUILDTYPE}
-
-do-build:
 	cd ${WRKSRC} && \
-	${SETENV} ${MAKE_ENV} \
-		${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} \
-			mksnapshot
-	${TOOLS_PLATFORM.paxctl} +m ${WRKSRC}/out/${BUILDTYPE}/mksnapshot
+		${SETENV} ${MAKE_ENV} ${PYTHONBIN} ./build/linux/unbundle/replace_gn_files.py \
+		--system-libraries ${GN_SYSTEM_LIBS} || ${FALSE}
 
-	cd ${WRKSRC} && \
-	${SETENV} ${MAKE_ENV} \
-		${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} \
-			v8_context_snapshot_generator
-	${TOOLS_PLATFORM.paxctl} +m ${WRKSRC}/out/${BUILDTYPE}/v8_context_snapshot_generator
+	cd ${WRKSRC}/tools/gn && \
+		${SETENV} ${MAKE_ENV} ${PYTHONBIN} bootstrap/bootstrap.py \
+		${GN_BOOTSTRAP_FLAGS} --gn-gen-args "${GN_ARGS}"
 
 	cd ${WRKSRC} && \
-	${SETENV} ${MAKE_ENV} \
-		${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} \
-			chrome
+		${SETENV} ${CONFIGURE_ENV} ./out/${BUILDTYPE}/gn \
+		gen --args="${GN_ARGS}" --script-executable="${PYTHONBIN}" ${GN_VERBOSE} out/${BUILDTYPE}
 
-CHROMIUM_DIR=		chrome
-INSTALLATION_DIRS+=	${CHROMIUM_DIR}
+do-build:
+#	cd ${WRKSRC} && \
+#	${SETENV} ${MAKE_ENV} \
+#		${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} \
+#			mksnapshot
+#.if ${OPSYS} == "NetBSD"
+#	${TOOLS_PLATFORM.paxctl} +m ${WRKSRC}/out/${BUILDTYPE}/mksnapshot
+#.endif
+
+#	cd ${WRKSRC} && \
+#	${SETENV} ${MAKE_ENV} \
+#		${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} \
+#			v8_context_snapshot_generator
+#.if ${OPSYS} == "NetBSD"
+#	${TOOLS_PLATFORM.paxctl} +m ${WRKSRC}/out/${BUILDTYPE}/v8_context_snapshot_generator
+#.endif
+
+	${RUN} ${_ULIMIT_CMD} cd ${WRKSRC} && \
+	${SETENV} ${MAKE_ENV} ${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} ${TARGET}
+
+
+CHROMIUM=		chrome
+BUILDDIR=		${WRKSRC}/out/${BUILDTYPE}
+INSTALLATION_DIRS+=	${CHROMIUM}
 INSTALLATION_DIRS+=	bin
-INSTALLATION_DIRS+=	lib
+#INSTALLATION_DIRS+=	lib
 INSTALLATION_DIRS+=	${PKGMANDIR}/man1
+INSTALLATION_DIRS+=	${PREFIX}/share/applications
 
-ICON_SIZES=		22 24 48 64 128 256
+ICON_SIZES=		22_mono 24 48 64 128 256
 .for i in ${ICON_SIZES}
 ICONS_DIR${i}+=		share/icons/hicolor/${i}x${i}/apps
 INSTALLATION_DIRS+=	${ICONS_DIR${i}}
 .endfor
 
-CHROMIUM_PROGS+=	chrome
-CHROMIUM_SCRIPTS+=	chrome-wrapper
-
-CHROMIUM_FILES+=	chrome.1
-CHROMIUM_FILES+=	chrome_100_percent.pak
-CHROMIUM_FILES+=	chrome_200_percent.pak
-CHROMIUM_FILES+=	icudtl.dat
-CHROMIUM_FILES+=	keyboard_resources.pak
-CHROMIUM_FILES+=	resources.pak
+CHROMIUM_LIBS+=		libEGL.so
+CHROMIUM_LIBS+=		libGLESv2.so
+CHROMIUM_LIBS+=		libVkICD_mock_icd.so
+CHROMIUM_LIBS+=		libvulkan.so.1
+.if ${MACHINE_ARCH} != "aarch64"
+CHROMIUM_LIBS+=		libvk_swiftshader.so
+CHROMIUM_LIBS+=		vk_swiftshader_icd.json
+.endif
 
 do-install:
-.for i in ${CHROMIUM_PROGS}
-	${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/${i} \
-		${DESTDIR}${PREFIX}/${CHROMIUM_DIR}
-.endfor
-.for i in ${CHROMIUM_SCRIPTS}
-	${INSTALL_SCRIPT} ${WRKSRC}/out/${BUILDTYPE}/${i} \
-		${DESTDIR}${PREFIX}/${CHROMIUM_DIR}
-.endfor
+	${INSTALL_SCRIPT} ${WRKSRC}/chrome.sh ${DESTDIR}${PREFIX}/bin/${CHROMIUM}
+	${INSTALL_DATA} ${FILESDIR}/chromium-browser.desktop ${DESTDIR}${PREFIX}/share/applications
+	${INSTALL_PROGRAM} ${BUILDDIR}/${CHROMIUM} ${DESTDIR}${PREFIX}/${CHROMIUM}
+	${INSTALL_PROGRAM} ${BUILDDIR}/chromedriver.unstripped  ${DESTDIR}${PREFIX}/bin/chromedriver
 .for i in ${CHROMIUM_LIBS}
-	${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/${i} \
-		${DESTDIR}${PREFIX}/${CHROMIUM_DIR}
+	${INSTALL_LIB} ${BUILDDIR}/${i} ${DESTDIR}${PREFIX}/${CHROMIUM}
 .endfor
-.for i in ${CHROMIUM_FILES}
-	${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${i} \
-		${DESTDIR}${PREFIX}/${CHROMIUM_DIR}
-.endfor
-	cd ${DESTDIR}${PREFIX}/bin && \
-		${LN} -sf ../${CHROMIUM_DIR}/chrome .
-	${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/chrome.1 \
-		${DESTDIR}/${PREFIX}/${PKGMANDIR}/man1
+	${INSTALL_DATA} ${WRKSRC}/chrome/app/resources/manpage.1.in \
+		 ${DESTDIR}/${PREFIX}/${PKGMANDIR}/man1/chrome.1
+	${INSTALL_DATA} ${BUILDDIR}/*.pak ${DESTDIR}${PREFIX}/${CHROMIUM}
 .for i in ${ICON_SIZES}
 	${INSTALL_DATA} ${WRKSRC}/chrome/app/theme/chromium/product_logo_${i}.png \
 		${DESTDIR}${PREFIX}/${ICONS_DIR${i}}/chrome.png
 .endfor
 .for i in locales resources
 	cd ${WRKSRC}/out/${BUILDTYPE} && \
-		${FIND} ${i} -type f -print | \
-		pax -rw -pmp ${DESTDIR}${PREFIX}/${CHROMIUM_DIR}
+		${FIND} ${i} -type f -print | pax -rw -pmp ${DESTDIR}${PREFIX}/${CHROMIUM}
+.endfor
+.for f in snapshot_blob.bin v8_context_snapshot.bin
+	${INSTALL_DATA} ${BUILDDIR}/${f} ${DESTDIR}${PREFIX}/${CHROMIUM}
 .endfor
 
-.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
+.include "../../archivers/bzip2/buildlink3.mk"
+.include "../../audio/flac/buildlink3.mk"
 .include "../../audio/libopus/buildlink3.mk"
 .include "../../audio/speech-dispatcher/buildlink3.mk"
+.include "../../audio/speex/buildlink3.mk"
+.include "../../devel/dconf/buildlink3.mk"
+.include "../../devel/libatomic/buildlink3.mk"
+.include "../../devel/libevent/buildlink3.mk"
+.include "../../devel/libusb1/buildlink3.mk"
+.include "../../devel/nspr/buildlink3.mk"
+.include "../../devel/nss/buildlink3.mk"
+.include "../../devel/re2/buildlink3.mk"
+.include "../../devel/snappy/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../fonts/fontconfig/buildlink3.mk"
+.include "../../fonts/harfbuzz/buildlink3.mk"
 .include "../../graphics/cairo/buildlink3.mk"
-.include "../../print/libcups/buildlink3.mk"
-.include "../../sysutils/dbus/buildlink3.mk"
-.include "../../sysutils/dbus-glib/buildlink3.mk"
-.include "../../x11/libdrm/buildlink3.mk"
-.include "../../textproc/expat/buildlink3.mk"
-.include "../../audio/flac/buildlink3.mk"
 .include "../../graphics/freetype2/buildlink3.mk"
+.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
+.include "../../graphics/libexif/buildlink3.mk"
+.include "../../graphics/libwebp/buildlink3.mk"
+.include "../../graphics/png/buildlink3.mk"
+BUILDLINK_DEPMETHOD.clang=	build
+.include "../../lang/clang/buildlink3.mk"
+.include "../../lang/compiler-rt/buildlink3.mk"
+.include "../../lang/python/tool.mk"
+.include "../../lang/rust/rust.mk"
+.include "../../misc/usbids/buildlink3.mk"
+#.include "../../mk/jpeg.buildlink3.mk" # libjpeg-turbo
+.include "../../multimedia/dav1d/buildlink3.mk"
+.include "../../multimedia/libaom/buildlink3.mk"
+.include "../../multimedia/libvpx/buildlink3.mk"
+.include "../../multimedia/openh264/buildlink3.mk"
+.include "../../print/libcups/buildlink3.mk"
 .include "../../security/libgnome-keyring/buildlink3.mk"
 .include "../../security/libsecret/buildlink3.mk"
-.include "../../fonts/harfbuzz/buildlink3.mk"
-# Not yet
-#.include "../../devel/libevent/buildlink3.mk"
-.include "../../graphics/libexif/buildlink3.mk"
-.include "../../fonts/fontconfig/buildlink3.mk"
 .include "../../security/libgcrypt/buildlink3.mk"
-.include "../../textproc/jsoncpp/buildlink3.mk"
-.include "../../devel/nspr/buildlink3.mk"
-.include "../../devel/nss/buildlink3.mk"
+.include "../../sysutils/dbus/buildlink3.mk"
+.include "../../sysutils/dbus-glib/buildlink3.mk"
+.include "../../sysutils/desktop-file-utils/desktopdb.mk"
 .include "../../sysutils/pciutils/buildlink3.mk"
 # Use -lpciutils instead of -lpci for pkgsrc.
 BUILDLINK_TRANSFORM+=	l:pci:pciutils
-.include "../../graphics/png/buildlink3.mk"
-.include "../../devel/re2/buildlink3.mk"
-.include "../../devel/snappy/buildlink3.mk"
-.include "../../audio/speex/buildlink3.mk"
-.include "../../graphics/libwebp/buildlink3.mk"
+.include "../../textproc/expat/buildlink3.mk"
+.include "../../textproc/icu/buildlink3.mk"
+.include "../../textproc/jsoncpp/buildlink3.mk"
 .include "../../textproc/libxml2/buildlink3.mk"
 .include "../../textproc/libxslt/buildlink3.mk"
-.include "../../devel/dconf/buildlink3.mk"
 .include "../../x11/gtk3/buildlink3.mk"
 .include "../../x11/xorgproto/buildlink3.mk"
+.include "../../x11/libdrm/buildlink3.mk"
 .include "../../x11/libX11/buildlink3.mk"
+.include "../../x11/libxcb/buildlink3.mk"
 .include "../../x11/libXcomposite/buildlink3.mk"
 .include "../../x11/libXcursor/buildlink3.mk"
-.include "../../x11/libXext/buildlink3.mk"
 .include "../../x11/libXdamage/buildlink3.mk"
+.include "../../x11/libXext/buildlink3.mk"
 .include "../../x11/libXfixes/buildlink3.mk"
 .include "../../x11/libXi/buildlink3.mk"
 .include "../../x11/libXrandr/buildlink3.mk"
 .include "../../x11/libXrender/buildlink3.mk"
 .include "../../x11/libXScrnSaver/buildlink3.mk"
 .include "../../x11/libXtst/buildlink3.mk"
-.include "../../x11/libxcb/buildlink3.mk"
-.include "../../archivers/bzip2/buildlink3.mk"
-#.include "../../mk/jpeg.buildlink3.mk"
-.include "../../devel/libusb1/buildlink3.mk"
-.include "../../misc/usbids/buildlink3.mk"
-#.include "../../textproc/icu/buildlink3.mk"
-.include "../../multimedia/libvpx/buildlink3.mk"
-.include "../../devel/zlib/buildlink3.mk"
-.include "../../multimedia/ffmpeg4/buildlink3.mk"
-.include "../../devel/libatomic/buildlink3.mk"
-# Some C++ files in ui/base/x are not buildable with GCC 8.4.0 on NetBSD/amd64.
-PKG_CC=		${PREFIX}/bin/clang
-PKG_CXX=	${PREFIX}/bin/clang++
-BUILDLINK_DEPMETHOD.clang=	build
-.include "../../lang/clang/buildlink3.mk"
-
-.include "../../lang/python/tool.mk"
+.include "../../x11/qt5-qtbase/buildlink3.mk"
+.include "../../mk/compiler/ccache.mk"
 .include "../../mk/bsd.pkg.mk"
diff --git a/chromium/PLIST b/chromium/PLIST
index 3c89ac297c..32a2789c5f 100644
--- a/chromium/PLIST
+++ b/chromium/PLIST
@@ -1,215 +1,140 @@
 @comment $NetBSD$
 bin/chrome
+bin/chromedriver
 chrome/chrome
-chrome/chrome-wrapper
-chrome/chrome.1
 chrome/chrome_100_percent.pak
 chrome/chrome_200_percent.pak
-chrome/icudtl.dat
-chrome/keyboard_resources.pak
+chrome/headless_command_resources.pak
+chrome/headless_lib_data.pak
+chrome/headless_lib_strings.pak
+chrome/libEGL.so
+chrome/libGLESv2.so
+chrome/libVkICD_mock_icd.so
+${PLIST.swiftshader}chrome/libvk_swiftshader.so
+chrome/libvulkan.so.1
+chrome/locales/af.pak
+chrome/locales/af.pak.info
 chrome/locales/am.pak
+chrome/locales/am.pak.info
 chrome/locales/ar.pak
+chrome/locales/ar.pak.info
 chrome/locales/bg.pak
+chrome/locales/bg.pak.info
 chrome/locales/bn.pak
+chrome/locales/bn.pak.info
 chrome/locales/ca.pak
+chrome/locales/ca.pak.info
 chrome/locales/cs.pak
+chrome/locales/cs.pak.info
 chrome/locales/da.pak
+chrome/locales/da.pak.info
 chrome/locales/de.pak
+chrome/locales/de.pak.info
 chrome/locales/el.pak
+chrome/locales/el.pak.info
 chrome/locales/en-GB.pak
+chrome/locales/en-GB.pak.info
 chrome/locales/en-US.pak
+chrome/locales/en-US.pak.info
 chrome/locales/es-419.pak
+chrome/locales/es-419.pak.info
 chrome/locales/es.pak
+chrome/locales/es.pak.info
 chrome/locales/et.pak
+chrome/locales/et.pak.info
 chrome/locales/fa.pak
+chrome/locales/fa.pak.info
 chrome/locales/fi.pak
+chrome/locales/fi.pak.info
 chrome/locales/fil.pak
+chrome/locales/fil.pak.info
 chrome/locales/fr.pak
+chrome/locales/fr.pak.info
 chrome/locales/gu.pak
+chrome/locales/gu.pak.info
 chrome/locales/he.pak
+chrome/locales/he.pak.info
 chrome/locales/hi.pak
+chrome/locales/hi.pak.info
 chrome/locales/hr.pak
+chrome/locales/hr.pak.info
 chrome/locales/hu.pak
+chrome/locales/hu.pak.info
 chrome/locales/id.pak
+chrome/locales/id.pak.info
 chrome/locales/it.pak
+chrome/locales/it.pak.info
 chrome/locales/ja.pak
+chrome/locales/ja.pak.info
 chrome/locales/kn.pak
+chrome/locales/kn.pak.info
 chrome/locales/ko.pak
+chrome/locales/ko.pak.info
 chrome/locales/lt.pak
+chrome/locales/lt.pak.info
 chrome/locales/lv.pak
+chrome/locales/lv.pak.info
 chrome/locales/ml.pak
+chrome/locales/ml.pak.info
 chrome/locales/mr.pak
+chrome/locales/mr.pak.info
 chrome/locales/ms.pak
+chrome/locales/ms.pak.info
 chrome/locales/nb.pak
+chrome/locales/nb.pak.info
 chrome/locales/nl.pak
+chrome/locales/nl.pak.info
 chrome/locales/pl.pak
+chrome/locales/pl.pak.info
 chrome/locales/pt-BR.pak
+chrome/locales/pt-BR.pak.info
 chrome/locales/pt-PT.pak
+chrome/locales/pt-PT.pak.info
 chrome/locales/ro.pak
+chrome/locales/ro.pak.info
 chrome/locales/ru.pak
+chrome/locales/ru.pak.info
 chrome/locales/sk.pak
+chrome/locales/sk.pak.info
 chrome/locales/sl.pak
+chrome/locales/sl.pak.info
 chrome/locales/sr.pak
+chrome/locales/sr.pak.info
 chrome/locales/sv.pak
+chrome/locales/sv.pak.info
 chrome/locales/sw.pak
+chrome/locales/sw.pak.info
 chrome/locales/ta.pak
+chrome/locales/ta.pak.info
 chrome/locales/te.pak
+chrome/locales/te.pak.info
 chrome/locales/th.pak
+chrome/locales/th.pak.info
 chrome/locales/tr.pak
+chrome/locales/tr.pak.info
 chrome/locales/uk.pak
+chrome/locales/uk.pak.info
+chrome/locales/ur.pak
+chrome/locales/ur.pak.info
 chrome/locales/vi.pak
+chrome/locales/vi.pak.info
 chrome/locales/zh-CN.pak
+chrome/locales/zh-CN.pak.info
 chrome/locales/zh-TW.pak
+chrome/locales/zh-TW.pak.info
 chrome/resources.pak
-chrome/resources/inspector/Images/accelerometer-back.png
-chrome/resources/inspector/Images/accelerometer-bottom.png
-chrome/resources/inspector/Images/accelerometer-front.png
-chrome/resources/inspector/Images/accelerometer-left.png
-chrome/resources/inspector/Images/accelerometer-right.png
-chrome/resources/inspector/Images/accelerometer-top.png
-chrome/resources/inspector/Images/applicationCache.png
-chrome/resources/inspector/Images/breakpoint.png
-chrome/resources/inspector/Images/breakpointConditional.png
-chrome/resources/inspector/Images/breakpointConditional_2x.png
-chrome/resources/inspector/Images/breakpoint_2x.png
-chrome/resources/inspector/Images/checker.png
-chrome/resources/inspector/Images/chromeDisabledSelect.png
-chrome/resources/inspector/Images/chromeDisabledSelect_2x.png
-chrome/resources/inspector/Images/chromeLeft.png
-chrome/resources/inspector/Images/chromeMiddle.png
-chrome/resources/inspector/Images/chromeRight.png
-chrome/resources/inspector/Images/chromeSelect.png
-chrome/resources/inspector/Images/chromeSelect_2x.png
-chrome/resources/inspector/Images/deleteIcon.png
-chrome/resources/inspector/Images/domain.png
-chrome/resources/inspector/Images/errorWave.png
-chrome/resources/inspector/Images/errorWave_2x.png
-chrome/resources/inspector/Images/fileSystem.png
-chrome/resources/inspector/Images/forward.png
-chrome/resources/inspector/Images/frame.png
-chrome/resources/inspector/Images/ic_info_black_18dp.svg
-chrome/resources/inspector/Images/ic_warning_black_18dp.svg
-chrome/resources/inspector/Images/navigationControls.png
-chrome/resources/inspector/Images/navigationControls_2x.png
-chrome/resources/inspector/Images/paneAddButtons.png
-chrome/resources/inspector/Images/paneFilterButtons.png
-chrome/resources/inspector/Images/paneRefreshButtons.png
-chrome/resources/inspector/Images/popoverArrows.png
-chrome/resources/inspector/Images/profileGroupIcon.png
-chrome/resources/inspector/Images/profileIcon.png
-chrome/resources/inspector/Images/profileSmallIcon.png
-chrome/resources/inspector/Images/radioDot.png
-chrome/resources/inspector/Images/resizeDiagonal.png
-chrome/resources/inspector/Images/resizeDiagonal_2x.png
-chrome/resources/inspector/Images/resizeHorizontal.png
-chrome/resources/inspector/Images/resizeHorizontal_2x.png
-chrome/resources/inspector/Images/resizeVertical.png
-chrome/resources/inspector/Images/resizeVertical_2x.png
-chrome/resources/inspector/Images/resourceCSSIcon.png
-chrome/resources/inspector/Images/resourceDocumentIcon.png
-chrome/resources/inspector/Images/resourceDocumentIconSmall.png
-chrome/resources/inspector/Images/resourceGlyphs.png
-chrome/resources/inspector/Images/resourceGlyphs_2x.png
-chrome/resources/inspector/Images/resourceJSIcon.png
-chrome/resources/inspector/Images/resourcePlainIcon.png
-chrome/resources/inspector/Images/resourcePlainIconSmall.png
-chrome/resources/inspector/Images/resourcesTimeGraphIcon.png
-chrome/resources/inspector/Images/searchNext.png
-chrome/resources/inspector/Images/searchPrev.png
-chrome/resources/inspector/Images/securityIcons.png
-chrome/resources/inspector/Images/securityIcons_2x.png
-chrome/resources/inspector/Images/settingsListRemove.png
-chrome/resources/inspector/Images/settingsListRemove_2x.png
-chrome/resources/inspector/Images/smallIcons.png
-chrome/resources/inspector/Images/smallIcons_2x.png
-chrome/resources/inspector/Images/speech.png
-chrome/resources/inspector/Images/toolbarButtonGlyphs.png
-chrome/resources/inspector/Images/toolbarButtonGlyphs_2x.png
-chrome/resources/inspector/Images/toolbarItemSelected.png
-chrome/resources/inspector/Images/toolbarResizerHorizontal.png
-chrome/resources/inspector/Images/toolbarResizerVertical.png
-chrome/resources/inspector/Images/touchCursor.png
-chrome/resources/inspector/Images/touchCursor_2x.png
-chrome/resources/inspector/InspectorBackendCommands.js
-chrome/resources/inspector/SupportedCSSProperties.js
-chrome/resources/inspector/Tests.js
-chrome/resources/inspector/accessibility/accessibility_module.js
-chrome/resources/inspector/animation/animation_module.js
-chrome/resources/inspector/audits/audits_module.js
-chrome/resources/inspector/audits2/audits2_module.js
-chrome/resources/inspector/cm_modes/cm_modes_module.js
-chrome/resources/inspector/components_lazy/components_lazy_module.js
-chrome/resources/inspector/console/console_module.js
-chrome/resources/inspector/devices/devices_module.js
-chrome/resources/inspector/devtools_compatibility.js
-chrome/resources/inspector/devtools_extension_api.js
-chrome/resources/inspector/diff/diff_module.js
-chrome/resources/inspector/elements/elements_module.js
-chrome/resources/inspector/emulated_devices/Nexus5X-landscape.svg
-chrome/resources/inspector/emulated_devices/Nexus5X-portrait.svg
-chrome/resources/inspector/emulated_devices/Nexus6P-landscape.svg
-chrome/resources/inspector/emulated_devices/Nexus6P-portrait.svg
-chrome/resources/inspector/emulated_devices/emulated_devices_module.js
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-default-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-default-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-navigation-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-navigation-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-default-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-default-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-keyboard-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-keyboard-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-navigation-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-navigation-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-horizontal-default-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-horizontal-default-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-horizontal-keyboard-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-horizontal-keyboard-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-horizontal-navigation-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-horizontal-navigation-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-vertical-default-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-vertical-default-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-vertical-keyboard-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-vertical-keyboard-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-vertical-navigation-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5x-vertical-navigation-2x.png
-chrome/resources/inspector/emulated_devices/iPad-landscape.svg
-chrome/resources/inspector/emulated_devices/iPad-portrait.svg
-chrome/resources/inspector/emulated_devices/iPhone5-landscape.svg
-chrome/resources/inspector/emulated_devices/iPhone5-portrait.svg
-chrome/resources/inspector/emulated_devices/iPhone6-landscape.svg
-chrome/resources/inspector/emulated_devices/iPhone6-portrait.svg
-chrome/resources/inspector/emulated_devices/iPhone6Plus-landscape.svg
-chrome/resources/inspector/emulated_devices/iPhone6Plus-portrait.svg
-chrome/resources/inspector/formatter_worker.js
-chrome/resources/inspector/gonzales/gonzales_module.js
-chrome/resources/inspector/heap_snapshot_worker.js
-chrome/resources/inspector/inspector.html
-chrome/resources/inspector/inspector.js
-chrome/resources/inspector/layer_viewer/layer_viewer_module.js
-chrome/resources/inspector/layers/layers_module.js
-chrome/resources/inspector/network/network_module.js
-chrome/resources/inspector/profiler/profiler_module.js
-chrome/resources/inspector/resources/resources_module.js
-chrome/resources/inspector/sass/sass_module.js
-chrome/resources/inspector/screencast/screencast_module.js
-chrome/resources/inspector/security/security_module.js
-chrome/resources/inspector/settings/settings_module.js
-chrome/resources/inspector/snippets/snippets_module.js
-chrome/resources/inspector/source_frame/source_frame_module.js
-chrome/resources/inspector/sources/sources_module.js
-chrome/resources/inspector/terminal/terminal_module.js
-chrome/resources/inspector/text_editor/text_editor_module.js
-chrome/resources/inspector/timeline/timeline_module.js
-chrome/resources/inspector/timeline_model/timeline_model_module.js
-chrome/resources/inspector/toolbox.html
-chrome/resources/inspector/toolbox.js
-chrome/resources/inspector/ui_lazy/ui_lazy_module.js
-chrome/resources/inspector/utility_shared_worker.js
+chrome/resources/accessibility/reading_mode_gdocs_helper/content.js
+chrome/resources/accessibility/reading_mode_gdocs_helper/gdocs_script.js
+chrome/resources/accessibility/reading_mode_gdocs_helper_manifest.json
+chrome/resources/inspector_overlay/inspector_overlay_resources.grd
+chrome/resources/inspector_overlay/main.js
+chrome/snapshot_blob.bin
+chrome/v8_context_snapshot.bin
+${PLIST.swiftshader}chrome/vk_swiftshader_icd.json
 man/man1/chrome.1
+share/applications/chromium-browser.desktop
 share/icons/hicolor/128x128/apps/chrome.png
-share/icons/hicolor/22x22/apps/chrome.png
+share/icons/hicolor/22_monox22_mono/apps/chrome.png
 share/icons/hicolor/24x24/apps/chrome.png
 share/icons/hicolor/256x256/apps/chrome.png
 share/icons/hicolor/48x48/apps/chrome.png
diff --git a/chromium/TODO b/chromium/TODO
index 3c564d88c8..dff27872de 100644
--- a/chromium/TODO
+++ b/chromium/TODO
@@ -1,8 +1,13 @@
 To Do:
 
-* No html5 audio (video has no problem)
-* 'Passwords cryptographer error was encountered:' and
-  'Failed to receive encryption key from server.' errors
+1) If pulseaudio not run, chromium can't start it, so no sound:
+VERBOSE1:pulse_util.cc(261)] Failed to connect to the context. Error: Connection refused
+WARNING:audio_manager_linux.cc(53)] Falling back to ALSA for audio output. PulseAudio is not available or could not be initialized.
 
-- This package is affected by several vulnerabilities that are not actively
-  tracked here.  Usually upstream resolve them when releasing new version.
+If pulseaudio already started, chromium can join it, and has sound.
+This is the workaround, see the files/chrome launch wrapper.
+
+NOTE: OpenBSD (of course), FreeBSD and DragonFly use sndio as default.
+
+2) HID doesn't work on NetBSD.
+NOTE: For this OpenBSD uses fido and libudev-openbsd, FreeBSD uses devd.
diff --git a/chromium/distinfo b/chromium/distinfo
index ea578d386c..f0e2dbdb34 100644
--- a/chromium/distinfo
+++ b/chromium/distinfo
@@ -1,989 +1,1365 @@
 $NetBSD$
 
-RMD160 (chromium-85.0.4183.39.tar.xz) = 1626e0de80261937c0fd5f026f95c7b96978b9f3
-SHA512 (chromium-85.0.4183.39.tar.xz) = 23ac7d6d96a6abaee565b791d75b03fa0b9ff9f3a8bd8f4c42896f345530796485d756ac96f97e566f4c9d054ca3fa9b14d5dc774533f50e5a9e1ea5669d663b
-Size (chromium-85.0.4183.39.tar.xz) = 863788052 bytes
-SHA1 (patch-BUILD.gn) = e72f7dd1355e07c81bb9a8c9322b9652588ca29a
-SHA1 (patch-apps_app__restore__service__browsertest.cc) = 5812e1799ee1e8b641f19fbf50846aa1e552d9bf
-SHA1 (patch-apps_ui_views_app__window__frame__view.cc) = c561b94d336f19be6e3c7561e615ca2af2773d58
-SHA1 (patch-base_BUILD.gn) = 13f057eb2186fe89374e87244edc719a978aa165
-SHA1 (patch-base_allocator_BUILD.gn) = 3be1ccfdb144fa76bd502f2d10921f37f4feddef
-SHA1 (patch-base_allocator_allocator__shim__unittest.cc) = 222e24c8135a2b76ae4640696fa9ca70827eef58
-SHA1 (patch-base_allocator_partition__allocator_page__allocator__internals__posix.h) = 6c88b76d01f85b884cbb654b144edfc18a8fa396
-SHA1 (patch-base_allocator_partition__allocator_partition__alloc__unittest.cc) = e1527f0befb2cea1c9ab329e432956bd99f4672b
-SHA1 (patch-base_base__paths__posix.cc) = 87f4ddecbc870477ee071a013dc762730a3ad515
-SHA1 (patch-base_base__switches.cc) = b91120a47d07aa57edcdf96b75862344465f7523
-SHA1 (patch-base_base__switches.h) = af9d76deb1989d5a8d936fd123066c4a13a43df7
-SHA1 (patch-base_cpu.cc) = 9847614718b3f6ce17250fd16a925cbfbdaa3df2
-SHA1 (patch-base_debug_debugger__posix.cc) = d72911dbe890aa35562d56d7032828df9343b4ce
-SHA1 (patch-base_debug_elf__reader.cc) = c5e20afe9af2e0719d97f423d8337503a2857b43
-SHA1 (patch-base_debug_proc_maps_linux.cc) = 31057e8b098c9d068c44cc4c5b83b06d4e182f78
-SHA1 (patch-base_debug_stack__trace__posix.cc) = a880bba4fdfde36d917dedf4fe20aa2763bdb534
-SHA1 (patch-base_debug_stack__trace__unittest.cc) = f6b33c365995bfa00d491a5d0affc9d7f5e57483
-SHA1 (patch-base_files_file__path__unittest.cc) = 4060b1ec9760a858083d8aac067a98b6e4876ec0
-SHA1 (patch-base_files_file__path__watcher__kqueue.cc) = b424986a59340756042a6af3b2a71af954e63528
-SHA1 (patch-base_files_file__path__watcher__stub.cc) = d7a9939097db676d128c437c39b1cc1635326c34
-SHA1 (patch-base_files_file__path__watcher__unittest.cc) = 7865cd40e1360e88a6ca882a8d1ad9a09fdf86de
-SHA1 (patch-base_files_file__util.h) = a5ee1f16c0688a4a9bd92d39712eaa6de0e5bfdc
-SHA1 (patch-base_files_file__util__posix.cc) = d1902b9ecb7c1269bc51bd3112ab52eb5542ea08
-SHA1 (patch-base_files_file__util__unittest.cc) = af080bea2f0ec30573afeb1b1eb4a62f3cbaf09a
-SHA1 (patch-base_files_scoped__file.cc) = 451d7dbd4f649efad92d22f21312bdee02380b70
-SHA1 (patch-base_i18n_icu__util.cc) = c01d234cd1017c3ebbababbbeb973857db56933f
-SHA1 (patch-base_linux__util.cc) = a0ac77e3f6ac1d9517eb3911e3b18ff512096743
-SHA1 (patch-base_location__unittest.cc) = dc02f59ed221f39187555c568ef639be389d0d1c
-SHA1 (patch-base_logging__unittest.cc) = 85a9a02c40058daceaeec7a2e20ef89d1556441c
-SHA1 (patch-base_memory_discardable__memory.cc) = a614b2bdbc585d6422a62e6d0d11b54e84250b00
-SHA1 (patch-base_memory_discardable__memory__internal.h) = 944c5c04dd2abe84508bf5c696c6f4ed1efc6766
-SHA1 (patch-base_memory_madv__free__discardable__memory__posix.cc) = 05e63cf099ac56268fcebd415ba198e7d4a3950f
-SHA1 (patch-base_memory_platform__shared__memory__region.h) = 74ed12082062687605a9c47688892441972a9316
-SHA1 (patch-base_memory_platform__shared__memory__region__posix.cc) = 8c3717f814fe07a8b0f16a8e948a6acc3db19e89
-SHA1 (patch-base_memory_shared__memory__region__unittest.cc) = 1dcba9633b516575292672daa289b360b621fab1
-SHA1 (patch-base_native__library__posix.cc) = 016c7063cb61d78db8a5fcc57a3b11cbe6736259
-SHA1 (patch-base_native__library__unittest.cc) = b1ba4e8f26208ae4178ed73ce53ec2c0ddf2d343
-SHA1 (patch-base_path__service__unittest.cc) = 037f1c1c3c501c7d5aefbeece081e6745a27a764
-SHA1 (patch-base_posix_can__lower__nice__to.cc) = b9f8e96f09914c94e0a9379bf23487c1c531b257
-SHA1 (patch-base_posix_unix__domain__socket.cc) = 225261fc768b1970ef068b3e622867b8943bf8a8
-SHA1 (patch-base_process_internal__linux.h) = bba9909db59e9a8c2efa9c70bd82b271e46dd8a1
-SHA1 (patch-base_process_kill.h) = d39bb8fefb1bf147e583cb8dcef3fb1a94cb6ecb
-SHA1 (patch-base_process_kill__posix.cc) = 81458c6b6f365a703eb645549d017d68e242da0e
-SHA1 (patch-base_process_launch.cc) = 905420a03afbae972b4c9cfea360aff478e26017
-SHA1 (patch-base_process_launch.h) = 6ae50c3e912ec59332d9d86cecd40d31befd48a8
-SHA1 (patch-base_process_launch__posix.cc) = 422a198ccff4f2be1ce8cf1e098a0001f84f5972
-SHA1 (patch-base_process_memory.cc) = fab139985a507f84eef6867973379fc2a60d0c0b
-SHA1 (patch-base_process_memory.h) = cf79cf4db202a50d656e6649d930fb3b2224048a
-SHA1 (patch-base_process_memory__unittest.cc) = de2fedf80dc576831ff2ac73bbd85d48a483398d
-SHA1 (patch-base_process_process__handle.cc) = eccf2ffee22f48db52634166670251a49887e541
-SHA1 (patch-base_process_process__handle.h) = e1311021f86faf1bfdcc7bd4e0170a464cf02e6e
-SHA1 (patch-base_process_process__handle__netbsd.cc) = 5eb0ebdc35133196323abcd6ae992b2faf05d4ae
-SHA1 (patch-base_process_process__iterator.h) = 40d29fc0dec250b856c63ced71e076988da70a3e
-SHA1 (patch-base_process_process__iterator__netbsd.cc) = b2d67784b44fd97095923b8f5c5791cf8a55597e
-SHA1 (patch-base_process_process__linux.cc) = 181990a7da58132f9c504e733beeabc056466373
-SHA1 (patch-base_process_process__metrics.cc) = 6c3dbe722fd1d0be7eaf51b31a1ad3e8d8554506
-SHA1 (patch-base_process_process__metrics.h) = 4d78b8ed78255cd245a3dd21513b4c47d2b5866d
-SHA1 (patch-base_process_process__metrics__netbsd.cc) = f565deaa846b8b8d0705e7913d2cabb6794df301
-SHA1 (patch-base_process_process__metrics__posix.cc) = ea0928d487bf81152e43dd54544ac7e035e94719
-SHA1 (patch-base_process_process__unittest.cc) = 5a94a120f1b0b087eb17ba98287ad61cbbf52adf
-SHA1 (patch-base_process_process__util__unittest.cc) = 35b4e802d987549d06f1624b5a3d25bba5d9cd79
-SHA1 (patch-base_profiler_register__context.h) = 9665eb0d9c653b93b7a9aabd0f1ac9ffa7959c02
-SHA1 (patch-base_profiler_sampling__profiler__thread__token.cc) = 5eb6e186bc3af5981f27e04fd46b081e53e3b3b0
-SHA1 (patch-base_profiler_sampling__profiler__thread__token.h) = 336cc7f8004c38e74ef1b1420fd51dbc971bf137
-SHA1 (patch-base_profiler_stack__copier__signal.cc) = 8b324d397960e41a08e0a038503ec0f24367451e
-SHA1 (patch-base_profiler_stack__sampling__profiler__unittest.cc) = 5d236807c4d009c0b956e977a7bf714b4d2e5b83
-SHA1 (patch-base_sampling__heap__profiler_sampling__heap__profiler.cc) = 880ebd4358facbb02e503a6c9d7a5515b67573ee
-SHA1 (patch-base_security__unittest.cc) = e819c2d4a457f982a1c1eb0b2b126ca1297e0460
-SHA1 (patch-base_synchronization_lock__impl.h) = 7d326fcdf4360639e7ed73453221a40fbea0621a
-SHA1 (patch-base_syslog__logging.cc) = 696812ef475be9042e9f2a6bcdccbe45075d6655
-SHA1 (patch-base_system_sys__info.cc) = 11e739e00bf1c6a0f9c1c4980963121b82a84449
-SHA1 (patch-base_system_sys__info.h) = d73de0542c98d73675ff6556a77366baaea347b5
-SHA1 (patch-base_system_sys__info__netbsd.cc) = 7dea65e7a6ea8c235e44678c09bd1469b09a5015
-SHA1 (patch-base_system_sys__info__posix.cc) = 2af6df7ec8a45eacac3e60f7bbae981a45b5ffdc
-SHA1 (patch-base_task_thread__pool_environment__config__unittest.cc) = 9d094159372a4351cfee3f10a9cb7c2b3f45c7f3
-SHA1 (patch-base_test_BUILD.gn) = ff950b4533188e2c335198d84db3fc4381076dde
-SHA1 (patch-base_test_launcher_test__launcher.cc) = ce322c7029a39f9af130dc59dac4a95ec487ea5d
-SHA1 (patch-base_test_test__file__util__posix.cc) = f3f917606e225e15e8581a8e1b342ffaa2a19dcf
-SHA1 (patch-base_test_test__suite.cc) = 3e9e8b15ecd72ee597710eaee3dcd0b1d14a7e67
-SHA1 (patch-base_third__party_libevent_BUILD.gn) = b0a35ae323b738d99b7ade952aca4820ee0fb09c
-SHA1 (patch-base_third__party_libevent_event-config.h) = 53d761347a68cdcb7cfc4921dde589c427be7321
-SHA1 (patch-base_third__party_libevent_netbsd_config.h) = 21e16692c4a6c9546afe9b1122b524b68f91b7e6
-SHA1 (patch-base_third__party_libevent_netbsd_event-config.h) = 00bdccd77be2fa4c047bc95d039febcc2281f064
-SHA1 (patch-base_threading_platform__thread.h) = 2672b54a932cb55a9a012b9d4c5fe179275db656
-SHA1 (patch-base_threading_platform__thread__linux.cc) = 5f4c980d3e080319d7ca0544e18696fbc4ea9add
-SHA1 (patch-base_threading_platform__thread__posix.cc) = 95bb6a6d2a26bb130dd526f0ecde6973c9b989c0
-SHA1 (patch-base_threading_platform__thread__unittest.cc) = 42da4cf538f209a00ff65ccb6ab694aee44b9a23
-SHA1 (patch-base_trace__event_malloc__dump__dump__provider.cc) = 167833f44b464acbd619d3278d4c3d69e4003b5c
-SHA1 (patch-base_trace__event_process__memory__dump.cc) = 1ff3c8e78ceebc3d561448bdbb5f64a3d4ea1388
-SHA1 (patch-base_trace__event_process__memory__dump.h) = f846f320170e8f1bd25fd264e40e365de0550688
-SHA1 (patch-build_config_BUILD.gn) = 9bd67c29b3ff0894a6e70b9cd471a6494b744541
-SHA1 (patch-build_config_BUILDCONFIG.gn) = 00da1cfc2bd7aaecae42ec575044f83deab15cfb
-SHA1 (patch-build_config_compiler_BUILD.gn) = ddb99f4c8a7bf620828d609924af8d91b6a3b739
-SHA1 (patch-build_config_compiler_compiler.gni) = ef90c00e0d32f0592436857e45f984e0cf289e7e
-SHA1 (patch-build_config_crypto.gni) = 2a7a0818c56e6d343095647b77d9b562e9313817
-SHA1 (patch-build_config_features.gni) = cbdc14d18a64c3d571f93c0c328eafa0b9987af5
-SHA1 (patch-build_config_linux_dri_BUILD.gn) = c4c682736337d7cfef81daa9418bc29dd5d297f6
-SHA1 (patch-build_config_linux_gtk_BUILD.gn) = a490ceaafb8768c0fe97da37d3389f5e4afe3e64
-SHA1 (patch-build_config_linux_libdrm_BUILD.gn) = 84a07525ba99258f94994f54c3194b0126f25b03
-SHA1 (patch-build_config_linux_nss_BUILD.gn) = 3ac2965427508312ddfdab6d6f84648e7384e34a
-SHA1 (patch-build_config_linux_pangocairo_pangocairo.gni) = 65b4f1123335bab81bd17f13c40788df0505d1fc
-SHA1 (patch-build_config_linux_pkg-config.py) = ce78d722de037b4a94d7a7140429a47cfdf01c07
-SHA1 (patch-build_config_ui.gni) = 0fe3abe5d2ffad98b49e76a14e2d2151271501d4
-SHA1 (patch-build_gn__run__binary.py) = d85dce6107047975e83362e255ca7fbc05b15193
-SHA1 (patch-build_linux_libpci_BUILD.gn) = 042da437f2927d3d436468fd2975391bd6aaf193
-SHA1 (patch-build_linux_unbundle_fontconfig.gn) = 52d45ac1b94f5ca83d04865f4b9b8089e49fcc5b
-SHA1 (patch-build_toolchain_gcc__toolchain.gni) = 8a08f645a3d3750c442e7d4d478b832c445630d4
-SHA1 (patch-build_toolchain_netbsd_BUILD.gn) = b18d4ffd1f92a6df291c2e80ea51136014d2cea4
-SHA1 (patch-chrome_BUILD.gn) = c8249bff7680af4a44f1e61251156921b7d7af54
-SHA1 (patch-chrome_app_BUILD.gn) = 37dcc3f3f76d9bcc4895948f51d8f85f91cb0dba
-SHA1 (patch-chrome_app_chrome__command__ids.h) = 5ea1ca0c62f9a4aba9934a0a0401e4755a1a7897
-SHA1 (patch-chrome_app_chrome__main.cc) = 6158ddb7e58c64b04fc2963bdd39c0b8fe292299
-SHA1 (patch-chrome_app_chrome__main__delegate.cc) = 677fdc403d57d9c4aaed324f02a85d3f70c92d8b
-SHA1 (patch-chrome_app_chromium__strings.grd) = 9c5d14788c85f52857753e2d4dfcc7ca337f7aca
-SHA1 (patch-chrome_app_generated__resources.grd) = 98de3df8cbef130c3e2de3b2a1374c6002187a0e
-SHA1 (patch-chrome_app_google__chrome__strings.grd) = bc5cc2ea9cbb5eab2131cf85466dccf3ac5bb44a
-SHA1 (patch-chrome_app_settings__strings.grdp) = b53dd9122986157824a2cfd50c2943ef417e877e
-SHA1 (patch-chrome_app_shutdown__signal__handlers__posix.cc) = c91d08cf2346aff762b67b25f3c45c5062b8eb7c
-SHA1 (patch-chrome_app_theme_chrome__unscaled__resources.grd) = 1a1f731bd323acaa22da1a945e524e0026fef910
-SHA1 (patch-chrome_app_theme_theme__resources.grd) = 5d0eb0f406ba8aff6fa2ba0c0192d3dcb2286016
-SHA1 (patch-chrome_browser_BUILD.gn) = 230962b69ab3cb05ade96608c82dc2508c414199
-SHA1 (patch-chrome_browser_about__flags.cc) = e6b6b1397840fda3174ea7378c568187b2d7a439
-SHA1 (patch-chrome_browser_after__startup__task__utils.cc) = cd4eec7ede3095f1c19c738306b0a3bb446b5768
-SHA1 (patch-chrome_browser_apps_platform_apps_api_music__manager__private_device__id__linux.cc) = 2ce99b4361265186c53ebbe8aaa2ac7584e74b9f
-SHA1 (patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc) = a681a3bfedfcda19aa2a02085298cf2456c1f1f3
-SHA1 (patch-chrome_browser_background_background__mode__manager.cc) = 764d604ef7c6b68c5479a136a737872e7fd7e4be
-SHA1 (patch-chrome_browser_background_background__mode__optimizer.cc) = 18979e9ec5a3a8bd4ad4dc7f86eab96837b14a77
-SHA1 (patch-chrome_browser_browser__resources.grd) = dc6942b1ed3093043fa229b21cfb97feb036e723
-SHA1 (patch-chrome_browser_chrome__browser__interface__binders.cc) = 55f7ad613102a5f1b37fdf97044d5505abd88e41
-SHA1 (patch-chrome_browser_chrome__browser__main.cc) = 6951ff9003b46a420515e5d018a3044c2677a5fd
-SHA1 (patch-chrome_browser_chrome__browser__main__linux.cc) = f1df429fa593e2f4e5561ab42e93562b9c0d0e6d
-SHA1 (patch-chrome_browser_chrome__browser__main__posix.cc) = c411c3c80fe7a2e16348ee3744c22bd5874dc353
-SHA1 (patch-chrome_browser_chrome__content__browser__client.cc) = ac7241d3983addfe42e6d9cbe34ee279bdfc9917
-SHA1 (patch-chrome_browser_chrome__content__browser__client.h) = 83cff471c1eba5da96e0d22d42cdf9c4b352d009
-SHA1 (patch-chrome_browser_crash__upload__list_crash__upload__list.cc) = d5e90acbc5047449a477a25974f8d649d4b888ce
-SHA1 (patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc) = f1ede1eae801f08f913e6edbb9c44576d7dc669a
-SHA1 (patch-chrome_browser_custom__handlers_protocol__handler__registry.cc) = fd9da5bc24427dd51ebb14dff28837277b785e2d
-SHA1 (patch-chrome_browser_defaults.cc) = 07bbcbee91640bdf34af4174dfcd59c72178548d
-SHA1 (patch-chrome_browser_dev__ui__browser__resources.grd) = b2d32a1aa991dbd1d35871d2f91ea002cb30f387
-SHA1 (patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc) = a2919f724ae0343c6b784e813266d227584d9a00
-SHA1 (patch-chrome_browser_devtools_devtools__eye__dropper.cc) = 917433ea498335c9f5a6cf56f9ac6e5592a59713
-SHA1 (patch-chrome_browser_diagnostics_diagnostics__writer.h) = 54c1525fc1b80e470b64717e6d98430d23cc02dc
-SHA1 (patch-chrome_browser_download_chrome__download__manager__delegate.cc) = 929a60710d7a610f5a996653f688bb492d509734
-SHA1 (patch-chrome_browser_download_download__commands.cc) = 2c51661a8de5166cb2d4ffbaf9f9808f6b0d2c73
-SHA1 (patch-chrome_browser_download_download__commands.h) = a1b69960d3e6cc5a536406069534e71afb89c47e
-SHA1 (patch-chrome_browser_download_download__item__model.cc) = 7089362fd2a31a9858a271f3abb9764481c07ccd
-SHA1 (patch-chrome_browser_download_download__prefs.cc) = 27f00701b0fc778b1d0d4a6aba41a68aa1c2a6b1
-SHA1 (patch-chrome_browser_download_download__prefs.h) = 1e1ffa3d0aad5361fe837baef4be84fadccfe68b
-SHA1 (patch-chrome_browser_download_download__query.cc) = b39e5f3a2bcb3f02627206b7cd859d5b8536cbb9
-SHA1 (patch-chrome_browser_download_download__shelf__context__menu.cc) = ac62bfb27febdbcc549da7f9461cf7505ec81af7
-SHA1 (patch-chrome_browser_extensions_BUILD.gn) = e82b791c9f1118e125bc724fcfbe3b94f4db2e40
-SHA1 (patch-chrome_browser_extensions_activity__log_activity__log.cc) = f18df4af099247bc751446a4ce6903ab7ff4a045
-SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc) = ab67e2ee81ee39d7889fccaf6b2a5c5adee2f88f
-SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc) = 548e6315cb088789229a9e995f209449a2b3d0ab
-SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc) = 15e4f12de694d8c2e981f57aa5b19e5d2ee6eda0
-SHA1 (patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc) = e2021957da1abe5fe32f9f8be91177d3697b2e02
-SHA1 (patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc) = 2b4556db7045e6e5fbaf8d5c6fbc93f66a45bb26
-SHA1 (patch-chrome_browser_extensions_api_settings__private_prefs__util.cc) = 99069f5e1838af23bcf801eef6f22bb0a7266f91
-SHA1 (patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc) = 92827119e650c0411978a769c7a764bd07b2294b
-SHA1 (patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc) = 52a4cda10677ceee96ecb3a5cc1691c54cdac85b
-SHA1 (patch-chrome_browser_extensions_external__provider__impl.cc) = 76435832d0616999d0bc1705cf4f593075ed72af
-SHA1 (patch-chrome_browser_first__run_first__run__dialog.h) = e43148d05ccb38035c838d137b3b1a37d0da5be0
-SHA1 (patch-chrome_browser_first__run_first__run__internal.h) = 7153a82435ddc8b20dae025ee54ba67df64048a6
-SHA1 (patch-chrome_browser_first__run_first__run__internal__posix.cc) = 4bc8db4d80468c8e31e6a2d043deaa642ff04571
-SHA1 (patch-chrome_browser_flag__descriptions.cc) = 3b516e9c60fbe2634dd92cdc775016b9afae1bf6
-SHA1 (patch-chrome_browser_flag__descriptions.h) = f26c2d85cb7e7242ab7ee6c3a5ff8d5ed2d0bc2d
-SHA1 (patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc) = 2d2961e9bcf046296bc1ec2454089de05ae2ffb0
-SHA1 (patch-chrome_browser_media__galleries_media__file__system__registry.cc) = 2e460da47e18c384cfaae3224807674cb706f3a5
-SHA1 (patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc) = a2252160a73f3a5b4daa68eed4c060e48d3fc18c
-SHA1 (patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc) = dc4c35823796b3d003de4155b556af4c83e1016c
-SHA1 (patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc) = 682674bf105c009a9bdb68e871a555c464e3e4e1
-SHA1 (patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc) = 7daeff427b08993c846c5b8248e4eba18999edb8
-SHA1 (patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc) = f1f7bf7a1f9ca06a1b7917fee2dfdd403c20505e
-SHA1 (patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc) = dc25b8de25a4403af2f69dc8c8aabb332ebe4969
-SHA1 (patch-chrome_browser_media_webrtc_webrtc__logging__controller.h) = d52a3ee0a13f2b034a500d6b781f4c469599473f
-SHA1 (patch-chrome_browser_memory__details.cc) = c0e5300374302ed99e669087260a085a708a0820
-SHA1 (patch-chrome_browser_memory__details__linux.cc) = d7fbec5291c681a999b5d0dedc76601c665d996b
-SHA1 (patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc) = 6da95155eaeb6ff73d3ebea21b47cdabeb9f2315
-SHA1 (patch-chrome_browser_metrics_chrome__metrics__service__client.cc) = fd17d94748be4cf96f7839487a01bb98f370aeaf
-SHA1 (patch-chrome_browser_metrics_process__memory__metrics__emitter.cc) = b4b80aa7902ffa6ba1f3bb3c530f7efa189c658b
-SHA1 (patch-chrome_browser_native__file__system_chrome__native__file__system__permission__context.cc) = 99224960eeb98a2c86b3a51f215f88caf03953c9
-SHA1 (patch-chrome_browser_net_system__network__context__manager.cc) = b2366198e5554d283b78a93de51adbed807eb90b
-SHA1 (patch-chrome_browser_notifications_notification__display__service__impl.cc) = d06770dafce66984c3a882db213ea052800acc2e
-SHA1 (patch-chrome_browser_password__manager_chrome__password__manager__client.cc) = eb5c82b2e340e3237888f97f8b5abc781954623f
-SHA1 (patch-chrome_browser_password__manager_password__store__factory.cc) = 59edad927b93d3ab668a91f5df92e6fdf5837131
-SHA1 (patch-chrome_browser_performance__monitor_process__metrics__history.cc) = 9eb711002412d58cf03771eb79411927b822aa31
-SHA1 (patch-chrome_browser_performance__monitor_process__metrics__history.h) = 2a93d0b93aca94e6a3bbc76a97f11bc1dec79381
-SHA1 (patch-chrome_browser_plugins_plugin__info__host__impl.cc) = 068cdf30390e69e028aa26c2caa4c702ffc791b0
-SHA1 (patch-chrome_browser_plugins_plugins__resource__service.cc) = 8aee5f5ad960ee5460f87dc07ea67d59c8451f44
-SHA1 (patch-chrome_browser_policy_browser__signin__policy__handler.cc) = ebc78181fd06f60366c4a1431d472b41906c7811
-SHA1 (patch-chrome_browser_policy_chrome__browser__cloud__management__controller.cc) = 1b333772ba44875974c42f24f9961954327f3b2f
-SHA1 (patch-chrome_browser_prefs_browser__prefs.cc) = 1e48895f99f97fd5bc82b4427af94151423363d0
-SHA1 (patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc) = 64f77626a70d93696398234fc4333bc150a6c2d9
-SHA1 (patch-chrome_browser_process__singleton__posix.cc) = 17dd4fa764bcafe804222754fba5276407960925
-SHA1 (patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc) = b85d63fa235ffb42d3941f426b6ec2a4ec79961e
-SHA1 (patch-chrome_browser_profiles_profile__attributes__entry.cc) = 523c3f504583eefdccb69d012f5098ed3cde604b
-SHA1 (patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc) = 6880024bab2ccb1400da453b8a04270c953f4ffa
-SHA1 (patch-chrome_browser_renderer__preferences__util.cc) = 3c853129ec05323330935d7d47da85ae44129f11
-SHA1 (patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js) = b62d0a2e973dbb1dc7cc168566d8917d6a2b28a5
-SHA1 (patch-chrome_browser_resources_settings_appearance__page_appearance__page.html) = 7489c1cff72234d98a71d13ace4142a9d6092072
-SHA1 (patch-chrome_browser_resources_settings_appearance__page_appearance__page.js) = 7e3e8c12018151e0d515fc26d48aa58750a3c370
-SHA1 (patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc) = e392c27de47f16e0729b7965a732c5d27adcab58
-SHA1 (patch-chrome_browser_search_search__suggest_search__suggest__service.cc) = 08d0d472982a5fc5316f3a538248fede3174759e
-SHA1 (patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc) = c152d70b69a7c0d259ba60fcbb8db2037dad41e4
-SHA1 (patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc) = 53d1de66334eb6c978b501532e3a2b6bc7aab00e
-SHA1 (patch-chrome_browser_sharing_shared__clipboard_feature__flags.cc) = a30f0f2b4369f0871f71fdcf3b65052099d98bf3
-SHA1 (patch-chrome_browser_sharing_shared__clipboard_feature__flags.h) = b70fd726e6396b0724d4dcfa6fd7487f79f0d5bf
-SHA1 (patch-chrome_browser_sharing_sharing__device__registration.cc) = 883cb1aca7d640f77d89fe4962143571f9cad484
-SHA1 (patch-chrome_browser_sharing_sharing__handler__registry__impl.cc) = d0341f1f3703590e3e65ba0f28b492bbed5fc471
-SHA1 (patch-chrome_browser_sharing_sharing__service.cc) = c53f0fcd1e4c40d576caa7d00ed841d63267c93e
-SHA1 (patch-chrome_browser_sharing_webrtc_webrtc__flags.cc) = e4ed1f4672413ef37c20f034fa15fe5db06a6982
-SHA1 (patch-chrome_browser_sharing_webrtc_webrtc__flags.h) = eb3ad1c2465fdaf6782a6247aa4563a1fb551d37
-SHA1 (patch-chrome_browser_signin_signin__util.cc) = b13b258f575214db2d6c648f0c4696142853c820
-SHA1 (patch-chrome_browser_sync_chrome__sync__client.cc) = 29cac07f3581aa6e3efafb2592979a7ad1fbcdca
-SHA1 (patch-chrome_browser_task__manager_sampling_task__group.cc) = 7386104c41470871e3d07ded5183ad98ccc9415c
-SHA1 (patch-chrome_browser_task__manager_sampling_task__group.h) = d4b065d5737808092b912b705bfd6ce663d63704
-SHA1 (patch-chrome_browser_task__manager_sampling_task__group__sampler.cc) = 28a5378b9f3abeb64abfa58b61ab46907cd77e9c
-SHA1 (patch-chrome_browser_task__manager_sampling_task__group__sampler.h) = 08e9895bc3d9da5f6f081f13fe65a20264d46b48
-SHA1 (patch-chrome_browser_task__manager_sampling_task__manager__impl.cc) = 8057d72edb053356ab69ef1a58be5226fcbe4aae
-SHA1 (patch-chrome_browser_task__manager_task__manager__observer.h) = 2f0f4149d1315fd8251881adeb13b56d077c5535
-SHA1 (patch-chrome_browser_themes_theme__service__factory.cc) = 8261c4d8b4806edd2dfc4e04a4e4bcbb3a3f1219
-SHA1 (patch-chrome_browser_tracing_crash__service__uploader.cc) = 7a8a07507fed77f22567fc2e578fdba3b0692f43
-SHA1 (patch-chrome_browser_ui_BUILD.gn) = 91be802f518bfea789ca93feed382123096ef159
-SHA1 (patch-chrome_browser_ui_browser__command__controller.cc) = 883718f9037d66827ae0242d511b8d19fa10d205
-SHA1 (patch-chrome_browser_ui_browser__view__prefs.cc) = 1c3080270c064fd04b5f736a3fb6bd4b6ca91338
-SHA1 (patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc) = 4f7b4eef24810fedd3014d2699d6b443938de88b
-SHA1 (patch-chrome_browser_ui_sad__tab.cc) = 9ab728a56183fcdb5a25c82d75311892054d16cc
-SHA1 (patch-chrome_browser_ui_startup_bad__flags__prompt.cc) = 44d471797137a5494fed17bb0b1dc4fee2322e3a
-SHA1 (patch-chrome_browser_ui_startup_startup__browser__creator.cc) = 7d4f7d4d2bfdbf5f24b854e643aa0010fdf85ac4
-SHA1 (patch-chrome_browser_ui_tab__helpers.cc) = e1fb1c1a1f589c8054c98ff25082bac48ab47f27
-SHA1 (patch-chrome_browser_ui_task__manager_task__manager__columns.cc) = b274d2b25b4bb307eec2ef36b11b47bcd548966c
-SHA1 (patch-chrome_browser_ui_task__manager_task__manager__table__model.cc) = 8179a9c44cb8c0112ee3aa0cd71c126da60292c4
-SHA1 (patch-chrome_browser_ui_views_accelerator__table.cc) = a57d38c3f12520383848e7e857e51d3cfd8eb18a
-SHA1 (patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc) = 706572c1abf7597c57e60cca299559a23b0eed9f
-SHA1 (patch-chrome_browser_ui_views_chrome__views__delegate.h) = 421fc33feced748041084ba29bf4012e8764f80c
-SHA1 (patch-chrome_browser_ui_views_download_download__item__view.cc) = 44e6c4a6d9a792a0239f1ce61bbc238649650bb3
-SHA1 (patch-chrome_browser_ui_views_first__run__dialog.cc) = aa9386a9ffda085a041b977b4388fc15dd383f95
-SHA1 (patch-chrome_browser_ui_views_frame_browser__frame.cc) = c0fd4424e1c54ebf42e134f47ac293ca14536123
-SHA1 (patch-chrome_browser_ui_views_frame_browser__view.cc) = 7014cda1288d40795f2e27dc321d16795900f01a
-SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc) = a03902cb1b5e76e1d1fbd3999fe2f63ef0cd572a
-SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc) = e953ed707636c23fadb4e2df4a68849fd68afaff
-SHA1 (patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc) = daa2baab7ad4fde14424c729374728aa0dec5387
-SHA1 (patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc) = b4be6572e7f994946104f5dcd5420eba729cf8d7
-SHA1 (patch-chrome_browser_ui_views_hung__renderer__view.cc) = 2142a294fbc85b58e81562096c7301852b54655e
-SHA1 (patch-chrome_browser_ui_views_tabs_new__tab__button.cc) = 386921bd630f81a5b202a99331ac6d312934c867
-SHA1 (patch-chrome_browser_ui_views_tabs_tab.cc) = e62ecbd522f3b241e06ac9776e8c70ffa48df0b6
-SHA1 (patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc) = 42ca07718aa0bac361287ed8f9e415810e18f26f
-SHA1 (patch-chrome_browser_ui_webui_about__ui.cc) = a9242eef93202efe0005d9f2ca850b573b21360d
-SHA1 (patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc) = 810720c14b1e8e560db9481332d80b3f7d983a14
-SHA1 (patch-chrome_browser_ui_webui_settings_appearance__handler.cc) = d496f2ea04c0d9dabc439b9d10f9b6b61bd66b16
-SHA1 (patch-chrome_browser_ui_webui_settings_appearance__handler.h) = 7b3ae69772b0adf7da12812ab6865b94af38b2aa
-SHA1 (patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc) = 94f706ea4f3929071903914a1c3d0efafb619038
-SHA1 (patch-chrome_browser_web__applications_components_web__app__file__handler__registration.h) = cbd73857fd6f53c393d839d0b602bdfb879dc1d2
-SHA1 (patch-chrome_browser_web__applications_components_web__app__shortcut.cc) = 00d71add459b359fb13b10fd4c3f8683a7f43e28
-SHA1 (patch-chrome_browser_web__applications_extensions_bookmark__app__finalizer__utils.cc) = 6ae733e2d51287617e799a91ee097c34e794295a
-SHA1 (patch-chrome_common_BUILD.gn) = 365ffa8f77178800e746e6b77371206249522f48
-SHA1 (patch-chrome_common_channel__info.h) = 4a8a1b81ddb7921c14f0222101c439d95461d574
-SHA1 (patch-chrome_common_channel__info__posix.cc) = e6d2abebf394bee0ec4779df27b4a628a369b53c
-SHA1 (patch-chrome_common_chrome__content__client.cc) = f7278a93eb98eb19a8378361366c8a72b35cf8c1
-SHA1 (patch-chrome_common_chrome__features.cc) = 889ef75dd3fc493c4944c3f692f82a165faf1d6f
-SHA1 (patch-chrome_common_chrome__features.h) = 1a0ce8cdb02285cde094ec3eef583de6e09583d2
-SHA1 (patch-chrome_common_chrome__paths.cc) = bd1af75f55204ace018fd12be86c70a49a515f58
-SHA1 (patch-chrome_common_chrome__paths.h) = e4db3ff52e5f04cb8b60b73a81489942a5c90c28
-SHA1 (patch-chrome_common_chrome__paths__internal.h) = ad97c2841fcfe2f94c23663b62c679b09297bb5c
-SHA1 (patch-chrome_common_chrome__switches.cc) = 442254699befd3a6289de423286bf7590d4e8f6b
-SHA1 (patch-chrome_common_chrome__switches.h) = 987d8511c53f9ce86a39c939988895cac4bba77f
-SHA1 (patch-chrome_common_component__flash__hint__file__linux.h) = b1e0d9ce56300ee65dea8edd2f3e4d47fb976a16
-SHA1 (patch-chrome_common_extensions_api_api__sources.gni) = 4310cc777296dd0566019623a4572a0edefb50b4
-SHA1 (patch-chrome_common_extensions_command.cc) = 3017e59114b65e4214c3f9651e5453a3a7360b7d
-SHA1 (patch-chrome_common_features.gni) = d84c204b10cc11db573d7255353421be7532d8ed
-SHA1 (patch-chrome_common_media_cdm__host__file__path.cc) = 0af6ddb359441da08c52545a27638efbf0e3f222
-SHA1 (patch-chrome_common_pref__names.cc) = ecd47761b8d67b89c9d7587a652b76a76f8fb52f
-SHA1 (patch-chrome_common_pref__names.h) = 0b0c647c22467c38dfa2fca54512ba82dd0155a2
-SHA1 (patch-chrome_common_webui__url__constants.cc) = fb16ec019ab537fa88e18de74629d56ff5a8aee6
-SHA1 (patch-chrome_common_webui__url__constants.h) = 5a4b99fb10f7c8a375733bf1950ebda0616225cf
-SHA1 (patch-chrome_renderer_BUILD.gn) = 69f8188d0c78b2fb50b8439a8aa63fee692e9b8c
-SHA1 (patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc) = 47ee741e819e366ed63b2ed2339e8c0b30d0f035
-SHA1 (patch-chrome_renderer_pepper_pepper__flash__font__file__host.h) = d949d7fb44e27956c5214605de1d3e89d4ce3f30
-SHA1 (patch-chrome_service_cloud__print_print__system.cc) = ea7a833612eb5726b5a2040d701ebf759efb77cf
-SHA1 (patch-chrome_test_BUILD.gn) = c6ee922bbd8497f4f9385f06c445fc537288cf9e
-SHA1 (patch-chrome_test_base_chrome__test__launcher.cc) = 5efc836d8836d3f81cc0d81d1a819f4d038c6b77
-SHA1 (patch-chrome_test_base_in__process__browser__test.cc) = 63f11c1e899b19958a06686f342e2b27c37c926b
-SHA1 (patch-chrome_test_base_interactive__ui__tests__main.cc) = f7cc0077e4aaa7f4744baca0305e6563a781fb08
-SHA1 (patch-chrome_test_base_test__browser__window.h) = 6c6886ab534595176e11f7b7ef5c153723ad5644
-SHA1 (patch-chrome_test_base_testing__browser__process.h) = 24a5f0e4a96488367386916d96e9c3a7e8339ca4
-SHA1 (patch-chrome_test_chromedriver_chrome__launcher.cc) = 904a00b7ac2efd62e278c38a3273f3bf7876f997
-SHA1 (patch-chrome_test_chromedriver_chrome_chrome__finder.cc) = 593b52ab045e77db0ac8ed08f94e258afd6c5b3d
-SHA1 (patch-chrome_test_chromedriver_key__converter__unittest.cc) = fa788472b3aa80e444c1fed6894987ff27d6ddb9
-SHA1 (patch-chromecast_BUILD.gn) = 1c7db16a5a278111526e5b3c5dc7b510c3c3a822
-SHA1 (patch-chromecast_bindings_BUILD.gn) = c6c0e7641f493eaaf13b718fea93c2785c014ece
-SHA1 (patch-chromecast_browser_BUILD.gn) = 5ae02434fc92929b87064b070318a4e5e29a9596
-SHA1 (patch-chromecast_browser_cast__browser__main__parts.cc) = 0f1576d5aad05ccd1187714664eba63069f0fb8b
-SHA1 (patch-chromecast_browser_cast__content__browser__client.cc) = bce143f99f9320b9680d50ca7eb8b403951f21d1
-SHA1 (patch-chromecast_browser_metrics_BUILD.gn) = 54f8877c1d93f10222095e0fabe00dbb9635d7a3
-SHA1 (patch-chromecast_browser_tts_tts__controller__impl.cc) = 6802402c0420d7cae766d03d7dd24df6bcccb2e6
-SHA1 (patch-chromecast_chromecast.gni) = 84323b6e6774e35b312af15fd57c685558c17a55
-SHA1 (patch-chromecast_external__mojo_public_cpp_external__mojo__broker.cc) = 7e558c8283e9e37e74759fdf69a624ac159dcbc8
-SHA1 (patch-chromecast_net_BUILD.gn) = 3a62b874d59da9bab4914401d2654cc6daedca0a
-SHA1 (patch-chromecast_renderer_cast__content__renderer__client.cc) = 4159116c778e5732fe675cf7c4d2a1a19893c5a1
-SHA1 (patch-components_BUILD.gn) = 4c426de36eb667dd7dbb5262a0efa4d2221e6c2c
-SHA1 (patch-components_autofill__payments__strings.grdp) = d1df184550e45588c469fef793928bdd34c25ae6
-SHA1 (patch-components_autofill_content_renderer_password__form__conversion__utils.cc) = 32b05528519b56a7e3c8df96787350445c204e80
-SHA1 (patch-components_autofill_core_browser_autofill__external__delegate.cc) = f4eba78865a2b996f0f0ddcc5b26a9b62dc18ddf
-SHA1 (patch-components_autofill_core_browser_personal__data__manager.cc) = 0ba8373fe7d2c02c5e6b75f56d057b5ab7e3464d
-SHA1 (patch-components_autofill_core_common_autofill__payments__features.cc) = c657fb5fdcd53f6669ead9c61fcc3af8fa72fbc1
-SHA1 (patch-components_autofill_core_common_autofill__util.cc) = 9b94e6fd34a063945e4e229cd4130b5ac8e0df92
-SHA1 (patch-components_content__settings_core_browser_website__settings__registry.cc) = 2aefc8e4c046daa1c36fcfbe7b7f36189c987538
-SHA1 (patch-components_cookie__config_cookie__store__util.cc) = ffab7ecdada9297d567001afa281e1eb46fc8a27
-SHA1 (patch-components_crash_content_browser_BUILD.gn) = 4b6ed3b21efff24545561af8e563cd6631175a42
-SHA1 (patch-components_crash_core_common_BUILD.gn) = 6c9d8d990066c4ebbe294caebfbcce34feed534e
-SHA1 (patch-components_cronet_BUILD.gn) = 76bee8acb9c5d4b73dda010068bec8f14b1095c0
-SHA1 (patch-components_discardable__memory_service_discardable__shared__memory__manager.cc) = 4ab41ec675698570befa006af01b863509e56cb7
-SHA1 (patch-components_download_internal_common_base__file.cc) = b5e074f8e5131487325a0b960fc7271cb902e167
-SHA1 (patch-components_exo_BUILD.gn) = 6188b72ffe8ae71b5a96d4ad7d45632f3ee86056
-SHA1 (patch-components_feature__engagement_public_event__constants.cc) = 24e35b7fd1e1cef7c50fa9759b627bb2bd78c838
-SHA1 (patch-components_feature__engagement_public_event__constants.h) = 4f2c44dc5e09d7a0a4a7c906951b611231d9df49
-SHA1 (patch-components_feature__engagement_public_feature__constants.cc) = 90bd259afe8df5d5b6170a1a308545a208c3a368
-SHA1 (patch-components_feature__engagement_public_feature__constants.h) = 3b82ca7d8d6bf7db9236e98db16a9c1be6273d31
-SHA1 (patch-components_feature__engagement_public_feature__list.cc) = 6145c1ccc174d9184797d0c9c5de874e8a84a063
-SHA1 (patch-components_feature__engagement_public_feature__list.h) = fe17e6e7e0cf6b36be13b45375a886d2f9972e91
-SHA1 (patch-components_feedback_anonymizer__tool.cc) = 40a9eb1f14ea76144dbed643e2782769ff2e1891
-SHA1 (patch-components_flags__ui_flags__state.cc) = d5448120ba6ca2eede77f1470a5d779917648650
-SHA1 (patch-components_gcm__driver_gcm__client.h) = 4abc968e317ab093b0fd4d75d814b4a8b9062357
-SHA1 (patch-components_gcm__driver_gcm__client__impl.cc) = 3fb158e91f47969dd7ffbd0cde38b1e9895a3196
-SHA1 (patch-components_gwp__asan_BUILD.gn) = 7e6c4d870338f3073c355c4450924977e91e9705
-SHA1 (patch-components_keyed__service_core_dependency__graph__unittest.cc) = 1703696544c3fb1c5c92c3f563a077b458911563
-SHA1 (patch-components_metrics_BUILD.gn) = 62ffde13482b6d2fadedc86ac29bedeaf3a6a8ae
-SHA1 (patch-components_metrics_drive__metrics__provider__linux.cc) = f7b6b41ceaf7ee90918b5a4ccd47cc8814975270
-SHA1 (patch-components_metrics_metrics__log.cc) = a160453a82185b00a97cf8060ecdd61ede105545
-SHA1 (patch-components_metrics_system__memory__stats__recorder__linux.cc) = 252592bed27d887fd1855ff81cfb80876c91a51a
-SHA1 (patch-components_neterror_resources_neterror.js) = 8572beb889a608c25ccc96a8f03ada711020529a
-SHA1 (patch-components_network__session__configurator_browser_network__session__configurator.cc) = 0407ceb6c8ea3d7b6240271e8b65df9dda609e27
-SHA1 (patch-components_new__or__sad__tab__strings.grdp) = 35fd1c87f18a6b7fd9595a0e540f0692390a6843
-SHA1 (patch-components_os__crypt_os__crypt.h) = 7e685587c4920056be99f678c6c3dc57e996f16a
-SHA1 (patch-components_os__crypt_os__crypt__unittest.cc) = 9e15af1b291fe6aaf190f8b5bff018763498a1a3
-SHA1 (patch-components_password__manager_core_browser_BUILD.gn) = a4ef51776484f5f668824bd1885e6f53d3769342
-SHA1 (patch-components_plugins_renderer_plugin__placeholder.cc) = e9d79f4e69a31b507874fa9c732eb503e910e7cf
-SHA1 (patch-components_policy_BUILD.gn) = 56e3b56a08ad6d243b1e827870e01b4057d83254
-SHA1 (patch-components_policy_core_common_BUILD.gn) = 1dddbe71f826b751fd0e5d9410165d5cd992db9d
-SHA1 (patch-components_policy_core_common_cloud_cloud__policy__util.cc) = 609358a29d29fb2295fd5d9462b39b052ede61aa
-SHA1 (patch-components_policy_core_common_schema.cc) = 512c607aa9856bdac15764769907861a472123c4
-SHA1 (patch-components_policy_tools_generate__policy__source.py) = 0d86ff34076c748e6aa16ca057644bc53adbc760
-SHA1 (patch-components_previews_core_previews__features.cc) = 8a803ebc27e7918c9f9f2105427703e9fb3bdd10
-SHA1 (patch-components_safe__browsing_core_resources_BUILD.gn) = f8c89dea1340b1687cacbf9aa2af9830af3ca7d2
-SHA1 (patch-components_safe__browsing_core_resources_gen__file__type__proto.py) = 1deb75c1ff57d5165349c8883f985788822ccc6a
-SHA1 (patch-components_security__interstitials_content_captive__portal__blocking__page.cc) = e1087bf1d9554f1734a64c5ac45f32ae9897d6a6
-SHA1 (patch-components_security__interstitials_content_utils.cc) = c0d39fa8573716f6e65087c051bf7fc66bbf4d5e
-SHA1 (patch-components_services_font_BUILD.gn) = 7a4b672f9e0225cac87177cf481956148e31df74
-SHA1 (patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc) = 91728690c6bf5cfbedc154317bf556d2059b3da1
-SHA1 (patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h) = d5671b02030170202f101446c47a9170563d5f70
-SHA1 (patch-components_signin_features.gni) = 4ea7ce7cfa9fc5f3aac9d1f4d528a55cafbdca8d
-SHA1 (patch-components_storage__monitor_BUILD.gn) = 2f688ed4bdde39abc44a7f1f6d0125c2bfaf3cae
-SHA1 (patch-components_storage__monitor_removable__device__constants.cc) = 652b0190cd625f0a6cdc23c14679efb38253b8bf
-SHA1 (patch-components_storage__monitor_removable__device__constants.h) = 83ea9b1395d9b485ba66ffe1b5cdef5a24f86e66
-SHA1 (patch-components_storage__monitor_storage__monitor__netbsd.cc) = 3231557707093ce0bc9cf3e1dabcef7e552aee9b
-SHA1 (patch-components_storage__monitor_storage__monitor__netbsd.h) = 626f4071db6d3e74b48cbf4f51843282965aac7c
-SHA1 (patch-components_sync__device__info_local__device__info__util.cc) = f5eda2503a8d158d9c8e88e41c3b6102a89a48e3
-SHA1 (patch-components_sync__device__info_local__device__info__util__linux.cc) = 24406ab4e749f09423ce8dbcd63d405f46a8ffc3
-SHA1 (patch-components_update__client_update__query__params.cc) = d4942f0d034d0fd4733e5bc03009653ee82d907a
-SHA1 (patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc) = 297e52327b43779b6924410dec6d0f0b04d25cd0
-SHA1 (patch-components_url__matcher_regex__set__matcher.cc) = 158e155f59dd99f4dabf7262810e2abbcb9c5da7
-SHA1 (patch-components_url__matcher_url__matcher__factory.cc) = 2cf8de8713a477c11d307228b536f0234e89c502
-SHA1 (patch-components_viz_common_features.cc) = f0276dad86b0895f33e57ed180ca28f3bf71a54a
-SHA1 (patch-components_viz_common_gpu_dawn__context__provider.cc) = 63e027b907b7a91e41df70def7231611028c3c00
-SHA1 (patch-components_viz_host_host__display__client.cc) = 80746db079157fcdaa88c1f09aeff5491e8e5464
-SHA1 (patch-components_viz_host_host__display__client.h) = 28be16517afc44e603f30208128dae54319bc080
-SHA1 (patch-components_viz_service_display__embedder_software__output__surface.cc) = aa8b9c2330fe215a61397ff0a94ec185ace5236a
-SHA1 (patch-components_viz_service_display__embedder_software__output__surface.h) = 57dd76e18ca15ea8cfc058effc3e4dac415b95b6
-SHA1 (patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc) = e8c12473ca42751a672464c115b0688f01792f81
-SHA1 (patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h) = 302df92beb18f2d2b91b4a76b256efb5dee62ece
-SHA1 (patch-components_viz_test_fake__output__surface.cc) = 2d1d6c61b03a6fba94a8b03eafb258ebb377a8f1
-SHA1 (patch-components_viz_test_fake__output__surface.h) = c589b1db7d198100827ecfa18c302e36ad1993f1
-SHA1 (patch-components_viz_test_mock__display__client.h) = 348d76c7182073219c8aafa0eeb6433b8a37c840
-SHA1 (patch-components_webcrypto_algorithms_test__helpers.cc) = 5b1352977d558846c12a38464d71010d2dbe54b4
-SHA1 (patch-content_app_content__main__runner__impl.cc) = b0a3063efec0f08eda9fce32480cdf7510726541
-SHA1 (patch-content_browser_BUILD.gn) = 521d87cd70eca9693ba438d574813bd068174441
-SHA1 (patch-content_browser_browser__main__loop.cc) = ddea55c6d160be28725649048cfad5982c28c6d6
-SHA1 (patch-content_browser_child__process__launcher__helper__linux.cc) = 02dd8e0160446e3ae99bbdee41a6c4767436d44c
-SHA1 (patch-content_browser_compositor_viz__process__transport__factory.cc) = 4aad01acd1eb3977e93562edaa1882f87763e3f3
-SHA1 (patch-content_browser_devtools_protocol_system__info__handler.cc) = f462e24c66b533b2c283967a6cbfbb733a9424ea
-SHA1 (patch-content_browser_gpu_gpu__process__host.cc) = a5cfd6b52684c8d563d5552a650cfac640dd4ff5
-SHA1 (patch-content_browser_memory_swap__metrics__driver__impl__linux.cc) = 880a690bd9ac7c42adc52d09cbc10ca5ed287b14
-SHA1 (patch-content_browser_ppapi__plugin__process__host.cc) = 95f19f6100e71f548051c2d041b12edb69228c21
-SHA1 (patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc) = 46c4b0686a55eaef4ec7e1216d207198e686d855
-SHA1 (patch-content_browser_renderer__host_input_input__device__change__observer.cc) = 016eedf60f4db46e7c77f4e5649c9464a255053b
-SHA1 (patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc) = bca09a7301c0e57a28192569b95c045f364542c7
-SHA1 (patch-content_browser_renderer__host_render__message__filter.cc) = 90561548697716805302700c7bdca6e0f3272cf8
-SHA1 (patch-content_browser_renderer__host_render__message__filter.h) = 59f618620f236e0b4c625da337114f66752c05c7
-SHA1 (patch-content_browser_renderer__host_render__process__host__impl.cc) = cb01ae8f963d49ed4b9d7e1e0b251fe8d545c774
-SHA1 (patch-content_browser_renderer__host_render__process__host__impl.h) = 1ba1d31502b2e41e117d8b268d40c511d8cd3ef6
-SHA1 (patch-content_browser_renderer__host_render__view__host__impl.cc) = 1ecdb9990102881c539af188ba040fb509ec677b
-SHA1 (patch-content_browser_renderer__host_render__widget__host__view__aura.cc) = d7d957175df8ea2b79b5162b06c6d713887a5dfc
-SHA1 (patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc) = 9e2935f8f095b08256525d87c4c8a02e6c3f8f6b
-SHA1 (patch-content_browser_scheduler_responsiveness_jank__monitor.cc) = 14f474b19f798d65f3cd1601edea5a43e572a77a
-SHA1 (patch-content_browser_scheduler_responsiveness_native__event__observer.cc) = f2efbb346c48f7e10297e425b544ebb7beb79e70
-SHA1 (patch-content_browser_scheduler_responsiveness_native__event__observer.h) = 7a409fa424444c84c2f57eac4cbc341367dbc038
-SHA1 (patch-content_browser_utility__process__host.cc) = 42d524d5d636fc7fbf9e4f845fb0449dba77646f
-SHA1 (patch-content_browser_utility__process__host__receiver__bindings.cc) = 54d005bbd83e23aa872ec89fb25841cf7bb7b9d6
-SHA1 (patch-content_browser_v8__snapshot__files.cc) = 9a2d43996f3fe3e0d0fce36893f709cc79213025
-SHA1 (patch-content_browser_webui_shared__resources__data__source.cc) = d825bfb4b92916bc95d8e6465c781d3e5123eebe
-SHA1 (patch-content_child_BUILD.gn) = 1c02dc672f2170900f9fc6a56b0ebce3857e8271
-SHA1 (patch-content_common_BUILD.gn) = 1e6ab0b0f7112c7268bc0bbae059de83d562b875
-SHA1 (patch-content_common_common__sandbox__support__linux.cc) = 5a49734c83c882715e06a5083d7177f71cb771bf
-SHA1 (patch-content_common_features.gni) = 1baee00583342ee5c77d4ca54ef5f41c7c53f8d8
-SHA1 (patch-content_gpu_BUILD.gn) = 5230f18bb03789c1491d3d366882d7dc8cd1bf45
-SHA1 (patch-content_gpu_gpu__main.cc) = e783c1fb8c16a874ef008958fb7900cbd46872a3
-SHA1 (patch-content_gpu_gpu__sandbox__hook__linux.cc) = 62dadb0141bc8b87eb7a875fa9c3ecaafe4dfb0f
-SHA1 (patch-content_ppapi__plugin_BUILD.gn) = 46d27de0acced9dd32e4e1ec02146c934b9a7394
-SHA1 (patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc) = f154123615c628fc9ed20b66bc24a1dd85e65ada
-SHA1 (patch-content_ppapi__plugin_ppapi__blink__platform__impl.h) = 6788dd2ab881a6e9017e51a52baf65bfea485729
-SHA1 (patch-content_public_app_content__main__delegate.cc) = 051763f2e402693e9870f349e4ef98dc781914a9
-SHA1 (patch-content_public_app_content__main__delegate.h) = 332de034ad7472652db4a54d6732ed84a15eb1e8
-SHA1 (patch-content_public_common_child__process__host.h) = 4cb743c9cdda553b46d5c9212a0026cba632bd36
-SHA1 (patch-content_public_common_common__param__traits__macros.h) = 82287c957e42aea3c393ec4b9ce9f262e8957c16
-SHA1 (patch-content_public_common_content__constants.cc) = 51c9ba86d9569fc141bea39a16fd33399fe74dbb
-SHA1 (patch-content_public_common_content__constants.h) = 7cd5aac75d35cee44de991dce10418491756ba29
-SHA1 (patch-content_public_common_content__features.cc) = 969c0e799631952cb7480cee93dc3d0678296dfc
-SHA1 (patch-content_public_common_content__switches.cc) = 1aa48db4c61179993e40803aa75a02f2aa5f546a
-SHA1 (patch-content_public_common_content__switches.h) = 09fc924513a2c33b4de165952fee05e2d11af3e6
-SHA1 (patch-content_public_common_use__zoom__for__dsf__policy.cc) = b60a8bdba9f44a42f5eb9ec236414383a3e25458
-SHA1 (patch-content_public_test_browser__test__base.cc) = 3d6ef627fe894c6ab0e7cae857ecb37f8c4a4d3a
-SHA1 (patch-content_public_test_content__browser__test.cc) = 5e34acfe902bce562333bd5882cbf2972c1e4318
-SHA1 (patch-content_public_test_mock__render__thread.cc) = 4b963f81295e96111b8544ef4122b0b9904a17b2
-SHA1 (patch-content_renderer_BUILD.gn) = 38e6b49b0e5d826ece3bb1895c4d3c6d9d3d9175
-SHA1 (patch-content_renderer_media_audio_audio__device__factory.cc) = e199f8f6b280adcc77139add3d2bc18a74f35f97
-SHA1 (patch-content_renderer_render__process__impl.cc) = 287447b2e4488d478b3a32ae5b6770bfdb39f120
-SHA1 (patch-content_renderer_render__thread__impl.cc) = a318333b7c7c3015854a0a9b9446007ce13ffd4e
-SHA1 (patch-content_renderer_renderer__blink__platform__impl.cc) = d02329122bb95cd49eae3294c504d3b5487262df
-SHA1 (patch-content_renderer_renderer__blink__platform__impl.h) = ad7f909316c2828136e316690913387c698ce913
-SHA1 (patch-content_renderer_renderer__main__platform__delegate__linux.cc) = 63bb654031453e0e1d380da114823c56495df677
-SHA1 (patch-content_shell_BUILD.gn) = 851f5b9cad88b68edcca991eea7a5a0a6efa3ab6
-SHA1 (patch-content_shell_app_shell__main__delegate.cc) = 6c5873b7237bb1e6e0d0cc20fb0d5027f390dab8
-SHA1 (patch-content_shell_browser_shell__browser__context.cc) = 46d3d8b024533c55633bd6851b2ef089da40bc28
-SHA1 (patch-content_shell_browser_shell__browser__main__parts.cc) = 9d7e497a9220834c26b624e3bdc3f1321a3831fc
-SHA1 (patch-content_shell_browser_web__test_web__test__browser__context.cc) = 7f53a23989ba098f8e08fdadb6d25d22bf1ae60c
-SHA1 (patch-content_shell_browser_web__test_web__test__browser__main__parts.cc) = b03dee1b4e2b77acb028bb4e467cd4ec925641f0
-SHA1 (patch-content_shell_renderer_web__test_test__runner.cc) = f2d50d6ed0d42c6b8ef19b0e6b9ea3430344259e
-SHA1 (patch-content_test_BUILD.gn) = 8f4c160fb07800f6f8d170cb6e69a2dd9df8aece
-SHA1 (patch-content_test_content__test__suite.cc) = d9a5c2746ff292f166ff8b3a453d85318ba8914b
-SHA1 (patch-content_utility_BUILD.gn) = 61fc382f842a9afeee7150bac8315bbece055410
-SHA1 (patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc) = f6b9891cccf3d4b0c345511238b8a847847b9042
-SHA1 (patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h) = 082b4679e57b3eb6e511c54b40832bc330b44cf4
-SHA1 (patch-content_zygote_BUILD.gn) = 59d5d005bccfd2e827440f2aa0bbfcf99ac5109c
-SHA1 (patch-content_zygote_zygote__main__linux.cc) = 72e3d7970ae7111d3ecaff709dda804aecd8eb16
-SHA1 (patch-device_gamepad_BUILD.gn) = 64c1de808368b670b676a6f68ce3e1f528c502a9
-SHA1 (patch-device_gamepad_gamepad__provider.cc) = 1e53e25b90464ca7150aec277f8c92b7c13aec90
-SHA1 (patch-device_gamepad_hid__writer__linux.cc) = 687d21e901cffe80ffd6335ef72b3e5c93e5dee6
-SHA1 (patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc) = 01c82235379465cc2694cca11b1019b8bbe21af9
-SHA1 (patch-extensions_browser_api_messaging_message__service.cc) = 4f4cb6a0799ab04070ca334de87a554ce7e4ea9d
-SHA1 (patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc) = bbb492e2c20015e8fd6c9a2bdd1f15165cc55639
-SHA1 (patch-extensions_browser_api_web__request_form__data__parser.cc) = 6ba473cc3dd84679934203f8e5c90de05857cbf8
-SHA1 (patch-extensions_browser_browser__context__keyed__service__factories.cc) = 64450430bb24d722fbbd7c84beb6260319aef264
-SHA1 (patch-extensions_common_api___permission__features.json) = e3ef3f7eb6c4cd9781c00f24a81b23981310fa1b
-SHA1 (patch-extensions_common_api_runtime.json) = fef2b8a2da35542fdf6a7bf3938bc4133c2dbeb4
-SHA1 (patch-extensions_common_feature__switch.cc) = 98731493ee6d3692e6999715a2fa99e19bdfacc4
-SHA1 (patch-extensions_common_features_feature.cc) = 7263205b6acc205eed52bd1113906ede6e3d50b5
-SHA1 (patch-extensions_common_image__util.cc) = 69272d97b71c2b1caef22bc30a12c6cda158e644
-SHA1 (patch-extensions_common_stack__frame.cc) = 71b96538599d892fd3b72c2b8f164d9733794913
-SHA1 (patch-extensions_renderer_bindings_api__binding__util.cc) = 3ad71a562b328edccc50055d3e3a2d7adddd8831
-SHA1 (patch-extensions_shell_BUILD.gn) = 5c430486b321f6d123be8618421d15f998a2bd1f
-SHA1 (patch-extensions_shell_app_shell__main__delegate.cc) = 1f6da31c4dd9251be37b8dcc211c0edb057efa89
-SHA1 (patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc) = ea4e4aafeef4956414567576c7754fd6d3a7da95
-SHA1 (patch-extensions_shell_browser_shell__extensions__api__client.cc) = 1a187b599b9ba07386e0dba6864e72d11665b281
-SHA1 (patch-extensions_shell_browser_shell__extensions__api__client.h) = 654ef59b12d693b412496741a45e891aab073a6b
-SHA1 (patch-google__apis_gcm_engine_heartbeat__manager.cc) = ef0c0cb68d34c7cb64cb54e801f3bc0efb434d01
-SHA1 (patch-gpu_BUILD.gn) = a9bacb756642a0bfee306ce096460902ca421b02
-SHA1 (patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc) = db5466dd1d9957d5bc5a676a308678b7d3a069e5
-SHA1 (patch-gpu_command__buffer_service_BUILD.gn) = dd3dbc4281a098321ac6cf00a1d2e8a70b14161e
-SHA1 (patch-gpu_command__buffer_service_external__vk__image__backing.cc) = 5029a1fceccccb19429b321b9526b490a9ccdf93
-SHA1 (patch-gpu_command__buffer_service_external__vk__image__backing.h) = 6d1372d112ccfbd5d91b4b37303663f4b2a65751
-SHA1 (patch-gpu_command__buffer_service_external__vk__image__gl__representation.cc) = f813c102749b0fbe9b19724c6b872a1eefb67353
-SHA1 (patch-gpu_command__buffer_service_program__manager.cc) = b4c819dc563b165fbb755631559d5e0195f29d10
-SHA1 (patch-gpu_command__buffer_tests_gl__copy__texture__CHROMIUM__unittest.cc) = 9e5e72785c21e3738b4fcf3ba0d3adf05f00f21c
-SHA1 (patch-gpu_command__buffer_tests_gl__test__utils.cc) = 8bdff4208c5d6d473b6e2c9b64a116c23727e9c9
-SHA1 (patch-gpu_command__buffer_tests_gl__test__utils.h) = 3792861fc94643c9a103e465e656321a3d8cc5d8
-SHA1 (patch-gpu_config_BUILD.gn) = 7450b7f049a3809cd04208d27e00b143e04ef2db
-SHA1 (patch-gpu_config_gpu__control__list.cc) = 8b611a866f11587b5a62cbc47d87fa58c500af57
-SHA1 (patch-gpu_config_gpu__test__config.cc) = 97791ea497c7875005335278145397d1288f7e4f
-SHA1 (patch-gpu_gles2__conform__support_BUILD.gn) = 63b37d90639e66a47c067a00ddeb1750ccec003e
-SHA1 (patch-gpu_gles2__conform__support_native_BUILD.gn) = 408cfad254927f6b9a71fe8c62bb326d8663cc4a
-SHA1 (patch-gpu_ipc_common_BUILD.gn) = 29f0b407f37a619e53315d92dd3748aa08bd7c77
-SHA1 (patch-gpu_ipc_common_gpu__memory__buffer__support.cc) = 7a29d1afb79e9bc7d0874bf68198e9b2b103856e
-SHA1 (patch-gpu_ipc_common_gpu__memory__buffer__support.h) = 8401731dba08878d331a3c3620eff62fd09db97f
-SHA1 (patch-gpu_ipc_service_BUILD.gn) = 3e65784e6dc3d12b0f16001a533a535b90bc40dc
-SHA1 (patch-gpu_ipc_service_gpu__init.cc) = 9536c4e5d822e218fe5f24f140849d183a91dfae
-SHA1 (patch-gpu_ipc_service_gpu__memory__buffer__factory.cc) = c47b5eacbb242612c9d578e55e5343865fa5811a
-SHA1 (patch-gpu_ipc_service_gpu__watchdog__thread.cc) = 3e3f15145aeb580ee6419e0b362dcf4aaaf10138
-SHA1 (patch-gpu_ipc_service_gpu__watchdog__thread.h) = 71e3c0977f9cbcde43541e776d2022f89f2c1cde
-SHA1 (patch-gpu_khronos__glcts__support_BUILD.gn) = f2fed06c9505ea9fa896543d9715d8590cb3d0d9
-SHA1 (patch-gpu_tools_compositor__model__bench_BUILD.gn) = 0dd52291380e81b35eda70c6c290d3769161c4b4
-SHA1 (patch-gpu_vulkan_features.gni) = 12399803c07c8a5f2ae39ee7da620085c1b53c9b
-SHA1 (patch-gpu_vulkan_vulkan__function__pointers.cc) = 6762cfe2d69ed514f8fa9e822ea49d74c1b89838
-SHA1 (patch-gpu_vulkan_vulkan__function__pointers.h) = 7ffd127f8ca3fd620e962c23272476b04c92a640
-SHA1 (patch-headless_BUILD.gn) = 7dd3ffa6465e79d1ef77e7dffb4dd2e7a21e6fd3
-SHA1 (patch-headless_lib_browser_headless__browser__main__parts.h) = 152c3d806093418eb70099af57e505eeeb593646
-SHA1 (patch-headless_lib_browser_headless__browser__main__parts__linux.cc) = 36b7f80117c7d521c23085932a18e2a346f80d9a
-SHA1 (patch-headless_lib_browser_headless__content__browser__client.cc) = 3bfe040cb3d7561bb1ebcc8335d56d68a228eea0
-SHA1 (patch-headless_lib_browser_headless__content__browser__client.h) = 8e39ff0ff7ba5f19bfde78f6f955835b1a279f7a
-SHA1 (patch-headless_lib_browser_headless__request__context__manager.cc) = fb257dcc79febf32a0a443974266afb8c7af40dd
-SHA1 (patch-headless_lib_headless__content__main__delegate.cc) = bffa4e906a9324eb1ce01c57dd1fcc5c18ca52eb
-SHA1 (patch-headless_lib_headless__content__main__delegate.h) = 2bbfed4f1572e5bfa546ad2912299ffad56d8fab
-SHA1 (patch-headless_lib_headless__macros.h) = 2c847fd32cb13d539ddbcf87d6174670cd3c750c
-SHA1 (patch-ipc_ipc__channel.h) = 2e06057c4c149e01dabdd8869071c413bd3f919d
-SHA1 (patch-ipc_ipc__channel__common.cc) = 27b29e09fb5e6c5bef1a7540cd9dd48cf37ce562
-SHA1 (patch-ipc_ipc__channel__mojo.cc) = 57977ba7c45a374657eeacd9416481a2f8c25942
-SHA1 (patch-ipc_ipc__message__utils.cc) = 22b27b639b15b5b8957d20d5e77c3f39e53663b4
-SHA1 (patch-ipc_ipc__message__utils.h) = 5d6abc7fdc7cc7d6d9fdcf2a1f5edaa82e7c95f7
-SHA1 (patch-media_audio_BUILD.gn) = 3cd99725d32bf65c9d637c91f7b04b23be1b216a
-SHA1 (patch-media_audio_alsa_audio__manager__alsa.cc) = 403e9e3b353eca301060ff6400fbdb31f8a4529d
-SHA1 (patch-media_audio_audio__features.cc) = f83e6c372f9e020f08aaceeea71e3d676b5762d9
-SHA1 (patch-media_audio_audio__input__device.cc) = e7356fa9143b5fcedc1323813cc61f1c5e992ac6
-SHA1 (patch-media_audio_audio__manager.cc) = 3ffede53336a80e6571d6ebde790758b6d382231
-SHA1 (patch-media_audio_audio__manager.h) = cb80832f05a939c05bdf0b131a39578454149535
-SHA1 (patch-media_base_BUILD.gn) = 52f73db8752649704a6a844ddc5e8a78d8fcff0a
-SHA1 (patch-media_base_audio__latency.cc) = c541dbdafd94bb27ca750d4a89417db2f3f2f92d
-SHA1 (patch-media_base_media__switches.cc) = da7a94b15098e0667f4a7c1e3d400374478720a4
-SHA1 (patch-media_base_media__switches.h) = 0cc2be81e981bddd5e2756829f0424997e5a34c0
-SHA1 (patch-media_base_scopedfd__helper.h) = b16a5d668aa88f1794771c671e62d1c02ba9ed18
-SHA1 (patch-media_base_status.cc) = 66e1b053b0d7d5720bad8d2abb415c3ecdae0729
-SHA1 (patch-media_base_video__frame.cc) = 5e21bfde6aa0f9baa72eab00d473682686e41421
-SHA1 (patch-media_base_video__frame.h) = 0df3acaa55ca0062589dde43109e3ddd8a915360
-SHA1 (patch-media_capture_BUILD.gn) = 20882ecb8243df2ed456853f81393154970043a7
-SHA1 (patch-media_capture_video_create__video__capture__device__factory.cc) = 9c0ba2dd74d88ad7c69c3924b6b5f168cf5a2560
-SHA1 (patch-media_capture_video_fake__video__capture__device__factory.cc) = af091547d0cda95ec02bc9ac3d223ee366e6fd87
-SHA1 (patch-media_capture_video_file__video__capture__device__factory.cc) = 42533e2618403297924178789c9bbfa884fb7b87
-SHA1 (patch-media_capture_video_linux_v4l2__capture__delegate.cc) = 300d5ff66cddec93ac26e285fd5f082ebcb6db10
-SHA1 (patch-media_capture_video_linux_v4l2__capture__delegate.h) = 340a3b5477609881da24f24a81c48871bc9c646b
-SHA1 (patch-media_capture_video_linux_v4l2__capture__device__factory__linux.cc) = 586362142534760a3be636e61e5d8f2fd3812f06
-SHA1 (patch-media_capture_video_linux_v4l2__capture__device__linux.cc) = f7a6226290c4951c716dafdb1b0a02301c884a98
-SHA1 (patch-media_capture_video_video__capture__buffer__pool__impl.cc) = 359394632ef891ce21a7193edfa452c5ffe6efa2
-SHA1 (patch-media_capture_video_video__capture__device__client.cc) = 6047ea168e08ffd516bd6d8279e87a59551b5f91
-SHA1 (patch-media_cast_BUILD.gn) = 8d6ae8281ce8c5452630eefb3b397dbc61d31256
-SHA1 (patch-media_cdm_library__cdm_cdm__paths.gni) = 6efd3332151c25dc85f332b78e706bf1cd7d87b1
-SHA1 (patch-media_filters_vp9__parser.h) = 489e6e4be3e67c7854a56a6d34945c15d0e543e6
-SHA1 (patch-media_gpu_buffer__validation.cc) = b407533635f9cb3ad6695dc727ea3c92d7d0072b
-SHA1 (patch-media_gpu_chromeos_BUILD.gn) = c026e51fb93fb752ddea9935b0dc9d68c814f9af
-SHA1 (patch-media_gpu_vaapi_BUILD.gn) = 14c00a2b93a298790fd7b3862abe84b084389481
-SHA1 (patch-media_media__options.gni) = ed9fad13925617ef4b2d05dcca3ef4488efb0a6a
-SHA1 (patch-media_mojo_clients_mojo__video__encode__accelerator.cc) = 7e76837a1541e0c78a743c2ad84879a32a55ca6c
-SHA1 (patch-media_mojo_mojom_video__frame__mojom__traits.cc) = 0dc5a83b01b6a2a59c5aa5405964f1d737ac0ced
-SHA1 (patch-media_mojo_services_gpu__mojo__media__client.cc) = ee9296c6482144fb6dd0edca48edb85402f5dec9
-SHA1 (patch-media_video_fake__gpu__memory__buffer.cc) = 5358aec1ec540f49e45c7f14a8aed26471dbd6bf
-SHA1 (patch-media_video_gpu__memory__buffer__video__frame__pool.cc) = cb6f3448793cfbc2a7478c389bc325b6da5961c3
-SHA1 (patch-mojo_core_BUILD.gn) = 54178069c571f84bfdadadb38a6a0bbb8970e54c
-SHA1 (patch-mojo_core_test_BUILD.gn) = 0ed6728fdcecd252d874b66a201a1163e10ffb2a
-SHA1 (patch-mojo_public_c_system_thunks.cc) = 22b8cef924e73ae1f82b8c69e91a36f906babb8d
-SHA1 (patch-mojo_public_cpp_platform_socket__utils__posix.cc) = 6d5da9491f006976981ad6cfab0778089c42ef40
-SHA1 (patch-mojo_public_js_mojo__bindings__resources.grd) = 4ee262d78a94d74787ad31d6997086126baadd5e
-SHA1 (patch-mojo_public_tools_bindings_mojom.gni) = 7c76b9e5cab9cc45ea18a06e476d456899c8da3c
-SHA1 (patch-net_BUILD.gn) = 1b0977e0f491a56dab435ec0450aaf4c3fd25613
-SHA1 (patch-net_base_address__tracker__linux.cc) = baa7d10a15f621f302b8d44aa3728669dafc19df
-SHA1 (patch-net_base_address__tracker__linux.h) = 3e5445edac55d13c1b4a846381b31ffbd314d315
-SHA1 (patch-net_base_address__tracker__linux__unittest.cc) = 7ad8f166bffe412dab3a2ab036d385f36fa580b8
-SHA1 (patch-net_base_network__change__notifier.cc) = 98dd5a3f4208da10b85d2cac49b16a07171527dd
-SHA1 (patch-net_base_network__change__notifier.h) = f74d14b91d052cd447f731f91759ace02821bc8b
-SHA1 (patch-net_base_network__interfaces__posix.h) = 59c90bb17b201be400d5046aff0857c78aa3027e
-SHA1 (patch-net_cert_cert__verify__proc.cc) = 5a9406b1090074c76f3708c317aaa921c6527062
-SHA1 (patch-net_cert_test__root__certs.h) = a8d5c9f575be0a44969a75675197901504689142
-SHA1 (patch-net_disk__cache_blockfile_disk__format.h) = 1296811201cb7cb13f92536344344eef5fad5e1a
-SHA1 (patch-net_dns_address__sorter__posix.cc) = 03a63005e623120c914304d5ecb7842b21e8e996
-SHA1 (patch-net_dns_dns__config__service__posix__unittest.cc) = 91faa7ed79b4463285eefd7808da29f5041152d3
-SHA1 (patch-net_dns_dns__reloader.cc) = 0c1b0f139544c4d15c5108f124e0e15a8be139b0
-SHA1 (patch-net_dns_dns__util.cc) = 821573f3e830ca35c550d97f2774ca28d7f18dda
-SHA1 (patch-net_dns_host__resolver__proc.cc) = cb10c269efbeaa346067010ca1868f9cb6c9434b
-SHA1 (patch-net_features.gni) = 162004a88de6df8e5cf016437396efdfea6f1199
-SHA1 (patch-net_http_http__auth__gssapi__posix.cc) = 6adc418c50b97a8f418450e794ac16a8c726d839
-SHA1 (patch-net_http_http__auth__gssapi__posix.h) = c4ed2ec90aef8150b2a3b1e6147bfe8eef2b1079
-SHA1 (patch-net_nqe_network__quality__estimator__unittest.cc) = 67b5a6d1d14204df0b26321d3a3b239b512bf7f8
-SHA1 (patch-net_proxy__resolution_configured__proxy__resolution__service.cc) = aa626de91583b0c481f8f280dfa17f9242ceafd4
-SHA1 (patch-net_proxy__resolution_proxy__config__service__linux.cc) = 3cde42cdc5ca41ae77f5f2d848cdde26440cf544
-SHA1 (patch-net_socket_socket__posix.cc) = 63249bafca8ed30eb62e207e685032b59367b2b2
-SHA1 (patch-net_socket_socks5__client__socket.cc) = 8376cd59ede2da8440955dd868dd55774c9d86e3
-SHA1 (patch-net_socket_tcp__socket__posix.cc) = a97a3305bbe2baecd70f2bfda94fad8d3153e554
-SHA1 (patch-net_socket_udp__socket__posix.cc) = effa3a128332bf923ed99d04d5d077b4bbf79cfa
-SHA1 (patch-net_socket_udp__socket__posix.h) = 12a05e0e416ea63651e28b63e187b899a02e00dc
-SHA1 (patch-net_socket_unix__domain__client__socket__posix.cc) = 32b98b8bea5ebf4ae78f6b6a6647e904c7a2120f
-SHA1 (patch-net_third__party_quiche_BUILD.gn) = 49fe1d69cb9f975f827d24c147d7d539fa05d306
-SHA1 (patch-net_tools_cert__verify__tool_cert__verify__tool.cc) = 59a721c0c95c04256f271ff670d999d5a8a92f66
-SHA1 (patch-net_tools_quic_quic__http__proxy__backend.cc) = 6849b6cf17ac8ee960712e0a2da78a1b2431d94e
-SHA1 (patch-net_traffic__annotation_network__traffic__annotation.h) = b455c882632c1ed4a86897b85357de19a0ea9671
-SHA1 (patch-net_url__request_url__fetcher.cc) = 93fcc86984df08cf7c90cfce65d5011b31fbe479
-SHA1 (patch-net_url__request_url__fetcher.h) = 04ef88e8b25ac14875f69e989475ec2149fbfa3c
-SHA1 (patch-net_url__request_url__request__context.cc) = a0e7d5bbff64156d6fe8374bcc720d420a45b25f
-SHA1 (patch-net_url__request_url__request__context.h) = 17e16665a43aff40d699076da9043a105d0f88b9
-SHA1 (patch-net_url__request_url__request__context__builder.cc) = d180c91114804b8cab2cb6545d688044a4ac97a8
-SHA1 (patch-pdf_BUILD.gn) = 5f3af2a8012df5f0459bdc684bf9fdebff1c282f
-SHA1 (patch-pdf_pdfium_pdfium__engine.cc) = 8721598d1a8392b1346241c9339047f2dbb99c44
-SHA1 (patch-ppapi_proxy_flash__resource.cc) = fb8511d8485a0de6daa05e54ffe44bd1ee064873
-SHA1 (patch-printing_BUILD.gn) = a58dc707cd8ca1c89d65dc863d76d1f08d86d2e4
-SHA1 (patch-printing_buildflags_buildflags.gni) = 0c728155aaf6b0d7c9c6f272c076c90846b3754c
-SHA1 (patch-printing_cups__config__helper.py) = df44b7c51ce80d13661b73857eb5170eefd2a9d7
-SHA1 (patch-printing_print__settings.h) = 7510b7ead9e6c4ac2332d27c9b0807f2c0e1133a
-SHA1 (patch-printing_print__settings__conversion.cc) = b9e371a2b88db6f427fffca37c2cfa63af95c978
-SHA1 (patch-remoting_BUILD.gn) = 5d9d0470fb10873e601ff6bec3bd9645d98bad6d
-SHA1 (patch-remoting_base_chromoting__event.cc) = 2a80316c94f1160485ce29fa504735f159f182d6
-SHA1 (patch-remoting_client_display_BUILD.gn) = 679dce961bd83d7c015c75a1ec95ee78ef2517cc
-SHA1 (patch-remoting_client_display_sys__opengl.h) = 2f0e504720db44edafc96b64c9501387820c69e4
-SHA1 (patch-remoting_host_BUILD.gn) = ee11696a415d7d7d5567b67e2a00acfc14e7f7b9
-SHA1 (patch-remoting_host_evaluate__capability.cc) = 9668af86e4bfcd407c8d8f1ea43c658c3503b601
-SHA1 (patch-remoting_host_host__attributes.cc) = 2383d506470cd2b154aa6086d345febfec5acc64
-SHA1 (patch-remoting_host_host__details.cc) = 4fcb0d0d3c7b65fe6df281346b8fc4a3b6ea85ce
-SHA1 (patch-remoting_host_host__main.cc) = dbe575cb380894db0e174a05f96d9a81b9a3c7d0
-SHA1 (patch-remoting_host_it2me_it2me__native__messaging__host__main.cc) = ce888dec202c9961dc26f40d48a34eb013783759
-SHA1 (patch-remoting_host_me2me__desktop__environment.cc) = efd030aae2168b6308994e80fa41ee8fb4a565b7
-SHA1 (patch-remoting_host_remoting__me2me__host.cc) = 6e7cf1316fcdc22dcb3fe3d47c9730db54db80f8
-SHA1 (patch-remoting_host_switches.cc) = 65551fa1e12b572f0440d7da1c60b9b9b53f08a8
-SHA1 (patch-remoting_host_switches.h) = 1e8e7d80c329ff50e8a12d380565aacd847de156
-SHA1 (patch-remoting_protocol_BUILD.gn) = 18907b6784aeb569f9a508831cbcb88e47d6e9d0
-SHA1 (patch-remoting_remoting__options.gni) = 08f077313dc694fea74f31e8b17438d3c8a65d7e
-SHA1 (patch-remoting_resources_remoting__strings.grd) = fcbe36922144263e694307ad7446180860fa1219
-SHA1 (patch-sandbox_linux_BUILD.gn) = 5b01c0a7e152d95be5ec49ee43f8ac97d28ef683
-SHA1 (patch-sandbox_linux_services_init__process__reaper.cc) = dd4836bf09bcb9c2a12d2a156acf14486a3dbd73
-SHA1 (patch-sandbox_linux_services_libc__interceptor.cc) = 9eb0bae43afba50a28397b4c808ab8c779e0bf96
-SHA1 (patch-services_audio_BUILD.gn) = 058b8edd884c4df609dc0268a2678b387136fc6f
-SHA1 (patch-services_device_BUILD.gn) = bc2c0755954927abafb8725b6c583472af5d6311
-SHA1 (patch-services_device_battery_BUILD.gn) = 384ec66cca82141abc479745284d8af10d8d3dbb
-SHA1 (patch-services_device_geolocation_BUILD.gn) = 91aa15bc4ec85d1917f6f91018ece9faba96fc11
-SHA1 (patch-services_device_geolocation_location__arbitrator.cc) = 5e978d3a078da8d81aa90cdaf8a133bb77a9ff6e
-SHA1 (patch-services_device_hid_BUILD.gn) = 33e01ab0e044f0301a70d24279b4388e832919fc
-SHA1 (patch-services_device_hid_hid__connection__netbsd.c) = 5ccbdbe57c258da2870193c73e6d6335dcd05437
-SHA1 (patch-services_device_hid_hid__connection__netbsd.h) = 080437aaa6b6f63ac14e1ae591066d3d6a23691e
-SHA1 (patch-services_device_hid_hid__service__netbsd.cc) = 307198bc302188ecdf225048106914059e4a51f8
-SHA1 (patch-services_device_hid_hid__service__netbsd.h) = 25a45c77db5ff906f166cbc10f6f88f684a13738
-SHA1 (patch-services_device_serial_BUILD.gn) = 49f7da5deb7cf757d0097a0c413ad031dc88e65d
-SHA1 (patch-services_device_serial_serial__device__enumerator.cc) = 1f00409060b6cd7973cc8ebb45eff11a4101918e
-SHA1 (patch-services_device_serial_serial__io__handler__posix.cc) = cf412736d1437690f3b0451ba079e57ff276cc44
-SHA1 (patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc) = 59f53e2d6435049d5fe11ca702438532ddc0a72e
-SHA1 (patch-services_device_wake__lock_power__save__blocker_BUILD.gn) = 52df05a2248beb30e16a91a8b537a24dcfaa6b49
-SHA1 (patch-services_network_BUILD.gn) = f8f9d28efc2e060820f5218c52922fde005e4768
-SHA1 (patch-services_network_network__context.cc) = 531335bc66439601712bf9f2e09c0377de8c5173
-SHA1 (patch-services_network_network__sandbox__hook__linux.cc) = 536a73fcce61f9ad71bd1a9a41b4b8e1e93424e9
-SHA1 (patch-services_network_network__service.cc) = b944dd085c2ef078abd84d4a0dff20719dd5b408
-SHA1 (patch-services_network_network__service.h) = c42482d84ddf9356dd8aef9b4e7884a6dbfaa93e
-SHA1 (patch-services_network_public_mojom_BUILD.gn) = 6fee062a1ed5aacc35034e9214a7979ea642bf99
-SHA1 (patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc) = 928e61f1532716d91bd51b80d69df4c1f63797cd
-SHA1 (patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h) = 89cbc67a8fca7e4898e002d5a2d5a1a811f9dac0
-SHA1 (patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__linux.cc) = 76af73602573de2a397632aa571f85c4a3b12b77
-SHA1 (patch-services_resource__coordinator_public_mojom_BUILD.gn) = 0cafa3c7ea96ff9e2cbb1818675fa64556cee4f8
-SHA1 (patch-services_service__manager_embedder_BUILD.gn) = 3db35679c372c8528414468c942c1db01938da65
-SHA1 (patch-services_service__manager_embedder_main.cc) = 0319241270a0c1676a402f98f34e564a42119369
-SHA1 (patch-services_service__manager_embedder_set__process__title__linux.h) = dfe5378162c9d315066ecf4ad220c70f8acc362d
-SHA1 (patch-services_service__manager_public_cpp_service__executable_BUILD.gn) = a2d85a58a9a6fd44780ed0d287e99a69da5476a9
-SHA1 (patch-services_service__manager_sandbox_switches.cc) = 63165936074fe13a477c1c9a6b38f61302b2259c
-SHA1 (patch-services_service__manager_sandbox_switches.h) = 99f461ac47ceb2e29e9f81c2312d8b25218b33e0
-SHA1 (patch-services_tracing_public_cpp_perfetto_trace__time.cc) = aae8ae29bc9881333a0d23d4b0a59cd38eb2d4f0
-SHA1 (patch-services_tracing_public_cpp_perfetto_trace__time.h) = b77f9556e4cb34c59caecece644fee5211ec5ba8
-SHA1 (patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc) = b7d55c0ec32d4f08c721ee281e042e3e4298522e
-SHA1 (patch-services_video__capture_broadcasting__receiver.cc) = 8d41954f6678661eece8bb9497d90001ac44c01a
-SHA1 (patch-services_viz_privileged_mojom_compositing_display__private.mojom) = 717ac8043aa5f6f9b75402565625af55f1ff8409
-SHA1 (patch-skia_BUILD.gn) = bc3f4d76be6f545a78314d1e8eee2a0a7a274e4b
-SHA1 (patch-skia_ext_SkMemory__new__handler.cpp) = 1cc7b37f21de758d6ca2d1d17618877eded880b9
-SHA1 (patch-skia_ext_platform__canvas.h) = aa26996e557f92ea731b00c9a82d269fcb39d725
-SHA1 (patch-third__party_angle_BUILD.gn) = a6b0b7610e92f9772b01c94842326031260f4329
-SHA1 (patch-third__party_angle_gni_angle.gni) = 1a23e68752166bab210359e45e1034505597c7b5
-SHA1 (patch-third__party_angle_src_compiler_translator_InfoSink.h) = f36ef8a2d5f96ba2501bf6ffec109f88066ba746
-SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h) = a34390713559c8232a995b45610887c891941c8a
-SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp) = 2c7c40027a6a4ae4656994eb400c6390770c157d
-SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp) = e2b02cedbac129492bd053884fdea1bbd4411f95
-SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp) = e4c81ffcf132d2eef817400693669c877600f929
-SHA1 (patch-third__party_angle_src_libANGLE_Display.cpp) = 9fd77a86a80015312498a1653f53f67030142a46
-SHA1 (patch-third__party_angle_src_libANGLE_renderer_driver__utils.cpp) = 79f129491934672ddd59e0f4f31f1ea7f353289c
-SHA1 (patch-third__party_angle_src_libANGLE_renderer_driver__utils.h) = db0bb65f8f4a4075ec3d2b2004704c6066ce77b4
-SHA1 (patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h) = 404cb9fa776a1d850be8781e27d721b3df2c33bc
-SHA1 (patch-third__party_angle_src_libGLESv2.gni) = 48352630a264e07eafae19c088b8a7813d446322
-SHA1 (patch-third__party_angle_src_tests_BUILD.gn) = 60c01adaf9c833104ebc56584265892308ab2462
-SHA1 (patch-third__party_angle_third__party_glmark2_BUILD.gn) = 63e9f368a985097ae93d6a31bc19e6f1d0b0cb52
-SHA1 (patch-third__party_angle_third__party_vulkan-loader_src_loader_loader.c) = 1d1271c68a10bbeb16c116ab1fcdc0c0c8a4c946
-SHA1 (patch-third__party_angle_third__party_vulkan-loader_src_loader_vk__loader__platform.h) = 27aeec4b72ce8565e2927cb330f0e8b75f9f7a49
-SHA1 (patch-third__party_angle_third__party_vulkan-validation-layers_src_layers_vk__loader__platform.h) = e5adc870572c09ec385a7b77a9b958089df1cf0c
-SHA1 (patch-third__party_angle_util_BUILD.gn) = 8fdd80a761960961c9c572338c8c2a8c676a0ef3
-SHA1 (patch-third__party_blink_public_mojom_BUILD.gn) = ba5e0cc29b0848ef516fee310c219153395da876
-SHA1 (patch-third__party_blink_renderer_BUILD.gn) = b2ae1c3c2d1f853c2ba560eea3cb4f27899a2adf
-SHA1 (patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py) = 83bf19f2d693780312482681700e5e02c686bf53
-SHA1 (patch-third__party_blink_renderer_controller_BUILD.gn) = 804b16546826372ef8dbf2d02ce124441747649b
-SHA1 (patch-third__party_blink_renderer_controller_blink__initializer.cc) = cba080a6eaeb26aa19bf2ac272113cb11a406132
-SHA1 (patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc) = f71d4af121111279bfad8a97304e9f7669f5648d
-SHA1 (patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h) = 3a2c86fc99358ee87564ac52e0ca5103741e3855
-SHA1 (patch-third__party_blink_renderer_core_editing_editing__behavior.cc) = d54be7dcbc90c744eb0e8fb166ce954613301d8f
-SHA1 (patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc) = 5d9646ad678731d58d6360cae07fe5b0da61980d
-SHA1 (patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc) = db9dc80c3a97c4659eecbba1d574f4a9a92b2dec
-SHA1 (patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc) = a0218a28347b3eb007d117df0ce1290c49e0bee7
-SHA1 (patch-third__party_blink_renderer_core_layout_BUILD.gn) = ad1a6fb681249b35e5daa71923d960412ff4a63c
-SHA1 (patch-third__party_blink_renderer_core_layout_layout__view.cc) = 86342ad3714395291808f9f9ecc35726c519bd37
-SHA1 (patch-third__party_blink_renderer_core_paint_paint__layer.cc) = 24ef922831fe81da07ec2e7e923fdd7d1a0f3bdc
-SHA1 (patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc) = 26320911d72b6515a32c5d6a0d890d15ddf5c530
-SHA1 (patch-third__party_blink_renderer_modules_mediastream_processed__local__audio__source.cc) = a2ebec266e1ac2debb9f7ade9d51d25bff1f934c
-SHA1 (patch-third__party_blink_renderer_platform_BUILD.gn) = e917209cfb629b3bc82224ebe86ec7a76cf2dcc1
-SHA1 (patch-third__party_blink_renderer_platform_fonts_font__cache.cc) = a5fe471e5d17dd6e11789852b6967bd3e2dd0323
-SHA1 (patch-third__party_blink_renderer_platform_fonts_font__cache.h) = fa820f32ca9e49a2d49a327a59520da9da4ee97c
-SHA1 (patch-third__party_blink_renderer_platform_fonts_font__description.cc) = 0492b8b2b105b3e8c9dcd547df3a043d943f3fb2
-SHA1 (patch-third__party_blink_renderer_platform_fonts_font__metrics.cc) = c931d64466d2c5f350d7b0ce0883beac6ab140ad
-SHA1 (patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc) = 848930f5f7a03e6e4b9002a2866f1a3bd3d5fe38
-SHA1 (patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc) = 00ca533b5575411e46f907bc703efa3355ff61ef
-SHA1 (patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc) = 8a8b3b1669889b637e07f6af79fdc6ae4d445d3e
-SHA1 (patch-third__party_blink_renderer_platform_scheduler_BUILD.gn) = fb6213f3f30b532ea6cac4d12f3a4f9b815ff96f
-SHA1 (patch-third__party_blink_renderer_platform_wtf_container__annotations.h) = 2b757a2ea56f88de6abdfd058195721d0de55476
-SHA1 (patch-third__party_blink_renderer_platform_wtf_stack__util.cc) = 6356595258f7552efcf18aa023ad332d7e2243c5
-SHA1 (patch-third__party_boringssl_BUILD.gn) = acf74e4fe7338a1079c03c818848d93b16a4b7b6
-SHA1 (patch-third__party_boringssl_src_crypto_bio_socket__helper.c) = 20f4c682f294c8f1a14e113e97935466db746417
-SHA1 (patch-third__party_boringssl_src_crypto_ex__data.c) = 0c7079bcf07b08a2dc9e51b08a07bc22d5a30d75
-SHA1 (patch-third__party_boringssl_src_include_openssl_thread.h) = 94030e7b1566fbf7d903706a26bcf848b7f54dc4
-SHA1 (patch-third__party_breakpad_BUILD.gn) = 56fff9083f53a6713ea10cef43f2fd4ce8cb0647
-SHA1 (patch-third__party_breakpad_breakpad_src_common_simple__string__dictionary.h) = 5c656539ef5ea3db5d5fd144496b25f7c21c4383
-SHA1 (patch-third__party_brotli_common_transform.c) = 298324ad2137c9880e880ecfd71b9d9c63ca274e
-SHA1 (patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h) = e8d3cce3b614f79eea2c3d7c56644ffb0e9a3d6c
-SHA1 (patch-third__party_closure__compiler_compile__js.gni) = c076323acb014b7befd17a6d6a061622b516c3cf
-SHA1 (patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni) = a59929f6a93a4a750c1cbfd73e5207e9877842b3
-SHA1 (patch-third__party_crashpad_crashpad_client_BUILD.gn) = 237779833fae9dbb1b6a4a6602fb7492470c7ae3
-SHA1 (patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc) = da9412cd64b4141a8d852233eca2d14f7078edb4
-SHA1 (patch-third__party_crashpad_crashpad_util_misc_address__types.h) = d0e0e870516eb9cb6c908850c9486bda9239085a
-SHA1 (patch-third__party_crashpad_crashpad_util_misc_capture__context.h) = 4485a77275630dddd0f3884b43f2ea5990ae8b37
-SHA1 (patch-third__party_crashpad_crashpad_util_misc_metrics.cc) = f929a3bb9453d29761efc82b3a5dbfa4c6b45153
-SHA1 (patch-third__party_crashpad_crashpad_util_misc_uuid.cc) = 0eaeecd167bdbad874bff27e5dab987b3f79643c
-SHA1 (patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc) = ae1526489e899cb7be787217137bcfb601a18a0c
-SHA1 (patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc) = 94fa1ad6adebacb3dc6d0514c108eddfbc8cd3fe
-SHA1 (patch-third__party_crashpad_crashpad_util_posix_signals.cc) = fe7599b10c36408ed540b04ec40fa33bf80f2a58
-SHA1 (patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc) = a4be7680a8758f306cedd3632e9ae9a7f10b4421
-SHA1 (patch-third__party_crc32c_BUILD.gn) = 5f61a7a0a493eacd3e36e84ccd17c8d532400e34
-SHA1 (patch-third__party_dav1d_BUILD.gn) = 0770a1c3dfc2ce84e43aec40df82051ba898699d
-SHA1 (patch-third__party_dawn_scripts_dawn__component.gni) = 9abdbea19eb01a24f1951ccd7050c0edd17e069e
-SHA1 (patch-third__party_dawn_scripts_dawn__features.gni) = bb85bc5556f289cc35bd295f88320a2485d587f8
-SHA1 (patch-third__party_dawn_src_common_BUILD.gn) = ccb77221d2abeea426ae045bc65347c5e76a6f0e
-SHA1 (patch-third__party_dawn_third__party_gn_glfw_BUILD.gn) = 90cf9585274838122e7af6b8d94f262a36a0bb4e
-SHA1 (patch-third__party_devtools-frontend_src_BUILD.gn) = 668327780779b4795816941a8f84684972c372e0
-SHA1 (patch-third__party_expat_BUILD.gn) = 0dbeb795043e68e7b8e45b49c4dc46e7cdf00bf9
-SHA1 (patch-third__party_ffmpeg_ffmpeg__generated.gni) = 8deb1d21d9a54def9d7e1f2eafe140f5eed6933e
-SHA1 (patch-third__party_ffmpeg_ffmpeg__options.gni) = 96c27f6c2a265d6fa6facaf02a881eddc3ee27ce
-SHA1 (patch-third__party_ffmpeg_libavutil_mem.c) = 1a8bfd3568ae6eda2043b5f458e23073979f12a1
-SHA1 (patch-third__party_flatbuffers_src_src_util.cpp) = 2b3dbfc78db29697c476531b602335ce71d5e30e
-SHA1 (patch-third__party_fontconfig_BUILD.gn) = e92b0ed7611535e82e75167184e7f33a2896cdbe
-SHA1 (patch-third__party_fontconfig_fontconfig.gni) = edad9fa480e0504472a136401840ea59df2c4d9d
-SHA1 (patch-third__party_freetype_BUILD.gn) = 69c20c93492c34f1bada4b54963cb22a61dded0a
-SHA1 (patch-third__party_icu_BUILD.gn) = 16f9e4994b101739c6d76c617be0d715c2c87cb7
-SHA1 (patch-third__party_icu_source_common_putil.cpp) = 4856c4b668a23b8a183f1aab74f94587581431bd
-SHA1 (patch-third__party_icu_source_common_umapfile.cpp) = 4abb5270fa411b5bd50a1cba49b3fc3f243b0912
-SHA1 (patch-third__party_ijar_BUILD.gn) = a6e2cc7f127b4c0a0b6f512fca69468bbf37ffc5
-SHA1 (patch-third__party_leveldatabase_env__chromium.cc) = 164244d6812f815baa338646e661e20aa17ad955
-SHA1 (patch-third__party_libXNVCtrl_NVCtrl.c) = 53c0d280262ba9081f35c7aef35702d5dfa1d1d7
-SHA1 (patch-third__party_libdrm_BUILD.gn) = 9d6fb803580b3b907067511af82b84d9b9335707
-SHA1 (patch-third__party_libjpeg__turbo_BUILD.gn) = f8fde408a1ff4de9d749c5a592c931a3e18a73e1
-SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h) = 7220f7230ca7489915512fb54454ffd67409ec50
-SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h) = e721aecee6b50a37cc6418c4bf3d071b59979bc0
-SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h) = 2251e12a221ff82283d147010c22d697d68a2e68
-SHA1 (patch-third__party_libpng_pnglibconf.h) = a2e8d349b440cd584f2885a752c797b72cf8934c
-SHA1 (patch-third__party_libxml_BUILD.gn) = c0e9d90b696e336cc595062502c75418d5b6aa21
-SHA1 (patch-third__party_libxslt_BUILD.gn) = 1c9472ca14aba9d063cc535278c858fb84613373
-SHA1 (patch-third__party_libyuv_BUILD.gn) = 10c92b0874f27ad6639fedd632a86805c696a7a0
-SHA1 (patch-third__party_minigbm_BUILD.gn) = 61e91fadddfa460b8eb4c4dcf31419bf80e4a494
-SHA1 (patch-third__party_nasm_config_config-linux.h) = 8ff715540f4d563a417343dfa93bad1859d3ecc0
-SHA1 (patch-third__party_node_node.py) = 67129c947dfb471d2e23b498e899b3a7e00a692c
-SHA1 (patch-third__party_openh264_BUILD.gn) = b4b1e6acd6e4dbf762d49fbca1d705012a7f9bd9
-SHA1 (patch-third__party_openscreen_src_build_config_BUILD.gn) = 0e813d80fd4c337415a04189a92ee6eb65e2fd3b
-SHA1 (patch-third__party_openscreen_src_build_config_BUILDCONFIG.gn) = e3c2baaf6194beeae707f8f5137d7f3de7adf220
-SHA1 (patch-third__party_openscreen_src_platform_BUILD.gn) = a724de5c58fec2ea9092f24c0da0ce6929e9f0ba
-SHA1 (patch-third__party_openscreen_src_third__party_boringssl_BUILD.gn) = 02b696c077aa9a77e9b74a24eddb552181cdbdf0
-SHA1 (patch-third__party_openscreen_src_third__party_chromium__quic_build_base_BUILD.gn) = cf266ad1ae2668c7cce0056f66c7b1fbe5ced2d6
-SHA1 (patch-third__party_pdfium_BUILD.gn) = 7fd2409e61c8f466d91e20bea5e5af4afce4145e
-SHA1 (patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp) = 2e32c70c0eb1a080c70fd66b484622d5f82c997e
-SHA1 (patch-third__party_pdfium_core_fxcrt_fx__system.h) = 4736564b2e8bcfdb68d4510a3d72c7055b58b531
-SHA1 (patch-third__party_pdfium_core_fxge_BUILD.gn) = db51d8806d25e6f17ac0adfce4251ddd16104530
-SHA1 (patch-third__party_pdfium_core_fxge_fx__ge__linux.cpp) = 8debb8ddcce5d5cebd4d4b1c4cc9f5095a986192
-SHA1 (patch-third__party_pdfium_fxjs_cjs__publicmethods.cpp) = e4ca292f8687e715d342971bef928930e2ddb49c
-SHA1 (patch-third__party_pdfium_fxjs_cjs__runtime.cpp) = f4e3674e90c329735baf6f4caa0a3a29ca20c255
-SHA1 (patch-third__party_pdfium_skia_BUILD.gn) = 2544acc70dcc2cba4fd82875594b04cac4600dc1
-SHA1 (patch-third__party_pdfium_xfa_fgas_font_cfx__fontsourceenum__file.cpp) = 440a89948df9e92e9e7eabc366f9d315effe8081
-SHA1 (patch-third__party_perfetto_buildtools_BUILD.gn) = ab2641061f606dae89a657719f94460417ad13a0
-SHA1 (patch-third__party_perfetto_gn_BUILD.gn) = 789d0b13f6ea439fb7204fb7d90057b7d1ed0d34
-SHA1 (patch-third__party_perfetto_gn_perfetto.gni) = c8d2f4a99deb49da1979f45abb5303dfb07356fd
-SHA1 (patch-third__party_perfetto_gn_perfetto__unittests.gni) = c774cdfea68f78bc8064b8c81a18ccb852a186f5
-SHA1 (patch-third__party_perfetto_gn_standalone_BUILD.gn) = 1797d64bc7f014f2ca5f08bdd03edd06bc1401fa
-SHA1 (patch-third__party_perfetto_include_perfetto_base_build__config.h) = 531ae52be6b5bf14b1a2ae9ddc4f17c853bd487e
-SHA1 (patch-third__party_perfetto_include_perfetto_base_thread__utils.h) = 6db0b368c293392883a27dbd37e29825ac215d24
-SHA1 (patch-third__party_perfetto_include_perfetto_base_time.h) = 52a1ecf4584608382ea0fdcd3b629c7053aa2d29
-SHA1 (patch-third__party_perfetto_include_perfetto_base_unix__socket.cc) = 216f5eb9bd87ebfe10500d5ecf6331d920316b7b
-SHA1 (patch-third__party_perfetto_include_perfetto_ext_base_unix__socket.h) = 4b2aac8955747a9d3d508ae7fe659494f3681dd7
-SHA1 (patch-third__party_perfetto_src_base_BUILD.gn) = e942923edfe5148e4cf9e9ab49cfff12295173cf
-SHA1 (patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc) = 7341369e056fce3bd32a0a8a4eb94f19acc5dc23
-SHA1 (patch-third__party_perfetto_tools_BUILD.gn) = 44f0ef2452d8ab1d7f9a95ac0a666d2e419ebe3b
-SHA1 (patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h) = 95e780bbc128fc1980b4958408b729525137206c
-SHA1 (patch-third__party_skia_BUILD.gn) = a5d12d33c1d74901df2b0643b19537a76c4d52a5
-SHA1 (patch-third__party_skia_gn_BUILD.gn) = 08da6598ae1b1b7b5d0e54affbc94c0603e73654
-SHA1 (patch-third__party_skia_gn_skia.gni) = efd2059c6ef099cfb498d428cb5c4a56c25cdd5d
-SHA1 (patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h) = eeefaecfe8d0f5096642e00a77be7b1170bfec7b
-SHA1 (patch-third__party_skia_src_images_SkJpegEncoder.cpp) = 5663487963cf8e29a10f6d581dff6ddcbb79a3fe
-SHA1 (patch-third__party_skia_src_sksl_SkSLString.h) = 8841c541326e18df2410b3ea3981141018a68feb
-SHA1 (patch-third__party_skia_third__party_angle2_BUILD.gn) = 55dd3e8b6552e977a1a7cd5fa47fb55bfa036725
-SHA1 (patch-third__party_skia_third__party_libsdl_BUILD.gn) = 285a16766f49d549bb7b2e74de74b625b40de1ed
-SHA1 (patch-third__party_skia_third__party_opencl_BUILD.gn) = e6621cd68694d5029d78c0da9c8554daea757d1b
-SHA1 (patch-third__party_sqlite_BUILD.gn) = 314e9668c6d07417eb6619010ac92e60374d815e
-SHA1 (patch-third__party_swiftshader_BUILD.gn) = ee9869cad207a669efea8c06b91b17868fcaba28
-SHA1 (patch-third__party_swiftshader_src_Common_Configurator.cpp) = b0b08e070f4e11dc21747229b952a426e34a7b5d
-SHA1 (patch-third__party_swiftshader_src_Common_MutexLock.hpp) = fb6359f487569667b6555d8706ea2cd20ff2588f
-SHA1 (patch-third__party_swiftshader_src_Common_SharedLibrary.hpp) = 8cb9d5449c75c4bfb3b54c24a1e44cc4b0069a51
-SHA1 (patch-third__party_swiftshader_src_Main_BUILD.gn) = 72b37717ca87e56d1c2a35a15cbd282998faf278
-SHA1 (patch-third__party_swiftshader_src_Main_SwiftConfig.cpp) = 6bb3478c3946531ff3f1dd214c6c54f385254568
-SHA1 (patch-third__party_swiftshader_src_OpenGL_compiler_BUILD.gn) = 6fcddc326a8a5c3f7cef7a3d1958bf13f194569f
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libEGL_BUILD.gn) = bf5325e627bcfcff417787f80daa67eedf75a867
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp) = ee48503cb58b133ca88835134eafb9df5a0f77c3
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp) = 89ea2affce6764d6dfae722ca7bbbdf7f0574dd7
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp) = 0a524fa54b57d268cf58d6862bb84ad880ddea39
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp) = 8ab7be5615bb1e0f0dc471010198878c89bc3b42
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libGLES__CM_libGLES__CM.hpp) = 079e6b2cf283e057a54f9098bd0de90759a0eafb
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libGLESv2_BUILD.gn) = f040a9a97e91e657158c9945e6c64f5897f83649
-SHA1 (patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp) = e412339cca86449f7f656016f47a6e6abab0a9ae
-SHA1 (patch-third__party_swiftshader_src_Reactor_BUILD.gn) = 32e102e666cb4b0a22a84fdc909460bb9519c0d1
-SHA1 (patch-third__party_swiftshader_src_Reactor_Debug.cpp) = ec974a27e5576e3bfc073d64df5c7f956d2b0468
-SHA1 (patch-third__party_swiftshader_src_System_BUILD.gn) = 75d8f72dca7f395def95167210915003646697da
-SHA1 (patch-third__party_swiftshader_src_System_Debug.cpp) = 208eddc5067b62163b874878811f2314c707e3d8
-SHA1 (patch-third__party_swiftshader_src_WSI_BUILD.gn) = cf01da5bbd3f6e620973723bc0ae432664bd62bc
-SHA1 (patch-third__party_swiftshader_src_vulkan_BUILD.gn) = cb46cb1dbe523f0dd6afeff235a485939cc2a2cd
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_BUILD.gn) = 0b21fc5ffff666a616da34ed90a2a296775290fa
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmParsers.def) = 49635a8b4778b4dbc88502ff124d05dcfc77f5bd
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmPrinters.def) = a93a6d4b8c375c63321521e3d9b4f2c7a63385ac
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Disassemblers.def) = 38448e82de7bc7b91c5651e6b5ac51b16e5129cc
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Targets.def) = f8fb798c91143eac02a9efca87d1523e87c8401f
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_abi-breaking.h) = 2798bcf03125158e2aec9c5f16bee4f866fa97a1
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_config.h) = f6966aafe50fc8072d57a737845e172610a841c6
-SHA1 (patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_llvm-config.h) = 68ba9d3a451e7361dfa3dfa9922db1409cef9dcd
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_CMakeDirectoryInformation.cmake) = f2519895e1f49c9b85e920d6577c8aaaf2ecdde0
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_progress.marks) = 680edbfdc4cca419d25ae54abab210a4eabda41c
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmParsers.def) = 5d6d303942b2eff73e048a0baab3cf122cce8c90
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmPrinters.def) = 5236fba040522a5dda654c788f723c93a03467a5
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Disassemblers.def) = d7f6787d94921396c9504c49306dd9bcf1844ec4
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Targets.def) = f4554b60d0537e8df650a829f0168cb3ce240d56
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_abi-breaking.h) = 3d4186d8c1327d35a06d66e941f157154946cc43
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_config.h) = 0f6d9bcc0b16b42c451d02165f25a1e6ce024414
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_llvm-config.h) = fb471dd17abd62b5f52fba55e981b9ef4524c17d
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Attributes.gen) = 05fb235b66e85153b216a1b60c033bbb10a11ef1
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_CMakeDirectoryInformation.cmake) = 0fff0645099823310bb4c2d66dd3de0947e199e5
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_DependInfo.cmake) = 608d8082e9e1213300f45835ae506e4664f80669
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_build.make) = a940843f56d95f9d4c9384e92ff280b56ac8a707
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_cmake__clean.cmake) = 8332e3709ec56e25ff847e9fd032f69b8a79f75f
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_progress.make) = 485e542906e9f0fa499cec960a35c6f0827ed921
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_progress.marks) = 1bdc7006a199c53915fe4fe586562a44d5268f9e
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Intrinsics.gen) = e0da7e81eb42ef33d56cc962740bae9b4ae7b07a
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Makefile) = 32fa28f8332a12d71906ff4ed79ffc7a86e683b5
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_cmake__install.cmake) = 068fbdb72a5e9cc095cda0e1812c46ba7a0e2e14
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Makefile) = 5e3bffef0c8c8573ffc14fb40e8fb92ce5e7a6ce
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_CMakeDirectoryInformation.cmake) = 514111f15e28f42ad6833474afc01f2a3f8159f0
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_DependInfo.cmake) = 8130fd314a4a54f82ed3743a1ab1d6dae3c1597a
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_build.make) = 147ca2569d01ce9f87e6bd89423bf79b7a633fd8
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_cmake__clean.cmake) = d8048b3ff510e9593fe55b4c5ef69cb2687016ca
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_progress.make) = be5be3a289ed8c67fe76c22aea2cad9ceb4e65ee
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_progress.marks) = b1472837757c311a9da3620ec026f773969bb991
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_Makefile) = af0bbaa061c81a3fc1d3c21805e14324e0916fbb
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_VCSRevision.h) = b8650cd8458da9366d85df593ec23b9d8cb6388b
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_cmake__install.cmake) = 803cacff4dda17d13727f94fc6de5525601bc8c5
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_cmake__install.cmake) = bf7616df6cc0a9475f7958c3c0a8169890344d73
-SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_module.modulemap) = fdfb3ff594aa4ab9a214fcabd5d25988351d01ac
-SHA1 (patch-third__party_swiftshader_third__party_marl_src_memory.cpp) = 7d3abdd398d8ec72f7342dd306bd82da8177438b
-SHA1 (patch-third__party_swiftshader_third__party_marl_src_thread.cpp) = 236ae8676803ca969bc5b393010caef224923c94
-SHA1 (patch-third__party_usrsctp_BUILD.gn) = 215428afb9e3c8f0184a122b4f3540343732f83b
-SHA1 (patch-third__party_webrtc_BUILD.gn) = 4aa4b6266ef3da1f9f8e81765e93e5f31e88e730
-SHA1 (patch-third__party_webrtc_audio_BUILD.gn) = 97fb387f1b76b9c739af5d0a2cd22c8c6eaa9bcf
-SHA1 (patch-third__party_webrtc_examples_BUILD.gn) = 832a5af7a48a5347b5c16833d45b3288d87aecef
-SHA1 (patch-third__party_webrtc_modules_audio__coding_BUILD.gn) = 7e30175efa465332168d0fa71125d72fc6d8e29d
-SHA1 (patch-third__party_webrtc_modules_audio__device_BUILD.gn) = f9b79ff79b97656bfcbbde4fb87a1327e649a6d8
-SHA1 (patch-third__party_webrtc_modules_desktop__capture_BUILD.gn) = 95f24d9cc635f6c6c91a680de0ee10b891ff9f0a
-SHA1 (patch-third__party_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc) = a2ce46e2276870b4d28ba942a1cfdf61034460b4
-SHA1 (patch-third__party_webrtc_modules_video__capture_BUILD.gn) = fcf84cff402d9c797e3cee6715f14cc7b62c7528
-SHA1 (patch-third__party_webrtc_rtc__base_BUILD.gn) = 2f8deae6bbee2cdc3ff6245e78535217604e94b2
-SHA1 (patch-third__party_webrtc_rtc__base_ifaddrs__converter.h) = 3821a4ec6d37d095a19d55d786c444ad7b5c0078
-SHA1 (patch-third__party_webrtc_rtc__base_ip__address.cc) = e0d6e91a489e7c6ed9178877af6601f2a278be3b
-SHA1 (patch-third__party_webrtc_rtc__base_ip__address.h) = 2f2fd246901c6bf3479af2bf3a1e2c48660899d3
-SHA1 (patch-third__party_webrtc_rtc__base_network.cc) = a07de71c97ff0f21bc0846e31222babf551212aa
-SHA1 (patch-third__party_webrtc_rtc__base_network.h) = a0333e5e3063c58f5946bc1ace49047666f947e0
-SHA1 (patch-third__party_webrtc_rtc__base_physical__socket__server.cc) = 3401487dff64fda564cde9d7edbf242019585c4a
-SHA1 (patch-third__party_webrtc_rtc__base_physical__socket__server.h) = 2a108e01764ebef47b2b179817dd82205b633059
-SHA1 (patch-third__party_webrtc_rtc__base_platform__thread__types.cc) = 170d6a3b021e608ddf2ad32b61918fa27ef72f5b
-SHA1 (patch-third__party_webrtc_system__wrappers_BUILD.gn) = 1701116c468e4bf43f8d8ebbd48b8332b4117bb5
-SHA1 (patch-third__party_webrtc_test_BUILD.gn) = 173eef1d23f09aeb67600eec382709965fcbff40
-SHA1 (patch-third__party_webrtc_webrtc.gni) = dee1b7d162f23fea1b3ce1baad1c5303bab67047
-SHA1 (patch-third__party_zlib_BUILD.gn) = 19673c8c56c53465b8dc90c1f64ebab251a949d6
-SHA1 (patch-third__party_zlib_cpu__features.c) = b66fa64f019306b751bd1178a708933fefad226e
-SHA1 (patch-tools_binary__size_BUILD.gn) = 610a0dddfe758186cee502b9318715a9af1c9225
-SHA1 (patch-tools_binary__size_libsupersize_caspian_BUILD.gn) = 59248f772448266c350bf58704c7ad71fc62158e
-SHA1 (patch-tools_gn_build_gen.py) = 6209be881da588c5a419bde30e34b67b23c6651d
-SHA1 (patch-tools_gn_src_base_files_file__util.h) = 127ede2e6dbf524efc59ad8098c66efeaf6e4900
-SHA1 (patch-tools_gn_src_base_files_file__util__posix.cc) = 0596edb7bee0d0a14a770f9014ec9113afd8870c
-SHA1 (patch-tools_gn_src_base_files_scoped__file.cc) = e3c5e5933afec4dc6bb99d9b14d228d011113ab4
-SHA1 (patch-tools_gn_src_gn_args.cc) = 095df9b1830863fdb2ce28a7412bf2e27bbe58c3
-SHA1 (patch-tools_gn_src_gn_version.h) = e95732f2629bc2f69cdd2728e278bd390d68a2d8
-SHA1 (patch-tools_gn_src_util_exe__path.cc) = ea6e80e78d058c6c4b24138bad791718e1867f27
-SHA1 (patch-tools_grit_grit__rule.gni) = c04f1cee3e1cb545806d7e9fdea8bc8ae701d4ee
-SHA1 (patch-tools_ipc__fuzzer_ipc__fuzzer.gni) = c01a05e69e693d5f238605c089376cb46d37b820
-SHA1 (patch-tools_json__schema__compiler_feature__compiler.py) = f3d74e67b275d475f17b7f7b7c08da0fe8771f37
-SHA1 (patch-tools_json__schema__compiler_model.py) = f1736df9874366f3f9452e1ea722f418f2f8e444
-SHA1 (patch-tools_perf_chrome__telemetry__build_BUILD.gn) = 5e4722e3fb639ab98e09cb831498e773e3ea45cc
-SHA1 (patch-tools_variations_fieldtrial__to__struct.py) = 8eb5bacc78756307239cad3069ae8cf34c0c91aa
-SHA1 (patch-ui_aura_BUILD.gn) = 882a5d7acc1980b3473003744f0583ef698d1744
-SHA1 (patch-ui_base_BUILD.gn) = 162c02384c6b008109e888ca0398219b5f334bb3
-SHA1 (patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc) = 41ee8293139da87e5c95381361de7df14c20f861
-SHA1 (patch-ui_base_idle_BUILD.gn) = ab6c09579fac46bc06d19098a3f3f3ff604275e4
-SHA1 (patch-ui_base_ime_init_input__method__initializer.cc) = 9b349c3f3fc2268de61ac5fbd361485c1880ffa1
-SHA1 (patch-ui_base_ime_linux_BUILD.gn) = 5d8300d9a5c312db6d9d2b136ab4229b14322efa
-SHA1 (patch-ui_base_resource_resource__bundle.cc) = a618565bdd8dd3934a885de07cf963112313fd89
-SHA1 (patch-ui_base_resource_resource__bundle__netbsd.cc) = b23f8c761311256d0676114e4ed2e0cbe62eff95
-SHA1 (patch-ui_base_ui__base__features.cc) = 278a07d0cbea7f8f0be7cf34c4c83beb962b8c5d
-SHA1 (patch-ui_base_ui__base__features.h) = 86b0d72d8d3c2b324e35ca5b60e5bc03fc4ae8f8
-SHA1 (patch-ui_base_ui__features.gni) = 2a2a7807f3eb37b4958997d318201e91674c2e87
-SHA1 (patch-ui_base_webui_web__ui__util.cc) = 7991e4574a7572867f0590e30aecaf483fcc39df
-SHA1 (patch-ui_base_x_x11__shm__image__pool.cc) = 70e25285a82ebda108fc0f385b6e53d2e8aed1ac
-SHA1 (patch-ui_color_BUILD.gn) = b78693485273f6c6c4d7e8a75df9960f0864ecf4
-SHA1 (patch-ui_compositor_BUILD.gn) = 284a7158ffbe3373e62da654716c552995642e2e
-SHA1 (patch-ui_compositor_compositor.cc) = ef3a79dca1fb7752f5ed1ccc8437d1885da3d572
-SHA1 (patch-ui_compositor_compositor.h) = 802661a4c096e428cf38c2fe346daf6943d425aa
-SHA1 (patch-ui_compositor_compositor__observer.h) = 96ad3dafc97522cd0f5b85a3e690be359bd7a656
-SHA1 (patch-ui_events_devices_BUILD.gn) = ed4c0a85502d00043dd7e472c93eb8fe31098077
-SHA1 (patch-ui_events_devices_x11_device__data__manager__x11.cc) = 756f8f7a4e98e59673589a9d62e2824fd16e716b
-SHA1 (patch-ui_events_event__switches.cc) = 9d8a84f6cfe6f6a7c74ead7d94f7f434fbf5c86e
-SHA1 (patch-ui_events_event__switches.h) = 67da8dd3289dd879e4fc34c9cf715dc0485cb833
-SHA1 (patch-ui_events_keycodes_dom_keycode__converter.cc) = 7d0b212344f0f542df437b61823f5d5d18dcc332
-SHA1 (patch-ui_events_ozone_BUILD.gn) = 53e29339ddf271ee38cc54675dce9ecdd88d5352
-SHA1 (patch-ui_gfx_BUILD.gn) = 2206e6f906d6867662b125b20cbb45aac4f36076
-SHA1 (patch-ui_gfx_canvas__skia.cc) = dcd67dfd8f45214a08f4a7bb5e9cecb33cfe1d38
-SHA1 (patch-ui_gfx_codec_jpeg__codec.cc) = a26a932a91719318fab5f19688d500cb7b084f87
-SHA1 (patch-ui_gfx_font__fallback__linux.cc) = c132a17578e66087f2e2364a803e8ec06981820f
-SHA1 (patch-ui_gfx_font__list.cc) = 168acaccb4bcf6fa70020922e07ebe412225a0b8
-SHA1 (patch-ui_gfx_font__names__testing.cc) = 92d73144b48a302dd5ae957d8e12571df25ba936
-SHA1 (patch-ui_gfx_font__render__params.h) = fdb0117e90a67f5b4f8e11695fb4f05946bbee91
-SHA1 (patch-ui_gfx_font__util.cc) = 6b2ee532d540bc919b8d0cfdb3dc77748751bcc6
-SHA1 (patch-ui_gfx_gpu__memory__buffer.cc) = fa173cc57736968fba1bd97492df4de6b7dc0d26
-SHA1 (patch-ui_gfx_gpu__memory__buffer.h) = 834db055ca04d3c18e3f77bbc98e77bdab4701bb
-SHA1 (patch-ui_gfx_ipc_gfx__param__traits__macros.h) = e9f1e5805d96fc0492d82469f785ad46f075daed
-SHA1 (patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc) = b52b14ec2fa81b6f9e85b06cf3fd9aaee5506813
-SHA1 (patch-ui_gfx_mojom_BUILD.gn) = 777deafeab5f001daf24ea10c134de16b217d6a7
-SHA1 (patch-ui_gfx_mojom_buffer__types__mojom__traits.cc) = ce82122b15b7f58b72bb5353140cba4cc5478155
-SHA1 (patch-ui_gfx_mojom_native__handle__types.mojom) = 05d59a0cea6e0a482b7c254cff5646babb8ccd99
-SHA1 (patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc) = 0bc6ab432e9ccfae626ee167d6eb7fa20208bcef
-SHA1 (patch-ui_gfx_mojom_native__handle__types__mojom__traits.h) = 3f49f9ec8e97836dc2ece3f6ef0a804eac4b6559
-SHA1 (patch-ui_gfx_native__pixmap__handle.cc) = baf1ad20af9112cad6d75a05472ddf79ff3bf121
-SHA1 (patch-ui_gfx_native__pixmap__handle.h) = 69d3802389a4dce9cc3e3e383a9292b314eac6c1
-SHA1 (patch-ui_gfx_native__widget__types.h) = aa363c926a50f03aff31c7fb5132ff6a4c05f9db
-SHA1 (patch-ui_gl_BUILD.gn) = 71e7c0c5053021a4ff81c143ed402931b95d528a
-SHA1 (patch-ui_gl_features.gni) = b4043d89c1fd913e7329c0a8bf49e9ea4e22c982
-SHA1 (patch-ui_gl_gl__fence.cc) = d27e56ba2ac9cf49952bcb2feca09a5ac078cb83
-SHA1 (patch-ui_gl_sync__control__vsync__provider.cc) = 0a24a09b384d2e24b25fed01c61e36ac7aba1c7d
-SHA1 (patch-ui_gl_sync__control__vsync__provider.h) = 4f16b378aaf350fb60273748e31dd2adc4a8b10a
-SHA1 (patch-ui_gtk_BUILD.gn) = 6834e7ed9d8050b57d310063e05683c57a451b7f
-SHA1 (patch-ui_gtk_printing_print__dialog__gtk.cc) = 3fece3f154654b048816f53bc5fb501ac2a95499
-SHA1 (patch-ui_message__center_views_message__popup__view.cc) = 69fd719010575bceb2213d1389144832427341e2
-SHA1 (patch-ui_native__theme_native__theme.h) = 6fcafef20d695ddb50a683732bf1edd5d18352e6
-SHA1 (patch-ui_native__theme_native__theme__base.cc) = 442b5c58c22b24770a93d8326b73d20dc247d0b4
-SHA1 (patch-ui_ozone_platform_wayland_BUILD.gn) = 97b65b448f77a0b02d2a2d1bee76dc5f4be48cc6
-SHA1 (patch-ui_platform__window_common_BUILD.gn) = 16f1840768f96f93b7200a2952c0745e0bdbb868
-SHA1 (patch-ui_platform__window_extensions_BUILD.gn) = 08e65f81198daa32682f7a3613536ffba1f56b0e
-SHA1 (patch-ui_platform__window_platform__window__init__properties.h) = 4e1e869cba5fa7d5ee232137de6adb328fcbb483
-SHA1 (patch-ui_shell__dialogs_BUILD.gn) = 4c7f7333d4e7c2dafd0f87b8e31299c53ff55bad
-SHA1 (patch-ui_strings_app__locale__settings.grd) = f55ba47b7bbac03ce519d18ea0253adf956448a2
-SHA1 (patch-ui_views_BUILD.gn) = 988145a4c86749413bb9cff1ca4ad58ae4959f53
-SHA1 (patch-ui_views_bubble_bubble__dialog__delegate__view.cc) = 0e357059c1f7c492f2857581b79e5a9aee7b9eda
-SHA1 (patch-ui_views_controls_label.cc) = fa2e990bb3609bed355b2a7786d26f67a4053745
-SHA1 (patch-ui_views_controls_textfield_textfield.cc) = 6118e9ce2b2b4b8762beca337d937790997d42aa
-SHA1 (patch-ui_views_controls_webview_BUILD.gn) = 78a661848b7ec0e243b8e68d9bc9f1c2450a927b
-SHA1 (patch-ui_views_corewm_tooltip__aura.cc) = 6a9554249c94c2d5296e3912b3fd1d616bea3ce2
-SHA1 (patch-ui_views_examples_BUILD.gn) = dda6ee15f3829884ca86b6d086032d24f8df0236
-SHA1 (patch-ui_views_examples_widget__example.cc) = 616cc19ba9f4cc06a2d362e308c06727a39c78ea
-SHA1 (patch-ui_views_selection__controller.cc) = 393357f1d285acf0c83e80d5057a026ccc324cab
-SHA1 (patch-ui_views_style_platform__style.cc) = d8e5687dafa7894fb8061225cc95e26c4d8a870d
-SHA1 (patch-ui_views_views__delegate.cc) = 3e67c6165d5b1beb2581f2460eaafef66476606c
-SHA1 (patch-ui_views_views__delegate.h) = b9a034c07042777a4b12ee54a2997dee64655b25
-SHA1 (patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc) = 947515574a24e356f69babb83f9bc22244ddb493
-SHA1 (patch-ui_views_widget_native__widget__aura.cc) = f2a5ced89cb83183306b37f01bde74ee3c49d2a8
-SHA1 (patch-ui_views_window_custom__frame__view.cc) = 4e424a03fd44508246d00cf6405d27f10d9fd2db
-SHA1 (patch-ui_views_window_dialog__delegate.cc) = 466a7a40d35d7efc4443dd1258c4d99408b01b99
-SHA1 (patch-ui_views_window_frame__background.cc) = e4ecceab91ec60d50db21b777832d15b3a4d50d7
-SHA1 (patch-ui_webui_resources_js_cr.js) = 8d2ed1417657228d6c9b1f71fb90dca422b66841
-SHA1 (patch-ui_webui_resources_js_icon.js) = 3d300769019016dc71e0359d0ac311e9f83a3d6a
-SHA1 (patch-ui_webui_webui__features.gni) = 931453ed2e9ab5a1c887f70835ba82dceb2ddd96
-SHA1 (patch-v8_BUILD.gn) = 48b0483c25863ce8fac144ba064597412f902572
-SHA1 (patch-v8_gni_v8.gni) = dc7fbfaaec52dc5a2a06deaac4976fa62ef4ed66
-SHA1 (patch-v8_src_api_api.cc) = 6f513ea7a7d1df76db75d82b96bc4fb9ea48b95b
-SHA1 (patch-v8_src_base_cpu.cc) = e5f87a7404550394031e26782f3590c80dd2f132
-SHA1 (patch-v8_src_base_platform_platform-posix.cc) = 9ddd58ac9b08c057f46defa1075028bb21d6fef3
-SHA1 (patch-v8_src_trap-handler_handler-inside-posix.cc) = a45d54b57f96d6d1baf2a7300cc37d97f843d154
-SHA1 (patch-v8_src_trap-handler_handler-inside-posix.h) = 22dc054d9e8b2db46df03fbfea39b824fd7f64cc
-SHA1 (patch-weblayer_BUILD.gn) = b6143b26f1950a837780fac022fa173820888a21
-SHA1 (patch-weblayer_app_content__main__delegate__impl.cc) = 86cf7cead83db8883fc593bb92246c07254a1398
-SHA1 (patch-weblayer_browser_browser__main__parts__impl.cc) = c4bbf1798fd2636253fb4096616d7dd446e7700b
-SHA1 (patch-weblayer_browser_content__browser__client__impl.cc) = 34771d54ba9df89f438561cfb4629fc2247fb479
-SHA1 (patch-weblayer_browser_content__browser__client__impl.h) = 764f9f73f72b2b67b602f1ef6b1c3239457cc0ee
-SHA1 (patch-weblayer_browser_system__network__context__manager.cc) = 5e0a4f35bad1b8cf660b2ff5f13d72e066830994
-SHA1 (patch-weblayer_common_weblayer__paths.cc) = af8dfe389d5e9eb5d66783aaa57aca2ba446bec8
-SHA1 (patch-weblayer_shell_BUILD.gn) = cd24dfd3b52492dc8218bca5da415fad1433e7b6
+BLAKE2s (chrome-linux-127.0.6533.72-llvm17.profdata.tar.xz) = 12d7784b4a571313663d4fefac05e7ab30bb9e7db43e83444a4c54233e88f69e
+SHA512 (chrome-linux-127.0.6533.72-llvm17.profdata.tar.xz) = b74a1eafe16a6a061148a92025b1fe3145d990849c02da567eb9e83e90e562da2288143af8e27c70fd0246524d23592899264e0bd65df23b319aec1496bf1b11
+Size (chrome-linux-127.0.6533.72-llvm17.profdata.tar.xz) = 30406592 bytes
+BLAKE2s (chromium-127.0.6533.72-testdata.tar.xz) = 9384594606928721af78a1ccf6d4f3f701f4eb3812000e1d46f24bbb9cb9e8bb
+SHA512 (chromium-127.0.6533.72-testdata.tar.xz) = d40008750c45eb085bc030765f5f9da234934b4cf9acf8446d2c81ddb42cbd9d54db359513bef4ed491cf6c82bf4b1557d4dc63cdf54e13ff1b74b1fcc2fb0ea
+Size (chromium-127.0.6533.72-testdata.tar.xz) = 279972368 bytes
+BLAKE2s (chromium-127.0.6533.72.tar.xz) = fa2ce21bda854f009319ec528c3d2f25bb00af79996847d93edee0b645d9eda4
+SHA512 (chromium-127.0.6533.72.tar.xz) = 1b112b26dd52d2f45b5cd2e0109299b82335005f80be9897baed8735792bc05ef79ef24f9a40627313ac619dbf92ed334bcf7a2b366f40dce7c689763677603b
+Size (chromium-127.0.6533.72.tar.xz) = 6606381412 bytes
+BLAKE2s (test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz) = 2b98e0ae91b622fe4e6b4c1832e05b1aa52cae549a21211ae4e9b4011d6589f6
+SHA512 (test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz) = bbc928e99ebcd4d953b982688b01526cb754bad018f67be9e777a4f8ac51cdd3e01374e5a63faf55b12e7cee0d52816c88062e012b5bcc4f9bb41f28d8e0b7f7
+Size (test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz) = 32624734 bytes
+SHA1 (patch-BUILD.gn) = beb7a7182c47a7bb2043864a7f383a7f8336e453
+SHA1 (patch-apps_ui_views_app__window__frame__view.cc) = 38b07e3c9a9c8a219d8228712c194b759f91a2f1
+SHA1 (patch-ash_display_mirror__window__controller.cc) = 72669bac3726523a49804b70421398a1c30742c3
+SHA1 (patch-base_BUILD.gn) = ec4ecb7d6110147c146a631b420a65408f51113a
+SHA1 (patch-base_allocator_dispatcher_tls.h) = 861d4c95a2f9c0e9ef5bdf13e351c0856c3b1f06
+SHA1 (patch-base_allocator_partition__allocator_partition__alloc.gni) = bfa92c5497870e4ab10f89ce48a11669f9eba76d
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn) = 3ea17020e896e0daff1a3ff008b53c3834e16418
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h) = 51228edc4f201d4863e804a2a3ce21915f3ff1b4
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h) = df8581e4888a9e46afc7c466e16fd98c3584c069
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h) = 25609a7f9bb2328467f166cf4661a260b16d9bd4
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h) = 68de760cc40270992ce02b6b296538bdb3c28963
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc) = ead3b6c316c3c585cfddaa790b3c0906872b18aa
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc) = fbd18268831ac6bf206b0ca0d4bce0447a09af6a
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h) = 5c41e1175a1a7a65308d2366072eaf9f0d56875e
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h) = 8589e662f472d0c053c328643070caf540e9aba7
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc) = 82c4a2e4109097e7392647bd844a20933cb0142b
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h) = b6b12d64e5e4d9927ea57d34ce3c509ff32adab7
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h) = a9015c54ed0e8ad42822c861030efd1116369782
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h) = 0d36d36612c663374103efa43df9765b2defaf7a
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc) = 2b493f343af1d1bc8b8972cb12efdf0e89e5e924
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc) = c43f5ec59bb7cd3baae8856ff19fd6ce6bd24340
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc) = b7867447c55103ff4352bd73f4783ddf758a9606
+SHA1 (patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc) = 43f88cac1e1813369bda3cf7e0fd0c4248ba9b91
+SHA1 (patch-base_atomicops.h) = 8bb4a76f61b69df2083ae2510cf040c5a2537ef2
+SHA1 (patch-base_base__paths__posix.cc) = 02457e3fe4c1358f0b0783ee02c5c4f404beb8d5
+SHA1 (patch-base_compiler__specific.h) = 4cc2b4d84fa79c1c8ded98f7d6cfbcd691b84b9f
+SHA1 (patch-base_debug_debugger__posix.cc) = 2c5655b2d10df078b460892f12859da5afbacaf0
+SHA1 (patch-base_debug_elf__reader.cc) = aee33edda83ab06b6da747c2504fe2fefbb2f0f1
+SHA1 (patch-base_debug_proc__maps__linux.cc) = 41baab5bdb100b3b52eb36fe1328584bb12f5d4c
+SHA1 (patch-base_debug_stack__trace.cc) = fed9995727746a95c9abc3b9402e601a1dd79123
+SHA1 (patch-base_debug_stack__trace__posix.cc) = 62184cd10e94bc6e0e42bded944d9ac3aeb26f10
+SHA1 (patch-base_features.cc) = f6805243a2540f3ec9e7301a0872b705ecb624a9
+SHA1 (patch-base_files_dir__reader__linux.h) = 62fe1b8e288ccba866454d48452252b2d057a2f0
+SHA1 (patch-base_files_dir__reader__posix.h) = e0c24b75c05e2085a36282fa19df11eafb02b7ae
+SHA1 (patch-base_files_file__path__watcher.h) = 9a2510d3d2554547a120344abe241b1afb9947e0
+SHA1 (patch-base_files_file__path__watcher__bsd.cc) = 62a6c06b35c4127d386bfa4ab6596e8c98eb7997
+SHA1 (patch-base_files_file__path__watcher__kqueue.cc) = a0469e7d1ec94321a002f8619736c5a46c0f162d
+SHA1 (patch-base_files_file__path__watcher__kqueue.h) = 3ba01e4519b8302379673c4be90b0b233c2d0c42
+SHA1 (patch-base_files_file__path__watcher__unittest.cc) = 3c5e45847d757dd5cd2f10bcae7c2551b5507cfa
+SHA1 (patch-base_files_file__util__posix.cc) = 5cc98db360ddaa16805125568f7bf047a6622f0d
+SHA1 (patch-base_files_file__util__unittest.cc) = 5af168dfed74d3dd7c4cd41b703eadd509902a50
+SHA1 (patch-base_files_important__file__writer__cleaner.cc) = bfc5383823677d7d30bad1c29042cbadfbdd0837
+SHA1 (patch-base_files_scoped__file.cc) = 8c05cac1d5e45c25e413ab0856b39b293811c0de
+SHA1 (patch-base_functional_unretained__traits.h) = deaacdf0fc40855dc147f0b2af4442ab6cb115e3
+SHA1 (patch-base_i18n_icu__util.cc) = e6329cd1026c50771925f0364846e2af278d56a6
+SHA1 (patch-base_linux__util.cc) = 5ec557db40298a3059f5859454b3cc55996a3c05
+SHA1 (patch-base_logging__unittest.cc) = 43678f9f114e2e054efbfa4d34a24ba1b7c1d798
+SHA1 (patch-base_memory_discardable__memory.cc) = 497ccbeac07d0f89bde92109e885d148dc64322d
+SHA1 (patch-base_memory_discardable__memory__internal.h) = d6c394244774bb6f1a76f45409719b94f1f3880d
+SHA1 (patch-base_memory_madv__free__discardable__memory__posix.cc) = 972ee2ee5eb025924ec8e7b77ba0c6b6a7a1e89d
+SHA1 (patch-base_memory_platform__shared__memory__region.h) = 1ff30a75085e78cb6589fff63ddd043ff9ea4d5d
+SHA1 (patch-base_memory_platform__shared__memory__region__posix.cc) = 1ffa8b265c406fe1d876331bf9eb36a22389f604
+SHA1 (patch-base_message__loop_message__pump__glib.cc) = 42bc33f732fccc474a9c491baab99b1fe3222314
+SHA1 (patch-base_native__library__posix.cc) = 515ac00aec7c0bb8e373793d9b378517bfb91688
+SHA1 (patch-base_native__library__unittest.cc) = 5593674b9b50ee5e545a67e8d1588fb1e6e67b3d
+SHA1 (patch-base_posix_can__lower__nice__to.cc) = 7ef7881eefa20a993c7edebfba6ae71d724204df
+SHA1 (patch-base_posix_sysctl.cc) = 001bc59d6dbb9b38dc51d4bd7830c9c50f2af164
+SHA1 (patch-base_posix_unix__domain__socket.cc) = a55538cdcae981cf1ccb204cd5c0a80ee23f359e
+SHA1 (patch-base_posix_unix__domain__socket__unittest.cc) = 10c40f3da0a8c64916f39b22afc4cfd6ed695fa4
+SHA1 (patch-base_process_internal__linux.h) = 57377bc7c187b5e54425b65897767959d8e10c1a
+SHA1 (patch-base_process_kill.h) = ae00710c8495a99364ea56b670376f9985cdf406
+SHA1 (patch-base_process_kill__posix.cc) = f15107437e4e35b03686c1b2535a9b67463c5277
+SHA1 (patch-base_process_launch.h) = 4cc7aba5cb0de4689e6903f802c37a2d28aa19d9
+SHA1 (patch-base_process_launch__posix.cc) = bc7ff19bc91e7db2bba20f2de918f415740630f6
+SHA1 (patch-base_process_memory__linux.cc) = 6cd3cb7336558e13b2a79f00c6de96c1173b968f
+SHA1 (patch-base_process_process__handle.cc) = 0682f2b5ba45cfe4dd6c592c8e2f2fdbe90e13e6
+SHA1 (patch-base_process_process__handle.h) = c9d0e19b8f7e3241508acea53e242f4787d16f53
+SHA1 (patch-base_process_process__handle__freebsd.cc) = cc5d3d123708314f313da759f8e68a11222fa8ff
+SHA1 (patch-base_process_process__handle__netbsd.cc) = 21b28db81b852b88d82fbaa3d8a59946def99e0c
+SHA1 (patch-base_process_process__handle__openbsd.cc) = a27c465835a4280565f774269db8e05848dfc5f3
+SHA1 (patch-base_process_process__iterator.h) = b07bc14029de3295aeeb587c1f45805572407a2c
+SHA1 (patch-base_process_process__iterator__freebsd.cc) = 5a87afb743d33b8ca1d39d42df0b435c080915e9
+SHA1 (patch-base_process_process__iterator__netbsd.cc) = 0bb523ba86763235de700f6018a96d9f016f7bde
+SHA1 (patch-base_process_process__iterator__openbsd.cc) = d46f24eceb9af95f8b71fbc755fbbd6a7e55523d
+SHA1 (patch-base_process_process__metrics.cc) = 6884dec0ae85889b454b622d220f162267aae805
+SHA1 (patch-base_process_process__metrics.h) = 0e7d69ec46466ee9ffad4e990745e7ed5606c1e8
+SHA1 (patch-base_process_process__metrics__freebsd.cc) = d4b98a7a148fc3efcbf7e1b69dc3504839d754da
+SHA1 (patch-base_process_process__metrics__netbsd.cc) = b784d0c27b05eaae99a8c35bfae5c29166dfcf1b
+SHA1 (patch-base_process_process__metrics__openbsd.cc) = e31167c1a50b4ba069e238153db8775c10a3b0a4
+SHA1 (patch-base_process_process__metrics__posix.cc) = f5e5423a46f654bba42808aac3a738d7ff95941c
+SHA1 (patch-base_process_process__metrics__unittest.cc) = cb32409cec2af5b3ff44096dfc3413aa56f10b96
+SHA1 (patch-base_process_process__posix.cc) = 4a331ee5c72e7c0a7ed861ef2787ac4a0c98aaa5
+SHA1 (patch-base_process_process__unittest.cc) = d7defbd05a7b9f2a1289c9bd1289e78076158c37
+SHA1 (patch-base_profiler_module__cache.cc) = d9081b55af8ac99771e859c34504c5e251ec4bcc
+SHA1 (patch-base_profiler_sampling__profiler__thread__token.cc) = cdc43c457d89b4e9dd370856f81d527aa136f5dd
+SHA1 (patch-base_profiler_sampling__profiler__thread__token.h) = 2612cfeeee9ab9c313be9248de45560e4e7a86e7
+SHA1 (patch-base_profiler_stack__base__address__posix.cc) = 2927dee8ed2b4ed2e4a54d6222159eef0d0e077e
+SHA1 (patch-base_profiler_stack__sampling__profiler__test__util.cc) = e814ed66cd1dac768a18df88398e1d5d9fa60c47
+SHA1 (patch-base_profiler_stack__sampling__profiler__unittest.cc) = dfd3d96b317e37fb3d61d85323334f5010bb74cc
+SHA1 (patch-base_profiler_thread__delegate__posix.cc) = c5a7355ab52aba1ba4162533dd264ae5d9d30068
+SHA1 (patch-base_rand__util.h) = 6bf46d14ee9b23dd34d25d370e2603d6fb79eda3
+SHA1 (patch-base_rand__util__posix.cc) = 34d473588fe9594a4508a315049e2e8b5f23418f
+SHA1 (patch-base_strings_safe__sprintf__unittest.cc) = 9af82ca3b3a6ed436a27c20d97a2cee6c3e07b6c
+SHA1 (patch-base_synchronization_lock__impl.h) = 8f4497bb4f79c7c2ed3951ae235eafa23f3f02e5
+SHA1 (patch-base_syslog__logging.cc) = 177d7e21d3d22e4f1958165496a9e53641b70d1a
+SHA1 (patch-base_system_sys__info.cc) = b0f8111298508ec3b35a2a3f4818fa4c7a0547d5
+SHA1 (patch-base_system_sys__info.h) = 5d24f4a4a4f30b53445268f04112d4ca48ca4810
+SHA1 (patch-base_system_sys__info__freebsd.cc) = c45731afe2ebbcfe88d1db241fdcbedd2462bccb
+SHA1 (patch-base_system_sys__info__netbsd.cc) = 2ba43eae7dffff7f42b5924481329cb2fea033e0
+SHA1 (patch-base_system_sys__info__openbsd.cc) = 51eab962617c3cf5b565d7f04c21efcc0777ff3f
+SHA1 (patch-base_system_sys__info__posix.cc) = 05e2462473d366c1304bae81d33957228ba8bd2c
+SHA1 (patch-base_system_sys__info__unittest.cc) = cb007c3844778f8471943ab30f9f011907e4510c
+SHA1 (patch-base_task_thread__pool_environment__config__unittest.cc) = 6e65d556cfaed06a333cdff0f9101042b6e52351
+SHA1 (patch-base_test_launcher_test__launcher.cc) = 8de39b3fd21bf4ccb56d339b404e4b2540b299a9
+SHA1 (patch-base_test_test__file__util__linux.cc) = 3532a723ebef88fb293ba8c21e2a29afa8f72d83
+SHA1 (patch-base_test_test__file__util__posix.cc) = 16f2cbed364262b05f69a83379b367be16bd2b0e
+SHA1 (patch-base_threading_hang__watcher.cc) = a33bc29b8f8b670a6a7ee59909e7e9ac5e6d6f23
+SHA1 (patch-base_threading_platform__thread.h) = 7d64861d47046bdeb6f9e92b40b9984a06ec2cac
+SHA1 (patch-base_threading_platform__thread__bsd.cc) = ca2fba620a1d2332c08c44ef742ebeda8d89da9d
+SHA1 (patch-base_threading_platform__thread__internal__posix.cc) = f263386a30725da0fc7e146fd78394dc9c2a4d1b
+SHA1 (patch-base_threading_platform__thread__posix.cc) = 88bdd12987d727aacf1333974ddf10af87183f03
+SHA1 (patch-base_threading_platform__thread__unittest.cc) = 111064d800afbcabf9e470b5e6804fef3598a610
+SHA1 (patch-base_trace__event_malloc__dump__provider.cc) = d1cef7a4c074d7befd609f10715d08b2c35d57f5
+SHA1 (patch-base_trace__event_memory__dump__manager.cc) = 47c0c853a83f9c7a786703530683c85e13de128d
+SHA1 (patch-base_trace__event_process__memory__dump.cc) = bd6168255eb266ced54a09f940ad7235fc822335
+SHA1 (patch-base_tracing_trace__time.cc) = ea317d352a226660cc30341bd3c71aaac0f90717
+SHA1 (patch-base_tracing_trace__time.h) = f1ca13e68890f93cdc54f9db3e79ed9faa690ee3
+SHA1 (patch-build_config_BUILD.gn) = 193c6a0c541cf4904cfd398cb6da1cff3b7a6c04
+SHA1 (patch-build_config_BUILDCONFIG.gn) = 3d7ed3d308625feadae20251ea0eca2aba37e3ec
+SHA1 (patch-build_config_clang_BUILD.gn) = 53974af22456cffd67c93557c87720dc928a65f4
+SHA1 (patch-build_config_compiler_BUILD.gn) = 53f81398a15fbce32afb577c6c8ba4e148a39a47
+SHA1 (patch-build_config_linux_BUILD.gn) = 1e91399516b6750ae944601ce2d73c50d1d287ce
+SHA1 (patch-build_config_linux_pkg-config.py) = 835197dbf230b433c000ebeaaf05943066bbea95
+SHA1 (patch-build_config_ozone.gni) = 9c9c41913c769d653902999191ad5a31be05dc23
+SHA1 (patch-build_config_rust.gni) = 76c72752a9e38ef359497ee92206310e2001d005
+SHA1 (patch-build_config_v8__target__cpu.gni) = 9934c3bbf3e7fe2326ad4e46f4d21f5ef7bb270b
+SHA1 (patch-build_detect__host__arch.py) = 5299019f7a1e80bfd0c2e6ca7ee19fa1dba790e4
+SHA1 (patch-build_gn__run__binary.py) = e3c14bc0be46be89a439ef8b4b291f9e20a78d98
+SHA1 (patch-build_linux_chrome.map) = 4ba36209bf8b11036f73166db3de71222f25c510
+SHA1 (patch-build_linux_strip__binary.py) = 0fa2ed8e832ee3cc2a68c016d3b2a92e6485a008
+SHA1 (patch-build_linux_unbundle_dav1d.gn) = 41e06c493541132c6bb042bd3c0ec0412385de4b
+SHA1 (patch-build_linux_unbundle_icu.gn) = 337f9f982e113ac8dea7c6d4e65f6db60405c882
+SHA1 (patch-build_linux_unbundle_libevent.gn) = ca791e21e668b925e095d391f2e422d525912e61
+SHA1 (patch-build_linux_unbundle_libusb.gn) = 00db4588cf1d8c8077f46791412c309d59dd18af
+SHA1 (patch-build_rust_rust__bindgen.gni) = 2b844c80c756eda26c956e3ed78429fc327f64f1
+SHA1 (patch-build_rust_std_BUILD.gn) = 0e3edb9fd11c76b374881d01e9b513e36d98254a
+SHA1 (patch-build_toolchain_freebsd_BUILD.gn) = dd601da83989c34f6700325d5923855f076361f2
+SHA1 (patch-build_toolchain_gcc__solink__wrapper.py) = fb1f3383f63a1cd0bf045991409aef683837c424
+SHA1 (patch-build_toolchain_gcc__toolchain.gni) = 1a0ee348e915527093cf01905d60cfd2469d1e31
+SHA1 (patch-build_toolchain_netbsd_BUILD.gn) = 74abdde8597d18301cfae19565a9268f831031b9
+SHA1 (patch-build_toolchain_openbsd_BUILD.gn) = 9f5778efcad16847bed9ae2f32a2fe53a3fb7f78
+SHA1 (patch-build_toolchain_toolchain.gni) = 08c3cd7e0ef6902d33110d861a821a539c64d715
+SHA1 (patch-cc_BUILD.gn) = 9b5f262417a9e23c81bce65a0d0bc9dcbe2a567d
+SHA1 (patch-cc_base_features.cc) = ffffe37d067d744fe7da0ba38167b7e14ad1721b
+SHA1 (patch-chrome_app_chrome__command__ids.h) = bbdbc52af09b4e991dc598fc2d80d27e5deab359
+SHA1 (patch-chrome_app_chrome__main.cc) = 4a389de0e5187ac77e8ac8981ffb6c22d69e534e
+SHA1 (patch-chrome_app_chrome__main__delegate.cc) = 9d3afdc50a7cf28eee51c3fa294edaa630bc93fc
+SHA1 (patch-chrome_browser_BUILD.gn) = 8244ac6d709d18d93e04fe5f548b02039696473c
+SHA1 (patch-chrome_browser_about__flags.cc) = 258bbb20c5dae3028ec762c6b8cf61278726eafa
+SHA1 (patch-chrome_browser_after__startup__task__utils.cc) = cdbf5b0a219f294b752bc502902f4938fe24589e
+SHA1 (patch-chrome_browser_apps_app__service_publishers_extension__apps.cc) = 7cf892ddffd14d5cad7af2c3861cbb5cc7d480c5
+SHA1 (patch-chrome_browser_apps_platform__apps_platform__app__launch.cc) = 9c8d76a45639479d09ae321d744908834e206957
+SHA1 (patch-chrome_browser_apps_platform__apps_platform__app__launch.h) = 78d8865084cee711faac6b0e4ba8e782aaaef8a7
+SHA1 (patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc) = 178d6be23d83e38025bc5154973cde9a1f83b6e8
+SHA1 (patch-chrome_browser_background_background__mode__manager.cc) = f7f0dc41d51611a8ac3c6f6f2271121ce9eabbdf
+SHA1 (patch-chrome_browser_background_background__mode__optimizer.cc) = 601882570b6f2fc3cbd78ecaa4ea20b26e07c3ac
+SHA1 (patch-chrome_browser_browser__features.cc) = d5471ed08192c97458e4bfda7deae7bb0a9217cf
+SHA1 (patch-chrome_browser_browser__process__impl.cc) = b26dc95f5778210c83f51ead9b55e759fa11e8c3
+SHA1 (patch-chrome_browser_browser__process__impl.h) = c679c10c59845fc26c26f49834445ac4657bf198
+SHA1 (patch-chrome_browser_chrome__browser__interface__binders.cc) = fe71ccd00a10fa442efcd2bcf7a343aaf8eebd82
+SHA1 (patch-chrome_browser_chrome__browser__main.cc) = 6b8ca3cb5461df0b17424e8cfe67d20182065be1
+SHA1 (patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc) = b3d01763b5b66526eed78f6387ea3dc3223eb923
+SHA1 (patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc) = 4067b4d14e53cc446629af88d05ba16483dd4e3a
+SHA1 (patch-chrome_browser_chrome__browser__main__linux.cc) = 5e0e5a9ce1dc93ddb3d5f509af32a9a42e919f7e
+SHA1 (patch-chrome_browser_chrome__browser__main__linux.h) = 567b25b855aebbe75b2c35eae039680e326e6ade
+SHA1 (patch-chrome_browser_chrome__browser__main__posix.cc) = 06cc22fbacd8973257a9fe034a32d9bd9d93e251
+SHA1 (patch-chrome_browser_chrome__content__browser__client.cc) = ef4ab02676f4f8b9b3216709003f3f3705bb9886
+SHA1 (patch-chrome_browser_chrome__content__browser__client.h) = 7e4518bff6e0cc86a70f5dab1f4584679f1622dc
+SHA1 (patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc) = deab7293a5cd93c07c3a9c9634489613e8c01285
+SHA1 (patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc) = 0784bf331e43295e22b44f48ce892dcf849557a0
+SHA1 (patch-chrome_browser_defaults.cc) = d646ad9fa89df2853064df0c99e855a8bf034ef2
+SHA1 (patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc) = a507d9a4849c0ba9a7ef525f5ef34240a0e82bd7
+SHA1 (patch-chrome_browser_diagnostics_diagnostics__writer.h) = 4a51c198ec4539bffd7141b9a725b90b0b1e2885
+SHA1 (patch-chrome_browser_download_chrome__download__manager__delegate.cc) = ff520460a62818f2f7d4e36fe9fd4e6699ee9598
+SHA1 (patch-chrome_browser_download_download__commands.cc) = 93fdef98ce7c07336893258b548a88ba1fb32665
+SHA1 (patch-chrome_browser_download_download__commands.h) = ef484468b08c65c7ae51c627874dfa176f56c9cd
+SHA1 (patch-chrome_browser_download_download__file__picker.cc) = 5fdb54275fd9856f8adcef61333810ad69243f43
+SHA1 (patch-chrome_browser_download_download__item__model.cc) = 3d40a55441932d6323a568e0685569048ecc7ba4
+SHA1 (patch-chrome_browser_download_download__prefs.cc) = 714d11413025f77f2b710de567c190b16ffcb7a3
+SHA1 (patch-chrome_browser_download_download__prefs.h) = 607ec609c7d6605afb896fbc7bfdfbed66b2a9a1
+SHA1 (patch-chrome_browser_enterprise_browser__management_browser__management__service.cc) = f1e6db31b135a1d56b4ee67f1aaf9e9c10e7e363
+SHA1 (patch-chrome_browser_enterprise_browser__management_browser__management__service.h) = 4a4eb2c9f25946fd84c5dada3b35eb0beae14f0c
+SHA1 (patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc) = c3658ba1ae21797fb0ed0fde6d09daa9803909bb
+SHA1 (patch-chrome_browser_enterprise_connectors_connectors__service.cc) = ae9b49bd5835a00b021b1a1e9e1551a076bc2c75
+SHA1 (patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc) = c1c5010c286783ed637cec0f53ed9affd260b4b6
+SHA1 (patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc) = c6cde420f08ae53eb5975c5511499bae48936c1d
+SHA1 (patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc) = 0675b1a044366327c3c0483e2554213113a9e3f6
+SHA1 (patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc) = 9c436a368b43f2a562240a01910359913c5b4839
+SHA1 (patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc) = 718e8a8f8aa6960a08aa4c93da8f1ac740dd2ae8
+SHA1 (patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc) = 166e3d5fe16a1b4643a327be8602313f67fc88c4
+SHA1 (patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc) = 32e74faff5c1efd65b2ac13cd307be9d9010de9d
+SHA1 (patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc) = cdb57fb92437805a8c7896b55a1604df93ae8d1e
+SHA1 (patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h) = 6b5aef21524e5c6155e7eb7c794348884fab4b70
+SHA1 (patch-chrome_browser_enterprise_identifiers_profile__id__delegate__impl.cc) = 0fc57242d519c328ba192923e52f29f5f138aa69
+SHA1 (patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc) = dfb5e5ed6bd84bf0705f51c666a9d89d1cb71261
+SHA1 (patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc) = 5f03d7b9949d521c029f2dd914aaeba94db729dd
+SHA1 (patch-chrome_browser_enterprise_signals_device__info__fetcher.cc) = a7ec3a52d99dfe598a81f5493f92a628ff7425c9
+SHA1 (patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc) = a31aefb692e91b4e3d98ec86aa3b993ec464a541
+SHA1 (patch-chrome_browser_extensions_BUILD.gn) = d843b0a2a2404c18355caf7a6b269606f8cb8925
+SHA1 (patch-chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc) = d58b72273563114a1f7f61f634aa17264055baff
+SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc) = 430fad0dbb858455292fdb6af9ae7a443c1f30d8
+SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc) = 86c28a5505fbc9357334d85e641f9757f8a079e4
+SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h) = bc83759b8a384145589b10c3de4489ae791f0b8e
+SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc) = dc15a74e9f0cfaeb3050207c0debc966629c609f
+SHA1 (patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h) = cac05384b077733a524c73988583672f94e55942
+SHA1 (patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc) = be949a495604a8b41881f91eb15be75b923633ab
+SHA1 (patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc) = 01c52de2ef0da753fe74cf7375943ea5c4370445
+SHA1 (patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc) = 0324afd64ccf14ba4eba5e070cb9eb11fd966532
+SHA1 (patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc) = bfba0e2bbd331c1204fb603870a776ed47addc4a
+SHA1 (patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc) = 1f4d344f4cee1927be222cdc4375580d56d8902f
+SHA1 (patch-chrome_browser_extensions_api_settings__private_prefs__util.cc) = 0a8e64cce7cadb3b37ead01b62e6c9ee3c5f3411
+SHA1 (patch-chrome_browser_extensions_api_tabs_tabs__api.cc) = e73b767c30b5512969ef3f9a4bc1a2c34ce00194
+SHA1 (patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc) = dcb2900f894b60c1c92b708e874e030d14252c24
+SHA1 (patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc) = 4cfaa67303c307bcdb527f2f13cbdf4cc3a72ae4
+SHA1 (patch-chrome_browser_extensions_external__provider__impl.cc) = 3285dc77cc59449baf76901b782ee2ae71929bf9
+SHA1 (patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc) = 98517c4a0957a7130db6922b6f91e6ee54f359d6
+SHA1 (patch-chrome_browser_first__run_first__run__dialog.h) = b3ce2cc926fee8d54d87214c1bd2aec10963f88c
+SHA1 (patch-chrome_browser_first__run_first__run__internal.h) = 86b43949a7806b9b5f8055569382763ab3e31036
+SHA1 (patch-chrome_browser_flag__descriptions.cc) = d08751f5c343608f3515f710123ce9753675ba27
+SHA1 (patch-chrome_browser_flag__descriptions.h) = 0bf1f4c124f0849d80816dccc415b7aacbd50981
+SHA1 (patch-chrome_browser_gcm_gcm__profile__service__factory.cc) = d248e06e9319171f62a18007700d303f8206241c
+SHA1 (patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc) = e60085b832032173986245b279127b6f2622d8ac
+SHA1 (patch-chrome_browser_headless_headless__mode__util.cc) = 231aa3e49473c538087e0d579b51d654b2af7166
+SHA1 (patch-chrome_browser_intranet__redirect__detector.h) = 77d8ced37fcf50fdcd52140a6b9293adde8bf070
+SHA1 (patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc) = 1a15558146a82ad78723f85f8730adf2e503bc16
+SHA1 (patch-chrome_browser_media__galleries_media__file__system__registry.cc) = eb9c3bdf1b318211ff3340574610c436fad5e148
+SHA1 (patch-chrome_browser_media_audio__service__util.cc) = a5e464ae17c068f4c7a27752e19618d27d2d43b2
+SHA1 (patch-chrome_browser_media_router_discovery_BUILD.gn) = b5c11e775a36ad7a42c69d7e7060a9609fcef2bc
+SHA1 (patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc) = 1501e1282e576110e538f84f99b4ab25a3e321bb
+SHA1 (patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc) = 55042c2bca9da13946105603d1f3ab7f94857663
+SHA1 (patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc) = fe45f2ae94e502c2fa2d877074ba344d5f32b78d
+SHA1 (patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h) = 5f9a282a7a52347c3979311940873451104cac0e
+SHA1 (patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc) = cc8faf733093559e9bda198be49f4910cf150c81
+SHA1 (patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc) = 6e71df9b562d4716232b5751583390d6b00909d2
+SHA1 (patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc) = e16be562cc10903181ae89092b7cb83666454c65
+SHA1 (patch-chrome_browser_media_webrtc_webrtc__logging__controller.h) = d78260b776da39e2b44ff76041ba6475fecd8c1b
+SHA1 (patch-chrome_browser_memory__details.cc) = d0b692e16b8fcdac994a41522b88d958fcab0ed4
+SHA1 (patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc) = bc60eb142a0c36c12ca865f51e01b1a534029f57
+SHA1 (patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h) = 38553ac02a6e39df21d47b0cea7af9bec7405e2f
+SHA1 (patch-chrome_browser_metrics_chrome__metrics__service__client.cc) = fc6f68b03853aaf2919642754ccbe1e9155b5bd2
+SHA1 (patch-chrome_browser_metrics_perf_cpu__identity.cc) = 9cf80d81708649e53e058758e26e404681341a48
+SHA1 (patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc) = 1e922231f5f4261fdf57d3e60058fc324fe0dfe1
+SHA1 (patch-chrome_browser_metrics_power_process__monitor.cc) = 37d09de3b809eade5211e28f4ee15b7d0de8bd55
+SHA1 (patch-chrome_browser_metrics_power_process__monitor.h) = b18a6c7d188c9b76365bdf0e51ee2cc2f47bbe94
+SHA1 (patch-chrome_browser_net_system__network__context__manager.cc) = 4af278206af7675ed7e89d74617e1b038d8a517d
+SHA1 (patch-chrome_browser_net_system__network__context__manager.h) = be11da977258c5e127f202967dbddc150d4553e8
+SHA1 (patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc) = 66561347deb7bf8b7a0906489e5c6ad5e09e4925
+SHA1 (patch-chrome_browser_new__tab__page_new__tab__page__util.cc) = 48e995349c178f34ee08c923c4f1517882de4894
+SHA1 (patch-chrome_browser_notifications_notification__display__service__impl.cc) = 07c9b2e686534d12767bbbed619103a1c5b660ca
+SHA1 (patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc) = a4d593f86bd0981081832fd2ed2d3aeb4a26997d
+SHA1 (patch-chrome_browser_password__manager_chrome__password__manager__client.cc) = 2e311ab709cb770b10196c279098ed4854eefbf9
+SHA1 (patch-chrome_browser_password__manager_password__reuse__manager__factory.cc) = 4f633e2e6590b9b04ac128785bf2e0e6ee6970a3
+SHA1 (patch-chrome_browser_platform__util__linux.cc) = 5f9eeac4bc445404081d1b431dca926df03e9464
+SHA1 (patch-chrome_browser_policy_browser__signin__policy__handler.cc) = e55f4c652268b7e48bf7b13ab0a348dc372aef7b
+SHA1 (patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc) = e6eec3e9069290c78c819ec4beb7552687f87533
+SHA1 (patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc) = 22f63bc1dd411af656f2316baf6620d3d6617fef
+SHA1 (patch-chrome_browser_policy_device__management__service__configuration.cc) = dd267b34bb9169e488495bde3e5d3c41fd5f4784
+SHA1 (patch-chrome_browser_policy_policy__value__and__status__aggregator.cc) = 4fb79cfa26ce6f0f978c06223d378fb85c72b3f5
+SHA1 (patch-chrome_browser_prefs_browser__prefs.cc) = 84ec8d40107189398f911280a06ed348a4f10b83
+SHA1 (patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc) = 687f5cdfdffe90c8706df0f171645153a072f922
+SHA1 (patch-chrome_browser_printing_print__backend__service__manager.cc) = 382216a6ce54a1fd0a421064f7ac4a734eab8f49
+SHA1 (patch-chrome_browser_printing_printer__query.cc) = 4cb82df111bfa74d63a0bc715794373ef70e0505
+SHA1 (patch-chrome_browser_process__singleton__posix.cc) = 793343a61a7f2e621fd2037104e2aea339ae95fe
+SHA1 (patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc) = b8f7ea2b47b507e2a5e7d683116b6dc0c0f40bbf
+SHA1 (patch-chrome_browser_profiles_profile__impl.cc) = cf49f0be4b41239c3a7e97204fde8d2dbbf60ae7
+SHA1 (patch-chrome_browser_profiles_profiles__state.cc) = 349a7c5e7d124879ac5a80f5effa1855a0f27b98
+SHA1 (patch-chrome_browser_renderer__preferences__util.cc) = 74e4e11b6222f3270f803798b326ea37316bb18d
+SHA1 (patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css) = 10d2faa338706e0075a3068e772bfdda04990774
+SHA1 (patch-chrome_browser_resources_signin_signin__shared.css) = 46c4e0c71e8b35ae8f6be9a5ef2b63446735e55a
+SHA1 (patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc) = 83c5598a068fca71f00e8d26d678574cc3ecd994
+SHA1 (patch-chrome_browser_safe__browsing_cloud__content__scanning_deep__scanning__utils.cc) = e6f5dbd0978eccdb493c47de561c121e7c63235d
+SHA1 (patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc) = ee8ae757ceb5d766d3966b51a5f3b4c5eb69cdbe
+SHA1 (patch-chrome_browser_screen__ai_screen__ai__install__state.cc) = b57a0477e409cb5a249cafae4ce28aeea20e39ac
+SHA1 (patch-chrome_browser_screen__ai_screen__ai__service__router.cc) = c1cdfbeb697d6e356af4313c63c731f67947490b
+SHA1 (patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc) = 27682c880426683f930b18aabed224edd759df85
+SHA1 (patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc) = cd7902c3a258403fd95dbb682c7b4c66e008a1e9
+SHA1 (patch-chrome_browser_sessions_session__restore.cc) = bbffcc6b846e4da59d58b92dd49d0b5a339b4335
+SHA1 (patch-chrome_browser_sharing_sharing__device__registration.cc) = 34d614609f1050f7197d4900397baccbb3b1e86a
+SHA1 (patch-chrome_browser_sharing_sharing__handler__registry__impl.cc) = a865b8120f9cb4f56d023db975284ca647151f5e
+SHA1 (patch-chrome_browser_shortcuts_icon__badging.cc) = 47857ce80eeae84b4276cb89cb45cf6f1d504988
+SHA1 (patch-chrome_browser_signin_signin__util.cc) = ed486a20f97e6b000101a802f7a66879451f3982
+SHA1 (patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc) = 596d8dcb2973266643ab5ce7fc4da083ae81766a
+SHA1 (patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc) = 5779f2be0d3b26673770678063bc20a5e070634a
+SHA1 (patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h) = 5f839d8d759cc3ab20737b69a4abe96fec77392c
+SHA1 (patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc) = e553b1900227c2b95ab741d643e16b72e5cbc983
+SHA1 (patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc) = c9883249c532ec1b0219df680c1b51cf04a29907
+SHA1 (patch-chrome_browser_sync_chrome__sync__client.cc) = dc5b1e7a53eba2e711bcc3a71b0a5fee2ee59e0d
+SHA1 (patch-chrome_browser_sync_device__info__sync__client__impl.cc) = be79fa1919ed7573336a47e577cc9814bcf30fba
+SHA1 (patch-chrome_browser_sync_sync__service__factory.cc) = 0197cf495f6a1126eb2db077d93102fdbcaeb002
+SHA1 (patch-chrome_browser_sync_sync__service__util.cc) = a24dd8d11e21bed87618f8d9a1b289095cde968c
+SHA1 (patch-chrome_browser_task__manager_sampling_task__group.cc) = 18aa5deb87cdd4d4fd206cc5daee074d1a916d48
+SHA1 (patch-chrome_browser_task__manager_sampling_task__group.h) = 456dc8d5850c5dd7de793275f5f61763d972a722
+SHA1 (patch-chrome_browser_task__manager_sampling_task__group__sampler.cc) = e9b548945e436b98eea1d2e1c9a86fcf766758a0
+SHA1 (patch-chrome_browser_task__manager_sampling_task__group__sampler.h) = 38100b0188076b3bc33bf2651e5a4a511d7c7a04
+SHA1 (patch-chrome_browser_task__manager_sampling_task__manager__impl.cc) = 960d6b2ce38806fd5092e952f2765d3a5f2ce2f9
+SHA1 (patch-chrome_browser_task__manager_task__manager__observer.h) = 7fa8cdcea83fe0fffa32951903d1abba63e8cb4b
+SHA1 (patch-chrome_browser_themes_theme__helper.cc) = 6c36c90322a41759502458bab54e0394d96f85fe
+SHA1 (patch-chrome_browser_themes_theme__service.cc) = 0b7b05b7cc4ccd16d97e74868d9bcb6a92410dd0
+SHA1 (patch-chrome_browser_themes_theme__service__aura__linux.cc) = 8dae91a3c56499f7a1ec317fbc0967dfbc262362
+SHA1 (patch-chrome_browser_themes_theme__service__factory.cc) = eaaaf1b4217e35dbc949fd0f257b3b88e0bf8c44
+SHA1 (patch-chrome_browser_ui_actions_chrome__action__id.h) = e05e4f820ee5841b0e171bb480220f0f5b5732aa
+SHA1 (patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc) = 0109d2d5bdd40f1a98b2af7994cf2a5c9435786b
+SHA1 (patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h) = 7a2364d4dde63f479aa6b473c32b7e304730f97b
+SHA1 (patch-chrome_browser_ui_browser.h) = be69eef178fdafe90c9810d68cc1c20903a8387a
+SHA1 (patch-chrome_browser_ui_browser__command__controller.cc) = 7e49fe04a3bef84b64098d0668fb981fe08e0a92
+SHA1 (patch-chrome_browser_ui_browser__commands.cc) = 1a32b19f3a9aaca9b1da7f0a2769a12c07d77340
+SHA1 (patch-chrome_browser_ui_browser__ui__prefs.cc) = 190757c30124229c7b0e523f0783b5535dbde8d8
+SHA1 (patch-chrome_browser_ui_browser__view__prefs.cc) = ec4ec310e789b08e47cb1a36747d3bcb016960da
+SHA1 (patch-chrome_browser_ui_chrome__pages.cc) = 672da27cd20e1be6b4ceba37e7fda853eb8b4d3d
+SHA1 (patch-chrome_browser_ui_chrome__pages.h) = b43b815b75ebed57a09fc088bb6baadc5b7078d9
+SHA1 (patch-chrome_browser_ui_color_native__chrome__color__mixer.cc) = 8c912fc5ba29e6a6976699bf6319545a9ad844c9
+SHA1 (patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc) = 7d6ef19ed3f891c697510c2ab1715398f92f80fd
+SHA1 (patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc) = 11ed7842f140e81cb7bf4961b4dc8795772906f8
+SHA1 (patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc) = a373fe942d84e16702ea907a2c2f2ef39eafe5cc
+SHA1 (patch-chrome_browser_ui_sad__tab.cc) = bdcd32e24639a7361db18d5cf2df9ad1b052ef7a
+SHA1 (patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h) = 62c93695da0a5602fe85cad0fe17f1075f2678cc
+SHA1 (patch-chrome_browser_ui_signin_signin__view__controller.cc) = 2b6ca81854641a54435e8c480e4bac7efc51e6bd
+SHA1 (patch-chrome_browser_ui_signin_signin__view__controller__delegate.h) = 3c41d4a2aadda91fd4919d7dc1d144ad8cc0f0bd
+SHA1 (patch-chrome_browser_ui_startup_bad__flags__prompt.cc) = 9c4690ece05fe8ab239d4b28a01886e2029cb681
+SHA1 (patch-chrome_browser_ui_startup_startup__browser__creator.cc) = 5d379d8866cb9a4f2776bf2640f77104922bcfaa
+SHA1 (patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc) = d4a43f524813a442613d675e24e49d10aa776886
+SHA1 (patch-chrome_browser_ui_startup_startup__tab__provider.cc) = c5a045fd3ebd8a093ee1da1a31b4b1e5b824efe1
+SHA1 (patch-chrome_browser_ui_tab__helpers.cc) = e1b55ca9eaa4169e5ff53e68d02bce000867286f
+SHA1 (patch-chrome_browser_ui_tabs_features.cc) = a9abaf4c7bddaf00b9800c763005e70c71e58bbe
+SHA1 (patch-chrome_browser_ui_tabs_tab__strip__prefs.cc) = 49c00ce14c91df76b68e47f92f121358b3fe5bda
+SHA1 (patch-chrome_browser_ui_task__manager_task__manager__columns.cc) = fcc6eb6581808a6ad551e87dfc74ba17e98f0e0e
+SHA1 (patch-chrome_browser_ui_task__manager_task__manager__table__model.cc) = 00b3a5ed9487b2d82cad36c596c1dace62855cb3
+SHA1 (patch-chrome_browser_ui_test_popup__browsertest.cc) = 862d95c0775ac27c714f164eda4aa53755c90cad
+SHA1 (patch-chrome_browser_ui_test_test__browser__ui.cc) = 5bdcb819a46dc1815472c6a2f41b77eb358d0c27
+SHA1 (patch-chrome_browser_ui_ui__features.cc) = 2ac5e3e59e42c2872eedc7ab90c5a0cae06b64f2
+SHA1 (patch-chrome_browser_ui_ui__features.h) = fcdb3aef9067a7f4e0fd362b9bcf76cb7a301695
+SHA1 (patch-chrome_browser_ui_views_accelerator__table.cc) = e25d657b5089c2cf285616baec6d951064c83a03
+SHA1 (patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc) = b044a5b823a1f1b210d21eacdd98adab8572afc8
+SHA1 (patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc) = 8eaff157b52aec0bc14a0eb117ca3c958b687592
+SHA1 (patch-chrome_browser_ui_views_chrome__views__delegate.h) = e66cc717acd50ab480a68455fa505db12cc6347b
+SHA1 (patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc) = 6666c10927d8414614079cdc6b60580dc1cae5f1
+SHA1 (patch-chrome_browser_ui_views_compose_compose__dialog__view.cc) = bb39e703369406fe4dd3e94a5194d36bc0e2f552
+SHA1 (patch-chrome_browser_ui_views_frame_browser__frame.cc) = 0aa6cffc4621a850f8663c6e183bd50bec7635d2
+SHA1 (patch-chrome_browser_ui_views_frame_browser__frame.h) = 9b4de75858d413a69003a6f95c45745cf49242f6
+SHA1 (patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc) = 1f8a1a78d03a36246e1c5b49fdb0b9cc967f42fd
+SHA1 (patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc) = 8afcacc893c1aaf5062189ea4a01416b2777cd4a
+SHA1 (patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc) = 892abc75b334079db815b43529c7ab5577c1b2cf
+SHA1 (patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc) = 82917307853fbf4b19c8340ceb3c3231928136ea
+SHA1 (patch-chrome_browser_ui_views_frame_browser__view.cc) = 9e63b0efe47634f71797e6aeb78fc26028c6ee2e
+SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc) = 00d351a5d211b9545416d2828b25ddaba9448f62
+SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h) = e1dd5c51de755be63f46dd93531c890f19d856cf
+SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h) = d7de5b624df83a1723b9dc05538143dfc94ab927
+SHA1 (patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc) = 420d5b07a512cb34c7e61780d027c12a053d3f74
+SHA1 (patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h) = f5cd415aaed5904a728c419f21a193ce371fb49c
+SHA1 (patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc) = a09930c851fc04ca9f856ce477121dbbd5b3abb3
+SHA1 (patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc) = c8e0194ea364383229c0183f9b1568925ac3fd40
+SHA1 (patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc) = 31e2713233541f78212f0e515481a7f30e51e910
+SHA1 (patch-chrome_browser_ui_views_hung__renderer__view.cc) = 7346d936243b0eb2a3a5aca3d034a67d25b8324a
+SHA1 (patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc) = 843a80aaed576a2621c097cb6ebb063bffb04db5
+SHA1 (patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc) = b60046e12789ae9d80fc1de0d4e689b1ab4b8a91
+SHA1 (patch-chrome_browser_ui_views_profiles_profile__menu__view.cc) = 66fa853a8d20a4ae6663bb5f07d5817c2d31cc8a
+SHA1 (patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc) = 28493a5be7806d13eb1cb9ccdc86c5bcb533206e
+SHA1 (patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc) = b4264fbba51e48e75c6edef3add6c41f78295524
+SHA1 (patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h) = ea08d7a3b97ed1e2f640890497cb294d00f70af8
+SHA1 (patch-chrome_browser_ui_views_side__panel_BUILD.gn) = a0cc6dc0c1e4ba9826064ea2c9dabc24371df2c5
+SHA1 (patch-chrome_browser_ui_views_tabs_tab.cc) = db946fe1fac7ce390d17a1e966f225300995b9ef
+SHA1 (patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc) = cff73ae6e2f4aaf087b257aa5fe332c8452a67be
+SHA1 (patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc) = 771dfb977074e00a85d3bcba5876f30c5b309820
+SHA1 (patch-chrome_browser_ui_views_tabs_tab__style__views.cc) = d07ab54c51b1c9369fd30768e4eedb28deee4881
+SHA1 (patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc) = a5fe91250940219ca95c6932058b7b6e4a7ae8b0
+SHA1 (patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc) = aa9c7d813cb329f3e3b237ac7531ef37118c74eb
+SHA1 (patch-chrome_browser_ui_web__applications_web__app__dialogs.h) = ab99738d6201ef9e6b572552394368564040e703
+SHA1 (patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc) = 59e1912c7c7f86514490a8ca5eb1caa2b02f41e3
+SHA1 (patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h) = b7f40094e92da076c656efa1fe2f7a3bb672a2bc
+SHA1 (patch-chrome_browser_ui_webui_about_about__ui.cc) = 842eb7eb5328226f13fc635626f524ba3c9d98c3
+SHA1 (patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc) = d69ca58644b925637dfab6eb2ca3d938141c0fd4
+SHA1 (patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h) = 3dd2832d5560448c41a143d519da3fe49d6eff24
+SHA1 (patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc) = 36614ab795960048fff7b5c0393704a30b469f3b
+SHA1 (patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc) = b1be5308db0199db2096f8655e3045f575bf5b68
+SHA1 (patch-chrome_browser_ui_webui_management_management__ui.cc) = 95c99abe2bd6a0c3f5f58408de6f01a34ca3049d
+SHA1 (patch-chrome_browser_ui_webui_management_management__ui__constants.cc) = 03d8c701d6026cbca0e0704ff8290ba69d2119d4
+SHA1 (patch-chrome_browser_ui_webui_management_management__ui__constants.h) = c50edc379f5d4b6b4dd461d3e917b05ae3aa7d2a
+SHA1 (patch-chrome_browser_ui_webui_management_management__ui__handler.cc) = 03aee83d2f398cbc4bf204b5e67df8dcaf257024
+SHA1 (patch-chrome_browser_ui_webui_management_management__ui__handler.h) = 6e842ae14bf17d9d73e5c3b7147a35592162ebf7
+SHA1 (patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc) = 246b3f007322a420a3641f8c3f9638962bb1b6dd
+SHA1 (patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc) = fe9faf1716e763fe048b5057ece10c108b70a9f2
+SHA1 (patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc) = 4602ea1afe6f610b90644020bd0266d5e71bc376
+SHA1 (patch-chrome_browser_ui_webui_settings_accessibility__main__handler.cc) = 2bfc640850828aec4f257356ab0214ebaf615e6d
+SHA1 (patch-chrome_browser_ui_webui_settings_accessibility__main__handler.h) = ff720ef0f95001b174f06bfccb1931fff5abe9f1
+SHA1 (patch-chrome_browser_ui_webui_settings_appearance__handler.cc) = e029fac22cec1d82a8c7455e8615e75e16a2df37
+SHA1 (patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc) = e770ade6e286dc8f2380e343b3eede06792bdd1b
+SHA1 (patch-chrome_browser_ui_window__sizer_window__sizer.cc) = 329c1e4cf7658bbf2a2fad40e448b44a68825d87
+SHA1 (patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc) = 5bfd7283266d4fd72a656eeed2f98c68c6c6189b
+SHA1 (patch-chrome_browser_web__applications_extension__status__utils.h) = 6df09fa7583d96eece076cc1f6acfb257ee925d8
+SHA1 (patch-chrome_browser_web__applications_extensions_extension__status__utils.cc) = e844915e3d7c35729cc1499977bae7dec85750b5
+SHA1 (patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc) = 96f03ec9cb0811a90299ea65d78ef2f61d78fdd3
+SHA1 (patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h) = 50cf855abf164346bbc497dcdc1c8cff15938518
+SHA1 (patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc) = 4946cd7c31ae523b4824d9d283228cec763453be
+SHA1 (patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc) = cc069f1c6c28179aea2505ab6bffd580778b7c1e
+SHA1 (patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h) = b0111d53d87909838ba6b2c827a3b5c4390b6251
+SHA1 (patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc) = dbe41c977d389574d0a28b64562a034608ccd5dc
+SHA1 (patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h) = 9e7f6fc60d9140eebf8474ca3f43f1706a93e16a
+SHA1 (patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc) = 7a722fa487c9bf134d59b2ea0ded6b8da492ede5
+SHA1 (patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc) = 74d05b9e0b63320ffdcd3dbec7d0d70010bce0be
+SHA1 (patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h) = d982d712a42765cc43d913310af65c22aa725d08
+SHA1 (patch-chrome_browser_web__applications_web__app__helpers.cc) = 077f4ee1763e7784fa03975043267e4829319757
+SHA1 (patch-chrome_browser_web__applications_web__app__install__info.h) = c3375fae06d1c7aa82c39f5f5aecfb7f4cd9a5d8
+SHA1 (patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc) = f2f88c0c8e654e1cd86f286c312f275353c56156
+SHA1 (patch-chrome_browser_webauthn_enclave__manager.cc) = 6f9d6ab623dafffebf392858a64f4d88f179067f
+SHA1 (patch-chrome_common_channel__info.h) = 514b5480be6679d0284e4d0fefb9d0abdfd39222
+SHA1 (patch-chrome_common_channel__info__posix.cc) = c0542b754fccb1589e313df908a4ca36cc3297ef
+SHA1 (patch-chrome_common_chrome__features.cc) = f4db66fe830d81cb9e6e67005fc104dd389f2e93
+SHA1 (patch-chrome_common_chrome__features.h) = dddf067e10fc9a9c1bf4a4b6c9866149103742b1
+SHA1 (patch-chrome_common_chrome__paths.cc) = e761c79c3ab8051d284259b39aca3f0dba06575f
+SHA1 (patch-chrome_common_chrome__paths.h) = 92c3dc424705307b609edc15a0067a1b62b1e3a1
+SHA1 (patch-chrome_common_chrome__paths__internal.h) = 5efb1c41594995f06c1ef85d61030590cb144bf6
+SHA1 (patch-chrome_common_chrome__switches.cc) = ab36dca5d6f46bbf851f5b68e38f2b6d65979799
+SHA1 (patch-chrome_common_chrome__switches.h) = b882f9e11250158c13e3ec22e8c98e03385f190b
+SHA1 (patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc) = 6cfd1d25c8ed13a47a680d5acf7fce0f34cba66b
+SHA1 (patch-chrome_common_media_cdm__host__file__path.cc) = d34fbbfb00a9367b4169833a83a7472333ca17eb
+SHA1 (patch-chrome_common_media_cdm__registration.cc) = c5f34383515ef1563e3471047da789091b7a10e9
+SHA1 (patch-chrome_common_media_cdm__registration.h) = b93d477e9679539f6547abfb09677a40ddc6ddb0
+SHA1 (patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h) = cda8dd74dc98529a985d0c2d7b40a500d3319738
+SHA1 (patch-chrome_common_pref__names.h) = 92604ec04a07e1ecba3aba1198c4b931983b0175
+SHA1 (patch-chrome_common_url__constants.h) = 07e5d301fe2571a1ad7202e918bb470666316774
+SHA1 (patch-chrome_common_webui__url__constants.cc) = f2d128bcb4c0b5d1fb775e9bc7507ab3a974afb2
+SHA1 (patch-chrome_common_webui__url__constants.h) = 3d69ebf896f463f2f98e2393edd62ac1a4348d58
+SHA1 (patch-chrome_enterprise__companion_enterprise__companion__client.cc) = 5b6629cb1733e2f2b43c587b8f2b13a15449cf96
+SHA1 (patch-chrome_enterprise__companion_lock.cc) = 6e0ee751dc8d124e7ee5f46bbfbb9f093dc60f2b
+SHA1 (patch-chrome_services_printing_print__backend__service__impl.cc) = e73fd3f64965e7a38f73a1000aa4072c4e86752d
+SHA1 (patch-chrome_services_speech_audio__source__fetcher__impl.cc) = 2c9bd5d44aba63ed83b8c2392e6268a20743424a
+SHA1 (patch-chrome_test_base_scoped__channel__override__posix.cc) = eba3e5203a172d417da9fa95d8e408b3c5736931
+SHA1 (patch-chrome_test_chromedriver_chrome__launcher.cc) = 428d880c7e037c8eae25e8ddc5f1899c1499a3d8
+SHA1 (patch-chrome_test_chromedriver_chrome_chrome__finder.cc) = 1261951ca6358c0e6744aa0948659aac51038840
+SHA1 (patch-chrome_test_chromedriver_key__converter__unittest.cc) = 1dad8f0de09dedfa8ea37971558cf923d96f9b0c
+SHA1 (patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc) = 83b0d13fc51c48758a5cb6272c59306c5899b4fb
+SHA1 (patch-chrome_updater_configurator.cc) = c106299a58637c58780a51892fe56285017ab5cd
+SHA1 (patch-chrome_updater_lock.cc) = 04c2eb20a03b9b19a1adc9ecd8772acf410b471d
+SHA1 (patch-chrome_updater_util_posix__util.cc) = 8ab90591d1b6bfb0c8c85875dfdaa42bf0b5a9f0
+SHA1 (patch-chrome_utility_services.cc) = ef2868c75f9247e5611c377830cd869cc7c51961
+SHA1 (patch-chromecast_browser_cast__browser__main__parts.cc) = ad9c3e930a353234d9856329527ecb48fd68918e
+SHA1 (patch-chromecast_browser_cast__content__browser__client.cc) = fd18feefc2d05feccd65e8be9a0df620497af020
+SHA1 (patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc) = 71013ae98b4f1df4ccea98c7c501335a337b7db7
+SHA1 (patch-chromecast_media_base_default__monotonic__clock.cc) = 9fb381379de67d3f5bddb6a11d0f3f8d28c56263
+SHA1 (patch-components_autofill_core_browser_payments__data__manager.cc) = 91421557a776a51b1c21ec8b64e691d91e04e382
+SHA1 (patch-components_autofill_core_common_autofill__features.cc) = 86141e31dc1f5bd49fa0eb8fd7e7d0b0a3a2e75f
+SHA1 (patch-components_autofill_core_common_autofill__payments__features.cc) = 0d9975015f161e4f90deeabe97c89635a574514d
+SHA1 (patch-components_autofill_core_common_autofill__util.cc) = 292ae52ada973e6441e920c896207268983cd2ba
+SHA1 (patch-components_commerce_core_commerce__feature__list.cc) = 69f4d31ba94ae77f29a0fe5fd29bad546d95c93c
+SHA1 (patch-components_constrained__window_constrained__window__views.cc) = 6a9a65a4043ca704bf95b4fdfed81d532490ce1d
+SHA1 (patch-components_content__settings_core_browser_website__settings__registry.cc) = 86f507ebe1daaf4adab3ea8dd9ab9289f4701569
+SHA1 (patch-components_cookie__config_cookie__store__util.cc) = 0eb208e4835656bb44e81f46b64c6a4882272bbf
+SHA1 (patch-components_crash_core_app_BUILD.gn) = ff2f4eccad5f4d4206cae429029010f1db7b4600
+SHA1 (patch-components_crash_core_app_chrome__crashpad__handler.cc) = ab176e2c63310ccc6f55b9c617e115a0c879685d
+SHA1 (patch-components_crash_core_app_crashpad__handler__main.cc) = 0cffa74a394416d27ebf665151b79a062fc00097
+SHA1 (patch-components_crash_core_browser_crash__upload__list__crashpad.cc) = fc98644f501492f1fa1a55b7f16c8705f033127d
+SHA1 (patch-components_crash_core_common_BUILD.gn) = f9a06d30a813cd99ccd7d375afe42fabff2dbad5
+SHA1 (patch-components_device__signals_core_browser_mock__signals__aggregator.h) = f0ee8134caf647d372bd846999f0dbda43a93ee7
+SHA1 (patch-components_device__signals_core_browser_signals__aggregator.h) = 752427d0df9986c890dcc5e2b20d7f2ce4446048
+SHA1 (patch-components_device__signals_core_browser_signals__aggregator__impl.cc) = 5e36d199e167944b3550864be5aa7d8fb286de5d
+SHA1 (patch-components_device__signals_core_browser_signals__aggregator__impl.h) = 2d2b32a2ea69d401581f0ea9c45c31c0abd8d7c3
+SHA1 (patch-components_device__signals_core_browser_user__permission__service.h) = 134da6da6c022905843ea7fcb1b251cb58b69d76
+SHA1 (patch-components_device__signals_core_browser_user__permission__service__impl.cc) = 92e697c847c53bae5803c119bfd9ca35fe8c1d06
+SHA1 (patch-components_device__signals_core_browser_user__permission__service__impl.h) = 83bf1a9251e91431cf40e9d4a0e730f106ce6499
+SHA1 (patch-components_device__signals_core_common_signals__features.cc) = 5b01b8d41590f3597d25d48a6d7c740772c35367
+SHA1 (patch-components_device__signals_core_common_signals__features.h) = 15025a8081b6d22eebc6ac0bba62749742718fe4
+SHA1 (patch-components_device__signals_core_system__signals_platform__delegate.cc) = 6c5417821b026c87852008733d4b84606805cb7e
+SHA1 (patch-components_device__signals_test_signals__contract.cc) = ec74fc274d4dcbdbbaf7c8e7789952f559a72817
+SHA1 (patch-components_discardable__memory_service_discardable__shared__memory__manager.cc) = d2002f93650a79944b1869764943125ae16c91f8
+SHA1 (patch-components_embedder__support_user__agent__utils.cc) = 3ba7307ce989fddf8cbbdb05de29c2db5084e62b
+SHA1 (patch-components_embedder__support_user__agent__utils__unittest.cc) = 77c0b44538327c72f50fedf34732dc432ed8b5b6
+SHA1 (patch-components_enterprise_watermarking_watermark.cc) = 63d1dea3413c2abfb677ca112ad7739c57124268
+SHA1 (patch-components_eye__dropper_eye__dropper__view.cc) = 4b25c3b3164d6972d34cae88ddc7cd2845568dc1
+SHA1 (patch-components_feature__engagement_public_event__constants.cc) = 335f008f5765b3e3750923fa992c31edb81114a2
+SHA1 (patch-components_feature__engagement_public_event__constants.h) = 87d23021115a6ed810a6bd2dad68ca20449b7649
+SHA1 (patch-components_feature__engagement_public_feature__configurations.cc) = 166ef0cd702b0b5543bd15245dc1381f4f1e4f25
+SHA1 (patch-components_feature__engagement_public_feature__constants.cc) = 17d5921b003cea0c8ead1cbf49780489c922c3d3
+SHA1 (patch-components_feature__engagement_public_feature__constants.h) = 3349c4be96c2d2bb099aa7af2392ec80dda7f5df
+SHA1 (patch-components_feature__engagement_public_feature__list.cc) = 7698a4b9e5b8e727a7ea29b94ab7c39637334092
+SHA1 (patch-components_feature__engagement_public_feature__list.h) = 4bda7dbce52119124de64419921b9707ffca897e
+SHA1 (patch-components_feed_core_proto_v2_wire_version.proto) = e78450f14e0a8638594cc2f6b4c765a9ba29e981
+SHA1 (patch-components_feed_core_v2_feed__network__impl__unittest.cc) = a5f5dcadb44654f606ee498ad2e746b703ca6d18
+SHA1 (patch-components_feed_core_v2_proto__util.cc) = 7445cd9ad3538d3dd4ea85db7842bc90013224bd
+SHA1 (patch-components_feed_core_v2_proto__util__unittest.cc) = 944413ca70622ce27cecbd21ea14d449f1403189
+SHA1 (patch-components_feed_core_v2_test_proto__printer.cc) = 1812e283547bd292906c103e7fb2cbe6affb485f
+SHA1 (patch-components_flags__ui_flags__state.cc) = 3ea95800139e9f082a8d5d8d0309f13d706a5602
+SHA1 (patch-components_gwp__asan_BUILD.gn) = 9b01b1ae681ed19e93057dc9c3f703b71d63e1d8
+SHA1 (patch-components_gwp__asan_client_guarded__page__allocator__posix.cc) = 94dde4774267aae0976cfc822796d4f3a4828be9
+SHA1 (patch-components_gwp__asan_client_gwp__asan.cc) = 4492a22e439303b08c1ec29c4ee4177e1c27d55f
+SHA1 (patch-components_gwp__asan_client_gwp__asan__features.cc) = 619ca24ab8a100d10be0e2dbfde88ae88e93fbf8
+SHA1 (patch-components_gwp__asan_crash__handler_crash__analyzer.cc) = be10de43ae7a7b1c10b5b32514f60ce58f80dc0d
+SHA1 (patch-components_live__caption_caption__util.cc) = 7528fc38da8659d3ea7477eb58d24bf390980258
+SHA1 (patch-components_live__caption_caption__util.h) = 4549104c4a137b6d1c7e1a54b2e5f0a29efd6879
+SHA1 (patch-components_media__router_common_media__source.cc) = 848c43dcbf88482613949458e856c4532566249d
+SHA1 (patch-components_media__router_common_providers_cast_channel_cast__message__util.cc) = b700b0c8d17300e7ac71a8d1c7dfcd8415acd09a
+SHA1 (patch-components_metrics_drive__metrics__provider__linux.cc) = 571809afe8c4202301f0e6a3fa98ab96f03d5d65
+SHA1 (patch-components_metrics_metrics__log.cc) = ddb0bf2812e6d68184ce87ade1ff59bf6a3be7ef
+SHA1 (patch-components_metrics_motherboard.cc) = 07a0b720f25b94e9c32b93913799b61a54ad4255
+SHA1 (patch-components_named__mojo__ipc__server_connection__info.h) = ccee2e439f19bac7ede9b823896f206f33a9f1ec
+SHA1 (patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc) = 67caa5def4bbb85347e53490b679632b1c502746
+SHA1 (patch-components_named__system__lock_lock.h) = 8b55de74d5b31295a921494253fdae0505df1553
+SHA1 (patch-components_neterror_resources_neterror.js) = c16894cd199079617cecc5f5146b7f80de5c1c8b
+SHA1 (patch-components_network__session__configurator_browser_network__session__configurator.cc) = 1c59de1ef5f69643d7cc40e64bbc7f5ca4ad4d42
+SHA1 (patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc) = 65c9bba41c13ed25aa87ed1f6f52f58ae531936a
+SHA1 (patch-components_optimization__guide_core_optimization__guide__util.cc) = 2794670a67c8c4c6ad1a50e961819fc9a0302303
+SHA1 (patch-components_os__crypt_sync_libsecret__util__linux.cc) = 256036e4149cb5108998e899663b78d15c8a0ef9
+SHA1 (patch-components_os__crypt_sync_os__crypt.h) = 5b540b1c2b84a8946376fcf69f133074d5b03cac
+SHA1 (patch-components_paint__preview_browser_paint__preview__client.cc) = 3f709e1d6e5f305de91340b6fa57f8364d1db520
+SHA1 (patch-components_paint__preview_browser_paint__preview__client__unittest.cc) = f24d1275eb69569eb7733ddd594c8cf14dd069e1
+SHA1 (patch-components_paint__preview_common_proto_paint__preview.proto) = f8f448536b888cae2a9628e38c0a5c3913454351
+SHA1 (patch-components_paint__preview_player_player__compositor__delegate.cc) = 85fc170dc316bf2f13f035804eccf4955d73fe53
+SHA1 (patch-components_password__manager_core_browser_features_password__features.cc) = 28ce3012786bca3c24b17b80b532ebb012df9c97
+SHA1 (patch-components_password__manager_core_browser_features_password__features.h) = d2030e3948ee82e599ead9083e7a35398bf01dfd
+SHA1 (patch-components_password__manager_core_browser_password__form__manager.cc) = 7aaf31a85a143259c6f78a020ea3a37bd6fc553f
+SHA1 (patch-components_password__manager_core_browser_password__manager.cc) = fb2cd3adcca10d446bcbb92ad7638eacbc049823
+SHA1 (patch-components_password__manager_core_browser_password__manager__client.h) = cfeab03596ee03a643dec71eb5b76acea1418edd
+SHA1 (patch-components_password__manager_core_browser_password__manager__switches.cc) = 46bb13d486da80e92aa282ef07e14336d4060282
+SHA1 (patch-components_password__manager_core_browser_password__manager__switches.h) = 4c73d7d6087dd833a354dca5617442b35fc423cb
+SHA1 (patch-components_password__manager_core_browser_password__manual__fallback__flow.cc) = 1d2eb50cadbda479049197f0fd90e2e372e47fed
+SHA1 (patch-components_password__manager_core_browser_password__manual__fallback__flow.h) = f5eaea903f24c5e6fd85da9b411d46766ef97090
+SHA1 (patch-components_password__manager_core_browser_password__store_login__database.cc) = 2a7032a953c3fe50f6b56a1c8627eff691dd4759
+SHA1 (patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc) = 1dd58d472f897f486364b234cf1947a0d9dd5af4
+SHA1 (patch-components_password__manager_core_browser_password__store_login__database__unittest.cc) = 93f8d09c5d3cb2f7337b781eeaa73e021b530592
+SHA1 (patch-components_password__manager_core_browser_stub__password__manager__client.cc) = 68e77806f4c9c9a85c2bfec73206b62a1a9ee813
+SHA1 (patch-components_password__manager_core_browser_stub__password__manager__client.h) = be61a5437a2d24acd55325532e1636f6b367d138
+SHA1 (patch-components_password__manager_core_common_password__manager__pref__names.h) = 7160088a840283655c94a26fe2916b8994330ef5
+SHA1 (patch-components_performance__manager_public_features.h) = c17148ae0f3ed72a6c24ff6d90c93f4ab3af4a0d
+SHA1 (patch-components_permissions_prediction__service_prediction__common.cc) = 3d1a8fc882ca061017004da092bb1ff19f8e6bd2
+SHA1 (patch-components_policy_core_browser_policy__pref__mapping__test.cc) = 895fba5ec3359f7bb6fcf540f472f8a825cce196
+SHA1 (patch-components_policy_core_common_cloud_cloud__policy__client.cc) = 5c01009e8a1591f449a6b9371f4ffacffed8613a
+SHA1 (patch-components_policy_core_common_cloud_cloud__policy__util.cc) = 9543947bae469624cb6a178fc9537012086db4cd
+SHA1 (patch-components_policy_core_common_policy__loader__common.cc) = ef6ffedc6cac0e4a1939fae3d4caeb51fd933d94
+SHA1 (patch-components_policy_core_common_policy__paths.cc) = 67b0a334adf9ec46e2698ea8b78cc67d56a250c8
+SHA1 (patch-components_policy_core_common_policy__utils.cc) = 24ea91a3c97ac3e34cdeab3aa7cb6c186900090d
+SHA1 (patch-components_policy_tools_generate__policy__source.py) = a804971f0c1aa3170e610b61779409463999dd2e
+SHA1 (patch-components_power__metrics_BUILD.gn) = a9d6724fa773e649ef77391b1babcfc0d770cdde
+SHA1 (patch-components_power__metrics_energy__metrics__provider.cc) = 2cbfb42b11d3da10fef19937447b0e44aa515f14
+SHA1 (patch-components_safe__browsing_content_common_file__type__policies__unittest.cc) = 7b693ec118b81c85669bf07ad9d11b9424301dd8
+SHA1 (patch-components_safe__browsing_content_resources_gen__file__type__proto.py) = d7368dc623c69e18d853c8acd7d7ec68f0f048d9
+SHA1 (patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc) = 75aeff6bc780f772b4ed9931b49b3aacb9781c07
+SHA1 (patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc) = 31783704dae3dd3015410ec27e6482f3df6c4ebc
+SHA1 (patch-components_safe__browsing_core_common_features.cc) = a390866de25a422238bd894acc395ca77b416047
+SHA1 (patch-components_search__engines_search__engine__choice_search__engine__choice__service.cc) = e5cbbf708827104250aacdfbc446e6d68e38f564
+SHA1 (patch-components_search__engines_template__url__service.cc) = cce077ed12c8998892438c0be43255f93c303050
+SHA1 (patch-components_security__interstitials_content_utils.cc) = 9144fc34094578089a64197bc4286f4e9a89c630
+SHA1 (patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc) = d88a981cbe06cddef525ff0fcfc25ee4be1d391d
+SHA1 (patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc) = b793d38caed9226be93d8e0fe28382ff569a2db9
+SHA1 (patch-components_signin_public_base_signin__switches.cc) = dc3f7a7c9ed4c7ad58708571bc192388ef0e8c8f
+SHA1 (patch-components_signin_public_base_signin__switches.h) = b0b847b5359cf5a84601a3828ffbae8a54f404e0
+SHA1 (patch-components_soda_soda__util.cc) = 01a43d10db35e298540e6b5dee7c1b58300c1dba
+SHA1 (patch-components_startup__metric__utils_common_startup__metric__utils.cc) = 497c5a4c96fe399b0f186a98e86035f2ef9fe8f7
+SHA1 (patch-components_storage__monitor_BUILD.gn) = aac2c25d842566a7afb3d2a253e3e0f247069694
+SHA1 (patch-components_storage__monitor_removable__device__constants.cc) = 2af97b3c7ae29e340c73d4a639c0c23c457cd660
+SHA1 (patch-components_storage__monitor_removable__device__constants.h) = f29ad5fe3539865c8b7dcc372c1c0fa57a49ee98
+SHA1 (patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc) = 3631b0d5dcc13faafcb6644045e33628509af21d
+SHA1 (patch-components_supervised__user_core_browser_supervised__user__preferences.cc) = 4a84cdfffe4c0852c958843d1c4b3b13d840590f
+SHA1 (patch-components_supervised__user_core_browser_supervised__user__service.cc) = d1180584980ef37fb50fd5b1b6733b513003b1a0
+SHA1 (patch-components_supervised__user_core_common_features.cc) = c108d410379d1036ac4ef6ed6293b296e2cd85ce
+SHA1 (patch-components_supervised__user_core_common_features.h) = c9a5638c67510e4327d2b1401703c753cfa7097a
+SHA1 (patch-components_supervised__user_core_common_pref__names.h) = dc31eaf57a8a4464e950dd2f0988137d1ff2632f
+SHA1 (patch-components_sync__device__info_local__device__info__util.cc) = 0c956daed2192809f40a4820ac4ece70a0214fa9
+SHA1 (patch-components_sync__device__info_local__device__info__util__linux.cc) = 81a8fe12ffdeb998e74b3e3f2cf801dafa655b2a
+SHA1 (patch-components_sync_base_sync__util.cc) = 1edb25560815ffe4e79861b211029234681e816e
+SHA1 (patch-components_system__cpu_cpu__probe.cc) = 663bfadb1f759c68921b5e2b997d2fe14b1fa96f
+SHA1 (patch-components_translate_core_common_translate__util.cc) = f456b9eea3e4569072fa52bdcfaab81a2c5ba5d6
+SHA1 (patch-components_update__client_update__query__params.cc) = 0c734efd67dfdfc3eb07990c2389dee484d06882
+SHA1 (patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc) = 1b687e4199f7ba3c34f02ab65a02bc5d73134670
+SHA1 (patch-components_user__education_views_help__bubble__view.cc) = 40161bee5843e0ee9f16eeb37317700b5dc02d2d
+SHA1 (patch-components_variations_service_variations__service.cc) = 6025e49d675b74c79af6b7b25395bc8721317787
+SHA1 (patch-components_visited__url__ranking_public_url__visit__util.cc) = 0660df2669316c954f87e6d727879c6f40dbfcba
+SHA1 (patch-components_viz_common_features.cc) = febdc09cf03f975538ade8bda727b940ffde4b27
+SHA1 (patch-components_viz_common_features.h) = 4d5823a0b614c6266d334ea8bc095f5077ef2046
+SHA1 (patch-components_viz_host_host__display__client.cc) = 96d898169a11f4e7d75f904b1b0d1b7fbad75608
+SHA1 (patch-components_viz_host_host__display__client.h) = 4c6240c1c2f7ddfed94c2bebdaf5272d485389f6
+SHA1 (patch-components_viz_service_display__embedder_skia__output__device__buffer__queue.cc) = 6bb73aa14ad9f95e795c1df96a3d5ffcf7dfbe64
+SHA1 (patch-components_viz_service_display__embedder_skia__output__surface__impl.cc) = f36f8988b2f6fb9f23d4c49c38e3f14c1271b81c
+SHA1 (patch-components_viz_service_display__embedder_software__output__surface.cc) = 2a2f8634f9a529db7bc01e7eb642fa5e0e61ccb3
+SHA1 (patch-components_viz_service_display__embedder_software__output__surface.h) = 8bf686b3de8834ee164090eed59c4cc2259c6950
+SHA1 (patch-components_viz_service_display_skia__renderer.cc) = 584f00590e10b71b0dae9c985c3117ad5adedb0a
+SHA1 (patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc) = 0f93388706f66143d931c45827abdf75efbbb7a1
+SHA1 (patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h) = 06f4f0f22ce5414b1fac210432627a00721627af
+SHA1 (patch-components_viz_test_fake__display__client.cc) = a73ce09657afc165cad065ef3a659061982e3887
+SHA1 (patch-components_viz_test_fake__display__client.h) = 8dd5528781479780e515d639eb86ffe229388818
+SHA1 (patch-components_viz_test_mock__display__client.h) = 1ae27159eac1c5d170db7159c4cc2c2899857868
+SHA1 (patch-content_app_BUILD.gn) = da168cb79be0ce20f5c6aaf98776d301aa3a4b8f
+SHA1 (patch-content_app_content__main.cc) = 732de4873dc49220b1cc6c3568a739a732e92840
+SHA1 (patch-content_app_content__main__runner__impl.cc) = f4a8c0961d19c3ee087f7e9b5969d2226e71e625
+SHA1 (patch-content_browser_BUILD.gn) = f19e1efdb3429b65f4c4d88580c403e66711f1a9
+SHA1 (patch-content_browser_audio_audio__service.cc) = a76c0ed406bcb83f6a6da8fa7c70b31ceb9dba50
+SHA1 (patch-content_browser_browser__child__process__host__impl.cc) = 15417125aaa865f516799c11cef76d147bb6a06d
+SHA1 (patch-content_browser_browser__child__process__host__impl.h) = 7c02f2138393004f8a3c13d4b8572bb0c3a5f317
+SHA1 (patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc) = ad4790ebf019432a1c51920e8322e1ed85886b2a
+SHA1 (patch-content_browser_browser__main__loop.cc) = 43753764617022d1812be60d79547cc6630efca0
+SHA1 (patch-content_browser_child__process__launcher__helper.h) = 7de34a206d9e207dc253d9dfee43de80085a1c56
+SHA1 (patch-content_browser_child__process__launcher__helper__linux.cc) = c811cc3856d8e6b11a23373e80646bed304f8129
+SHA1 (patch-content_browser_child__thread__type__switcher__linux.cc) = 601f4c2909768578d5c5cf05074a5ce38f50939c
+SHA1 (patch-content_browser_compositor_viz__process__transport__factory.cc) = e4c8a045fed102e92f7e84ff60d004aa0bf30834
+SHA1 (patch-content_browser_devtools_devtools__frontend__host__impl.cc) = 02b3eb4c0a0bdbcd78576cdbc4d0009d14342f40
+SHA1 (patch-content_browser_devtools_devtools__frontend__host__impl.h) = 875e6350d9d494d58dd1780c2711ee80e289a98b
+SHA1 (patch-content_browser_devtools_protocol_system__info__handler.cc) = 6354c7a88e8bd0714e9d6bf93f86ae0a4a8e78c1
+SHA1 (patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h) = 8bb9373de8cfccde239b24265430c407e15bdd3d
+SHA1 (patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc) = 095e0b061e9a5d8640547d8308e1becef8d6e195
+SHA1 (patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h) = 97445d45770ae4ea171b5a55d0541a6b0d34cc71
+SHA1 (patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc) = 38dfe326dfe2f4e86cf9d9b088eea9d7bcb254d0
+SHA1 (patch-content_browser_font__access_font__enumeration__data__source.cc) = 26eba28ffc637cd5355697a8a9433930af09d815
+SHA1 (patch-content_browser_gpu_compositor__util.cc) = a37d824e48059e77889731950e959d00bc74df59
+SHA1 (patch-content_browser_gpu_gpu__data__manager__impl.cc) = 2e69e61ba2a65ee4cf2662bd507a6ed370f3eca9
+SHA1 (patch-content_browser_gpu_gpu__data__manager__impl.h) = eed5af4b3b5ceea1c960c18962ead992ed6df42c
+SHA1 (patch-content_browser_gpu_gpu__data__manager__impl__private.cc) = 2d7d63b4df34c1e4ad03ba864d3b66bb2047a86c
+SHA1 (patch-content_browser_gpu_gpu__data__manager__impl__private.h) = acf74ebf4dc0f4696b7c47fad2cd8023e2c2dd63
+SHA1 (patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc) = e49d3cf7d62e9c9a82e9ec4ef56d2e5a037986ed
+SHA1 (patch-content_browser_gpu_gpu__process__host.cc) = 7899680f3e1eb9c59bbc8edfc5aab7654b00dcf1
+SHA1 (patch-content_browser_media_frameless__media__interface__proxy.h) = 7c67416ad7b7dad7606a6deabd2f8fb291a66447
+SHA1 (patch-content_browser_media_media__keys__listener__manager__impl.cc) = f3c68fbbd190ccec56576175a793501bb85f31f8
+SHA1 (patch-content_browser_network__service__instance__impl.cc) = 07d0f28b1ca1a67a7fe01215f9ef37f9a4f5775c
+SHA1 (patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc) = 4ad9eb16c3f999005e97c2881a90a70377c3ba8e
+SHA1 (patch-content_browser_renderer__host_delegated__frame__host.cc) = 0f38818ad94ec2da547ccaea692d9addc45e8ee8
+SHA1 (patch-content_browser_renderer__host_input_input__device__change__observer.cc) = 1a102078ef216ab43e81e0f6616c4e446857f395
+SHA1 (patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc) = a2f8a48dede7710b2cf45be5a4b87d567caa7f1f
+SHA1 (patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc) = 68ae3bc44054796b5dd51fd355b9ac604c97fb2a
+SHA1 (patch-content_browser_renderer__host_render__process__host__impl.cc) = 4aed0838a1f0789792a819c725f18aeabe957f78
+SHA1 (patch-content_browser_renderer__host_render__process__host__impl.h) = 24884cf61fde38599572113215c23bf313342f72
+SHA1 (patch-content_browser_renderer__host_render__view__host__impl.cc) = 601aafbae1304fe8ac1e84a7ad930c33236f2ef1
+SHA1 (patch-content_browser_renderer__host_render__widget__host__view__aura.cc) = eb8028800ad0e074188e3df268c92392b56fcf40
+SHA1 (patch-content_browser_renderer__host_render__widget__host__view__aura.h) = 4be2e527ad883d00f62ff0288a13aa480cd356c7
+SHA1 (patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc) = 63466c6f4563cc26d809a7325322ac248b5a45d0
+SHA1 (patch-content_browser_sandbox__host__linux.cc) = 6365d80d28f893a38b58ded55bcac81fb07ef996
+SHA1 (patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc) = ad00347bfb8afe1ad0cdcffa1bb58e05b2ad17dc
+SHA1 (patch-content_browser_scheduler_responsiveness_native__event__observer.cc) = 73e83ea00f1096af62dd280fb79d0d5958aa8673
+SHA1 (patch-content_browser_scheduler_responsiveness_native__event__observer.h) = ff06bef1a800c8e7ef9f025d0d304434e1f13db4
+SHA1 (patch-content_browser_utility__process__host.cc) = bf875af64a391de081878d0a92d990a088604d68
+SHA1 (patch-content_browser_utility__process__host.h) = 1cc2bf9e73f608fee736c977fb610bb28afce219
+SHA1 (patch-content_browser_utility__process__host__receiver__bindings.cc) = 3bd56bf284ba5df9b8fe406bf9481aa371fda2c5
+SHA1 (patch-content_browser_utility__sandbox__delegate.cc) = dce5ffe9b4d321a4cbc7732281fd74dcec99af2e
+SHA1 (patch-content_browser_v8__snapshot__files.cc) = f5cf13554e1aa5afb1ff9696a137a4e3f4bf7807
+SHA1 (patch-content_browser_web__contents_web__contents__view__aura.cc) = 11637859685fabdaeabafcbf9e4a5a2e18fb93cf
+SHA1 (patch-content_browser_web__contents_web__contents__view__aura__unittest.cc) = df86867a7cd1f2482c6fcfee37212ac00cf55eba
+SHA1 (patch-content_browser_webui_web__ui__main__frame__observer.cc) = 8693e7508b0a1e626bf9aab7e3afefa2b71da10a
+SHA1 (patch-content_browser_webui_web__ui__main__frame__observer.h) = ced4eb256df030200b5dafe91c913438d3c8f967
+SHA1 (patch-content_browser_zygote__host_zygote__host__impl__linux.cc) = 80130f1d9664b0f0ef9d32fd796a4c6d926afd65
+SHA1 (patch-content_browser_zygote__host_zygote__host__impl__linux.h) = a0c1a280ef0705a5124a7f660716611c9fb0af51
+SHA1 (patch-content_child_BUILD.gn) = bfed14c5f1e88d7067d0fb14b5d0a7bad98919db
+SHA1 (patch-content_child_child__process.cc) = 2a175edb6564063e6f85cb4f0de740506aa93df6
+SHA1 (patch-content_child_child__process.h) = e74fe528127bb83cc51477fac00e08c1f8a2a39c
+SHA1 (patch-content_common_BUILD.gn) = 94502ac6d697741eec716a51497801072aa14b6e
+SHA1 (patch-content_common_features.cc) = b1ca758d710d52883c2c2c0561b6320434092532
+SHA1 (patch-content_common_features.h) = 0533bcff9ce3934f36d262c53aa866fe1de52557
+SHA1 (patch-content_common_font__list__unittest.cc) = 56ce8e636387c837e4ca591c11acb0aaa5da0177
+SHA1 (patch-content_common_gpu__pre__sandbox__hook__bsd.cc) = 19bdd89fa86d43f9f8c95de158c53adab739d61a
+SHA1 (patch-content_common_gpu__pre__sandbox__hook__bsd.h) = cf053c0f5ae9468ae58e42e661d14f5c1ee81103
+SHA1 (patch-content_common_gpu__pre__sandbox__hook__linux.h) = 1177ac160a229d2a295959d3e2228ee5d650f23e
+SHA1 (patch-content_common_mojo__core__library__support.cc) = fe0127f91d0b7370b3b9247d68e07f9e1e610fe2
+SHA1 (patch-content_common_user__agent.cc) = 8037d0617b9d25ce3d234da25fafbb5cd0a38090
+SHA1 (patch-content_gpu_gpu__child__thread.cc) = d1cce6f400c50c6def608cdf0088cd0cdfb9cc90
+SHA1 (patch-content_gpu_gpu__main.cc) = c911a3efab5b6e297fbaae9a75f0a92d5fd414d2
+SHA1 (patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc) = e07fb054b8a2be61d5f8d61559bd071835f5877e
+SHA1 (patch-content_ppapi__plugin_ppapi__blink__platform__impl.h) = 4943cbe859df695e8d7ef7dd9f420bc837dcc8f6
+SHA1 (patch-content_ppapi__plugin_ppapi__plugin__main.cc) = 25622bd75caa94008e6f8822c18857c22d68823b
+SHA1 (patch-content_public_browser_content__browser__client.cc) = dcedffe490e5e7b950e01da3ff83413145a457b4
+SHA1 (patch-content_public_browser_service__process__host.cc) = e2f2ef70a750eb0a82f52eeae0903e809c4c1c87
+SHA1 (patch-content_public_browser_zygote__host_zygote__host__linux.h) = 57f4554b88027b4a03d9ac3d98fbae54e87c531b
+SHA1 (patch-content_public_common_content__features.cc) = 65f22ab161f7bb55caca8caac7ca3a3d84301ea1
+SHA1 (patch-content_public_common_content__switches.cc) = c5afe5dc23e4f39bfb919e1f29c2ee2645652c18
+SHA1 (patch-content_public_common_content__switches.h) = f63e09e621fe54e0613af04deff37f56e51d7ac3
+SHA1 (patch-content_public_common_zygote_features.gni) = 2c061acda967f535051afcb23a6bf25843e708dd
+SHA1 (patch-content_renderer_media_gpu_gpu__video__accelerator__factories__impl.cc) = 52afdf89c954a5e351016a615f37823795c1809a
+SHA1 (patch-content_renderer_render__thread__impl.cc) = 59b202dd715b8e38a2408a2a23c657a310872a73
+SHA1 (patch-content_renderer_renderer__blink__platform__impl.cc) = 0defc3c5c8f7046e44b7a3c5824c0cc424b21faf
+SHA1 (patch-content_renderer_renderer__blink__platform__impl.h) = c756ed8b367c4290da94b30dccd833fc3a85de73
+SHA1 (patch-content_renderer_renderer__main__platform__delegate__linux.cc) = be2b6e8be50d33acb2edaa9607ae73f5b64716c9
+SHA1 (patch-content_shell_BUILD.gn) = dd89beaee3913d44aa7b9c1789a0f5dba2131e84
+SHA1 (patch-content_shell_app_shell__main__delegate.cc) = ccb562cf0446012fda18e7c1eccd3b3712c81312
+SHA1 (patch-content_shell_browser_shell__browser__main__parts.cc) = 7eac82addb0c31f527c3559156822e4fa6f9c199
+SHA1 (patch-content_shell_browser_shell__paths.cc) = c664644f0f4cc53ed0967c1bb6ccdc891a9ae2b5
+SHA1 (patch-content_shell_renderer_shell__content__renderer__client.cc) = 3262830840b421ddc1d946640eb51b839f6d7bbc
+SHA1 (patch-content_shell_utility_shell__content__utility__client.cc) = d6d74dee193dbfcf3463ea052815ae46432d2d5c
+SHA1 (patch-content_test_BUILD.gn) = 9503d777cf20901e02b6372ab0890aadaaa68ac0
+SHA1 (patch-content_utility_services.cc) = 27e29bb89ffd8684c5dc165b5048b7ab97a2099e
+SHA1 (patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc) = 9d8aa2264da99f61fcc5b40855062de9db633476
+SHA1 (patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h) = 43dfe80e4890907df30424a1c453bb7546001dff
+SHA1 (patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc) = 1381361a6c4780f3e536ca2116927e3ca1a41c31
+SHA1 (patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h) = 0d8ce96b8ce574b9355e10e8cc9c09c5bec7d3ad
+SHA1 (patch-content_utility_utility__main.cc) = ced679cfa2bc77c8bc1dbfacf9d3a8a3607c292d
+SHA1 (patch-content_utility_utility__thread__impl.cc) = 4398d5c5ba0071f30f1c83a115949991ada16f5d
+SHA1 (patch-content_zygote_BUILD.gn) = 34726c856eacb995714abb7722a08ca7c7aefc1b
+SHA1 (patch-content_zygote_zygote__linux.cc) = dce40d54f1ef4e80166d7f15ee875d9f1260b497
+SHA1 (patch-content_zygote_zygote__main__linux.cc) = c395af8cd6c0a6e5edb282f37ada033fddca41c7
+SHA1 (patch-device_bluetooth_bluetooth__adapter.cc) = 45f205b64248dabb4e4c9f1d243ec866b766c942
+SHA1 (patch-device_bluetooth_cast__bluetooth.gni) = 3559dbceb5753ea71b678b4d5be4e76b3f41f105
+SHA1 (patch-device_fido_fido__discovery__factory.cc) = 3a1400b6df73ab2fa6603a46366cb29550373cb6
+SHA1 (patch-device_gamepad_BUILD.gn) = 0ca79f3339930713be334e73ab0fbef52d72a054
+SHA1 (patch-device_gamepad_gamepad__provider.cc) = 7e718d208a566a6742b33ec2eedc97f5ccb92362
+SHA1 (patch-device_gamepad_hid__writer__linux.cc) = 7170e817977e2deff7f08df26d621764bc14595d
+SHA1 (patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc) = 2797f70fe7b34962c99a04352a9b9dc3966a8c35
+SHA1 (patch-extensions_browser_api_management_management__api.cc) = 109eba4fffad3b1c10f630fe043e2d77bcebb00e
+SHA1 (patch-extensions_browser_api_messaging_message__service.cc) = c5199c2b2a5b51a97e2deca2cca96b794b35dd6e
+SHA1 (patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc) = bd2c7d96e748704501db2145d129cb5cb3e50151
+SHA1 (patch-extensions_common_api___permission__features.json) = 4d555117a6b6f8118ddb790fbe1962fe9c6f1709
+SHA1 (patch-extensions_common_api_runtime.json) = 9d21d8d4abf65ae50a4096dc8705704c782628ed
+SHA1 (patch-extensions_common_command.cc) = 7f2fc95dc75155b76010f51138bae80a64acdbc8
+SHA1 (patch-extensions_common_features_feature.cc) = 2394315ac4676df451bf32c4be2715db288819f2
+SHA1 (patch-extensions_renderer_bindings_api__binding__util.cc) = 25c97d239bd428d6f121a020f5a08a852f222b21
+SHA1 (patch-extensions_renderer_bindings_argument__spec.cc) = 7cb248ebd4eefc706f6747edd812c42359663aeb
+SHA1 (patch-extensions_shell_app_shell__main__delegate.cc) = b3ce7d650d82c79ab08c96cdee88cb492a8d408b
+SHA1 (patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc) = 4d589e20b27ca455224fd51220a9de25d0eeee29
+SHA1 (patch-extensions_shell_browser_shell__browser__main__parts.cc) = 21cd7caffe49d35bc19f5991bd569c8a7d637b50
+SHA1 (patch-extensions_shell_browser_shell__extensions__api__client.cc) = e7e753d39d351ee76d631161c772522d36c7d20f
+SHA1 (patch-extensions_shell_browser_shell__extensions__api__client.h) = da90c57427e7cae56ca0f4d66033d2b4a1379fd2
+SHA1 (patch-google__apis_gcm_engine_heartbeat__manager.cc) = 28ec59f544f339bcea4088131b763ecc09c6f4f8
+SHA1 (patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc) = 2db2d9c08a03f3157447b42f4967cfe5a4d84362
+SHA1 (patch-gpu_command__buffer_service_dawn__context__provider.cc) = e1ca511f2cf3c7f8b1f547fefaddb636268d1213
+SHA1 (patch-gpu_command__buffer_service_gles2__cmd__decoder.cc) = fe2400cf865f386c349ea99e271573d1492b4f61
+SHA1 (patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc) = 6e3cf2109f0ef32369448368da9cd3731fe2e34d
+SHA1 (patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc) = 6e4eeb419ce7bbe8f1c45ff58e676c94b5f56712
+SHA1 (patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc) = 39373d061fd069a2d441b829e93bebd7bbfc8ac2
+SHA1 (patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc) = 6e5c392235860b948e406330a0dc64ccdade02a0
+SHA1 (patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc) = 79b62ed4377cc0c3740b22948c2474ee49267820
+SHA1 (patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc) = c82011f778a161a8178e50d1b730164846c161fa
+SHA1 (patch-gpu_command__buffer_service_webgpu__decoder__impl.cc) = c0b6c67af5ef66f2d1f9c5f3f11b7edfc095859e
+SHA1 (patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc) = 14432d97761890a2cc47e8fcc9783b4ec6433736
+SHA1 (patch-gpu_config_gpu__control__list.cc) = 77942e415f85f5f0773882e035c5eb814f0673be
+SHA1 (patch-gpu_config_gpu__finch__features.cc) = 5bdbed8b123643a44e9035f8bf0eac1a6f317c28
+SHA1 (patch-gpu_config_gpu__info__collector.cc) = def7b53e825e45de89ef7e9178bc5a3f8eba3dec
+SHA1 (patch-gpu_config_gpu__test__config.cc) = 03f74efefd52413eeeb3cf0d28d4d9fc43976667
+SHA1 (patch-gpu_ipc_common_gpu__memory__buffer__support.cc) = 22b159b5f48bd72d34de9a961cb6c413c79fe1c9
+SHA1 (patch-gpu_ipc_common_gpu__memory__buffer__support.h) = 11fc71cf27d8b4ca788aad868c5649086b5e90ca
+SHA1 (patch-gpu_ipc_service_gpu__init.cc) = 2dde589657f666b7d44781c5b984fd7b92ee128e
+SHA1 (patch-gpu_ipc_service_gpu__memory__buffer__factory.cc) = 63bab34df965274264b41b50fbc0e79ea5293705
+SHA1 (patch-gpu_ipc_service_x__util.h) = 863165d9aaab327068844127b1352bda4e5fe676
+SHA1 (patch-gpu_vulkan_generate__bindings.py) = 680927b873ea03168510606bf3927545da0f9262
+SHA1 (patch-gpu_vulkan_semaphore__handle.cc) = c157b5dc856c2fa7cbb2e72ba868a7d227c1fce9
+SHA1 (patch-gpu_vulkan_vulkan__device__queue.cc) = 778f0d44d084ebd4bad3d28b14f65162ec5a7da8
+SHA1 (patch-gpu_vulkan_vulkan__device__queue.h) = 301c201d10e29acbcd4b6523b58466045f157752
+SHA1 (patch-gpu_vulkan_vulkan__function__pointers.cc) = 92b108717b076434a9e54bb761434826f288e82d
+SHA1 (patch-gpu_vulkan_vulkan__function__pointers.h) = 5d1e0a327e020c1cb1d1278c5ef6f894680ee674
+SHA1 (patch-gpu_vulkan_vulkan__image.h) = 3b7c04f7ffa48d01c4dd434ff33f6bc39d5a9253
+SHA1 (patch-gpu_vulkan_vulkan__util.cc) = fae3d8aae9e9509074c4c82621df62eb91518f7d
+SHA1 (patch-headless_lib_browser_headless__browser__main__parts__posix.cc) = d9951d421326aaf90bed597df0352dc57a8f9770
+SHA1 (patch-headless_lib_browser_headless__content__browser__client.h) = 40e70117919a401fd38deac3df501673a9c2d353
+SHA1 (patch-headless_lib_browser_headless__request__context__manager.cc) = 936c2ba6999d6fef3c164656db09ad3ee28620de
+SHA1 (patch-headless_lib_browser_headless__web__contents__impl.cc) = e8a9bf1dee5eb8331c8cf5913b46c78529fb0728
+SHA1 (patch-headless_lib_headless__content__main__delegate.cc) = fb66c01c440927074de77aa16031997fdb7c73b3
+SHA1 (patch-ipc_ipc__channel.h) = 6b12298e2139a7279caa09df9e365b87f64280c8
+SHA1 (patch-ipc_ipc__channel__common.cc) = bfad35b7c93c2fd183a492927bd52a2c6ab8d458
+SHA1 (patch-ipc_ipc__channel__mojo.cc) = edca49c7682d9455d9038d81ed416c572fbfedea
+SHA1 (patch-ipc_ipc__message__utils.cc) = 88271a77d0e044000dab43279ab89287ba2d1861
+SHA1 (patch-ipc_ipc__message__utils.h) = a2cc50d6148721a084f8de29658b2474722fae94
+SHA1 (patch-media_BUILD.gn) = e5cbc55d5a14c4dc7dcdbd3298826531610f7c62
+SHA1 (patch-media_audio_BUILD.gn) = ec44676db5d153e62b8608ed500fda94b53bb056
+SHA1 (patch-media_audio_alsa_audio__manager__alsa.cc) = 77703e819250d90dfaf9f6a4f071ff482987180c
+SHA1 (patch-media_audio_audio__input__device.cc) = 80723a27de1832710d59abb5881585e5660bc471
+SHA1 (patch-media_audio_audio__output__proxy__unittest.cc) = fdfe740b328274b37340e77a01c0d122dd945fc6
+SHA1 (patch-media_audio_pulse_pulse__util.cc) = 2cab76573b1bb54756a762f885c7631580645c07
+SHA1 (patch-media_audio_sndio_audio__manager__sndio.cc) = fbf154c38690571a9b83cf64802d4204a7241dcc
+SHA1 (patch-media_audio_sndio_audio__manager__sndio.h) = 10bd5655bfccc36b2168a9b44fd601e6ea827516
+SHA1 (patch-media_audio_sndio_sndio__input.cc) = 4755b7af0b3442f6296587f62facc3ba75b75d0e
+SHA1 (patch-media_audio_sndio_sndio__input.h) = 07728f8bd4222fe2c49e9c5d10d2e8877d7a2020
+SHA1 (patch-media_audio_sndio_sndio__output.cc) = e9655a6a32907f0add273998595ed8e86deabc4a
+SHA1 (patch-media_audio_sndio_sndio__output.h) = c6be01665398be9f406a1719c612109b9d2b0050
+SHA1 (patch-media_base_audio__latency.cc) = 1d38f71e1c0c27b71e0b702a0027d7bfd2edae15
+SHA1 (patch-media_base_libaom__thread__wrapper.cc) = 445d1d23e73b512c41bd5461793561452d623461
+SHA1 (patch-media_base_libvpx__thread__wrapper.cc) = 2ce167878e7d58909cbc2e3750fd817e67761d9e
+SHA1 (patch-media_base_media__switches.cc) = 558841aeb1d8ae886c6317ed74af84f1931637c7
+SHA1 (patch-media_base_media__switches.h) = f89a42f055e10029e35608a0709647413f8c9548
+SHA1 (patch-media_base_user__input__monitor__unittest.cc) = 03e632f19a0b67f1aef740dfc642cbcb1fa5e803
+SHA1 (patch-media_base_video__frame.cc) = 1c6849c5ce5b505a874cc5a15d3ac00ee0fb9ff2
+SHA1 (patch-media_base_video__frame.h) = 81ad11a1b782612ce621c789a1829e8bcaf1ebc0
+SHA1 (patch-media_capture_video_create__video__capture__device__factory.cc) = 844757c25fb04cc9c9c87f7c26c43e299db7cefc
+SHA1 (patch-media_capture_video_fake__video__capture__device__factory.cc) = e106e963de62eeea2289194f163be0babd7cfefd
+SHA1 (patch-media_capture_video_file__video__capture__device__factory.cc) = b649d3af77f7ce2de659e48479fcc7912b966154
+SHA1 (patch-media_capture_video_linux_fake__v4l2__impl.cc) = bbe5eb6ef9bf18b1ede31a2f4c6f11989bf42ce6
+SHA1 (patch-media_capture_video_linux_fake__v4l2__impl.h) = 0b6e0c0b529e3f74704911539408417666f1a8d4
+SHA1 (patch-media_capture_video_linux_v4l2__capture__delegate.cc) = 272549fed07a4c1f12b606f691641b530c3d57e7
+SHA1 (patch-media_capture_video_linux_v4l2__capture__delegate.h) = 178359424a382a68778bd856c25e009cec3997b2
+SHA1 (patch-media_capture_video_linux_v4l2__capture__device.h) = 8b090427f802284d185e0c4f7f4999b9472bc209
+SHA1 (patch-media_capture_video_linux_v4l2__capture__device__impl.cc) = bedce9a75df34e2b9cbc4683f73c860893f93471
+SHA1 (patch-media_capture_video_linux_v4l2__capture__device__impl.h) = e5e007ce8da5cd942985caa381d6da6dc1e9cb2d
+SHA1 (patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc) = 4fd9f9aeafde39fd7be06961faa9a87201f8a726
+SHA1 (patch-media_capture_video_linux_video__capture__device__factory__v4l2.h) = 1b9b12c270077be821f9d2285a99f17954d949bc
+SHA1 (patch-media_capture_video_linux_video__capture__device__linux.cc) = 8663b1861d29990d3c5e0d3dedec57eb99296f64
+SHA1 (patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc) = 132e62f0f073a4e3c962774c57518af4f0da1219
+SHA1 (patch-media_capture_video_video__capture__device__client.cc) = 8db71e360b774a3af3fa9cd9cb8709de3cb52912
+SHA1 (patch-media_cdm_cdm__paths__unittest.cc) = 6a48dcb3ead9f7f916d62a54b3c9a04b600c348e
+SHA1 (patch-media_cdm_library__cdm_cdm__paths.gni) = 01abd65241a64a97338b3c628f314a2ae6abddb4
+SHA1 (patch-media_ffmpeg_scripts_build__ffmpeg.py) = 9b486e30972a24f3c40a549eadd359af596071f0
+SHA1 (patch-media_ffmpeg_scripts_robo__lib_config.py) = d8cfba292214059da09a15e015731d4d386fc1fb
+SHA1 (patch-media_gpu_buffer__validation.cc) = e0b8d298ce7ad00b87720d3145bf02a7d76ec5fc
+SHA1 (patch-media_gpu_chromeos_gl__image__processor__backend.cc) = f64862563c297c75d2968a2b6e4152a9e2bf7b85
+SHA1 (patch-media_gpu_chromeos_libyuv__image__processor__backend.cc) = 4ed8fff2fb89d0b2fc184a1957c46e7e421df556
+SHA1 (patch-media_gpu_chromeos_mailbox__video__frame__converter.cc) = 85aa96c358f9c2a458f9f0f9d66476aa549e9b71
+SHA1 (patch-media_gpu_chromeos_native__pixmap__frame__resource.cc) = e41f2897ec6f4dc3dc432d538fa04d7aa11f0787
+SHA1 (patch-media_gpu_chromeos_platform__video__frame__utils.cc) = dfe3b1e3983603cc1a376f9e43eab9e1f020db46
+SHA1 (patch-media_gpu_chromeos_video__decoder__pipeline.cc) = ee1e096b96a94a5846c57aa575f2575126e55ac7
+SHA1 (patch-media_gpu_gpu__video__encode__accelerator__factory.cc) = 3a7d61a06fc3737eb1b90f0e492fdd9124b00e23
+SHA1 (patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc) = 0d97a9d0a82c862f4e12f7a5553877e2ddf11b89
+SHA1 (patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h) = 2a36a7d6f8c736dde45d2be62c61821c02b6467c
+SHA1 (patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc) = 7a21596c88a9dac9906db4321ceeea701b016b58
+SHA1 (patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h) = a6e2e6bd5a57f64c4afbe84f9c13e5d350ce7564
+SHA1 (patch-media_gpu_vaapi_vaapi__video__decoder.cc) = 61459c1f37f2766f109dea6930a847fbb6e1a501
+SHA1 (patch-media_gpu_vaapi_vaapi__wrapper.cc) = 2bcb8cccd1ab8aa12695a2d02d1e809c2ac43379
+SHA1 (patch-media_media__options.gni) = 41fe51c8449c92d57a3d9ecadd83370edbdffcdd
+SHA1 (patch-media_mojo_mojom_stable_BUILD.gn) = d838c434bcd8d14faf9950fa43fe9d6a612b8272
+SHA1 (patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc) = 2b7d7f57fd5af2bd073659c9a83f4d56a8c8f772
+SHA1 (patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h) = b0a1018dd6be781e99ea34ffff33f6a9fdb7c76c
+SHA1 (patch-media_mojo_mojom_video__frame__mojom__traits.cc) = 838b6dd148176e2ba84cfcb317813a0e67f92dee
+SHA1 (patch-media_video_fake__gpu__memory__buffer.cc) = 3a704077f95dc430f6f9b4f9086f7bba8434bbfd
+SHA1 (patch-media_video_gpu__memory__buffer__video__frame__pool.cc) = 48d54049f7044d75f312be26a16f243cb4989bd4
+SHA1 (patch-media_video_video__encode__accelerator__adapter.cc) = 0c80171dfb45e21694d223b97d7465a6199b5220
+SHA1 (patch-media_video_video__encode__accelerator__adapter__test.cc) = 14a7ef2b7536428587b333c63e39e7ca6fc17e55
+SHA1 (patch-media_webrtc_audio__processor.cc) = 8e5b75ae3b0d2292e6132321fe36b0cc37acd480
+SHA1 (patch-media_webrtc_helpers.cc) = d1d9b2ed9347e9917cb9b39e37858e88cf3483ed
+SHA1 (patch-media_webrtc_helpers__unittests.cc) = 118d56d71097494cf1fa6358cb5d90dd2b81a2c7
+SHA1 (patch-mojo_core_BUILD.gn) = 906e169828e14072c7941d58f79ebb4c96d75ac7
+SHA1 (patch-mojo_core_channel.cc) = 6f1c6baa3b90e3c90f739f28cda434686047a690
+SHA1 (patch-mojo_core_embedder_features.h) = 84df23ee417cd6d9ddb221ae4031bbe6065a79bf
+SHA1 (patch-mojo_public_c_system_thunks.cc) = 85121b3c782629661cd1d19bdb36d6313c9fea1c
+SHA1 (patch-mojo_public_cpp_platform_socket__utils__posix.cc) = 9f7f630d401fee7c6176f5eb88e9ec3fdd59aa4b
+SHA1 (patch-mojo_public_tools_bindings_mojom.gni) = f96d0b3fa42e8d287a6f75844e439d94c11b7d05
+SHA1 (patch-net_BUILD.gn) = 5196a276d1d23d5892390e0ae2d9f6214ca73ef8
+SHA1 (patch-net_base_features.cc) = 51a84df454ca316ec5e6878b2362cd0bf7c8bb8d
+SHA1 (patch-net_base_mock__network__change__notifier.cc) = 0d28abc5fccf7dad5b9aa3b6a7c206e5b0ae8b27
+SHA1 (patch-net_base_mock__network__change__notifier.h) = b09fe921aa58ecdd0ef35ef66cfd5f26b397f54b
+SHA1 (patch-net_base_network__change__notifier.cc) = 9c7c103315e3f31616a5d70661baa1469f94d983
+SHA1 (patch-net_base_network__change__notifier.h) = 173c9dcc32bfbba28e931312f46e15adeed92ab1
+SHA1 (patch-net_base_network__change__notifier__passive.cc) = 0807cdbfc7e46ec6927445a6efefd596e50d0808
+SHA1 (patch-net_base_network__interfaces__posix.h) = c41f6451a17fa5813ec6a3cc709afa6fdc3e6a1d
+SHA1 (patch-net_base_sockaddr__util__posix.cc) = b952a717a5a587ef1fee477fd81be59fc45a81ad
+SHA1 (patch-net_base_sockaddr__util__posix__unittest.cc) = f9f2b26bef5f7e64b71d68a2dd009469d1a3c065
+SHA1 (patch-net_cert_cert__verify__proc.h) = 1c5ef3e5b1816ed6c73b5026f8d1226b790481e6
+SHA1 (patch-net_disk__cache_simple_simple__file__tracker.cc) = 7cbd8ddda3178ddaceb818d2ae6d80314649caf7
+SHA1 (patch-net_dns_BUILD.gn) = 85d4d290b02a0dca08e10f0950d12046abab6a92
+SHA1 (patch-net_dns_address__info.cc) = 90dd41710db7e9f9c9193af58d7c3a501de04a70
+SHA1 (patch-net_dns_address__sorter__posix.cc) = de8bafbff88cfd6827c8e3c138b4971d0b6c7966
+SHA1 (patch-net_dns_dns__config__service__posix.cc) = edffa8bbd0c35af32634ca29b647b829d240ecda
+SHA1 (patch-net_dns_dns__reloader.cc) = 4bda0cd1888e7e1e7c96717e02c51bd560d9b1e6
+SHA1 (patch-net_dns_dns__util.cc) = a67bfcd2f75f3e307ebaca7e7d980469874ed5ba
+SHA1 (patch-net_dns_host__resolver__proc.cc) = aa1bff42a0ea5137aab878a7661a4b94a0ff0bd1
+SHA1 (patch-net_dns_public_BUILD.gn) = 16fc6926819d6f34544f69ee03a8d6c49a168ae1
+SHA1 (patch-net_dns_public_resolv__reader.cc) = d0a44220afe40c65c1f50c412d8cca662841745b
+SHA1 (patch-net_dns_public_resolv__reader.h) = 62735535bce895c8b6837543e3a983a1163e32d3
+SHA1 (patch-net_dns_public_scoped__res__state.cc) = 66fb87e55a016d1935cefe2dfb6ce18b49c6c66f
+SHA1 (patch-net_dns_public_scoped__res__state.h) = 4ad157d4ca266ac1a6e74a8f843a69d55f9a02f3
+SHA1 (patch-net_filter_zstd__source__stream.cc) = d36a55f607798007b04bb006c5937bdf81dfd31f
+SHA1 (patch-net_http_http__auth__gssapi__posix.cc) = e0f9fe3aa7fba9cc8ed8f177e0949313a6e7146f
+SHA1 (patch-net_http_http__auth__gssapi__posix.h) = d942ddc75f447a3ae43f3de88e79f6aea3b43a72
+SHA1 (patch-net_http_http__auth__handler__negotiate.cc) = 9e48b049c36abd8e259639ebc67fb9549e7d8cd4
+SHA1 (patch-net_http_http__auth__preferences.cc) = 7f86725f1ec2655c288e884d2f3f7fbf6afdf7bc
+SHA1 (patch-net_http_http__auth__preferences.h) = f7827059feaf13e35ee18ad68928acc74eba476a
+SHA1 (patch-net_http_http__network__session.cc) = cb8ca07e649e23aea0f0633515d1c61fe8008153
+SHA1 (patch-net_proxy__resolution_proxy__config__service.cc) = 3b7dd2fef69948600f8d06753b3f6e5b2361bdca
+SHA1 (patch-net_proxy__resolution_proxy__config__service__linux.cc) = 850ee4db86e45abaf0894635226d58633d12bf22
+SHA1 (patch-net_socket_socket__posix.cc) = 13c9540560de4c877a7cfa2bc9f674bffde8bd0c
+SHA1 (patch-net_socket_socks5__client__socket.cc) = 639c5a2fdd5d551a9caf9337cea47eb79040418a
+SHA1 (patch-net_socket_tcp__socket__posix.cc) = 41b69702b8340591c0bde89bcdef86dbb53f2451
+SHA1 (patch-net_socket_udp__socket__posix.cc) = f82269c0eb2da810820811e6fe7042653314ba15
+SHA1 (patch-net_socket_udp__socket__unittest.cc) = 1e68462d4681f19ea986295502c6b898e396a6e7
+SHA1 (patch-net_third__party_quiche_BUILD.gn) = 12282d0679b92354fda6751608a561d9ffd53169
+SHA1 (patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc) = 8a5517a06d856671faa0c055cc076e0f453a1ebe
+SHA1 (patch-net_tools_cert__verify__tool_cert__verify__tool.cc) = b0b0a8b35334c58253202394b25a83585807252f
+SHA1 (patch-net_tools_net__watcher_net__watcher.cc) = 95f0652bbca1a0954c5a90de2395543c003ba16d
+SHA1 (patch-net_traffic__annotation_network__traffic__annotation.h) = 893d3521753ecb5b88bd8c191f64726f17adc395
+SHA1 (patch-net_url__request_url__request__context.cc) = 1daa422d5c8cd2f10d75811b200bb13bd5f05e8c
+SHA1 (patch-net_url__request_url__request__context.h) = 97dfde50d8e8cfac278d4853d649b8e71bd0989f
+SHA1 (patch-net_url__request_url__request__context__builder.cc) = 351b7c8407b8b565a494bb70874f5e4c7d893fd1
+SHA1 (patch-pdf_pdfium_pdfium__engine.cc) = a518992b194216c830a28a3965e1b063c3bab83a
+SHA1 (patch-ppapi_tests_test__utils.h) = 84cf31e2b7cb48519fc7cc076ff0fa6028fbf3fd
+SHA1 (patch-printing_backend_cups__ipp__helper.cc) = 59a642ea122897457b90d11d5f964a8ea6a13979
+SHA1 (patch-printing_backend_print__backend__cups.cc) = 46c1256288a876494e4f750c41fe3de0e7764e61
+SHA1 (patch-printing_mojom_printing__context__mojom__traits.cc) = 016f6ecb8a72a90f76f7320ba3b02711500ba4aa
+SHA1 (patch-printing_mojom_printing__context__mojom__traits.h) = 693d30714f41471d82178ed231ca3e04061d7276
+SHA1 (patch-printing_print__settings.cc) = e288bc65fe59a27afcf5ec3f8e38e8e3b0495d04
+SHA1 (patch-printing_print__settings.h) = b2f6dadd505199dcdce1bd8e646e2da36b72d3d6
+SHA1 (patch-printing_print__settings__conversion.cc) = 62a1d250b5b2f943c345bc25ef8ed53190262b7d
+SHA1 (patch-printing_printing__context__linux.cc) = 323f0e3752320d1b54bb6d5d1d5735916436b0c1
+SHA1 (patch-printing_printing__features.cc) = 84ff8bfdf11f643776cf170fa404b29a385b19d7
+SHA1 (patch-printing_printing__features.h) = 2755b699546fa01734cca0b9331f516e8948d711
+SHA1 (patch-printing_sandbox_print__backend__sandbox__hook__linux.cc) = afd8ab8d1f164b1f5067b167183db28326a616ed
+SHA1 (patch-printing_sandbox_print__backend__sandbox__hook__linux.h) = ba269c4d13483a685399f9198213ee321e38651f
+SHA1 (patch-remoting_base_chromoting__event.cc) = 296f0c6d571eee1bdc68ea9e278a46e8b469efd9
+SHA1 (patch-remoting_base_host__settings.cc) = 3ad73939d730bd18b30c08d4bcba6d04d4376e55
+SHA1 (patch-remoting_client_display_sys__opengl.h) = 7fb3b43154041e7b3a84d3841fc6ebdf2c5ae782
+SHA1 (patch-remoting_codec_webrtc__video__encoder__vpx.cc) = 12ed56c966f17b06301e2231b2b1633d260fb715
+SHA1 (patch-remoting_host_base_desktop__environment__options.cc) = e167d4b3a460d809d51f6fc87c3f223d722d1631
+SHA1 (patch-remoting_host_base_switches.cc) = f0a323320628f48b28912426edd7d70db949a6b3
+SHA1 (patch-remoting_host_base_switches.h) = 571dc5aeee4d25b0d9b2f7fe6fa0525e4745d1dc
+SHA1 (patch-remoting_host_basic__desktop__environment.cc) = d7a4d3d7252879869657045b0b5632bec32333b5
+SHA1 (patch-remoting_host_chromoting__host.cc) = b77372ea31fd1af69c66472e0445bf1f7455652f
+SHA1 (patch-remoting_host_chromoting__host.h) = 57bdaa9b73a9fd61d35eb4d75cea854b7d586a33
+SHA1 (patch-remoting_host_chromoting__host__context.cc) = d08a978ec7364a0c21cda6179b4a1d9336c42b0c
+SHA1 (patch-remoting_host_chromoting__host__services__client.cc) = 71c051addc0ff08cf1f1518d5d028ebec64887af
+SHA1 (patch-remoting_host_client__session.cc) = 3442685ac4c7051ec6541c2f1e38a9a186fc8163
+SHA1 (patch-remoting_host_crash_crash__file__uploader.cc) = 8f08cdb1f88b37c7b35e02c13fdd3f076727f243
+SHA1 (patch-remoting_host_desktop__and__cursor__conditional__composer.cc) = 7854d234b8b9486b97558e339cfb650b30716a52
+SHA1 (patch-remoting_host_desktop__capturer__proxy.cc) = 79653a49cb624668ef1c8eb5d924eb7694f28e4b
+SHA1 (patch-remoting_host_desktop__capturer__wrapper.cc) = 737d87e62f943cf607d4516f175f8ea392ab1110
+SHA1 (patch-remoting_host_evaluate__capability.cc) = 8df21edcb580b3711f3a5a7d2360bbf4033595a8
+SHA1 (patch-remoting_host_host__attributes.cc) = 29e3fd4c3df3780cd29fa88c80e0c39624ef2e07
+SHA1 (patch-remoting_host_host__details.cc) = f3a32764b0bfdb0e2f63b9526b0e14eb8f582e84
+SHA1 (patch-remoting_host_host__main.cc) = c86fe49019df31e7fcbcdd3b46bcaf613ccffdfa
+SHA1 (patch-remoting_host_ipc__constants.cc) = 5f7d50e7aedb0bda066d76d0281ba56e74364242
+SHA1 (patch-remoting_host_it2me_it2me__host.cc) = 9287ec48407018b9a5974f18245bc969fa0dd6e7
+SHA1 (patch-remoting_host_it2me_it2me__native__messaging__host__main.cc) = 0fb0d3c3220793e59a9f14594ea7a8da2c5faa36
+SHA1 (patch-remoting_host_me2me__desktop__environment.cc) = f2eddecacc8f5629b685c2b76d98c283ac4f5c03
+SHA1 (patch-remoting_host_mouse__cursor__monitor__proxy.cc) = b6340e496400c6ee7d2c5d5d0d0feb421e9b8c3b
+SHA1 (patch-remoting_host_policy__watcher.cc) = 9cf6c9e61f008fa7a0dc987ca2593747889b0d80
+SHA1 (patch-remoting_host_remote__open__url_remote__open__url__client.cc) = 44ce8f5c0756ffe86dd403d6f2303c74c2d89493
+SHA1 (patch-remoting_host_remote__open__url_remote__open__url__util.cc) = 94c98a98c671a566c7a6313706093f620cff241e
+SHA1 (patch-remoting_host_remote__open__url_url__forwarder__configurator.cc) = 9712c2f052bfd94aa9b261ca1eeb29f173217a6d
+SHA1 (patch-remoting_host_remoting__me2me__host.cc) = bcfef8bac54162a0ae716dafbba62400634aafa7
+SHA1 (patch-remoting_host_setup_start__host__main.cc) = a54a1d397f12d914465523788558bc7489536a76
+SHA1 (patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc) = a7e4db926e972b4f4a4f2aea4df4bd68ad657a26
+SHA1 (patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc) = a33131e00570a97b4988265c495e3b446c957ac9
+SHA1 (patch-remoting_protocol_webrtc__video__stream.cc) = caed129d69894304fd57c01cd3e398a52e54a7ec
+SHA1 (patch-sandbox_BUILD.gn) = a62e89741976258a7b8b5b0170f3b157cdd63844
+SHA1 (patch-sandbox_features.gni) = 376a20790ed50286539c50d813ae0cd2c762d050
+SHA1 (patch-sandbox_linux_BUILD.gn) = 17c8d3fcfbbc2b8a0ac2a4eabcd4d0c5d14acabc
+SHA1 (patch-sandbox_linux_services_init__process__reaper.cc) = f6677b3c3fda638ff9924614a064a1772efc6dff
+SHA1 (patch-sandbox_linux_services_libc__interceptor.cc) = 95b634251e7094cd0c592ff252d0ad26a94a565a
+SHA1 (patch-sandbox_policy_BUILD.gn) = 934451cd30dd1e5737c6b562271f5cb43ba3d545
+SHA1 (patch-sandbox_policy_features.cc) = 65e70015ccc767682223f3cf5af74777ea5cc635
+SHA1 (patch-sandbox_policy_features.h) = f8dfcf939a77d89a22790d54781cb1ad82576475
+SHA1 (patch-sandbox_policy_freebsd_sandbox__freebsd.cc) = 65e17fc5aa757da5756498e16c14ebd41b6baf56
+SHA1 (patch-sandbox_policy_freebsd_sandbox__freebsd.h) = 97c505b2e7c1b5405561b175e737f1aa42a617e3
+SHA1 (patch-sandbox_policy_mojom_sandbox.mojom) = f6e7d58a5169bb626b73c0291d49fc9244f67d35
+SHA1 (patch-sandbox_policy_netbsd_sandbox__netbsd.cc) = 8e19ee0f5e7979dea3c00934022668199e2b6166
+SHA1 (patch-sandbox_policy_netbsd_sandbox__netbsd.h) = dea18d5a1939765deb042a71525d50195e43ed52
+SHA1 (patch-sandbox_policy_openbsd_sandbox__openbsd.cc) = ba0aa46edf9997774797cd410eee570c409be344
+SHA1 (patch-sandbox_policy_openbsd_sandbox__openbsd.h) = 0792dbde8e78bde3e0461d560747908574b15fd5
+SHA1 (patch-sandbox_policy_sandbox.cc) = adbec60e11b837456b7d7cdc609c29c1c3157075
+SHA1 (patch-sandbox_policy_sandbox.h) = 8cb42b4e82ec945dcfd8117af6714fd9253c7643
+SHA1 (patch-sandbox_policy_sandbox__type.cc) = 8ae6bbb92a44cf311b5ae20127e4dcffbd075135
+SHA1 (patch-sandbox_policy_switches.cc) = 017c3436743fc57939b8a1a311f91e0de4856a45
+SHA1 (patch-sandbox_policy_switches.h) = 5acf6398340337ecdd032bb53da4acef74ae828d
+SHA1 (patch-services_audio_audio__sandbox__hook__linux.cc) = decb630882c8f3112f367103239f61db2b53ddde
+SHA1 (patch-services_audio_audio__sandbox__hook__linux.h) = cdeaf8727ab1d616b5f17054ee372b12dd657502
+SHA1 (patch-services_device_BUILD.gn) = aaa6958ff30fe68822d11e8a696d84c4d184eae4
+SHA1 (patch-services_device_hid_BUILD.gn) = 6544bb0d06b42676f76b8c3f3a6063a43e71814c
+SHA1 (patch-services_device_hid_hid__connection__fido.cc) = 4bbe5e40781d4697c78a013efc130a05c7c9a70d
+SHA1 (patch-services_device_hid_hid__connection__fido.h) = 06ff37e7b611f5538646fa5c367c63d2a89265fe
+SHA1 (patch-services_device_hid_hid__connection__freebsd.cc) = e63100203c943475e13f6c2bbb1b1e02d41c00af
+SHA1 (patch-services_device_hid_hid__connection__freebsd.h) = 770cf47f4ec2c6b6254455cc0feaf3851f37dc52
+SHA1 (patch-services_device_hid_hid__connection__netbsd.cc) = 951db09ec9bf8cd5105a65af4db8834d6c39defd
+SHA1 (patch-services_device_hid_hid__connection__netbsd.h) = 6b4fd7473a540d5e80b12517c42be3468d57abc2
+SHA1 (patch-services_device_hid_hid__service.cc) = 18ad651cafe4b19b999cab2ad594aa01291b18ca
+SHA1 (patch-services_device_hid_hid__service__fido.cc) = c177efd5649af5985a0c6e9902af71d4330045f1
+SHA1 (patch-services_device_hid_hid__service__fido.h) = 8b65d063e48ef6cdba0ce0ab5e04bc97473a5424
+SHA1 (patch-services_device_hid_hid__service__freebsd.cc) = a5ce1040720f71a1b3358b5a6600a473e0fd0a03
+SHA1 (patch-services_device_hid_hid__service__freebsd.h) = 7b133880b8be0d4d186615bd5df8092c9a9dea3a
+SHA1 (patch-services_device_hid_hid__service__netbsd.cc) = b1aa82a91404af2e53b7be929b48db5098c4cda4
+SHA1 (patch-services_device_hid_hid__service__netbsd.h) = 6ce8981eb05033fa3784969a88211fcfc64c78a8
+SHA1 (patch-services_device_public_cpp_generic__sensor_sensor__reading.h) = 45d38925c9c27ad27a44bc43554949adcb4a3fd4
+SHA1 (patch-services_device_public_mojom_BUILD.gn) = 9c74555d296374f5b67e2d0172fe6da8713531a9
+SHA1 (patch-services_device_serial_BUILD.gn) = 1cd8ca0a63a2eac3663a79ab0302bffde406ed52
+SHA1 (patch-services_device_serial_serial__device__enumerator.cc) = 1e7441f1a154ba85e4db99da11b27dfb46e6cf00
+SHA1 (patch-services_device_serial_serial__io__handler__posix.cc) = 150acc82e14739de8918bb96be33c49c364f4f5d
+SHA1 (patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc) = 2e3bebd6bcabfe72759957a55818d64078a430ef
+SHA1 (patch-services_device_usb_BUILD.gn) = 4c021169c6e2da503f0be448e866fa6837c84dae
+SHA1 (patch-services_device_usb_usb__service.cc) = c4c91b70ac31481507187cd35629ed3fee488ba9
+SHA1 (patch-services_device_usb_usb__service__fake.cc) = f51c9fd03dba7302d7b0aab06ba02db518104634
+SHA1 (patch-services_device_usb_usb__service__fake.h) = a221277de2063c29373a250f7e3f4eca7d6ea0d0
+SHA1 (patch-services_network_BUILD.gn) = 7b1773f7985d387910832b23f3e36bd26d55938f
+SHA1 (patch-services_network_network__context.cc) = d8ff63a60377c5f993688623cc67d6d9424a324c
+SHA1 (patch-services_network_network__context.h) = f6c73c1d6645dea5c423915f254c7cc761398f56
+SHA1 (patch-services_network_network__sandbox__hook__linux.cc) = 05e4d6a17a99fc17dea435839528ca4c50285cad
+SHA1 (patch-services_network_network__sandbox__hook__linux.h) = 34070d3ae33a910bf8d6a0af6eba1b577eb3925f
+SHA1 (patch-services_network_network__service.cc) = 9095822db2abeeb840e38c70e93651a2b5f74cdf
+SHA1 (patch-services_network_network__service.h) = 383440d215dfadc23a4f44c6964ec04c97bf025e
+SHA1 (patch-services_network_public_cpp_BUILD.gn) = 5f3e1936899a453ef60394b1bb70fceda6ee44fe
+SHA1 (patch-services_network_public_cpp_features.cc) = d17c4332c71fc6b38b8f001b53f139e906e6f2b7
+SHA1 (patch-services_network_public_mojom_BUILD.gn) = 93706e3f399312ec62bac4409799dba6568bd728
+SHA1 (patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h) = 049c952c2d492de65cba3badca8a81c0ec5e2de9
+SHA1 (patch-services_on__device__model_on__device__model__service.h) = 1db21eb0a47f23e4176d23dea3fc0557175f5399
+SHA1 (patch-services_on__device__model_pre__sandbox__init.cc) = 7643cf21a4c2def0bd702b895019ed2ab319f66b
+SHA1 (patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc) = 39291b70d474135f9f787edaa8c38cd71c0fa02e
+SHA1 (patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn) = e1eb7d530606159e328cb3efdd7e8aff9e5494a6
+SHA1 (patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h) = 5c887d95c56dea484f607a7747bb5b81ec958c4b
+SHA1 (patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc) = 8b2e73a950e5890a95c65874d08aa62fe35bc4bd
+SHA1 (patch-services_screen__ai_public_cpp_utilities.cc) = 50a34650d643d2eb915218f4366eb83b0157da6b
+SHA1 (patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc) = 3741d691351f302e3303c302445878f7b1352c83
+SHA1 (patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h) = 8fc874571b45d58c3966d3a27cb5c6a3a5d30505
+SHA1 (patch-services_service__manager_BUILD.gn) = a6f1007deb50c81c171f8d74206e8a8278da5eed
+SHA1 (patch-services_service__manager_public_cpp_service__executable_BUILD.gn) = 9c2d11e4c03ffeafbafa3796fcdddd61f4aa5bbb
+SHA1 (patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc) = 9177f2491f60c7dfaf3bcdec3fe3f7c0ace8e43b
+SHA1 (patch-services_video__capture_public_mojom_video__capture__service.mojom) = 83a017ba7a99a4a585297a8a00c060336875672f
+SHA1 (patch-services_video__capture_video__capture__service__impl.cc) = f5c32b8976fb3d253e104a7d875dcce3d33b473e
+SHA1 (patch-services_video__capture_video__capture__service__impl.h) = 858ec045bcdc4137aa063fb0b8fd1e6a38d22dc1
+SHA1 (patch-skia_ext_SkMemory__new__handler.cpp) = 9cb0d10b5462cf658f8a561ca468cc51f657e438
+SHA1 (patch-skia_ext_font__utils.cc) = 25645f236ecfbe9d11ff567b83de5996f59bfafe
+SHA1 (patch-skia_ext_platform__canvas.h) = 7576b543264db96af3a98ea577083ecf9013b56c
+SHA1 (patch-skia_ext_skcolorspace__trfn.cc) = 58d342b473f6002d6b76e39d916027f634018925
+SHA1 (patch-third__party_abseil-cpp_absl_base_config.h) = 0bfe69377faae76618eae1b881272596c310258b
+SHA1 (patch-third__party_abseil-cpp_absl_base_internal_raw__logging.cc) = 3cb0a0290d51631e945b75a2d03826bdb3dd0d02
+SHA1 (patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc) = 48e91568552401ea36b0db69252ed4ef9b7e3f60
+SHA1 (patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h) = 8ea85b8dd9a7739ef66b0f0b3ac7b6b40a8b9e5a
+SHA1 (patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc) = bbfe027ae68d0379fa5731532287393f1f145709
+SHA1 (patch-third__party_afl_src_afl-fuzz.c) = a50b2ab31c9040b0cc1725e6249a8922eb50df4a
+SHA1 (patch-third__party_angle_BUILD.gn) = 29018d06f23152af9e3c3b84a764ed83c718c3d1
+SHA1 (patch-third__party_angle_src_common_platform.h) = 94070611aa44d1b3c055fb652e00d041412d73b8
+SHA1 (patch-third__party_angle_src_common_platform__helpers.h) = d29584190dd6991fbc95a281974bb4910849b0ca
+SHA1 (patch-third__party_angle_src_common_system__utils.cpp) = c0951760f1f9e9fae713f3b8565811ab2a98ca49
+SHA1 (patch-third__party_angle_src_common_system__utils__linux.cpp) = 5a65025d3b8c19cb93eaf4b43e83c4756df5bed4
+SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h) = 95bdd39789529d671337c4ceacc1391c319d1bf6
+SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp) = 0c221d4c112daa25b3d492a730b9e783ca471442
+SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp) = 119ed42c211dc25af796afa8cfd7a697be770170
+SHA1 (patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp) = 0365cd97edd6a22bd69108ab9721eabc2f3080ec
+SHA1 (patch-third__party_angle_src_libANGLE_Display.cpp) = b06426999de926846824991ddc8f198802ed8c9d
+SHA1 (patch-third__party_angle_src_libANGLE_formatutils.cpp) = e45afae9905aec9b72a77fe78318de923f680d80
+SHA1 (patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp) = 7aa610469e7089102ea1aff195564f858a78e174
+SHA1 (patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h) = 27f4a00afdb912afe5e534700053aaa576cd60a5
+SHA1 (patch-third__party_angle_util_BUILD.gn) = 1bf7be9962978ec697c5ba575dabd8184160d234
+SHA1 (patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc) = b59418ca8c1eef5c92cbe0aa44df5eca181f6d0f
+SHA1 (patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h) = 9c1b4611500cbdc4d74141cf4853cc3c3f630842
+SHA1 (patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h) = 955800cdc149e8174846169550b690ebdafc0da7
+SHA1 (patch-third__party_blink_public_platform_platform.h) = 0324623c5695d3ac80cf24f337b4f4738cae711c
+SHA1 (patch-third__party_blink_public_platform_web__vector.h) = a79e3b3497680347fa7e0d25678dd9e51e0aa616
+SHA1 (patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py) = 1fcbb6b72128fcc980a2343062076f90add70155
+SHA1 (patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py) = 868634e3abb9da527568242e922a1ebe79c50f47
+SHA1 (patch-third__party_blink_renderer_controller_blink__initializer.cc) = 56e70cd490178412289205ef40308a83973f2179
+SHA1 (patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc) = 4597675b5d9e91f1507e17ed4927f6025f70d33a
+SHA1 (patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h) = a30fc0427778dfa0fa4b01b0eb94831458d2fa1b
+SHA1 (patch-third__party_blink_renderer_core_editing_editing__behavior.cc) = 0a8008a06b861a880defefa91c142f42d6419a6e
+SHA1 (patch-third__party_blink_renderer_core_execution__context_navigator__base.cc) = e92845d5608c0378d03b53328856a846f48c3b1c
+SHA1 (patch-third__party_blink_renderer_core_exported_web__view__impl.cc) = 38f4c63839cf525e4358ea877e56e3ea1bba9399
+SHA1 (patch-third__party_blink_renderer_core_frame_web__frame__test.cc) = 07427bc6b4e33d883342eb003ee4c4c4026121b7
+SHA1 (patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc) = d540829b92339d50f8cefae3b50a092f9a743c22
+SHA1 (patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc) = d52eeff180e7a78fe2656a534ceeb678b4b258c5
+SHA1 (patch-third__party_blink_renderer_core_layout_layout__view.cc) = f9533849fca2299fb0a957db21ef3dcff0da41b3
+SHA1 (patch-third__party_blink_renderer_core_paint_paint__layer.cc) = 8eaf340f128897e859344732aba96609af759730
+SHA1 (patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc) = 3ff813a43f42479bf4cf48551ea5610157983f11
+SHA1 (patch-third__party_blink_renderer_core_xml_xslt__processor.h) = 124b96896c09ab2a4cb4c2f5ad08765277717a3b
+SHA1 (patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc) = c2b026f888d6a7691bb5c0dc45c4ff182c2ad672
+SHA1 (patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc) = c89ceacb5a8854c5b174114c14ce6e372feb8830
+SHA1 (patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc) = 1a325e40a779526b730f6701d999b8a036cab75f
+SHA1 (patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc) = 5cb662e9e02ffb6b0b0df76f6eba9bdabc50792a
+SHA1 (patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc) = b438b0580d196e469ccda6d39ce592d3721a7968
+SHA1 (patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc) = 1f8229202de2064861ed7ad4c0ee52da7b4e837e
+SHA1 (patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc) = 6ff7aaa8098bcb1d5b67b73047ee3182788dd663
+SHA1 (patch-third__party_blink_renderer_platform_BUILD.gn) = 5d2520f1e5ca498725a28bc399c8c496423638c2
+SHA1 (patch-third__party_blink_renderer_platform_fonts_font__cache.cc) = e6cad577f9d8a58638a83d608247128023c58796
+SHA1 (patch-third__party_blink_renderer_platform_fonts_font__cache.h) = 2900fbdbd23b3589d88cd83ea0ad5dbd0a5343c4
+SHA1 (patch-third__party_blink_renderer_platform_fonts_font__description.cc) = ccbc1e67816e76162e7a67b2cb5710e312d1e777
+SHA1 (patch-third__party_blink_renderer_platform_fonts_font__metrics.cc) = fb2d94f7fbf1b00f5823170f21ffc703b67bbe08
+SHA1 (patch-third__party_blink_renderer_platform_fonts_font__platform__data.cc) = e2b1a462be4f5c756af32fa07172627bfa79877f
+SHA1 (patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc) = 065f14a23eeabb0beaf2fb26690d3c207bc4c302
+SHA1 (patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc) = ac5806b191106daa3d95396c77f13f2ded4128c8
+SHA1 (patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc) = f266dd4bf849bd864b3ad827138a1c2422eab3b1
+SHA1 (patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc) = 9f93b56c73acc5604641c03c877f6566e5f57103
+SHA1 (patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc) = 099463cde8bc0ea430c6b71a0fdd2196eeac075d
+SHA1 (patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc) = 0970480410d91fd99770e58212ef91455e05d7ee
+SHA1 (patch-third__party_blink_renderer_platform_runtime__enabled__features.json5) = 14be9beae629e67e388c5a951b264b2935ea310c
+SHA1 (patch-third__party_blink_renderer_platform_scheduler_common_thread.cc) = 5707266c439333afd589a4a140f0e63eb8e24589
+SHA1 (patch-third__party_blink_renderer_platform_video__capture_video__capture__impl.cc) = 24b9943f6c3592317a097a7ad0fb283a6fd0c827
+SHA1 (patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc) = 159ec43d3b75c299dea44275379a2f1cb2af4295
+SHA1 (patch-third__party_blink_renderer_platform_wtf_container__annotations.h) = c4b90edaed7c0ac1940dc4436d94b378c058f727
+SHA1 (patch-third__party_blink_renderer_platform_wtf_math__extras.h) = 0fc4afe6e3f91c4fc39959061c0946fdec8d3c7d
+SHA1 (patch-third__party_blink_renderer_platform_wtf_stack__util.cc) = 42d9fd56274484aadb508aa5ae7dcdd42de26c60
+SHA1 (patch-third__party_blink_renderer_platform_wtf_text_text__codec__icu.cc) = 9942f9b991c13957ef285d9913f82062a42db5cb
+SHA1 (patch-third__party_blink_renderer_platform_wtf_thread__specific.h) = 1704bd23b28697fe06144a306c5111b8d977bdc5
+SHA1 (patch-third__party_brotli_common_platform.h) = 4cee367f4b0347592f1d732bd389da979a30db03
+SHA1 (patch-third__party_cpuinfo_cpuinfo.gni) = cbe1810c4efbe6091bb7c6f1b1426ea62255752e
+SHA1 (patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni) = cdb2f134fe26a720784d41d6141828f01f47788c
+SHA1 (patch-third__party_crashpad_crashpad_client_BUILD.gn) = 5718315251c922c458d6e24bd1ca76541191e28d
+SHA1 (patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc) = 5c80103eb816b82bfcd5b229ab912b550a108d7b
+SHA1 (patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc) = 52760752b17373b8565dac622e8e7a3af1e0d932
+SHA1 (patch-third__party_crashpad_crashpad_util_misc_address__types.h) = 8a4517bec75a08d77a375f74246514d18b7bbbd5
+SHA1 (patch-third__party_crashpad_crashpad_util_misc_capture__context.h) = 8624bae18cb484a9d5f263e9a9b5effbf38dbd1b
+SHA1 (patch-third__party_crashpad_crashpad_util_misc_metrics.cc) = d174596b0569687a070c5ac6c3983e4a9c60c899
+SHA1 (patch-third__party_crashpad_crashpad_util_misc_uuid.cc) = 97a901e233412604c6e97322b23882db44938053
+SHA1 (patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc) = d4f6b9992a482c6fa51d70a405e1861aa2a75cca
+SHA1 (patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc) = f1798977e8e9eac1b3f165e9697fe28af284c1e4
+SHA1 (patch-third__party_crashpad_crashpad_util_posix_signals.cc) = 457ad62769c7bf198d3724854ba1179783c44aff
+SHA1 (patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc) = 530188bec85dfb8c9b4efaa41c6524e9bce148fe
+SHA1 (patch-third__party_crc32c_BUILD.gn) = ed96b29bfac3dd25a97e70ce92fcd026a5f497eb
+SHA1 (patch-third__party_dawn_include_dawn_native_VulkanBackend.h) = 5ac5575d20a3eb61ea0db59538944484d6ccf110
+SHA1 (patch-third__party_dawn_src_dawn_common_Platform.h) = c0c6f545e302d87c14e06d34f731f370ef8f60c4
+SHA1 (patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp) = eab7c6232b287aa2a3326299971c41bf33138424
+SHA1 (patch-third__party_ffmpeg_BUILD.gn) = 174ba8e63ac1c675abc720cd121c4b1cc6057d4d
+SHA1 (patch-third__party_ffmpeg_libavcodec_x86_cabac.h) = 38e7c296c5e79b42e597ce01a65272617d7f63bb
+SHA1 (patch-third__party_ffmpeg_libavutil_cpu.c) = ae723fadc2be25e51e73f968f87a9e8689a82076
+SHA1 (patch-third__party_ffmpeg_libavutil_mem.c) = d9873d3b3716a32d3ac394d4e23c0fd46b423229
+SHA1 (patch-third__party_ffmpeg_libavutil_random__seed.c) = 5b971fb2800664b292b253f890910437f3950935
+SHA1 (patch-third__party_ffmpeg_libavutil_x86_x86inc.asm) = c0e71758240a516125cc64d8d2a613a3ff693eb6
+SHA1 (patch-third__party_fontconfig_include_config.h) = 8a8d309d2ee036fa04c326d815eec59638f3b9c6
+SHA1 (patch-third__party_fontconfig_src_src_fccompat.c) = 1ecdbab1802302361e4e39b827a648d9f2a22f68
+SHA1 (patch-third__party_ipcz_src_reference__drivers_random.cc) = 508bbcab4216dd665e6f813a888acfc2a97f5582
+SHA1 (patch-third__party_ipcz_src_standalone_base_logging.cc) = f35b36338ab7021a7424ab14a07baf43877d03d3
+SHA1 (patch-third__party_leveldatabase_env__chromium.cc) = 42d6d93f8842f210db35838b97fb009cd98eb393
+SHA1 (patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c) = eba1f346415acdf4787f33d07027b693d414feb5
+SHA1 (patch-third__party_libc++_src_src_chrono.cpp) = 20342e2149ff73e0fbc1606c26a7d19080773650
+SHA1 (patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp) = dd43f82a392a04e3f6ed1f32e4ea36829499acc8
+SHA1 (patch-third__party_libc++abi_src_src_cxa__guard__impl.h) = 3af1fcf14d7608555eabdf8a539d2753da5c5346
+SHA1 (patch-third__party_libdrm_src_xf86drmMode.c) = 975311cccad22d9fb80fc9936b9c017cf504abc3
+SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h) = ef86939f0295ea156e6356afe28d5f9298fafa4e
+SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h) = eb7d3489d5eaa7a55c066e19da9ce409f2dd541a
+SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h) = 453d91f772272d5f43ed8461617d5cc5d0053545
+SHA1 (patch-third__party_libsync_src_include_sync_sync.h) = 9b86b1daa8c481a83dc4208be927639c5547278f
+SHA1 (patch-third__party_libsync_src_sync.c) = 6682955e8d4a417bf81380cac8775e063e9c53ad
+SHA1 (patch-third__party_libusb_BUILD.gn) = 6eb2e47fe4cafe21bf68510302777e5544d174a3
+SHA1 (patch-third__party_libusb_src_libusb_core.c) = 1af1bb78d9a6415ffe1d5fe974a8f49e56b4aa18
+SHA1 (patch-third__party_libusb_src_libusb_os_threads__posix.c) = ff86fb88002ac143fe3e19a094918cecd5520e18
+SHA1 (patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c) = 44026c832d58f64ff63050d53c7c3bc243ea4a7b
+SHA1 (patch-third__party_lzma__sdk_C_CpuArch.c) = 5278e69f3a7e1f50c127a58eed7a47c6fc614d45
+SHA1 (patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc) = ba3f7d559a960f64d46707a62a304ce516ebff86
+SHA1 (patch-third__party_nasm_BUILD.gn) = d334f4c2ae6edc76687b604a1a88071ca0a95092
+SHA1 (patch-third__party_nasm_config_config-linux.h) = d6049cd711eac33ca5cd91ea4fe564298e6defef
+SHA1 (patch-third__party_node_node.gni) = b69df7445327914abf938ca2c51c0a060b110249
+SHA1 (patch-third__party_node_node.py) = 6750259149c2ac1e8715b951d1a87944d64cf7f2
+SHA1 (patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp) = 09d3c5a163d6395a4bd358438aa7cfbc6afeb63e
+SHA1 (patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp) = 7647a118f27e9fe36780ec9fc63f336d8094f7bb
+SHA1 (patch-third__party_pdfium_fxjs_fx__date__helpers.cpp) = cf940cd254ff5a15a35ef0993cad7b96abe82da0
+SHA1 (patch-third__party_pdfium_pdfium.gni) = 83cf063067819ddba63a08128f39990e5803641b
+SHA1 (patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp) = 30baaa5292e2dc4122b86ecb2149284b094bcc75
+SHA1 (patch-third__party_perfetto_include_perfetto_base_build__config.h) = 24d0e00e72f4909166977c21dceb19c13a7d9022
+SHA1 (patch-third__party_perfetto_include_perfetto_base_thread__utils.h) = d6f3f1a1223ec105f8ebceeece1481cc995ee4ba
+SHA1 (patch-third__party_perfetto_include_perfetto_base_time.h) = 19b09b59fe04f93b34d96059bc0a4decd27ba8a9
+SHA1 (patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h) = 12cd6c103bc34fb118c8749b7c84ad1f2486a41f
+SHA1 (patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h) = 917a161bfa5a5062a7cbde52e7842c8d2968c5ba
+SHA1 (patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h) = 633eca69834c3021e0a9dc08e6ddcbb47e5a016e
+SHA1 (patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto) = b625fa70af3e3bf4abf59b5e2ec08d0fb0beac61
+SHA1 (patch-third__party_perfetto_src_base_event__fd.cc) = 173025506e90d9df6080f6fe84640a1c46b10d75
+SHA1 (patch-third__party_perfetto_src_base_periodic__task.cc) = f1ddf79ebc25d13271b872533a65eef4fe16c4c9
+SHA1 (patch-third__party_perfetto_src_base_string__utils.cc) = abbdca365559a15e2cf5e96d52422a0d23c00199
+SHA1 (patch-third__party_perfetto_src_base_subprocess__posix.cc) = 2b496a99e75d6c6e578f884a443c99ccc323cb32
+SHA1 (patch-third__party_perfetto_src_base_test_vm__test__utils.cc) = 641f5288060e6e5ffb88e66c86d3051aaf4ebdaf
+SHA1 (patch-third__party_perfetto_src_base_thread__task__runner.cc) = ed60228b6dab1ffe613fa77149b7b6ac3ba93a62
+SHA1 (patch-third__party_perfetto_src_base_unix__socket.cc) = f6eabfcfe95a56d0c54d6908f80651244e10718f
+SHA1 (patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc) = 0511b8aca008a887b64e5928b2b4322f91ae463e
+SHA1 (patch-third__party_perfetto_src_tracing_core_clock__snapshots.cc) = c82c5f6ac1a3f0e5dbe7f14e8ddfa75ed57eca84
+SHA1 (patch-third__party_perfetto_src_tracing_ipc_memfd.cc) = cb2755f039b7c77ae296c3c9ab6e9e7530ace366
+SHA1 (patch-third__party_perfetto_src_tracing_track.cc) = 635e61ff9c0b95a237fa3f6ccb271a986e7aedb3
+SHA1 (patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h) = a1ece732abeb8143a7b8aca8760f56a795c72e22
+SHA1 (patch-third__party_skia_src_gpu_ganesh_GrAutoLocaleSetter.h) = 48e76ea31e51a09116da01954fcc0f88c60abe2f
+SHA1 (patch-third__party_skia_src_ports_SkMemory__malloc.cpp) = 74432c5d092f4585071549bce7a84c94aaf080dd
+SHA1 (patch-third__party_skia_src_ports_SkOSFile__posix.cpp) = e8ca035070ed07ffd18ee86f9ac38e12845bed76
+SHA1 (patch-third__party_speech-dispatcher_libspeechd__version.h) = ee09d836833997bf400d32bb4ec210f8cc6a6d58
+SHA1 (patch-third__party_speech-dispatcher_speechd__types.h) = 7d0c4a96ec1f15431e84a46462dfc3e9d0cd2873
+SHA1 (patch-third__party_sqlite_BUILD.gn) = e55762ea2842c2ca86344b8c0ddf570d9ac1c8ff
+SHA1 (patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c) = 5447039bcf58e4bfdff3f029bf247cf9adbf6b77
+SHA1 (patch-third__party_sqlite_src_amalgamation_sqlite3.c) = 35141bd8d7cdbbb0415128779e91e38415ec1c4d
+SHA1 (patch-third__party_swiftshader_src_Reactor_Debug.cpp) = a188fe4e7e39e5fb76be49c6ffb5e0fd0e16081b
+SHA1 (patch-third__party_swiftshader_src_System_Configurator.cpp) = a056112a44a7c7b6c99894e5f5d091e6a6b20ffb
+SHA1 (patch-third__party_swiftshader_src_System_Linux_MemFd.cpp) = 979a08f504e0e9674760a7b50ab484a6444f52ce
+SHA1 (patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp) = 2931a7340aba056066dbdc15415646ccc674f9a7
+SHA1 (patch-third__party_swiftshader_src_WSI_libXCB.cpp) = 9511bd876132f23539ed613497b7ee45bd11cd2a
+SHA1 (patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h) = b10fa0bcf9359ec2c876fcb56270e2ba6a5fc2be
+SHA1 (patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h) = 835ac62f500f38615a9d7cecbfa286db79c54e28
+SHA1 (patch-third__party_swiftshader_third__party_marl_src_memory.cpp) = 687b4a8d4cbb2f58174980cb2b95bb77b0cefbd2
+SHA1 (patch-third__party_swiftshader_third__party_marl_src_thread.cpp) = 41b3a7b3c74aa4f0bf407162fdeeb3f09836c138
+SHA1 (patch-third__party_test__fonts_fontconfig_BUILD.gn) = ed3b691fa72694eae34dda4a873ee8f9fc7b91e1
+SHA1 (patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc) = 29946cb8e1a5b43f90719abaab91f0e7d1c42617
+SHA1 (patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc) = 2c4f4fc91b055efae041d7f115f849b5699c73a5
+SHA1 (patch-third__party_tflite_features.gni) = 339e9248f514e13a8749d880d977b3bb156cdd63
+SHA1 (patch-third__party_unrar_src_crypt.cpp) = fa73660ccd95383bd9be8ed40009c39ff1ba97f1
+SHA1 (patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h) = 589ad774b688c8373f39a9d9b36367d4456de404
+SHA1 (patch-third__party_vulkan-validation-layers_src_layers_vulkan_generated_vk__function__pointers.cpp) = 14eefea26b79425129136647257f03d009536a7a
+SHA1 (patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h) = 2fdf5f27f71d469a7837b05fbf4ae6f2ccf5ccad
+SHA1 (patch-third__party_wayland_BUILD.gn) = 5385bbfde05014495ff9bbbe327e4a7432e88f84
+SHA1 (patch-third__party_wayland_include_config.h) = c0bee2cb87fc1f4a276fc1aff52cc410478a25ff
+SHA1 (patch-third__party_webrtc_BUILD.gn) = bb1e7e1b151354f756e1c86cf94e2ef8c6313c7d
+SHA1 (patch-third__party_webrtc_modules_audio__device_BUILD.gn) = 58605b6570f522f314b5eb48fb86885a057a5ce7
+SHA1 (patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc) = 5c5bbe7c8566eafaaa0afc461964a504188b33d2
+SHA1 (patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc) = 6a410028d59ab1861bb55e3e343671d7d75eb8e6
+SHA1 (patch-third__party_webrtc_rtc__base_byte__order.h) = 31c5b49d63151234952e13ce051c76864e95e93b
+SHA1 (patch-third__party_webrtc_rtc__base_ip__address.cc) = d2ec504166216c415adb2032bfd13614268add7d
+SHA1 (patch-third__party_webrtc_rtc__base_net__test__helpers.cc) = 6f97f8cf769bbbcd8ed47620615ceb75a649c442
+SHA1 (patch-third__party_webrtc_rtc__base_network.cc) = 42726bc82656c8f4b36e288365b0b6808f99be1e
+SHA1 (patch-third__party_webrtc_rtc__base_physical__socket__server.cc) = 407cc00903bc4cc02c43a6e00757da6302bf544e
+SHA1 (patch-third__party_webrtc_rtc__base_physical__socket__server.h) = dec03f657c00aaebae4fd914f9ee01c0b08f9c12
+SHA1 (patch-third__party_webrtc_rtc__base_platform__thread__types.cc) = 24bc6feaa038aabac2b1dbfa692827453f3892f1
+SHA1 (patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h) = d56735e8b42a5dc2d813da7f68b9cd6fad428dab
+SHA1 (patch-third__party_webrtc_system__wrappers_BUILD.gn) = d95d7d7a4566b9c91c257110fcff775a804e32da
+SHA1 (patch-third__party_widevine_cdm_widevine.gni) = c338e4d302a3dda598489dab857ac77a9c720a7c
+SHA1 (patch-third__party_zlib_BUILD.gn) = c3b124ad1774244cd853335e2e1fc553b33d1532
+SHA1 (patch-third__party_zlib_cpu__features.c) = c1ff8cdcfaeceb52237ec3bb775fccb9a089be17
+SHA1 (patch-tools_generate__shim__headers_generate__shim__headers.py) = dd136f7db9a29fcf0bff25d4e9f87befcb292d05
+SHA1 (patch-tools_generate__stubs_rules.gni) = a88abc69b40fd2949a063c66bd797824eea6b3b3
+SHA1 (patch-tools_gn_build_build__linux.ninja.template) = f24ce5818e28981cfbcacbda1a3a043c546fa7ec
+SHA1 (patch-tools_gn_build_gen.py) = 021aef7b8062138ddb8e41b6d2097c4a4db13c71
+SHA1 (patch-tools_gn_src_base_files_file__posix.cc) = 08135c774b73d65fd7ad6e8ed824906e0c0eedfd
+SHA1 (patch-tools_gn_src_gn_version.h) = 386ca320bdc723c6291593febee89fc8d286b620
+SHA1 (patch-tools_gn_src_util_exe__path.cc) = ee2371cdf2e7e2ad7bb141a2855184d17b06a50e
+SHA1 (patch-tools_grit_grit_node_base.py) = 5dc6dc29e948bfbc248cf7c758b261d5c8b95bc2
+SHA1 (patch-tools_json__schema__compiler_cpp__bundle__generator.py) = 6889ef43e2428401b805b1639af227edce9a04da
+SHA1 (patch-tools_json__schema__compiler_feature__compiler.py) = 1f8e4286b35cbccdfef6b8d6b72871a54a6aac82
+SHA1 (patch-tools_memory_partition__allocator_inspect__utils.h) = 45653a68ac69dede95ba56ec9142fd4650464126
+SHA1 (patch-tools_perf_chrome__telemetry__build_BUILD.gn) = 2c7a136c8b7fd18622e7d764507f20bbee616ca8
+SHA1 (patch-tools_protoc__wrapper_protoc__wrapper.py) = 6da45d2c8b85e362db64dfe440fe2f6da8a53673
+SHA1 (patch-tools_v8__context__snapshot_BUILD.gn) = 5ad173e655bdd900ad050f5120604cf5701c8a12
+SHA1 (patch-tools_variations_fieldtrial__to__struct.py) = b512a1b1907e2a3f1bcaecdc5765df9fb4c8ed1e
+SHA1 (patch-ui_aura_client_drag__drop__client.h) = 206e60f3464a415c047b0ed5b567194785566370
+SHA1 (patch-ui_aura_screen__ozone.cc) = e01dd6cc3e67b6cea638a4e63cfe2b9d9d4126ce
+SHA1 (patch-ui_aura_screen__ozone.h) = 5985f9e73cd81f39691cc715e1dc85a20c00c4dc
+SHA1 (patch-ui_base_clipboard_clipboard__constants.cc) = 1584c24b5e6e658827aa16e1b95349ab1e0b3ba3
+SHA1 (patch-ui_base_clipboard_clipboard__constants.h) = 664553ca419ef16b797fd124300b1e7fd12922ed
+SHA1 (patch-ui_base_clipboard_clipboard__non__backed.cc) = 8a862049d63202fc558915ed5d8a0419b560b3ca
+SHA1 (patch-ui_base_cursor_cursor__factory.cc) = 3954209d7b2a3990fa57c840b921abd59fae7ecf
+SHA1 (patch-ui_base_cursor_cursor__factory.h) = 825f4a44ede30f2bf87a1f05f17d6aab8541dba1
+SHA1 (patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc) = 8fa12cb0c9ee2eb55f732e33cb05e26ea040ba9c
+SHA1 (patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc) = 6e02043a414f7f738e0756bc3372c3c8d847e6be
+SHA1 (patch-ui_base_ime_dummy__text__input__client.cc) = d9e42619fe3ad4de52f5dea55b87bbf4aaecd228
+SHA1 (patch-ui_base_ime_dummy__text__input__client.h) = f5f949abd6e18d880dd57c2b34e63edbe91f787d
+SHA1 (patch-ui_base_ime_fake__text__input__client.cc) = efecc9df4942c3a3ea7638a39a1237894e6540cd
+SHA1 (patch-ui_base_ime_fake__text__input__client.h) = c416fcca659f98d7451612ec6b18e13882618426
+SHA1 (patch-ui_base_ime_init_input__method__initializer.cc) = 4bd5fd419d634428cfa4421c3efc1daaeefc04eb
+SHA1 (patch-ui_base_ime_linux_linux__input__method__context__factory.cc) = 97ce2e918a2b61c40cf895a9c1d865c596b7f146
+SHA1 (patch-ui_base_ime_text__input__client.h) = c1dce032c67622023d64861aea8074b7134c2603
+SHA1 (patch-ui_base_resource_resource__bundle.cc) = 7d5012121ddb30e0387e1554b77824e39cbceac7
+SHA1 (patch-ui_base_test_skia__gold__pixel__diff.cc) = b07c63e2f71f435541cf0a2b2de8d6abeb6de00b
+SHA1 (patch-ui_base_test_ui__controls.h) = 63468a33b50e71af533bbd5f2f2ebd877e9be830
+SHA1 (patch-ui_base_ui__base__features.cc) = c1a91c3d96b5a096c7958e19fd796c16c8a67dbc
+SHA1 (patch-ui_base_ui__base__switches.cc) = 1bb7c7ca1c11cf30cb56b8f9e48646592a3066e4
+SHA1 (patch-ui_base_ui__base__switches.h) = ad53dcac171cbe0d4637bbd7799065c42db1444e
+SHA1 (patch-ui_base_webui_web__ui__util.cc) = 45c57a4fdd2762558aa637e54ed650fad7b8e638
+SHA1 (patch-ui_base_x_x11__cursor__factory.cc) = 136a2fd8274be38318ca4d542b91cf68c80878a7
+SHA1 (patch-ui_base_x_x11__cursor__factory.h) = d0e2ad7a584c4b04ee10f9191dc89614e26ff3b2
+SHA1 (patch-ui_base_x_x11__cursor__loader.cc) = beefb5921f9c28b3c5d7e69586fe6c6a26db27e2
+SHA1 (patch-ui_base_x_x11__display__manager.cc) = 86488ccab2b237b90f7685f5d31143ea6cde3c72
+SHA1 (patch-ui_base_x_x11__display__util.cc) = 52e0d1075b74010b74bc620c0794d432d66ce3af
+SHA1 (patch-ui_base_x_x11__shm__image__pool.cc) = c3a6d557a7f35c4798b79ef58ef577a26baec50e
+SHA1 (patch-ui_base_x_x11__util.cc) = 53f7cc6e862a6fa25d414be933620e8aff1ec7e7
+SHA1 (patch-ui_base_x_x11__util.h) = a5f2a4ddd981673d16552bc1e1c36fefb21ff6aa
+SHA1 (patch-ui_color_color__id.h) = 95e9bf9a4ccb0464fe4059c730d50e4e1dbf30b0
+SHA1 (patch-ui_color_color__provider__utils.cc) = 83bf60bc533cf6debe8d067ec44777524198044e
+SHA1 (patch-ui_color_system__theme.h) = 83bf2a99421a2d7f479c50c896511f0b56b32238
+SHA1 (patch-ui_compositor_compositor.cc) = 0022471eb07b087fbdfb282a7d338e26f4894f2b
+SHA1 (patch-ui_compositor_compositor.h) = 199ef20483d0be6aab81e5b282a36d67ffad69bc
+SHA1 (patch-ui_compositor_compositor__observer.h) = 7bc459844677f8e596fe8b61aa95e5b08d696a1a
+SHA1 (patch-ui_display_screen.cc) = b4c0d9a2e1ddffb07bb135e7e583c759f2743eaa
+SHA1 (patch-ui_display_screen.h) = 74fdde92699d08e1b4fb2276266f59d6a4659e18
+SHA1 (patch-ui_events_devices_x11_device__data__manager__x11.cc) = 4f53654b180f255900ed50587103639b89fd2ed0
+SHA1 (patch-ui_events_event.cc) = e11503dd4a1a8b7088bb271b3924e19b94601c6b
+SHA1 (patch-ui_events_event__switches.cc) = 76f6b6398601fd00951c57bda5ad7e7ad809ce24
+SHA1 (patch-ui_events_event__switches.h) = 1c7115a89a2c05757b0f3ba8096116de31f133ec
+SHA1 (patch-ui_events_keycodes_dom_keycode__converter.cc) = d3c45b016d70eb90ad451a15ea4b54297b515129
+SHA1 (patch-ui_events_keycodes_dom_keycode__converter.h) = 8be27f581cfe7cb31022666a0a01f2eb5e18c8a1
+SHA1 (patch-ui_gfx_BUILD.gn) = 57cf59060bc63abd9f9779e4f0607f899f0bc93e
+SHA1 (patch-ui_gfx_canvas__skia.cc) = 291a5216c3b106935229002861d4aa2812e5de88
+SHA1 (patch-ui_gfx_font__fallback__linux.cc) = 7f8c1c200ea112a466e28cc6ab7efcc35623ab50
+SHA1 (patch-ui_gfx_font__render__params.h) = 1d7b51392c0a6c6e3dbcb2ba4e476cd8ee5fb6dd
+SHA1 (patch-ui_gfx_font__render__params__linux.cc) = 16b6a68a18e915c9dbb548e3bed25570b4956bf6
+SHA1 (patch-ui_gfx_font__util.cc) = 84b99cd512c71704cbed2ecea41605c58d981118
+SHA1 (patch-ui_gfx_gpu__memory__buffer.cc) = 364c65ee982a1da21823156224dbbd3e30c4a330
+SHA1 (patch-ui_gfx_gpu__memory__buffer.h) = 3c53e229d2603c34d1ea90c3270d13c9cf38811c
+SHA1 (patch-ui_gfx_linux_dmabuf__uapi.h) = f9f276e9775515eb106f3986bbbee7dea2da4326
+SHA1 (patch-ui_gfx_linux_gbm__wrapper.cc) = cb3a5241bf6fe3a33ad0da099d65129688a249aa
+SHA1 (patch-ui_gfx_mojom_buffer__types__mojom__traits.cc) = 8bd489342b8527f8db2b85605c5274235582953a
+SHA1 (patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc) = c542c293753373fab90684348c7abe0653cbd01a
+SHA1 (patch-ui_gfx_mojom_native__handle__types__mojom__traits.h) = 92910f0c60a52c638eab54e5484aeb0232b96d9a
+SHA1 (patch-ui_gfx_native__pixmap__handle.cc) = a6f092f9493e3969e86f7e5645d7ff35262b6dd5
+SHA1 (patch-ui_gfx_native__pixmap__handle.h) = d70d7afef185cfec0363b2864503e4a2c8dd889a
+SHA1 (patch-ui_gfx_native__widget__types.h) = 2e2558691b2ba834c4a27d240608de7e2bf0c290
+SHA1 (patch-ui_gfx_platform__font__skia.cc) = 66bfd0052358860d8d29b7137ac33d8cdf606897
+SHA1 (patch-ui_gfx_render__text__api__fuzzer.cc) = 780e14d11382e6eb9a27e632bd4603de8344651e
+SHA1 (patch-ui_gfx_render__text__fuzzer.cc) = 4029f87739e868ed20dfe5441b489db399b4c4a7
+SHA1 (patch-ui_gfx_switches.cc) = eed030c24a180fbb70903dcfb7724f11a564f6bb
+SHA1 (patch-ui_gfx_switches.h) = 6d09fe72ab29b2b79df1fd430a0ea10c9a48b0fb
+SHA1 (patch-ui_gfx_x_generated__protos_dri3.cc) = 28b39dc07b7bd15af8aa8783ea513a200d79057d
+SHA1 (patch-ui_gfx_x_generated__protos_shm.cc) = 21636e3c01d06c66c174bfd1abcf2f4cfe33256c
+SHA1 (patch-ui_gfx_x_xlib__support.cc) = 011b302bf9dec64620a5aec783721919a27d7d2d
+SHA1 (patch-ui_gl_BUILD.gn) = e3adb68c38146d2ac3397046a032985d3bda96e6
+SHA1 (patch-ui_gl_gl__bindings.h) = 06ac865e6a2c99754eaa0e101894980b2f674a54
+SHA1 (patch-ui_gl_gl__context.cc) = a2f2000957acfec545e789a456a97794f0af974f
+SHA1 (patch-ui_gl_gl__fence.cc) = 4a95b9a4e873e0afde96c4dc61c73e2f2ed4ae6b
+SHA1 (patch-ui_gl_gl__implementation.cc) = 9fc1968ab472e647b9fe0d46c8471dca4788854a
+SHA1 (patch-ui_gl_gl__switches.cc) = 9254f8ea2282be614c369bd02666810eb250dc75
+SHA1 (patch-ui_gl_sync__control__vsync__provider.cc) = b6489c43f1434199a17a5b8a602ec37a32f60f9f
+SHA1 (patch-ui_gl_sync__control__vsync__provider.h) = c11626cd6cf0a4f3abced08769493f5eab637d45
+SHA1 (patch-ui_gtk_gtk__compat.cc) = ecbfbbafe7816b71ae3d7582084db02920d89dfe
+SHA1 (patch-ui_gtk_printing_print__dialog__gtk.cc) = 546caeb40c26c7945586a87cfb163625b78f227b
+SHA1 (patch-ui_message__center_views_message__popup__view.cc) = 70bf1f01de1defe2b295dbe82d50b0344c4b16a1
+SHA1 (patch-ui_native__theme_native__theme.h) = 0d9568851113edf2cc23dd48c04e10587573702a
+SHA1 (patch-ui_native__theme_native__theme__base.cc) = 1b9871b2af15dd436bafbb871fec6fdb8f9b9111
+SHA1 (patch-ui_native__theme_native__theme__features.cc) = cf0a7aaa7ec230710fad73e1635f9cf1784f593d
+SHA1 (patch-ui_ozone_common_egl__util.cc) = 2cd7b7aef5b2fe085adb4c8beeeec80f563e516e
+SHA1 (patch-ui_ozone_common_features.cc) = 8f9e9d8b15371bb1b2524f0f5b20cf8664db17a1
+SHA1 (patch-ui_ozone_platform_headless_headless__surface__factory.cc) = 751e9f8e70661bde59a03a407feae021c17c8365
+SHA1 (patch-ui_ozone_platform_headless_ozone__platform__headless.cc) = 4886821836fccfbb633168e9d514a2e1a1d10c30
+SHA1 (patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc) = 723e42c529c38f069a60ac7df3c15fba7576947d
+SHA1 (patch-ui_ozone_platform_wayland_common_wayland__util.cc) = 2334aa8d6421c598d9c51053af2915010ac0a083
+SHA1 (patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.cc) = 27282f88d7055dbcaf40a036a9f1646977fa356d
+SHA1 (patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.h) = 6d88f8a95c06b856475ef68f3e964daaa59eb226
+SHA1 (patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc) = c32b3580671cda6d5693a3f377d3ed5f7bc8fee0
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__connection.cc) = fd487b19274e5a4658ff574efd601f4318cf4b53
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__input__method__context.cc) = 118095c8fad6ab3aa491932c657e9bddf13acb51
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__popup.cc) = bc10dc15938d3a6bbe80a527000baa92ed129030
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.cc) = 62b62f15c019dfa5c8ccca9a35fc87e1b5fbd6d2
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.h) = 584657c979a4f2126406de32964bc1b9cf0cbeb1
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__window.cc) = ea5419d0f2cf2c51552d101f5b37253b562f6f8b
+SHA1 (patch-ui_ozone_platform_wayland_host_wayland__window.h) = c0e7bde026f6cd7bb9ee93119326f1bcf05a206b
+SHA1 (patch-ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc) = 44a36ea2be98b36065dadf8591c563680282863f
+SHA1 (patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc) = 0d75339ce25bd9c529262a2104fc6329622ff74b
+SHA1 (patch-ui_ozone_platform_wayland_ozone__platform__wayland.cc) = f850a91b66c2debe5cea6dc06a06e092fb0f33de
+SHA1 (patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc) = ab6fdb2ac8f3cb634866e72ee20c5f49f05589a8
+SHA1 (patch-ui_ozone_platform_x11_x11__screen__ozone.cc) = 9791af0fc85da84bdb2473714acd467e6febbc7c
+SHA1 (patch-ui_ozone_platform_x11_x11__screen__ozone.h) = 62dd5210524f583a4b2473b15e8c5b76960acb2d
+SHA1 (patch-ui_ozone_platform_x11_x11__window.cc) = 945d3597fab065f5fe3180ffdb1e4f3b1cd86c11
+SHA1 (patch-ui_ozone_test_mock__platform__window__delegate.h) = 325ae322e9dc02f2849ec6c7db85b4912339d7ef
+SHA1 (patch-ui_platform__window_platform__window__delegate.cc) = 559c5b3f66efcc2808e1048e87e4f13dd4661606
+SHA1 (patch-ui_platform__window_platform__window__delegate.h) = 6576a626b6b9b7bcd5fa4a9e1d8ddd2abbe78c51
+SHA1 (patch-ui_platform__window_platform__window__init__properties.h) = 6775da66c5e3fc3b29bd3d1c5fc99f6d3adb98ae
+SHA1 (patch-ui_qt_BUILD.gn) = f3df6a279e299aefbc963a141f9fdd3956385c0f
+SHA1 (patch-ui_qt_qt.gni) = b9eed75afd786c157ecb89053ebf533c3711ca04
+SHA1 (patch-ui_strings_translations_app__locale__settings__bn.xtb) = ec411865a2cfbdfdf7a8708852a5407aec1ed25a
+SHA1 (patch-ui_strings_translations_app__locale__settings__ja.xtb) = f5d7bd090dddf0492d480ccf31ef6814284d57e8
+SHA1 (patch-ui_strings_translations_app__locale__settings__ko.xtb) = 4efc2a8e5319d6ddd1183ef5e9706eafb6e9c8c7
+SHA1 (patch-ui_strings_translations_app__locale__settings__ml.xtb) = da03bb12a9b0f3a5cbfc0f25ab198d962f0458b3
+SHA1 (patch-ui_strings_translations_app__locale__settings__th.xtb) = 4eb4f4ef2500b413fa99b75301d35256a9ffb398
+SHA1 (patch-ui_strings_translations_app__locale__settings__zh-CN.xtb) = e72a7e1121683d444c81a3c8c6517171f6bc9755
+SHA1 (patch-ui_strings_translations_app__locale__settings__zh-TW.xtb) = 3569c733e3c239a3f8fbe80d8482974ba78d95bd
+SHA1 (patch-ui_views_controls_prefix__selector.cc) = 965fa79614f4ea127cc302f323b625e8ad789eec
+SHA1 (patch-ui_views_controls_prefix__selector.h) = 28ebd14ae124508c2b0b84d67ef12756c9bfc6ec
+SHA1 (patch-ui_views_controls_textfield_textfield.cc) = 3dba346c64653bb959971823f43d0d2ce486224d
+SHA1 (patch-ui_views_controls_textfield_textfield.h) = a2f52cfb20ab8d699e747f6fdccee12799de100b
+SHA1 (patch-ui_views_corewm_tooltip__aura.cc) = 021b34203c3d307da80eaeaf3e48e139513cb01c
+SHA1 (patch-ui_views_examples_widget__example.cc) = eb162d9b7cacc9556ca31b7ca53441a9456b06c0
+SHA1 (patch-ui_views_focus_focus__manager.cc) = 7585806206ea9327d7b021908568a813f1a3a153
+SHA1 (patch-ui_views_style_platform__style.cc) = 7a675fe4d7c883e6b15a5f8070cca0c3477b8c3b
+SHA1 (patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc) = 15586895e1244994cdcfca6d34b3043ba0d267a2
+SHA1 (patch-ui_views_views__delegate.cc) = 2f2b8735dc5bb8d8f36d866f243bdd1cf77bface
+SHA1 (patch-ui_views_views__delegate.h) = 721c528585343937c8b2ac3ea840bb764c1bc571
+SHA1 (patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc) = 621ec922d5275a8888920b3cefc7777ab302ebc0
+SHA1 (patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h) = bf8b303882645be3f52410d376432b435be403b1
+SHA1 (patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc) = bc0846a760495f91f5427be37f6d1e9a54cf6720
+SHA1 (patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform__impl__interactive__uitest.cc) = 8962fbc40ceee98dd085883ef5d7fd3349d01a29
+SHA1 (patch-ui_views_widget_root__view.cc) = 500b707ea5c49ab6677c67a4017fd8a216683861
+SHA1 (patch-ui_views_widget_widget.cc) = ad060a152773666638e084e8c63d26b79e228e08
+SHA1 (patch-ui_views_window_custom__frame__view.cc) = 1946b92371801e975295ce698ab318334ce6e486
+SHA1 (patch-ui_views_window_dialog__delegate.cc) = 9d659bd0a4276806776fce3fc12f74e0b1697184
+SHA1 (patch-ui_views_window_frame__background.cc) = 26cf8373151cec36ec196f189ad68a371429353e
+SHA1 (patch-v8_BUILD.gn) = 690ea348688ff7fbab20c4b3d288f86892f7648d
+SHA1 (patch-v8_include_v8-internal.h) = 362169c6157331938d558fa50d0cdbb85b312883
+SHA1 (patch-v8_include_v8config.h) = 6432cae7e7ed5443009552717723f0362f456dc5
+SHA1 (patch-v8_src_api_api.cc) = 20510676be2a2e350fe746c4c05fe0e73e315719
+SHA1 (patch-v8_src_base_atomicops.h) = a54f729b13190a5b928474159c3d3b589d4ff0fe
+SHA1 (patch-v8_src_base_platform_memory.h) = 44cd1d4e473b130bd6c67f5dd21396364d73b5ca
+SHA1 (patch-v8_src_base_platform_platform-freebsd.cc) = f54a74577746232191625bb8bdf23a21fc8411ec
+SHA1 (patch-v8_src_base_platform_platform-openbsd.cc) = 2a7137af59eacbde822e296977dad3aea1056668
+SHA1 (patch-v8_src_base_platform_platform-posix.cc) = e3e64cb61aaf2359eb7edf8588416ce498f44ec8
+SHA1 (patch-v8_src_base_small-vector.h) = 40d51536f4115114dd981d0c0abeefe5820a111a
+SHA1 (patch-v8_src_base_strings.h) = cc24c3d28504e79f0a74752e3b2cefa292394a26
+SHA1 (patch-v8_src_base_sys-info.cc) = 661acc087d418975f5c3960d94daff925bdb4fac
+SHA1 (patch-v8_src_base_utils_random-number-generator.cc) = f8b86fb8155fc8c4e776e1c3176b150f8b24b41b
+SHA1 (patch-v8_src_diagnostics_perf-jit.cc) = fdf99a6874333050c157ee745477c75d0d9ac17b
+SHA1 (patch-v8_src_diagnostics_perf-jit.h) = 1f999667268ef0651855de3f6f82b6c11ac67233
+SHA1 (patch-v8_src_execution_isolate.cc) = 502ccfab2246b73812af0e5ec5b2e315ba6720a5
+SHA1 (patch-v8_src_flags_flags.cc) = 3028ef3454c4644c10b8da52d888dbf66c8b2d72
+SHA1 (patch-v8_src_sandbox_sandbox.cc) = 32bac12e25e14347d1dd005a5a696c4afd74ce00
+SHA1 (patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc) = b2202625317a9fb9aadf8baa7f906f8b163476cd
+SHA1 (patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h) = ffc564e30b5b7e799cf491824e0ac395af8c0ecd
+SHA1 (patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc) = a96afae8900cf8616d5847519762603f9bbd3b21
+SHA1 (patch-v8_src_trap-handler_handler-inside-posix.cc) = 40618dd70fa33d8feeae47917c6d7f2a6bddae60
+SHA1 (patch-v8_src_trap-handler_handler-inside-posix.h) = a47b05a0fc9fd924973b94332d6b1855178614f4
+SHA1 (patch-v8_src_trap-handler_trap-handler.h) = 5fa5b7de1fc6b581eacbe7ebb2c1081474eb3f4c
+SHA1 (patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h) = 0278ec8d9c977b7cb83a72879e27828055a58991
+SHA1 (patch-v8_tools_run-paxctl.py) = a2e5166bf43bf1b6f6926d64839738f339e276ae
+SHA1 (patch-v8_tools_run.py) = 079ac985ea00d80fc80b158ff5bb7ef7746e185f
diff --git a/chromium/files/chrome b/chromium/files/chrome
new file mode 100644
index 0000000000..fa3710be95
--- /dev/null
+++ b/chromium/files/chrome
@@ -0,0 +1,72 @@
+#!/bin/sh
+
+DATASIZE="716800"
+OPENFILES="400"
+
+xm_log() {
+	echo -n "$@\nDo you want to run Chromium anyway?\n\
+(If you don't increase these limits, Chromium might fail to work properly.)" | \
+		@X11BASE@/bin/xmessage -file - -center -buttons yes:0,no:1 -default no
+}
+
+if [ $(ulimit -Sd) -lt ${DATASIZE} ]; then
+	ulimit -Sd ${DATASIZE} || \
+		xm_log "Cannot increase datasize-cur to at least ${DATASIZE}"
+		[ $? -eq 0 ] || exit
+fi
+
+if [ $(ulimit -Sn) -lt ${OPENFILES} ]; then
+	ulimit -Sn ${OPENFILES} || \
+		xm_log "Cannot increase openfiles-cur to at least ${OPENFILES}"
+		[ $? -eq 0 ] || exit
+fi
+
+#
+# Temporary workaround for the case when chromium crashes and leaves
+# the SingletonLock, which prevents chromium to start up.
+#
+if [ -h ${HOME}/.config/chromium/SingletonLock ]; then
+	_pid=`readlink ${HOME}/.config/chromium/SingletonLock | cut -d '-' -f 2`
+	kill -0 ${_pid} 2>/dev/null
+	if [ $? -gt 0 ]; then
+		rm ${HOME}/.config/chromium/SingletonLock
+	fi
+fi
+
+#
+# Issue #395446
+# https://code.google.com/p/chromium/issues/detail?id=395446
+#
+[ -z ${LANG} ] && _l=en_US.UTF-8 || _l=${LANG}
+
+#
+# Workaround to dbus
+# https://bugs.chromium.org/p/chromium/issues/detail?id=918234
+#
+[ -z ${DBUS_SESSION_BUS_ADDRESS} ] && export DBUS_SESSION_BUS_ADDRESS="autolaunch:"
+
+#
+# Workaround to pulseaudio
+# Chromium is failing to start a new pulseaudio server,
+# however can use an already started.
+#
+pgrep -x pulseaudio || pulseaudio --start --log-target=syslog --exit-idle-time=-1
+
+# Always use our versions of ffmpeg libs.
+# This also makes RPMs find the compatibly-named library symlinks.
+if [ -n "$LD_LIBRARY_PATH" ]; then
+	LD_LIBRARY_PATH="@PREFIX@/chrome:@PREFIX@/chrome/lib:$LD_LIBRARY_PATH"
+else
+	LD_LIBRARY_PATH="@PREFIX@/chrome:@PREFIX@/chrome/lib"
+fi
+export LD_LIBRARY_PATH
+
+[ -d ~/Downloads ] || mkdir -m 0700 ~/Downloads
+[ -d ~/.config ] || mkdir -m 0700 ~/.config
+[ -f ~/.config/user-dirs.dirs ] || \
+	echo 'XDG_DOWNLOAD_DIR="$HOME/Downloads"' > ~/.config/user-dirs.dirs
+
+#[ -z ${ENABLE_WASM} ] && \
+#	_NOWASM="--disable-features=WebAssembly,AsmJsToWebAssembly,WebAssemblyStreaming --js-flags=--noexpose-wasm"
+
+LANG=${_l} exec "@PREFIX@/chrome/chrome" ${_NOWASM} "${@}"
diff --git a/chromium/files/chromium-browser.desktop b/chromium/files/chromium-browser.desktop
new file mode 100644
index 0000000000..ebfb79b573
--- /dev/null
+++ b/chromium/files/chromium-browser.desktop
@@ -0,0 +1,220 @@
+[Desktop Entry]
+Version=1.0
+Name=Chromium Web Browser
+# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
+# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
+GenericName=Web Browser
+GenericName[ar]=متصفح الشبكة
+GenericName[bg]=Уеб браузър
+GenericName[ca]=Navegador web
+GenericName[cs]=WWW prohlížeč
+GenericName[da]=Browser
+GenericName[de]=Web-Browser
+GenericName[el]=Περιηγητής ιστού
+GenericName[en_GB]=Web Browser
+GenericName[es]=Navegador web
+GenericName[et]=Veebibrauser
+GenericName[fi]=WWW-selain
+GenericName[fr]=Navigateur Web
+GenericName[gu]=વેબ બ્રાઉઝર
+GenericName[he]=דפדפן אינטרנט
+GenericName[hi]=वेब ब्राउज़र
+GenericName[hu]=Webböngésző
+GenericName[it]=Browser Web
+GenericName[ja]=ウェブブラウザ
+GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
+GenericName[ko]=웹 브라우저
+GenericName[lt]=Žiniatinklio naršyklė
+GenericName[lv]=Tīmekļa pārlūks
+GenericName[ml]=വെബ് ബ്രൌസര്‍
+GenericName[mr]=वेब ब्राऊजर
+GenericName[nb]=Nettleser
+GenericName[nl]=Webbrowser
+GenericName[pl]=Przeglądarka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador da Internet
+GenericName[ro]=Navigator de Internet
+GenericName[ru]=Веб-браузер
+GenericName[sl]=Spletni brskalnik
+GenericName[sv]=Webbläsare
+GenericName[ta]=இணைய உலாவி
+GenericName[th]=เว็บเบราว์เซอร์
+GenericName[tr]=Web Tarayıcı
+GenericName[uk]=Навігатор Тенет
+GenericName[zh_CN]=网页浏览器
+GenericName[zh_HK]=網頁瀏覽器
+GenericName[zh_TW]=網頁瀏覽器
+# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
+GenericName[bn]=ওয়েব ব্রাউজার
+GenericName[fil]=Web Browser
+GenericName[hr]=Web preglednik
+GenericName[id]=Browser Web
+GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
+GenericName[sk]=WWW prehliadač
+GenericName[sr]=Интернет прегледник
+GenericName[te]=మహాతల అన్వేషి
+GenericName[vi]=Bộ duyệt Web
+# Gnome and KDE 3 uses Comment.
+Comment=Access the Internet
+Comment[ar]=الدخول إلى الإنترنت
+Comment[bg]=Достъп до интернет
+Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
+Comment[ca]=Accedeix a Internet
+Comment[cs]=Přístup k internetu
+Comment[da]=Få adgang til internettet
+Comment[de]=Internetzugriff
+Comment[el]=Πρόσβαση στο Διαδίκτυο
+Comment[en_GB]=Access the Internet
+Comment[es]=Accede a Internet.
+Comment[et]=Pääs Internetti
+Comment[fi]=Käytä internetiä
+Comment[fil]=I-access ang Internet
+Comment[fr]=Accéder à Internet
+Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
+Comment[he]=גישה אל האינטרנט
+Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
+Comment[hr]=Pristup Internetu
+Comment[hu]=Internetelérés
+Comment[id]=Akses Internet
+Comment[it]=Accesso a Internet
+Comment[ja]=インターネットにアクセス
+Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
+Comment[ko]=인터넷 연결
+Comment[lt]=Interneto prieiga
+Comment[lv]=Piekļūt internetam
+Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക
+Comment[mr]=इंटरनेटमध्ये प्रवेश करा
+Comment[nb]=Gå til Internett
+Comment[nl]=Verbinding maken met internet
+Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
+Comment[pl]=Skorzystaj z internetu
+Comment[pt]=Aceder à Internet
+Comment[pt_BR]=Acessar a internet
+Comment[ro]=Accesaţi Internetul
+Comment[ru]=Доступ в Интернет
+Comment[sk]=Prístup do siete Internet
+Comment[sl]=Dostop do interneta
+Comment[sr]=Приступите Интернету
+Comment[sv]=Gå ut på Internet
+Comment[ta]=இணையத்தை அணுகுதல்
+Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి
+Comment[th]=เข้าถึงอินเทอร์เน็ต
+Comment[tr]=İnternet'e erişin
+Comment[uk]=Доступ до Інтернету
+Comment[vi]=Truy cập Internet
+Comment[zh_CN]=访问互联网
+Comment[zh_HK]=連線到網際網路
+Comment[zh_TW]=連線到網際網路
+Exec=chrome %U
+Terminal=false
+Icon=chrome
+Type=Application
+Categories=Network;WebBrowser;
+MimeType=text/html;text/xml;application/xhtml_xml;image/webp;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
+Actions=NewWindow;NewPrivateWindow;
+
+[Desktop Action NewWindow]
+Name=New Window
+Name[am]=አዲስ መስኮት
+Name[ar]=نافذة جديدة
+Name[bg]=Нов прозорец
+Name[bn]=নতুন উইন্ডো
+Name[ca]=Finestra nova
+Name[cs]=Nové okno
+Name[da]=Nyt vindue
+Name[de]=Neues Fenster
+Name[el]=Νέο Παράθυρο
+Name[en_GB]=New Window
+Name[es]=Nueva ventana
+Name[et]=Uus aken
+Name[fa]=پنجره جدید
+Name[fi]=Uusi ikkuna
+Name[fil]=New Window
+Name[fr]=Nouvelle fenêtre
+Name[gu]=નવી વિંડો
+Name[hi]=नई विंडो
+Name[hr]=Novi prozor
+Name[hu]=Új ablak
+Name[id]=Jendela Baru
+Name[it]=Nuova finestra
+Name[iw]=חלון חדש
+Name[ja]=新規ウインドウ
+Name[kn]=ಹೊಸ ವಿಂಡೊ
+Name[ko]=새 창
+Name[lt]=Naujas langas
+Name[lv]=Jauns logs
+Name[ml]=പുതിയ വിന്‍ഡോ
+Name[mr]=नवीन विंडो
+Name[nl]=Nieuw venster
+Name[no]=Nytt vindu
+Name[pl]=Nowe okno
+Name[pt]=Nova janela
+Name[pt_BR]=Nova janela
+Name[ro]=Fereastră nouă
+Name[ru]=Новое окно
+Name[sk]=Nové okno
+Name[sl]=Novo okno
+Name[sr]=Нови прозор
+Name[sv]=Nytt fönster
+Name[sw]=Dirisha Jipya
+Name[ta]=புதிய சாளரம்
+Name[te]=క్రొత్త విండో
+Name[th]=หน้าต่างใหม่
+Name[tr]=Yeni Pencere
+Name[uk]=Нове вікно
+Name[vi]=Cửa sổ Mới
+Name[zh_CN]=新建窗口
+Name[zh_TW]=開新視窗
+Exec=chrome
+
+[Desktop Action NewPrivateWindow]
+Name=New Incognito Window
+Name[ar]=نافذة جديدة للتصفح المتخفي
+Name[bg]=Нов прозорец „инкогнито“
+Name[bn]=নতুন ছদ্মবেশী উইন্ডো
+Name[ca]=Finestra d'incògnit nova
+Name[cs]=Nové anonymní okno
+Name[da]=Nyt inkognitovindue
+Name[de]=Neues Inkognito-Fenster
+Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση
+Name[en_GB]=New Incognito window
+Name[es]=Nueva ventana de incógnito
+Name[et]=Uus inkognito aken
+Name[fa]=پنجره جدید حالت ناشناس
+Name[fi]=Uusi incognito-ikkuna
+Name[fil]=Bagong Incognito window
+Name[fr]=Nouvelle fenêtre de navigation privée
+Name[gu]=નવી છુપી વિંડો
+Name[hi]=नई गुप्त विंडो
+Name[hr]=Novi anoniman prozor
+Name[hu]=Új Inkognitóablak
+Name[id]=Jendela Penyamaran baru
+Name[it]=Nuova finestra di navigazione in incognito
+Name[iw]=חלון חדש לגלישה בסתר
+Name[ja]=新しいシークレット ウィンドウ
+Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ
+Name[ko]=새 시크릿 창
+Name[lt]=Naujas inkognito langas
+Name[lv]=Jauns inkognito režīma logs
+Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്‍ഡോ
+Name[mr]=नवीन गुप्त विंडो
+Name[nl]=Nieuw incognitovenster
+Name[no]=Nytt inkognitovindu
+Name[pl]=Nowe okno incognito
+Name[pt]=Nova janela de navegação anónima
+Name[pt_BR]=Nova janela anônima
+Name[ro]=Fereastră nouă incognito
+Name[ru]=Новое окно в режиме инкогнито
+Name[sk]=Nové okno inkognito
+Name[sl]=Novo okno brez beleženja zgodovine
+Name[sr]=Нови прозор за прегледање без архивирања
+Name[sv]=Nytt inkognitofönster
+Name[ta]=புதிய மறைநிலைச் சாளரம்
+Name[te]=క్రొత్త అజ్ఞాత విండో
+Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน
+Name[tr]=Yeni Gizli pencere
+Name[uk]=Нове вікно в режимі анонімного перегляду
+Name[vi]=Cửa sổ ẩn danh mới
+Name[zh_CN]=新建隐身窗口
+Name[zh_TW]=新增無痕式視窗
+Exec=chrome --incognito
diff --git a/chromium/files/nb-delta.patch b/chromium/files/nb-delta.patch
new file mode 100644
index 0000000000..115352d5d5
--- /dev/null
+++ b/chromium/files/nb-delta.patch
@@ -0,0 +1,4858 @@
+diff --git a/base/BUILD.gn b/base/BUILD.gn
+index 8d46278999..0d494bcbac 100644
+--- a/base/BUILD.gn
++++ b/base/BUILD.gn
+@@ -966,7 +966,7 @@ component("base") {
+     #"system/sys_info_openbsd.cc",
+   ]
+ 
+-  if (is_apple || current_os == "freebsd" || current_os == "openbsd") {
++  if (is_apple || current_os == "freebsd" || current_os == "openbsd" || current_os == "netbsd") {
+     sources += [
+       "posix/sysctl.cc",
+       "posix/sysctl.h",
+@@ -2136,6 +2136,13 @@ component("base") {
+       "process/process_metrics_freebsd.cc",
+       "system/sys_info_freebsd.cc",
+     ]
++  }  else if (is_netbsd) {
++    sources += [
++      "process/process_handle_netbsd.cc",
++      "process/process_iterator_netbsd.cc",
++      "process/process_metrics_netbsd.cc",
++      "system/sys_info_netbsd.cc",
++    ]
+   }
+ 
+   # iOS
+diff --git a/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc b/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc
+index 8f89f8fee5..15f220762a 100644
+--- a/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc
++++ b/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc
+@@ -17,7 +17,7 @@
+ #endif
+ 
+ #if PA_CONFIG(HAS_LINUX_KERNEL)
+-#if defined(OS_OPENBSD)
++#if defined(OS_OPENBSD) || defined(OS_NETBSD)
+ #include <sys/time.h>
+ #include <sys/futex.h>
+ #elif defined(OS_FREEBSD)
+@@ -124,6 +124,9 @@ void SpinningMutex::FutexWait() {
+ #elif defined(OS_OPENBSD)
+   int err = futex(reinterpret_cast<volatile unsigned int *>(&state_), FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
+                     kLockedContended, nullptr, nullptr);
++#elif defined(OS_NETBSD)
++  int err = syscall(SYS___futex, reinterpret_cast<int *>(&state_), FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
++                     kLockedContended, nullptr, nullptr, 0, 0);
+ #else
+   int err = syscall(SYS_futex, &state_, FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
+                     kLockedContended, nullptr, nullptr, 0);
+@@ -145,6 +148,9 @@ void SpinningMutex::FutexWake() {
+ #elif defined(OS_OPENBSD)
+   long retval = futex(reinterpret_cast<volatile unsigned int *>(&state_), FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
+                         1 /* wake up a single waiter */, nullptr, nullptr);
++#elif defined(OS_NETBSD)
++  long retval = syscall(SYS___futex, reinterpret_cast<int *>(&state_), FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
++                         1 /* wake up a single waiter */, nullptr, nullptr, 0, 0);
+ #else
+   long retval = syscall(SYS_futex, &state_, FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
+                         1 /* wake up a single waiter */, nullptr, nullptr, 0);
+diff --git a/base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc b/base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc
+index ebc010adf0..45c9ad0d58 100644
+--- a/base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc
++++ b/base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc
+@@ -18,7 +18,7 @@
+ #include <pthread.h>
+ #endif
+ 
+-#if PA_BUILDFLAG(IS_BSD)
++#if PA_BUILDFLAG(IS_BSD) && !PA_BUILDFLAG(IS_NETBSD)
+ #include <pthread_np.h>
+ #endif
+ 
+@@ -63,7 +63,7 @@ void* GetStackTop() {
+   return reinterpret_cast<uint8_t*>(ss.ss_sp);
+ }
+ 
+-#elif PA_BUILDFLAG(IS_FREEBSD)
++#elif PA_BUILDFLAG(IS_FREEBSD) || PA_BUILDFLAG(IS_NETBSD)
+ 
+ void* GetStackTop() {
+    pthread_attr_t attr;
+diff --git a/base/base_paths_posix.cc b/base/base_paths_posix.cc
+index 54cb093775..1bd6713b0c 100644
+--- a/base/base_paths_posix.cc
++++ b/base/base_paths_posix.cc
+@@ -61,6 +61,15 @@ bool PathProviderPosix(int key, FilePath* result) {
+       }
+       *result = FilePath(bin_dir.value());
+       return true;
++#elif BUILDFLAG(IS_NETBSD)
++      std::optional<std::string> bin_dir = StringSysctl({ CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_PATHNAME });
++      if (!bin_dir.has_value() || bin_dir.value().length() <= 1) {
++        NOTREACHED_IN_MIGRATION() << "Unable to resolve path.";
++        return false;
++      }
++      *result = FilePath(bin_dir.value());
++      VLOG(1) << "PathProviderPosix result: " << bin_dir.value();
++      return true;
+ #elif BUILDFLAG(IS_SOLARIS)
+       char bin_dir[PATH_MAX + 1];
+       if (realpath(getexecname(), bin_dir) == NULL) {
+diff --git a/base/compiler_specific.h b/base/compiler_specific.h
+index 359b18cd53..32f4843f83 100644
+--- a/base/compiler_specific.h
++++ b/base/compiler_specific.h
+@@ -316,7 +316,8 @@
+ //
+ // In some cases it's desirable to remove this, e.g. on hot functions, or if
+ // we have purposely changed the reference canary.
+-#if (defined(COMPILER_GCC) || defined(__clang__)) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
++#if (defined(COMPILER_GCC) || defined(__clang__)) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && \
++      !defined(__NetBSD__)
+ #if HAS_ATTRIBUTE(__no_stack_protector__)
+ #define NO_STACK_PROTECTOR __attribute__((__no_stack_protector__))
+ #else
+diff --git a/base/debug/debugger_posix.cc b/base/debug/debugger_posix.cc
+index 1599fd4bb9..5a84f87765 100644
+--- a/base/debug/debugger_posix.cc
++++ b/base/debug/debugger_posix.cc
+@@ -90,6 +90,7 @@ bool BeingDebugged() {
+ 
+   // Initialize mib, which tells sysctl what info we want.  In this case,
+   // we're looking for information about a specific process ID.
++#if !BUILDFLAG(IS_NETBSD)
+   int mib[] = {
+     CTL_KERN,
+     KERN_PROC,
+@@ -101,12 +102,25 @@ bool BeingDebugged() {
+     0
+ #endif
+   };
++#else
++  int mib[] = {
++    CTL_KERN,
++    KERN_PROC2,
++    KERN_PROC_PID,
++    getpid(),
++    sizeof(struct kinfo_proc2),
++    1
++  };
++#endif
+ 
+   // Caution: struct kinfo_proc is marked __APPLE_API_UNSTABLE.  The source and
+   // binary interfaces may change.
+ #if BUILDFLAG(IS_OPENBSD)
+   struct kinfo_proc *info;
+   size_t info_size;
++#elif BUILDFLAG(IS_NETBSD)
++  struct kinfo_proc2 info;
++  size_t info_size = sizeof(info);
+ #else
+   struct kinfo_proc info;
+   size_t info_size = sizeof(info);
+@@ -124,6 +138,11 @@ bool BeingDebugged() {
+   }
+ 
+   int sysctl_result = sysctl(mib, std::size(mib), info, &info_size, NULL, 0);
++#elif BUILDFLAG(IS_NETBSD)
++  if (sysctl(mib, std::size(mib), NULL, &info_size, NULL, 0) < 0)
++    return -1;
++
++  mib[5] = (info_size / sizeof(struct kinfo_proc2));
+ #endif
+ 
+ #if !BUILDFLAG(IS_OPENBSD)
+@@ -142,6 +161,8 @@ bool BeingDebugged() {
+   being_debugged = (info.ki_flag & P_TRACED) != 0;
+ #elif BUILDFLAG(IS_OPENBSD)
+   being_debugged = (info->p_psflags & PS_TRACED) != 0;
++#elif BUILDFLAG(IS_NETBSD)
++  being_debugged = (info.p_flag & P_TRACED) != 0;
+ #else
+   being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0;
+ #endif
+diff --git a/base/debug/stack_trace_posix.cc b/base/debug/stack_trace_posix.cc
+index c05861aec8..16d2e6e9ab 100644
+--- a/base/debug/stack_trace_posix.cc
++++ b/base/debug/stack_trace_posix.cc
+@@ -45,7 +45,7 @@
+ // Surprisingly, uClibc defines __GLIBC__ in some build configs, but
+ // execinfo.h and backtrace(3) are really only present in glibc and in macOS
+ // libc.
+-#if BUILDFLAG(IS_APPLE) || \
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_NETBSD) || \
+     (defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(__AIX) && !BUILDFLAG(IS_BSD))
+ #define HAVE_BACKTRACE
+ #include <execinfo.h>
+diff --git a/base/files/file_path_watcher_kqueue.cc b/base/files/file_path_watcher_kqueue.cc
+index 18476de526..7d04c6b0bb 100644
+--- a/base/files/file_path_watcher_kqueue.cc
++++ b/base/files/file_path_watcher_kqueue.cc
+@@ -81,9 +81,15 @@ size_t FilePathWatcherKQueue::EventsForPath(FilePath path,
+     FilePath::StringType subdir = (i != (components.end() - 1)) ? *(i + 1) : "";
+     EventData* data = new EventData(built_path, subdir);
+     struct kevent event;
++#if defined(__NetBSD__) && __NetBSD_Version__ < 999000000
++    EV_SET(&event, fd, EVFILT_VNODE, (EV_ADD | EV_CLEAR | EV_RECEIPT),
++           (NOTE_DELETE | NOTE_WRITE | NOTE_ATTRIB |
++            NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, reinterpret_cast<intptr_t>(data));
++#else
+     EV_SET(&event, fd, EVFILT_VNODE, (EV_ADD | EV_CLEAR | EV_RECEIPT),
+            (NOTE_DELETE | NOTE_WRITE | NOTE_ATTRIB |
+             NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, data);
++#endif
+     events->push_back(event);
+   }
+   return last_existing_entry;
+diff --git a/base/logging_unittest.cc b/base/logging_unittest.cc
+index 667561d2cf..35c0b1016f 100644
+--- a/base/logging_unittest.cc
++++ b/base/logging_unittest.cc
+@@ -579,7 +579,7 @@ void CheckCrashTestSighandler(int, siginfo_t* info, void* context_ptr) {
+   // need the arch-specific boilerplate below, which is inspired by breakpad.
+   // At the same time, on OSX, ucontext.h is deprecated but si_addr works fine.
+   uintptr_t crash_addr = 0;
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+   crash_addr = reinterpret_cast<uintptr_t>(info->si_addr);
+ #else  // OS_*
+   ucontext_t* context = reinterpret_cast<ucontext_t*>(context_ptr);
+diff --git a/base/message_loop/message_pump_glib.cc b/base/message_loop/message_pump_glib.cc
+index e07537d654..81a741e68d 100644
+--- a/base/message_loop/message_pump_glib.cc
++++ b/base/message_loop/message_pump_glib.cc
+@@ -8,7 +8,7 @@
+ #include <glib.h>
+ #include <math.h>
+ 
+-#if BUILDFLAG(IS_BSD)
++#if BUILDFLAG(IS_BSD) && !BUILDFLAG(IS_NETBSD)
+ #include <pthread.h>
+ #include <pthread_np.h>
+ #endif
+@@ -56,7 +56,7 @@ int GetTimeIntervalMilliseconds(TimeTicks next_task_time) {
+ }
+ 
+ bool RunningOnMainThread() {
+-#if BUILDFLAG(IS_BSD)
++#if BUILDFLAG(IS_BSD) && !BUILDFLAG(IS_NETBSD)
+   return pthread_main_np();
+ #else
+   auto pid = getpid();
+diff --git a/base/posix/sysctl.cc b/base/posix/sysctl.cc
+index d0b07c2acc..29365bbe1b 100644
+--- a/base/posix/sysctl.cc
++++ b/base/posix/sysctl.cc
+@@ -17,17 +17,17 @@
+ #include "build/build_config.h"
+ 
+ namespace {
+-
++// NetBSD has sysctl_func macro in sys/sysctl.h, workaround: sysctl_func -> sysctl_func2
+ std::optional<std::string> StringSysctlImpl(
+-    base::FunctionRef<int(char* /*out*/, size_t* /*out_len*/)> sysctl_func) {
++    base::FunctionRef<int(char* /*out*/, size_t* /*out_len*/)> sysctl_func2) {
+   size_t buf_len;
+-  int result = sysctl_func(nullptr, &buf_len);
++  int result = sysctl_func2(nullptr, &buf_len);
+   if (result < 0 || buf_len < 1) {
+     return std::nullopt;
+   }
+ 
+   std::string value(buf_len - 1, '\0');
+-  result = sysctl_func(&value[0], &buf_len);
++  result = sysctl_func2(&value[0], &buf_len);
+   if (result < 0) {
+     return std::nullopt;
+   }
+diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc
+index 237c642a6f..7459d6d513 100644
+--- a/base/process/launch_posix.cc
++++ b/base/process/launch_posix.cc
+@@ -213,6 +213,8 @@ static const char kFDDir[] = "/dev/fd";
+ static const char kFDDir[] = "/dev/fd";
+ #elif BUILDFLAG(IS_OPENBSD)
+ static const char kFDDir[] = "/dev/fd";
++#elif BUILDFLAG(IS_NETBSD)
++static const char kFDDir[] = "/dev/fd";
+ #elif BUILDFLAG(IS_ANDROID)
+ static const char kFDDir[] = "/proc/self/fd";
+ #endif
+diff --git a/base/process/process_handle_netbsd.cc b/base/process/process_handle_netbsd.cc
+new file mode 100644
+index 0000000000..64f0533fb1
+--- /dev/null
++++ b/base/process/process_handle_netbsd.cc
+@@ -0,0 +1,55 @@
++// Copyright 2011 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/process/process_handle.h"
++#include "base/files/file_util.h"
++
++#include <stddef.h>
++#include <sys/param.h>
++#include <sys/proc.h>
++#include <sys/sysctl.h>
++#include <sys/types.h>
++#include <unistd.h>
++
++#include <optional>
++
++#include "base/files/file_path.h"
++#include "base/posix/sysctl.h"
++
++namespace base {
++
++ProcessId GetParentProcessId(ProcessHandle process) {
++  struct kinfo_proc2 *info;
++  size_t length;
++  pid_t ppid;
++  int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process,
++                sizeof(struct kinfo_proc2), 1 };
++
++  if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0)
++    return -1;
++
++  info = (struct kinfo_proc2 *)malloc(length);
++
++  mib[5] = static_cast<int>((length / sizeof(struct kinfo_proc2)));
++
++  if (sysctl(mib, std::size(mib), info, &length, NULL, 0) < 0) {
++    ppid = -1;
++    goto out;
++  }
++
++  ppid = info->p_ppid;
++
++out:
++  free(info);
++  return ppid;
++}
++
++FilePath GetProcessExecutablePath(ProcessHandle process) {
++  std::optional<std::string> pathname =
++      base::StringSysctl({CTL_KERN, KERN_PROC_ARGS, process, KERN_PROC_PATHNAME});
++
++  return FilePath(pathname.value_or(std::string{}));
++}
++
++}  // namespace base
+diff --git a/base/process/process_iterator.h b/base/process/process_iterator.h
+index a819ae1327..1bcf2e60c1 100644
+--- a/base/process/process_iterator.h
++++ b/base/process/process_iterator.h
+@@ -24,7 +24,7 @@
+ #include <windows.h>
+ 
+ #include <tlhelp32.h>
+-#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD)
++#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/sysctl.h>
+ #elif BUILDFLAG(IS_FREEBSD)
+ #include <sys/user.h>
+@@ -116,7 +116,11 @@ class BASE_EXPORT ProcessIterator {
+   HANDLE snapshot_;
+   bool started_iteration_ = false;
+ #elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
++# if BUILDFLAG(IS_NETBSD)
++  std::vector<kinfo_proc2> kinfo_procs_;
++# else
+   std::vector<kinfo_proc> kinfo_procs_;
++# endif
+   size_t index_of_kinfo_proc_ = 0;
+ #elif BUILDFLAG(IS_POSIX)
+   struct DIRClose {
+diff --git a/base/process/process_iterator_netbsd.cc b/base/process/process_iterator_netbsd.cc
+new file mode 100644
+index 0000000000..7c69155a1b
+--- /dev/null
++++ b/base/process/process_iterator_netbsd.cc
+@@ -0,0 +1,132 @@
++// Copyright 2013 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/process/process_iterator.h"
++
++#include <errno.h>
++#include <stddef.h>
++#include <unistd.h>
++#include <sys/param.h>
++#include <sys/proc.h>
++#include <sys/sysctl.h>
++
++#include "base/logging.h"
++#include "base/strings/string_split.h"
++#include "base/strings/string_util.h"
++
++namespace base {
++
++ProcessIterator::ProcessIterator(const ProcessFilter* filter)
++    : filter_(filter) {
++  int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_UID, static_cast<int>(getuid()),
++                sizeof(struct kinfo_proc2), 1 };
++
++  bool done = false;
++  int try_num = 1;
++  const int max_tries = 10;
++  size_t num_of_kinfo_proc;
++
++  do {
++    size_t len = 0;
++    if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) < 0) {
++      DLOG(ERROR) << "failed to get the size needed for the process list";
++      kinfo_procs_.resize(0);
++      done = true;
++    } else {
++      num_of_kinfo_proc = len / sizeof(struct kinfo_proc2);
++      // Leave some spare room for process table growth (more could show up
++      // between when we check and now)
++      num_of_kinfo_proc += 16;
++      kinfo_procs_.resize(num_of_kinfo_proc);
++      len = num_of_kinfo_proc * sizeof(struct kinfo_proc2);
++      if (sysctl(mib, std::size(mib), &kinfo_procs_[0], &len, NULL, 0) < 0) {
++        // If we get a mem error, it just means we need a bigger buffer, so
++        // loop around again.  Anything else is a real error and give up.
++        if (errno != ENOMEM) {
++          DLOG(ERROR) << "failed to get the process list";
++          kinfo_procs_.resize(0);
++          done = true;
++        }
++      } else {
++        // Got the list, just make sure we're sized exactly right
++        num_of_kinfo_proc = len / sizeof(struct kinfo_proc2);
++        kinfo_procs_.resize(num_of_kinfo_proc);
++        done = true;
++      }
++    }
++  } while (!done && (try_num++ < max_tries));
++
++  if (!done) {
++    DLOG(ERROR) << "failed to collect the process list in a few tries";
++    kinfo_procs_.resize(0);
++  }
++}
++
++ProcessIterator::~ProcessIterator() = default;
++
++bool ProcessIterator::CheckForNextProcess() {
++  std::string data;
++  for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++index_of_kinfo_proc_) {
++    kinfo_proc2& kinfo = kinfo_procs_[index_of_kinfo_proc_];
++
++    // Skip processes just awaiting collection
++    if ((kinfo.p_pid > 0) && (kinfo.p_stat == SZOMB))
++      continue;
++
++    int mib[] = { CTL_KERN, KERN_PROC_ARGS, kinfo.p_pid };
++
++    // Find out what size buffer we need.
++    size_t data_len = 0;
++    if (sysctl(mib, std::size(mib), NULL, &data_len, NULL, 0) < 0) {
++      DVPLOG(1) << "failed to figure out the buffer size for a commandline";
++      continue;
++    }
++
++    data.resize(data_len);
++    if (sysctl(mib, std::size(mib), &data[0], &data_len, NULL, 0) < 0) {
++      DVPLOG(1) << "failed to fetch a commandline";
++      continue;
++    }
++
++    // |data| contains all the command line parameters of the process, separated
++    // by blocks of one or more null characters. We tokenize |data| into a
++    // vector of strings using '\0' as a delimiter and populate
++    // |entry_.cmd_line_args_|.
++    std::string delimiters;
++    delimiters.push_back('\0');
++    entry_.cmd_line_args_ = SplitString(data, delimiters, KEEP_WHITESPACE,
++                                        SPLIT_WANT_NONEMPTY);
++
++    // |data| starts with the full executable path followed by a null character.
++    // We search for the first instance of '\0' and extract everything before it
++    // to populate |entry_.exe_file_|.
++    size_t exec_name_end = data.find('\0');
++    if (exec_name_end == std::string::npos) {
++      DLOG(ERROR) << "command line data didn't match expected format";
++      continue;
++    }
++
++    entry_.pid_ = kinfo.p_pid;
++    entry_.ppid_ = kinfo.p_ppid;
++    entry_.gid_ = kinfo.p__pgid;
++    size_t last_slash = data.rfind('/', exec_name_end);
++    if (last_slash == std::string::npos)
++      entry_.exe_file_.assign(data, 0, exec_name_end);
++    else
++      entry_.exe_file_.assign(data, last_slash + 1,
++                              exec_name_end - last_slash - 1);
++    // Start w/ the next entry next time through
++    ++index_of_kinfo_proc_;
++    // Done
++    return true;
++  }
++  return false;
++}
++
++bool NamedProcessIterator::IncludeEntry() {
++  return (executable_name_ == entry().exe_file() &&
++          ProcessIterator::IncludeEntry());
++}
++
++}  // namespace base
+diff --git a/base/process/process_metrics_netbsd.cc b/base/process/process_metrics_netbsd.cc
+new file mode 100644
+index 0000000000..5580b05450
+--- /dev/null
++++ b/base/process/process_metrics_netbsd.cc
+@@ -0,0 +1,175 @@
++// Copyright 2013 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/process/process_metrics.h"
++
++#include <stddef.h>
++#include <stdint.h>
++#include <fcntl.h>
++#include <sys/param.h>
++#include <sys/sysctl.h>
++#include <sys/vmmeter.h>
++
++#include "base/memory/ptr_util.h"
++#include "base/types/expected.h"
++#include "base/values.h"
++#include "base/notreached.h"
++
++namespace base {
++
++ProcessMetrics::ProcessMetrics(ProcessHandle process) : process_(process) {}
++
++base::expected<TimeDelta, ProcessCPUUsageError>
++ProcessMetrics::GetCumulativeCPUUsage() {
++  struct kinfo_proc2 info;
++  size_t length = sizeof(struct kinfo_proc2);
++  struct timeval tv;
++
++  int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process_,
++                sizeof(struct kinfo_proc2), 1 };
++
++  if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) {
++    return base::unexpected(ProcessCPUUsageError::kSystemError);
++  }
++
++  tv.tv_sec = info.p_rtime_sec;
++  tv.tv_usec = info.p_rtime_usec;
++
++  return base::ok(Microseconds(TimeValToMicroseconds(tv)));
++}
++
++// static
++std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics(
++    ProcessHandle process) {
++  return WrapUnique(new ProcessMetrics(process));
++}
++
++size_t GetSystemCommitCharge() {
++  int mib[] = { CTL_VM, VM_METER };
++  size_t pagesize;
++  struct vmtotal vmtotal;
++  unsigned long mem_total, mem_free, mem_inactive;
++  size_t len = sizeof(vmtotal);
++
++  if (sysctl(mib, std::size(mib), &vmtotal, &len, NULL, 0) < 0) {
++    return 0;
++  }
++
++  mem_total = vmtotal.t_vm;
++  mem_free = vmtotal.t_free;
++  mem_inactive = vmtotal.t_vm - vmtotal.t_avm;
++
++  pagesize = checked_cast<size_t>(getpagesize());
++
++  return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
++}
++
++int ProcessMetrics::GetOpenFdCount() const {
++  return -1;
++}
++
++int ProcessMetrics::GetOpenFdSoftLimit() const {
++  return getdtablesize();
++//  return GetMaxFds();
++}
++
++uint64_t ProcessMetrics::GetVmSwapBytes() const {
++  NOTIMPLEMENTED();
++  return 0;
++}
++
++bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo) {
++  NOTIMPLEMENTED_LOG_ONCE();
++  return false;
++}
++
++bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) {
++  NOTIMPLEMENTED();
++  return false;
++}
++
++bool GetVmStatInfo(VmStatInfo* vmstat) {
++  NOTIMPLEMENTED();
++  return false;
++}
++
++int ProcessMetrics::GetIdleWakeupsPerSecond() {
++  NOTIMPLEMENTED();
++  return 0;
++}
++
++Value::Dict SystemMemoryInfoKB::ToDict() const {
++  Value::Dict res;
++  res.Set("total", total);
++  res.Set("free", free);
++  res.Set("available", available);
++  res.Set("buffers", buffers);
++  res.Set("cached", cached);
++  res.Set("active_anon", active_anon);
++  res.Set("inactive_anon", inactive_anon);
++  res.Set("active_file", active_file);
++  res.Set("inactive_file", inactive_file);
++  res.Set("swap_total", swap_total);
++  res.Set("swap_free", swap_free);
++  res.Set("swap_used", swap_total - swap_free);
++  res.Set("dirty", dirty);
++  res.Set("reclaimable", reclaimable);
++
++  NOTIMPLEMENTED();
++
++  return res;
++}
++
++Value::Dict VmStatInfo::ToDict() const {
++  Value::Dict res;
++  res.Set("pswpin", static_cast<int>(pswpin));
++  res.Set("pswpout", static_cast<int>(pswpout));
++  res.Set("pgmajfault", static_cast<int>(pgmajfault));
++
++  NOTIMPLEMENTED();
++
++  return res;
++}
++
++SystemDiskInfo::SystemDiskInfo() {
++  reads = 0;
++  reads_merged = 0;
++  sectors_read = 0;
++  read_time = 0;
++  writes = 0;
++  writes_merged = 0;
++  sectors_written = 0;
++  write_time = 0;
++  io = 0;
++  io_time = 0;
++  weighted_io_time = 0;
++}
++
++SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo&) = default;
++
++SystemDiskInfo& SystemDiskInfo::operator=(const SystemDiskInfo&) = default;
++
++Value::Dict SystemDiskInfo::ToDict() const {
++  Value::Dict res;
++
++  // Write out uint64_t variables as doubles.
++  // Note: this may discard some precision, but for JS there's no other option.
++  res.Set("reads", static_cast<double>(reads));
++  res.Set("reads_merged", static_cast<double>(reads_merged));
++  res.Set("sectors_read", static_cast<double>(sectors_read));
++  res.Set("read_time", static_cast<double>(read_time));
++  res.Set("writes", static_cast<double>(writes));
++  res.Set("writes_merged", static_cast<double>(writes_merged));
++  res.Set("sectors_written", static_cast<double>(sectors_written));
++  res.Set("write_time", static_cast<double>(write_time));
++  res.Set("io", static_cast<double>(io));
++  res.Set("io_time", static_cast<double>(io_time));
++  res.Set("weighted_io_time", static_cast<double>(weighted_io_time));
++
++  NOTIMPLEMENTED();
++
++  return res;
++}
++
++}  // namespace base
+diff --git a/base/process/process_metrics_posix.cc b/base/process/process_metrics_posix.cc
+index bdef95e4cc..7338e1cee7 100644
+--- a/base/process/process_metrics_posix.cc
++++ b/base/process/process_metrics_posix.cc
+@@ -21,7 +21,7 @@
+ 
+ #if BUILDFLAG(IS_APPLE)
+ #include <malloc/malloc.h>
+-#elif BUILDFLAG(IS_OPENBSD)
++#elif BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <stdlib.h>
+ #else
+ #include <malloc.h>
+diff --git a/base/profiler/stack_base_address_posix.cc b/base/profiler/stack_base_address_posix.cc
+index 2e87b03cf0..52c4be583a 100644
+--- a/base/profiler/stack_base_address_posix.cc
++++ b/base/profiler/stack_base_address_posix.cc
+@@ -18,8 +18,12 @@
+ #endif
+ 
+ #if BUILDFLAG(IS_BSD)
++#if BUILDFLAG(IS_NETBSD)
++#include <pthread.h>
++#else
+ #include <pthread_np.h>
+ #endif
++#endif
+ 
+ #if BUILDFLAG(IS_CHROMEOS)
+ extern "C" void* __libc_stack_end;
+diff --git a/base/system/sys_info_netbsd.cc b/base/system/sys_info_netbsd.cc
+new file mode 100644
+index 0000000000..676babdf29
+--- /dev/null
++++ b/base/system/sys_info_netbsd.cc
+@@ -0,0 +1,91 @@
++// Copyright 2011 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/system/sys_info.h"
++
++#include <stddef.h>
++#include <stdint.h>
++#include <sys/param.h>
++#include <sys/shm.h>
++#include <sys/sysctl.h>
++
++#include "base/notreached.h"
++#include "base/posix/sysctl.h"
++#include "base/strings/string_util.h"
++
++namespace {
++
++uint64_t AmountOfMemory(int pages_name) {
++  long pages = sysconf(pages_name);
++  long page_size = sysconf(_SC_PAGESIZE);
++  if (pages < 0 || page_size < 0)
++    return 0;
++  return static_cast<uint64_t>(pages) * static_cast<uint64_t>(page_size);
++}
++
++}  // namespace
++
++namespace base {
++
++// static
++int SysInfo::NumberOfProcessors() {
++  int mib[] = {CTL_HW, HW_NCPU};
++  int ncpu;
++  size_t size = sizeof(ncpu);
++  if (sysctl(mib, std::size(mib), &ncpu, &size, NULL, 0) < 0) {
++    NOTREACHED_IN_MIGRATION();
++    return 1;
++  }
++  return ncpu;
++}
++
++// static
++uint64_t SysInfo::AmountOfPhysicalMemoryImpl() {
++  return AmountOfMemory(_SC_PHYS_PAGES);
++}
++
++// static
++uint64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() {
++  return AmountOfMemory(_SC_PHYS_PAGES);
++}
++
++// static
++uint64_t SysInfo::MaxSharedMemorySize() {
++  int mib[] = {CTL_KERN, KERN_SYSVIPC, KERN_SYSVIPC_SHMMAX};
++  size_t limit;
++  size_t size = sizeof(limit);
++  // pledge(2)
++  if (sysctl(mib, std::size(mib), &limit, &size, NULL, 0) < 0) {
++    NOTREACHED_IN_MIGRATION();
++    return 0;
++  }
++  return static_cast<uint64_t>(limit);
++}
++
++// static
++std::string SysInfo::CPUModelName() {
++  int mib[] = { CTL_HW, HW_MODEL };
++  char name[256];
++  size_t size = std::size(name);
++
++  if (sysctl(mib, std::size(mib), &name, &size, NULL, 0) == 0) {
++    return name;
++  }
++
++  return std::string();
++}
++
++// static
++SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() {
++  HardwareInfo info;
++  // Set the manufacturer to "NetBSD" and the model to
++  // an empty string.
++  info.manufacturer = "NetBSD";
++  info.model = HardwareModelName();
++  DCHECK(IsStringUTF8(info.manufacturer));
++  DCHECK(IsStringUTF8(info.model));
++  return info;
++}
++
++}  // namespace base
+diff --git a/base/task/thread_pool/environment_config_unittest.cc b/base/task/thread_pool/environment_config_unittest.cc
+index 72f4ba59be..baae579604 100644
+--- a/base/task/thread_pool/environment_config_unittest.cc
++++ b/base/task/thread_pool/environment_config_unittest.cc
+@@ -24,7 +24,7 @@ TEST(ThreadPoolEnvironmentConfig, CanUseBackgroundPriorityForWorker) {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID)
+   EXPECT_TRUE(CanUseUtilityThreadTypeForWorkerThread());
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+   EXPECT_FALSE(CanUseUtilityThreadTypeForWorkerThread());
+ #else
+ #error Platform doesn't match any block
+diff --git a/base/test/launcher/test_launcher.cc b/base/test/launcher/test_launcher.cc
+index 854e6a66ac..a4e1e1cadc 100644
+--- a/base/test/launcher/test_launcher.cc
++++ b/base/test/launcher/test_launcher.cc
+@@ -1808,6 +1808,10 @@ bool TestLauncher::Init(CommandLine* command_line) {
+   results_tracker_.AddGlobalTag("OS_OPENBSD");
+ #endif
+ 
++#if BUILDFLAG(IS_NETBSD)
++  results_tracker_.AddGlobalTag("OS_NETBSD");
++#endif
++
+ #if BUILDFLAG(IS_POSIX)
+   results_tracker_.AddGlobalTag("OS_POSIX");
+ #endif
+diff --git a/base/tracing/trace_time.cc b/base/tracing/trace_time.cc
+index 04df5e08bf..f1eeb2fa82 100644
+--- a/base/tracing/trace_time.cc
++++ b/base/tracing/trace_time.cc
+@@ -10,6 +10,8 @@
+ 
+ #if BUILDFLAG(IS_FREEBSD)
+ #define CLOCK_BOOTTIME CLOCK_UPTIME
++#elif BUILDFLAG(IS_NETBSD)
++#define CLOCK_BOOTTIME CLOCK_MONOTONIC
+ #endif
+ 
+ namespace base {
+diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
+index 976b9a1187..eb19c7c571 100644
+--- a/build/config/BUILDCONFIG.gn
++++ b/build/config/BUILDCONFIG.gn
+@@ -137,7 +137,7 @@ declare_args() {
+ 
+   # Set to true when compiling with the Clang compiler.
+   is_clang = current_os != "linux" || current_os == "openbsd" ||
+-             current_os == "freebsd" ||
++             current_os == "freebsd" || current_os == "netbsd" ||
+              (current_cpu != "s390x" && current_cpu != "s390" &&
+               current_cpu != "ppc64" && current_cpu != "ppc" &&
+               current_cpu != "mips" && current_cpu != "mips64" &&
+@@ -236,6 +236,8 @@ if (host_toolchain == "") {
+     host_toolchain = "//build/toolchain/openbsd:clang_$host_cpu"
+   } else if (host_os == "freebsd") {
+     host_toolchain = "//build/toolchain/freebsd:clang_$host_cpu"
++  } else if (host_os == "netbsd") {
++    host_toolchain = "//build/toolchain/netbsd:clang_$host_cpu"
+   } else {
+     assert(false, "Unsupported host_os: $host_os")
+   }
+@@ -279,7 +281,7 @@ if (target_os == "android") {
+   _default_toolchain = "//build/toolchain/aix:$target_cpu"
+ } else if (target_os == "zos") {
+   _default_toolchain = "//build/toolchain/zos:$target_cpu"
+-} else if (target_os == "openbsd" || target_os == "freebsd") {
++} else if (target_os == "openbsd" || target_os == "freebsd" || target_os == "netbsd") {
+   _default_toolchain = host_toolchain
+ } else {
+   assert(false, "Unsupported target_os: $target_os")
+@@ -316,10 +318,11 @@ is_chromeos = current_os == "chromeos"
+ is_fuchsia = current_os == "fuchsia"
+ is_ios = current_os == "ios"
+ is_linux = current_os == "linux" || current_os == "openbsd" ||
+-           current_os == "freebsd"
++           current_os == "freebsd" || current_os == "netbsd"
+ is_openbsd = current_os == "openbsd"
+ is_freebsd = current_os == "freebsd"
+-is_bsd = current_os == "openbsd" || current_os == "freebsd"
++is_netbsd = current_os == "netbsd"
++is_bsd = current_os == "openbsd" || current_os == "freebsd" || current_os == "netbsd"
+ is_mac = current_os == "mac"
+ is_nacl = current_os == "nacl"
+ is_win = current_os == "win" || current_os == "winuwp"
+diff --git a/build/config/linux/pkg-config.py b/build/config/linux/pkg-config.py
+index 3caf00630d..aaabfcaa5c 100755
+--- a/build/config/linux/pkg-config.py
++++ b/build/config/linux/pkg-config.py
+@@ -108,7 +108,7 @@ def main():
+   # If this is run on non-Linux platforms, just return nothing and indicate
+   # success. This allows us to "kind of emulate" a Linux build from other
+   # platforms.
+-  if not sys.platform.startswith(tuple(['linux', 'openbsd', 'freebsd'])):
++  if not sys.platform.startswith(tuple(['linux', 'openbsd', 'freebsd', 'netbsd'])):
+     print("[[],[],[],[],[]]")
+     return 0
+ 
+diff --git a/build/config/ozone.gni b/build/config/ozone.gni
+index 6a590b0ef2..4cb5ff43ac 100644
+--- a/build/config/ozone.gni
++++ b/build/config/ozone.gni
+@@ -92,6 +92,10 @@ declare_args() {
+       ozone_platform = "x11"
+       ozone_platform_wayland = false
+       ozone_platform_x11 = true
++    } else if (is_netbsd) {
++      ozone_platform = "x11"
++      ozone_platform_wayland = false
++      ozone_platform_x11 = true
+     } else if (is_freebsd) {
+       ozone_platform = "x11"
+       ozone_platform_wayland = true
+diff --git a/build/rust/rust_bindgen.gni b/build/rust/rust_bindgen.gni
+index d0ad1ac0bd..2aaafba7c7 100644
+--- a/build/rust/rust_bindgen.gni
++++ b/build/rust/rust_bindgen.gni
+@@ -11,14 +11,14 @@ if (is_win) {
+   import("//build/toolchain/win/win_toolchain_data.gni")
+ }
+ 
+-_bindgen_path = "${LOCALBASE}/bin/bindgen"
++_bindgen_path = "@PREFIX@/bin/bindgen"
+ if (host_os == "win") {
+   _bindgen_path = "${_bindgen_path}.exe"
+ }
+ 
+ # On Windows, the libclang.dll is beside the bindgen.exe, otherwise it is in
+ # ../lib.
+-_libclang_path = "${LOCALBASE}/llvm${MODCLANG_VERSION}/lib"
++_libclang_path = "@PREFIX@"
+ if (host_os == "win") {
+   _libclang_path += "/bin"
+ } else {
+diff --git a/build/toolchain/gcc_toolchain.gni b/build/toolchain/gcc_toolchain.gni
+index 2e6700d66f..251d959365 100644
+--- a/build/toolchain/gcc_toolchain.gni
++++ b/build/toolchain/gcc_toolchain.gni
+@@ -622,7 +622,7 @@ template("single_gcc_toolchain") {
+       # We need to specify link groups, at least, for single pass linkers. I.e.
+       # Rust libraries are alpha-sorted instead of by dependencies so they fail
+       # to link if not properly ordered or grouped.
+-      link_command = "$ld {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" $start_group_flag @\"$rspfile\" $end_group_flag {{solibs}} {{libs}} $start_group_flag {{rlibs}} $end_group_flag"
++      link_command = "$ld $start_group_flag {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" @\"$rspfile\" {{solibs}} {{libs}} {{rlibs}} $end_group_flag"
+ 
+       # Generate a map file to be used for binary size analysis.
+       # Map file adds ~10% to the link time on a z620.
+diff --git a/build/toolchain/netbsd/BUILD.gn b/build/toolchain/netbsd/BUILD.gn
+new file mode 100644
+index 0000000000..27240dd95a
+--- /dev/null
++++ b/build/toolchain/netbsd/BUILD.gn
+@@ -0,0 +1,66 @@
++# 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.
++
++import("//build/config/sysroot.gni")
++import("//build/toolchain/gcc_toolchain.gni")
++
++clang_toolchain("clang_x86") {
++  toolchain_args = {
++    current_cpu = "x86"
++    current_os = "netbsd"
++  }
++}
++
++gcc_toolchain("x86") {
++  cc = "gcc"
++  cxx = "g++"
++
++  readelf = "readelf"
++  nm = "nm"
++  ar = "ar"
++  ld = cxx
++
++  toolchain_args = {
++    current_cpu = "x86"
++    current_os = "netbsd"
++    is_clang = false
++  }
++}
++
++clang_toolchain("clang_x64") {
++  toolchain_args = {
++    current_cpu = "x64"
++    current_os = "netbsd"
++  }
++}
++
++gcc_toolchain("x64") {
++  cc = "gcc"
++  cxx = "g++"
++
++  readelf = "readelf"
++  nm = "nm"
++  ar = "ar"
++  ld = cxx
++
++  toolchain_args = {
++    current_cpu = "x64"
++    current_os = "netbsd"
++    is_clang = false
++  }
++}
++
++clang_toolchain("clang_arm") {
++  toolchain_args = {
++    current_cpu = "arm64"
++    current_os = "netbsd"
++  }
++}
++
++clang_toolchain("clang_arm64") {
++  toolchain_args = {
++    current_cpu = "arm64"
++    current_os = "netbsd"
++  }
++}
+diff --git a/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc b/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
+index ce049dc56a..12f40cb6eb 100644
+--- a/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
++++ b/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
+@@ -287,6 +287,8 @@ bool ChromeRuntimeAPIDelegate::GetPlatformInfo(PlatformInfo* info) {
+     info->os = extensions::api::runtime::PlatformOs::kLinux;
+   } else if (strcmp(os, "freebsd") == 0) {
+     info->os = extensions::api::runtime::PlatformOs::kLinux;
++  } else if (strcmp(os, "netbsd") == 0) {
++    info->os = extensions::api::runtime::PlatformOs::kLinux;
+   } else {
+     NOTREACHED_IN_MIGRATION() << "Platform not supported: " << os;
+     return false;
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index db0ee8549d..e16248559a 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -7998,7 +7998,7 @@ const char kAudioBackendName[] =
+ const char kAudioBackendDescription[] =
+ #if BUILDFLAG(IS_OPENBSD)
+     "Select the desired audio backend to use. The default is sndio.";
+-#elif BUILDFLAG(IS_FREEBSD)
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+     "Select the desired audio backend to use. The default will automatically "
+     "enumerate through the supported backends.";
+ #endif
+diff --git a/chrome/browser/ui/views/side_panel/BUILD.gn b/chrome/browser/ui/views/side_panel/BUILD.gn
+index 5baeb55f29..b6e62c3c7f 100644
+--- a/chrome/browser/ui/views/side_panel/BUILD.gn
++++ b/chrome/browser/ui/views/side_panel/BUILD.gn
+@@ -172,7 +172,9 @@ static_library("side_panel") {
+     "//chrome/app:generated_resources",
+     "//chrome/app:generated_resources_grit",
+     "//chrome/app/vector_icons",
++    "//chrome/browser/cart:mojo_bindings",
+     "//chrome/browser/companion/core",
++    "//chrome/browser/companion/visual_query",
+     "//chrome/browser/favicon",
+     "//chrome/browser/lens/region_search",
+     "//chrome/browser/profiles",
+@@ -181,8 +183,11 @@ static_library("side_panel") {
+     "//chrome/browser/search_engines",
+     "//chrome/browser/themes",
+     "//chrome/browser/ui:browser_element_identifiers",
++    "//chrome/browser/ui:webui_name_variants",
+     "//chrome/browser/ui/actions",
+     "//chrome/browser/ui/browser_window",
++    "//chrome/browser/ui/webui/side_panel/bookmarks:mojo_bindings",
++    "//chrome/browser/ui/webui/side_panel/reading_list:mojo_bindings",
+     "//chrome/common",
+     "//chrome/common:constants",
+     "//chrome/common/extensions/api",
+@@ -198,6 +203,7 @@ static_library("side_panel") {
+     "//components/lens:features",
+     "//components/omnibox/browser:vector_icons",
+     "//components/optimization_guide/core:features",
++    "//components/page_image_service/mojom:mojo_bindings",
+     "//components/performance_manager",
+     "//components/pref_registry",
+     "//components/search",
+@@ -222,5 +228,7 @@ static_library("side_panel") {
+     "//ui/gfx:color_utils",
+     "//ui/gfx/geometry:geometry_skia",
+     "//ui/webui",
++    "//ui/webui/resources/cr_components/commerce:mojo_bindings",
++    "//ui/webui/resources/cr_components/help_bubble:mojo_bindings",
+   ]
+ }
+diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc
+index a37eeb4307..7a33810139 100644
+--- a/chrome/common/chrome_paths.cc
++++ b/chrome/common/chrome_paths.cc
+@@ -57,9 +57,9 @@ namespace {
+ // /usr/share seems like a good choice, see: http://www.pathname.com/fhs/
+ const base::FilePath::CharType kFilepathSinglePrefExtensions[] =
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+-    FILE_PATH_LITERAL("/usr/local/share/chromium/extensions");
++    FILE_PATH_LITERAL("@PREFIX@/share/chromium/extensions");
+ #else
+-    FILE_PATH_LITERAL("/usr/local/share/chromium/extensions");
++    FILE_PATH_LITERAL("@PREFIX@/share/chromium/extensions");
+ #endif  // BUILDFLAG(GOOGLE_CHROME_BRANDING)
+ 
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -613,9 +613,9 @@ bool PathProvider(int key, base::FilePath* result) {
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+       cur = base::FilePath(
+           FILE_PATH_LITERAL("/etc/opt/chrome/native-messaging-hosts"));
+-#elif BUILDFLAG(IS_FREEBSD)
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+       cur = base::FilePath(FILE_PATH_LITERAL(
+-          "/usr/local/etc/chromium/native-messaging-hosts"));
++          "@PREFIX@/etc/chromium/native-messaging-hosts"));
+ #else
+       cur = base::FilePath(
+           FILE_PATH_LITERAL("/etc/chromium/native-messaging-hosts"));
+diff --git a/components/crash/core/app/chrome_crashpad_handler.cc b/components/crash/core/app/chrome_crashpad_handler.cc
+index 9aa752e77f..5c3ba36cc3 100644
+--- a/components/crash/core/app/chrome_crashpad_handler.cc
++++ b/components/crash/core/app/chrome_crashpad_handler.cc
+@@ -6,7 +6,7 @@
+ extern "C" int CrashpadHandlerMain(int argc, char* argv[]);
+ 
+ int main(int argc, char* argv[]) {
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+   return -1;
+ #else
+   return CrashpadHandlerMain(argc, argv);
+diff --git a/components/device_signals/test/signals_contract.cc b/components/device_signals/test/signals_contract.cc
+index b039b31ef9..368872b22d 100644
+--- a/components/device_signals/test/signals_contract.cc
++++ b/components/device_signals/test/signals_contract.cc
+@@ -212,7 +212,7 @@ GetSignalsContract() {
+       base::BindRepeating(VerifyUnset, names::kCrowdStrike);
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUIDLFLAG(IS_BSD)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   contract[names::kAllowScreenLock] =
+       base::BindRepeating(VerifyUnset, names::kAllowScreenLock);
+   contract[names::kImei] = base::BindRepeating(VerifyUnset, names::kImei);
+diff --git a/components/named_mojo_ipc_server/connection_info.h b/components/named_mojo_ipc_server/connection_info.h
+index 21d1f361af..a8d42bbfe5 100644
+--- a/components/named_mojo_ipc_server/connection_info.h
++++ b/components/named_mojo_ipc_server/connection_info.h
+@@ -16,6 +16,12 @@
+ #include <bsm/libbsm.h>
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include <sys/socket.h>
++#if defined(__NetBSD__)
++#include <sys/un.h>
++#define ucred unpcbid
++#define SO_PEERCRED LOCAL_PEEREID
++#define pid unp_pid
++#endif
+ #endif
+ 
+ namespace named_mojo_ipc_server {
+diff --git a/components/policy/core/common/cloud/cloud_policy_util.cc b/components/policy/core/common/cloud/cloud_policy_util.cc
+index 6c59e0c41a..c95cd65599 100644
+--- a/components/policy/core/common/cloud/cloud_policy_util.cc
++++ b/components/policy/core/common/cloud/cloud_policy_util.cc
+@@ -39,7 +39,7 @@
+ #include <limits.h>  // For HOST_NAME_MAX
+ #endif
+ 
+-#if BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/param.h>
+ #define HOST_NAME_MAX MAXHOSTNAMELEN
+ #endif
+diff --git a/components/policy/core/common/policy_paths.cc b/components/policy/core/common/policy_paths.cc
+index 2afbdd5d3f..f849c13dfd 100644
+--- a/components/policy/core/common/policy_paths.cc
++++ b/components/policy/core/common/policy_paths.cc
+@@ -19,6 +19,8 @@ const char kPolicyPath[] = "/etc/opt/chrome/policies";
+ const char kPolicyPath[] = "/etc/opt/chrome_for_testing/policies";
+ #elif BUILDFLAG(IS_FREEBSD)
+ const char kPolicyPath[] = "/usr/local/etc/chromium/policies";
++#elif BUILDFLAG(IS_NETBSD)
++const char kPolicyPath[] = "@PKG_SYSCONFBASE@/chromium/policies";
+ #else
+ const char kPolicyPath[] = "/etc/chromium/policies";
+ #endif  // BUILDFLAG(GOOGLE_CHROME_BRANDING)
+diff --git a/components/policy/tools/generate_policy_source.py b/components/policy/tools/generate_policy_source.py
+index f84f40968e..cbaf44564c 100755
+--- a/components/policy/tools/generate_policy_source.py
++++ b/components/policy/tools/generate_policy_source.py
+@@ -38,9 +38,9 @@ PLATFORM_STRINGS = {
+     'ios': ['ios'],
+     'fuchsia': ['fuchsia'],
+     'chrome.win': ['win'],
+-    'chrome.linux': ['linux', 'openbsd', 'freebsd'],
++    'chrome.linux': ['linux', 'openbsd', 'freebsd', 'netbsd'],
+     'chrome.mac': ['mac'],
+-    'chrome.*': ['win', 'mac', 'linux', 'openbsd', 'freebsd'],
++    'chrome.*': ['win', 'mac', 'linux', 'openbsd', 'freebsd', 'netbsd'],
+     'chrome.win7': ['win'],
+ }
+ 
+diff --git a/components/safe_browsing/content/resources/gen_file_type_proto.py b/components/safe_browsing/content/resources/gen_file_type_proto.py
+index 95001c7809..62eb2acd2f 100755
+--- a/components/safe_browsing/content/resources/gen_file_type_proto.py
++++ b/components/safe_browsing/content/resources/gen_file_type_proto.py
+@@ -40,6 +40,7 @@ def PlatformTypes():
+         "linux": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
+         "openbsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
+         "freebsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
++        "netbsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
+         "mac": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_MAC,
+         "win": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_WINDOWS,
+     }
+@@ -183,7 +184,7 @@ class DownloadFileTypeProtoGenerator(BinaryProtoGenerator):
+             '-t',
+             '--type',
+             help='The platform type. One of android, chromeos, ' +
+-            'linux, mac, win, openbsd, freebsd')
++            'linux, mac, win, openbsd, freebsd, netbsd')
+ 
+     def AddExtraCommandLineArgsForVirtualEnvRun(self, opts, command):
+         if opts.type is not None:
+diff --git a/components/sync/base/sync_util.cc b/components/sync/base/sync_util.cc
+index 26839c5c38..176b587544 100644
+--- a/components/sync/base/sync_util.cc
++++ b/components/sync/base/sync_util.cc
+@@ -45,6 +45,8 @@ std::string GetSystemString() {
+   system = "FREEBSD ";
+ #elif BUILDFLAG(IS_OPENBSD)
+   system = "OPENBSD ";
++#elif BUILDFLAG(IS_NETBSD)
++  system = "NETBSD ";
+ #elif BUILDFLAG(IS_MAC)
+   system = "MAC ";
+ #endif
+diff --git a/components/sync_device_info/local_device_info_util_linux.cc b/components/sync_device_info/local_device_info_util_linux.cc
+index 0be5361ac9..7be86fc918 100644
+--- a/components/sync_device_info/local_device_info_util_linux.cc
++++ b/components/sync_device_info/local_device_info_util_linux.cc
+@@ -9,7 +9,7 @@
+ 
+ #include "base/linux_util.h"
+ 
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <sys/param.h>
+ #define HOST_NAME_MAX MAXHOSTNAMELEN
+ #endif
+diff --git a/components/update_client/update_query_params.cc b/components/update_client/update_query_params.cc
+index 5b17a2bceb..538a2b22d7 100644
+--- a/components/update_client/update_query_params.cc
++++ b/components/update_client/update_query_params.cc
+@@ -44,6 +44,8 @@ const char kOs[] =
+     "openbsd";
+ #elif defined(OS_FREEBSD)
+     "freebsd";
++#elif defined(OS_NETBSD)
++    "netbsd";
+ #else
+ #error "unknown os"
+ #endif
+diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc
+index 95bf818f02..50328bff2e 100644
+--- a/content/browser/utility_process_host.cc
++++ b/content/browser/utility_process_host.cc
+@@ -349,7 +349,7 @@ bool UtilityProcessHost::StartProcess() {
+       switches::kMuteAudio,
+       switches::kUseFileForFakeAudioCapture,
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) || \
+-    BUILDFLAG(IS_SOLARIS)
++    BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_NETBSD)
+       switches::kAlsaInputDevice,
+       switches::kAlsaOutputDevice,
+ #endif
+diff --git a/content/browser/web_contents/web_contents_view_aura_unittest.cc b/content/browser/web_contents/web_contents_view_aura_unittest.cc
+index f07abf2ddb..90ef112694 100644
+--- a/content/browser/web_contents/web_contents_view_aura_unittest.cc
++++ b/content/browser/web_contents/web_contents_view_aura_unittest.cc
+@@ -97,7 +97,7 @@ class TestDragDropClient : public aura::client::DragDropClient {
+     drag_drop_data_ = std::move(data);
+     return DragOperation::kCopy;
+   }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   void UpdateDragImage(const gfx::ImageSkia& image,
+                        const gfx::Vector2d& offset) override {}
+ #endif
+diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
+index b477623aaa..c80ea97951 100644
+--- a/content/test/BUILD.gn
++++ b/content/test/BUILD.gn
+@@ -1685,7 +1685,7 @@ test("content_browsertests") {
+     "../test/url_loader_interceptor_browsertest.cc",
+   ]
+ 
+-  if (is_linux) {
++  if ((is_linux) && !is_bsd) {
+     sources += [ "../browser/network/address_map_linux_browsertest.cc" ]
+   }
+ 
+diff --git a/extensions/common/api/_permission_features.json b/extensions/common/api/_permission_features.json
+index 1ccc2c2124..9a8c3a5388 100644
+--- a/extensions/common/api/_permission_features.json
++++ b/extensions/common/api/_permission_features.json
+@@ -138,7 +138,7 @@
+     {
+       "channel": "stable",
+       "extension_types": ["platform_app"],
+-      "platforms": ["chromeos", "lacros", "win", "mac", "linux", "openbsd", "freebsd"],
++      "platforms": ["chromeos", "lacros", "win", "mac", "linux", "openbsd", "freebsd", "netbsd"],
+       "allowlist": [
+         "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80",  // http://crbug.com/387169
+         "A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE",  // http://crbug.com/387169
+@@ -432,7 +432,7 @@
+   }, {
+     "channel": "stable",
+     "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
+-    "platforms": ["chromeos", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd"],
++    "platforms": ["chromeos", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd", "netbsd"],
+     "allowlist": [
+       "0DE0F05680A4A056BCEC864ED8DDA84296F82B40",  // http://crbug.com/434651
+       "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80",  // http://crbug.com/293683
+@@ -476,7 +476,7 @@
+   "networkingPrivate": {
+     "channel": "stable",
+     "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
+-    "platforms": ["chromeos", "lacros", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd"],
++    "platforms": ["chromeos", "lacros", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd", "netbsd"],
+     "allowlist": [
+       // DO NOT ADD ANY MORE ENTRIES HERE.
+       // networkingPrivate is being migrated to networking.onc.
+diff --git a/extensions/common/api/runtime.json b/extensions/common/api/runtime.json
+index 730668b7ee..547d07407d 100644
+--- a/extensions/common/api/runtime.json
++++ b/extensions/common/api/runtime.json
+@@ -87,6 +87,7 @@
+             {"name": "linux", "description": "Specifies the Linux operating system."},
+             {"name": "openbsd", "description": "Specifies the OpenBSD operating system."},
+             {"name": "freebsd", "description": "Specifies the FreeBSD operating system."},
++            {"name": "netbsd", "description": "Specifies the NetBSD operating system."},
+             {"name": "fuchsia", "description": "Specifies the Fuchsia operating system."}
+         ]
+       },
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index bf3f36c6be..d1a8093f64 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -61,7 +61,7 @@ const char kReportVp9AsAnUnsupportedMimeType[] =
+     "report-vp9-as-an-unsupported-mime-type";
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) || \
+-    BUILDFLAG(IS_SOLARIS)
++    BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_NETBSD)
+ // The Alsa device to use when opening an audio input stream.
+ const char kAlsaInputDevice[] = "alsa-input-device";
+ // The Alsa device to use when opening an audio stream.
+@@ -397,7 +397,7 @@ const base::FeatureParam<AudioBackend>
+         &kAudioBackend, "audio-backend",
+ #if BUILDFLAG(IS_OPENBSD)
+         AudioBackend::kSndio,
+-#elif BUILDFLAG(IS_FREEBSD)
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+         AudioBackend::kAuto,
+ #endif
+         &kAudioBackendOptions};
+diff --git a/media/base/media_switches.h b/media/base/media_switches.h
+index a96a9fd9b2..69a4a41d35 100644
+--- a/media/base/media_switches.h
++++ b/media/base/media_switches.h
+@@ -44,7 +44,7 @@ MEDIA_EXPORT extern const char kDisableBackgroundMediaSuspend[];
+ MEDIA_EXPORT extern const char kReportVp9AsAnUnsupportedMimeType[];
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) || \
+-    BUILDFLAG(IS_SOLARIS)
++    BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_NETBSD)
+ MEDIA_EXPORT extern const char kAlsaInputDevice[];
+ MEDIA_EXPORT extern const char kAlsaOutputDevice[];
+ #endif
+diff --git a/media/capture/video/linux/fake_v4l2_impl.h b/media/capture/video/linux/fake_v4l2_impl.h
+index 8dc249424d..4adfa0cfb8 100644
+--- a/media/capture/video/linux/fake_v4l2_impl.h
++++ b/media/capture/video/linux/fake_v4l2_impl.h
+@@ -9,7 +9,7 @@
+ #include <string>
+ 
+ #include "build/build_config.h"
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/videoio.h>
+ typedef __uint32_t __u32;
+ #else
+diff --git a/media/capture/video/linux/v4l2_capture_delegate.h b/media/capture/video/linux/v4l2_capture_delegate.h
+index fd69cf9115..c15cc9e654 100644
+--- a/media/capture/video/linux/v4l2_capture_delegate.h
++++ b/media/capture/video/linux/v4l2_capture_delegate.h
+@@ -23,7 +23,7 @@
+ #include "media/capture/video/linux/v4l2_capture_device_impl.h"
+ #include "media/capture/video/video_capture_device.h"
+ 
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || defined(OS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
+diff --git a/media/capture/video/linux/video_capture_device_factory_v4l2.cc b/media/capture/video/linux/video_capture_device_factory_v4l2.cc
+index 1f09b300c2..d58d587c88 100644
+--- a/media/capture/video/linux/video_capture_device_factory_v4l2.cc
++++ b/media/capture/video/linux/video_capture_device_factory_v4l2.cc
+@@ -23,7 +23,7 @@
+ #include "media/capture/video/linux/scoped_v4l2_device_fd.h"
+ #include "media/capture/video/linux/video_capture_device_linux.h"
+ 
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
+@@ -38,7 +38,7 @@ bool CompareCaptureDevices(const VideoCaptureDeviceInfo& a,
+   return a.descriptor < b.descriptor;
+ }
+ 
+-#if !BUILDFLAG(IS_OPENBSD)
++#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_NETBSD)
+ // USB VID and PID are both 4 bytes long.
+ const size_t kVidPidSize = 4;
+ const size_t kMaxInterfaceNameSize = 256;
+@@ -77,7 +77,7 @@ class DevVideoFilePathsDeviceProvider
+     : public VideoCaptureDeviceFactoryV4L2::DeviceProvider {
+  public:
+   void GetDeviceIds(std::vector<std::string>* target_container) override {
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+     target_container->emplace_back("/dev/video");
+ #else
+     const base::FilePath path("/dev/");
+@@ -91,7 +91,7 @@ class DevVideoFilePathsDeviceProvider
+   }
+ 
+   std::string GetDeviceModelId(const std::string& device_id) override {
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+     return std::string();
+ #else
+     const std::string file_name = ExtractFileNameFromDeviceId(device_id);
+@@ -114,7 +114,7 @@ class DevVideoFilePathsDeviceProvider
+   }
+ 
+   std::string GetDeviceDisplayName(const std::string& device_id) override {
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+     return std::string();
+ #else
+     const std::string file_name = ExtractFileNameFromDeviceId(device_id);
+diff --git a/media/capture/video/linux/video_capture_device_linux.cc b/media/capture/video/linux/video_capture_device_linux.cc
+index 41ab4b5346..c534eb8cc1 100644
+--- a/media/capture/video/linux/video_capture_device_linux.cc
++++ b/media/capture/video/linux/video_capture_device_linux.cc
+@@ -15,7 +15,7 @@
+ #include "build/build_config.h"
+ #include "media/capture/video/linux/v4l2_capture_delegate.h"
+ 
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
+diff --git a/media/ffmpeg/scripts/build_ffmpeg.py b/media/ffmpeg/scripts/build_ffmpeg.py
+index 0b0798ab5c..ae7315c46b 100755
+--- a/media/ffmpeg/scripts/build_ffmpeg.py
++++ b/media/ffmpeg/scripts/build_ffmpeg.py
+@@ -45,6 +45,7 @@ ARCH_MAP = {
+     'linux': ['ia32', 'x64', 'noasm-x64', 'arm', 'arm-neon', 'arm64'],
+     'openbsd': ['x64', 'arm64', 'ia32'],
+     'freebsd': ['x64', 'arm64', 'ia32'],
++    'netbsd': ['x64', 'arm64', 'ia32'],
+     'mac': ['x64', 'arm64'],
+     'win': ['ia32', 'x64', 'arm64'],
+ }
+@@ -124,7 +125,7 @@ def PrintAndCheckCall(argv, *args, **kwargs):
+ 
+ 
+ def GetDsoName(target_os, dso_name, dso_version):
+-    if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd'):
++    if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd', 'netbsd'):
+         return 'lib%s.so.%s' % (dso_name, dso_version)
+     elif target_os == 'mac':
+         return 'lib%s.%s.dylib' % (dso_name, dso_version)
+@@ -477,7 +478,7 @@ def BuildFFmpeg(target_os, target_arch, host_os, host_arch, parallel_jobs,
+     # removing <sys/sysctl.h> soon, so this is needed to silence a deprecation
+     # #warning which will be converted to an error via -Werror.
+     # There is also no prctl.h
+-    if target_os in ['linux', 'linux-noasm', 'openbsd', 'freebsd']:
++    if target_os in ['linux', 'linux-noasm', 'openbsd', 'freebsd', 'netbsd']:
+         pre_make_rewrites += [
+             (r'(#define HAVE_SYSCTL [01])',
+              r'#define HAVE_SYSCTL 0 /* \1 -- forced to 0 for Fuchsia */'),
+@@ -600,7 +601,7 @@ def main(argv):
+     configure_args = args[2:]
+ 
+     if target_os not in ('android', 'linux', 'linux-noasm', 'mac', 'win',
+-                         'all', 'openbsd', 'freebsd'):
++                         'all', 'openbsd', 'freebsd', 'netbsd'):
+         parser.print_help()
+         return 1
+ 
+@@ -714,7 +715,7 @@ def ConfigureAndBuild(target_arch, target_os, host_os, host_arch,
+             '--optflags="-O2"',
+         ])
+ 
+-    if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd'):
++    if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd', 'netbsd'):
+         if target_arch == 'x64':
+             if target_os == 'android':
+                 configure_flags['Common'].extend([
+@@ -920,7 +921,7 @@ def ConfigureAndBuild(target_arch, target_os, host_os, host_arch,
+         # typically be the system one, so explicitly configure use of Clang's
+         # ld.lld, to ensure that things like cross-compilation and LTO work.
+         # This does not work for ia32 and is always used on mac.
+-        if target_arch != 'ia32' and target_os != 'mac':
++        if target_arch != 'ia32' and target_os != 'mac' and target_os != 'netbsd':
+             configure_flags['Common'].append('--extra-ldflags=-fuse-ld=lld')
+ 
+     # Should be run on Mac, unless we're cross-compiling on Linux.
+diff --git a/media/ffmpeg/scripts/robo_lib/config.py b/media/ffmpeg/scripts/robo_lib/config.py
+index 84f5b3d38f..65b0f75fbe 100644
+--- a/media/ffmpeg/scripts/robo_lib/config.py
++++ b/media/ffmpeg/scripts/robo_lib/config.py
+@@ -221,6 +221,8 @@ class RoboConfiguration:
+             self._host_operating_system = "openbsd"
+         elif platform.system() == "FreeBSD":
+             self._host_operating_system = "freebsd"
++        elif platform.system() == "NetBSD":
++            self._host_operating_system = "netbsd"
+         else:
+             raise ValueError(f"Unsupported platform: {platform.system()}")
+ 
+diff --git a/media/mojo/mojom/stable/BUILD.gn b/media/mojo/mojom/stable/BUILD.gn
+index 8c3d3bb7f6..f27c311fac 100644
+--- a/media/mojo/mojom/stable/BUILD.gn
++++ b/media/mojo/mojom/stable/BUILD.gn
+@@ -196,7 +196,7 @@ source_set("unit_tests") {
+   } else if (use_v4l2_codec) {
+     deps += [ "//media/gpu/v4l2:v4l2_status" ]
+   }
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
+     sources += [
+       "mojom_traits_test_util.cc",
+       "mojom_traits_test_util.h",
+diff --git a/mojo/public/cpp/platform/socket_utils_posix.cc b/mojo/public/cpp/platform/socket_utils_posix.cc
+index b34d71ddd1..e299ce963b 100644
+--- a/mojo/public/cpp/platform/socket_utils_posix.cc
++++ b/mojo/public/cpp/platform/socket_utils_posix.cc
+@@ -29,7 +29,7 @@ bool IsRecoverableError() {
+ }
+ 
+ bool GetPeerEuid(base::PlatformFile fd, uid_t* peer_euid) {
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+   uid_t socket_euid;
+   gid_t socket_gid;
+   if (getpeereid(fd, &socket_euid, &socket_gid) < 0) {
+diff --git a/mojo/public/tools/bindings/mojom.gni b/mojo/public/tools/bindings/mojom.gni
+index dc2adf9719..cd889833a2 100644
+--- a/mojo/public/tools/bindings/mojom.gni
++++ b/mojo/public/tools/bindings/mojom.gni
+@@ -767,6 +767,11 @@ template("mojom") {
+       enabled_features += [ "is_bsd" ]
+     }
+ 
++    if (is_netbsd) {
++      enabled_features += [ "is_netbsd" ]
++      enabled_features += [ "is_bsd" ]
++    }
++
+     if (is_freebsd) {
+       enabled_features += [ "is_freebsd" ]
+       enabled_features += [ "is_bsd" ]
+diff --git a/net/BUILD.gn b/net/BUILD.gn
+index 1e683a13cf..d142899820 100644
+--- a/net/BUILD.gn
++++ b/net/BUILD.gn
+@@ -2044,7 +2044,7 @@ static_library("test_support") {
+     "url_request/url_request_test_util.h",
+   ]
+ 
+-  if (is_linux || is_chromeos || is_android) {
++  if ((is_linux || is_chromeos || is_android)  && !is_bsd) {
+     sources += [
+       "base/address_tracker_linux_test_util.cc",
+       "base/address_tracker_linux_test_util.h",
+@@ -2866,7 +2866,7 @@ test("net_unittests") {
+     ]
+   }
+ 
+-  if (is_linux) {
++  if (is_linux && !is_bsd) {
+     sources += [
+       "base/network_change_notifier_linux_unittest.cc",
+       "proxy_resolution/proxy_config_service_linux_unittest.cc",
+diff --git a/net/base/network_change_notifier.cc b/net/base/network_change_notifier.cc
+index d6036b7b65..3881ddde8c 100644
+--- a/net/base/network_change_notifier.cc
++++ b/net/base/network_change_notifier.cc
+@@ -528,7 +528,7 @@ const char* NetworkChangeNotifier::ConnectionTypeToString(
+   return kConnectionTypeNames[type];
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // static
+ AddressMapOwnerLinux* NetworkChangeNotifier::GetAddressMapOwner() {
+   return g_network_change_notifier
+@@ -882,7 +882,7 @@ NetworkChangeNotifier::NetworkChangeNotifier(
+   }
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ AddressMapOwnerLinux* NetworkChangeNotifier::GetAddressMapOwnerInternal() {
+   return nullptr;
+ }
+diff --git a/net/base/network_change_notifier.h b/net/base/network_change_notifier.h
+index 928f584fb6..eb8a01f17b 100644
+--- a/net/base/network_change_notifier.h
++++ b/net/base/network_change_notifier.h
+@@ -18,7 +18,7 @@
+ #include "net/base/net_export.h"
+ #include "net/base/network_handle.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "net/base/address_map_linux.h"
+ #endif
+ 
+@@ -459,7 +459,7 @@ class NET_EXPORT NetworkChangeNotifier {
+   // packets sent lazily.
+   static bool IsDefaultNetworkActive();
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Returns the AddressTrackerLinux if present.
+   static AddressMapOwnerLinux* GetAddressMapOwner();
+ #endif
+@@ -629,7 +629,7 @@ class NET_EXPORT NetworkChangeNotifier {
+       SystemDnsConfigChangeNotifier* system_dns_config_notifier = nullptr,
+       bool omit_observers_in_constructor_for_testing = false);
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Returns the AddressMapOwnerLinux if present.
+   virtual AddressMapOwnerLinux* GetAddressMapOwnerInternal();
+ #endif
+diff --git a/net/dns/BUILD.gn b/net/dns/BUILD.gn
+index b2a41d7f2e..151a6379ac 100644
+--- a/net/dns/BUILD.gn
++++ b/net/dns/BUILD.gn
+@@ -171,7 +171,10 @@ source_set("dns") {
+     ]
+   }
+ 
+-  deps = [ "//net:net_deps" ]
++  deps = [
++    "//net:net_deps",
++    "///services/screen_ai/buildflags",
++  ]
+ 
+   public_deps = [
+     ":dns_client",
+diff --git a/net/dns/dns_reloader.cc b/net/dns/dns_reloader.cc
+index 70796560e0..3bd1c088d4 100644
+--- a/net/dns/dns_reloader.cc
++++ b/net/dns/dns_reloader.cc
+@@ -32,7 +32,7 @@
+ // an old musl bug that was fixed by musl c8fdcfe5, but Fuchsia's SDK doesn't
+ // have that change.
+ #if defined(__RES) && __RES >= 19991006 && !BUILDFLAG(IS_APPLE) && \
+-    !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA)
++    !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA) && !BUILDFLAG(IS_NETBSD)
+ // We define this so we don't need to restate the complex condition here twice
+ // below - it would be easy for the copies below to get out of sync.
+ #define USE_RES_NINIT
+diff --git a/net/dns/public/resolv_reader.cc b/net/dns/public/resolv_reader.cc
+index e393c4ca02..a39114eee9 100644
+--- a/net/dns/public/resolv_reader.cc
++++ b/net/dns/public/resolv_reader.cc
+@@ -40,7 +40,7 @@ std::optional<std::vector<IPEndPoint>> GetNameservers(
+   if (!(res.options & RES_INIT))
+     return std::nullopt;
+ 
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+   union res_sockaddr_union addresses[MAXNS];
+   int nscount = res_getservers(const_cast<res_state>(&res), addresses, MAXNS);
+   DCHECK_GE(nscount, 0);
+diff --git a/net/dns/public/scoped_res_state.cc b/net/dns/public/scoped_res_state.cc
+index 2743697bf6..0220fd73ad 100644
+--- a/net/dns/public/scoped_res_state.cc
++++ b/net/dns/public/scoped_res_state.cc
+@@ -28,7 +28,7 @@ ScopedResState::~ScopedResState() {
+ #if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
+ 
+   // Prefer res_ndestroy where available.
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+   res_ndestroy(&res_);
+ #else
+   res_nclose(&res_);
+diff --git a/net/socket/udp_socket_posix.cc b/net/socket/udp_socket_posix.cc
+index 4a4b687466..791f5780e1 100644
+--- a/net/socket/udp_socket_posix.cc
++++ b/net/socket/udp_socket_posix.cc
+@@ -78,6 +78,32 @@ constexpr int kBindRetries = 10;
+ constexpr int kPortStart = 1024;
+ constexpr int kPortEnd = 65535;
+ 
++#if BUILDFLAG(IS_NETBSD)
++int GetIPv4AddressFromIndex(int socket, uint32_t index, uint32_t* address) {
++  if (!index) {
++    *address = htonl(INADDR_ANY);
++    return OK;
++  }
++
++  sockaddr_in* result = nullptr;
++
++  ifreq ifr;
++  ifr.ifr_addr.sa_family = AF_INET;
++  if (!if_indextoname(index, ifr.ifr_name))
++    return MapSystemError(errno);
++  int rv = ioctl(socket, SIOCGIFADDR, &ifr);
++  if (rv == -1)
++    return MapSystemError(errno);
++  result = reinterpret_cast<sockaddr_in*>(&ifr.ifr_addr);
++
++  if (!result)
++    return ERR_ADDRESS_INVALID;
++
++  *address = result->sin_addr.s_addr;
++  return OK;
++}
++#endif
++
+ int GetSocketFDHash(int fd) {
+   return fd ^ 1595649551;
+ }
+@@ -853,9 +879,17 @@ int UDPSocketPosix::SetMulticastOptions() {
+   if (multicast_interface_ != 0) {
+     switch (addr_family_) {
+       case AF_INET: {
++#if BUILDFLAG(IS_NETBSD)
++        ip_mreq mreq = {};
++        int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
++                                            &mreq.imr_interface.s_addr);
++        if (error != OK)
++          return error;
++#else
+         ip_mreqn mreq = {};
+         mreq.imr_ifindex = multicast_interface_;
+         mreq.imr_address.s_addr = htonl(INADDR_ANY);
++#endif
+         int rv = setsockopt(socket_, IPPROTO_IP, IP_MULTICAST_IF,
+                             reinterpret_cast<const char*>(&mreq), sizeof(mreq));
+         if (rv)
+@@ -918,9 +952,17 @@ int UDPSocketPosix::JoinGroup(const IPAddress& group_address) const {
+     case IPAddress::kIPv4AddressSize: {
+       if (addr_family_ != AF_INET)
+         return ERR_ADDRESS_INVALID;
++#if BUILDFLAG(IS_NETBSD)
++      ip_mreq mreq = {};
++      int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
++                                          &mreq.imr_interface.s_addr);
++      if (error != OK)
++        return error;
++#else
+       ip_mreqn mreq = {};
+       mreq.imr_ifindex = multicast_interface_;
+       mreq.imr_address.s_addr = htonl(INADDR_ANY);
++#endif
+       memcpy(&mreq.imr_multiaddr, group_address.bytes().data(),
+              IPAddress::kIPv4AddressSize);
+       int rv = setsockopt(socket_, IPPROTO_IP, IP_ADD_MEMBERSHIP,
+@@ -958,9 +1000,17 @@ int UDPSocketPosix::LeaveGroup(const IPAddress& group_address) const {
+     case IPAddress::kIPv4AddressSize: {
+       if (addr_family_ != AF_INET)
+         return ERR_ADDRESS_INVALID;
++#if BUILDFLAG(IS_NETBSD)
++      ip_mreq mreq = {};
++      int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
++                                          &mreq.imr_interface.s_addr);
++      if (error != OK)
++        return error;
++#else
+       ip_mreqn mreq = {};
+       mreq.imr_ifindex = multicast_interface_;
+       mreq.imr_address.s_addr = INADDR_ANY;
++#endif
+       memcpy(&mreq.imr_multiaddr, group_address.bytes().data(),
+              IPAddress::kIPv4AddressSize);
+       int rv = setsockopt(socket_, IPPROTO_IP, IP_DROP_MEMBERSHIP,
+diff --git a/ppapi/tests/test_utils.h b/ppapi/tests/test_utils.h
+index 52a0c81bef..ad5ccb26a6 100644
+--- a/ppapi/tests/test_utils.h
++++ b/ppapi/tests/test_utils.h
+@@ -314,6 +314,8 @@ do { \
+ #define PPAPI_OS_FREEBSD 1
+ #elif defined(__OpenBSD__)
+ #define PPAPI_OS_OPENBSD 1
++#elif defined(__NetBSD__)
++#define PPAPI_OS_NETBSD 1
+ #elif defined(__sun)
+ #define PPAPI_OS_SOLARIS 1
+ #else
+@@ -322,7 +324,8 @@ do { \
+ 
+ /* These are used to determine POSIX-like implementations vs Windows. */
+ #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
+-    defined(__OpenBSD__) || defined(__sun) || defined(__native_client__)
++    defined(__OpenBSD__) || defined(__sun) || defined(__native_client__) \
++    defined(__NetBSD__)
+ #define PPAPI_POSIX 1
+ #endif
+ 
+diff --git a/sandbox/policy/BUILD.gn b/sandbox/policy/BUILD.gn
+index 9c3c7a310e..d395b92e41 100644
+--- a/sandbox/policy/BUILD.gn
++++ b/sandbox/policy/BUILD.gn
+@@ -133,6 +133,17 @@ component("policy") {
+     ]
+     libs = [ "util" ]
+   }
++  if (is_netbsd) {
++    sources += [
++      "netbsd/sandbox_netbsd.cc",
++      "netbsd/sandbox_netbsd.h",
++    ]
++    deps += [
++      "//sandbox:sandbox_buildflags",
++      "//ui/gfx/x",
++    ]
++    libs = [ "util" ]
++  }
+   if (is_freebsd) {
+     sources += [
+       "freebsd/sandbox_freebsd.cc",
+diff --git a/sandbox/policy/mojom/sandbox.mojom b/sandbox/policy/mojom/sandbox.mojom
+index 374f6c0cbd..cbee653035 100644
+--- a/sandbox/policy/mojom/sandbox.mojom
++++ b/sandbox/policy/mojom/sandbox.mojom
+@@ -80,6 +80,9 @@ enum Sandbox {
+   [EnableIf=is_openbsd]
+   kVideoCapture,
+ 
++  [EnableIf=is_netbsd]
++  kVideoCapture,
++
+   [EnableIf=is_freebsd]
+   kVideoCapture,
+ 
+diff --git a/sandbox/policy/netbsd/sandbox_netbsd.cc b/sandbox/policy/netbsd/sandbox_netbsd.cc
+new file mode 100644
+index 0000000000..4f244ec59c
+--- /dev/null
++++ b/sandbox/policy/netbsd/sandbox_netbsd.cc
+@@ -0,0 +1,245 @@
++// 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 "sandbox/policy/netbsd/sandbox_netbsd.h"
++
++#include <dirent.h>
++#include <fcntl.h>
++#include <stdint.h>
++#include <sys/resource.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <sys/types.h>
++#include <unistd.h>
++
++#include <limits>
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/command_line.h"
++#include "base/debug/stack_trace.h"
++#include "base/feature_list.h"
++#include "base/files/file_path.h"
++#include "base/files/file_util.h"
++#include "base/files/scoped_file.h"
++#include "base/logging.h"
++#include "base/memory/singleton.h"
++#include "base/path_service.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/system/sys_info.h"
++#include "base/threading/thread.h"
++#include "base/time/time.h"
++#include "build/build_config.h"
++#include "crypto/crypto_buildflags.h"
++#include "ppapi/buildflags/buildflags.h"
++#include "sandbox/constants.h"
++#include "sandbox/linux/services/credentials.h"
++#include "sandbox/linux/services/namespace_sandbox.h"
++#include "sandbox/linux/services/proc_util.h"
++#include "sandbox/linux/services/resource_limits.h"
++#include "sandbox/linux/services/thread_helpers.h"
++#include "sandbox/linux/syscall_broker/broker_command.h"
++#include "sandbox/linux/syscall_broker/broker_process.h"
++#include "sandbox/policy/sandbox.h"
++#include "sandbox/policy/sandbox_type.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "sandbox/policy/switches.h"
++#include "sandbox/sandbox_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++#if BUILDFLAG(USE_NSS_CERTS)
++#include "crypto/nss_util.h"
++#endif
++
++#include "third_party/boringssl/src/include/openssl/crypto.h"
++
++#include "ui/gfx/font_util.h"
++
++namespace sandbox {
++namespace policy {
++
++SandboxLinux::SandboxLinux()
++    : sandbox_status_flags_(kInvalid),
++      pre_initialized_(false),
++      initialize_sandbox_ran_(false),
++      broker_process_(nullptr) {
++}
++
++SandboxLinux::~SandboxLinux() {
++  if (pre_initialized_) {
++    CHECK(initialize_sandbox_ran_);
++  }
++}
++
++SandboxLinux* SandboxLinux::GetInstance() {
++  SandboxLinux* instance = base::Singleton<SandboxLinux>::get();
++  CHECK(instance);
++  return instance;
++}
++
++void SandboxLinux::StopThread(base::Thread* thread) {
++  DCHECK(thread);
++  thread->Stop();
++}
++
++void SandboxLinux::PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type) {
++  CHECK(!pre_initialized_);
++#if BUILDFLAG(USING_SANITIZER)
++  // Sanitizers need to open some resources before the sandbox is enabled.
++  // This should not fork, not launch threads, not open a directory.
++  __sanitizer_sandbox_on_notify(sanitizer_args());
++  sanitizer_args_.reset();
++#endif
++  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++  const std::string process_type =
++      command_line->GetSwitchValueASCII(switches::kProcessType);
++
++  base::SysInfo::AmountOfPhysicalMemory();
++  base::SysInfo::NumberOfProcessors();
++  base::SysInfo::CPUModelName();
++
++  switch (sandbox_type) {
++    case sandbox::mojom::Sandbox::kNoSandbox:
++    {
++#if BUILDFLAG(USE_NSS_CERTS)
++      // The main process has to initialize the ~/.pki dir which won't work
++      // after unveil(2).
++      crypto::EnsureNSSInit();
++#endif
++      CRYPTO_pre_sandbox_init();
++
++      base::FilePath cache_directory, local_directory;
++
++      base::PathService::Get(base::DIR_CACHE, &cache_directory);
++      base::PathService::Get(base::DIR_HOME, &local_directory);
++
++      cache_directory = cache_directory.AppendASCII("chromium");
++      local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications");
++
++      if (!base::CreateDirectory(cache_directory)) {
++        LOG(ERROR) << "Failed to create " << cache_directory.value() << " directory.";
++      }
++
++      if (!base::CreateDirectory(local_directory)) {
++        LOG(ERROR) << "Failed to create " << local_directory.value() << " directory.";
++      }
++
++      break;
++    }
++    case sandbox::mojom::Sandbox::kRenderer:
++      gfx::InitializeFonts();
++      break;
++    default:
++      break;
++  }
++
++  pre_initialized_ = true;
++}
++
++bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++                                     SandboxLinux::PreSandboxHook hook,
++                                     const Options& options) {
++  DCHECK(!initialize_sandbox_ran_);
++  initialize_sandbox_ran_ = true;
++
++  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++  const std::string process_type =
++      command_line->GetSwitchValueASCII(switches::kProcessType);
++
++  if (command_line->HasSwitch(switches::kNoSandbox))
++    return true;
++
++  VLOG(1) << "SandboxLinux::InitializeSandbox: process_type="
++      << process_type << " sandbox_type=" << GetSandboxTypeInEnglish(sandbox_type);
++
++  // Only one thread is running, pre-initialize if not already done.
++  if (!pre_initialized_)
++    PreinitializeSandbox(sandbox_type);
++
++  // Attempt to limit the future size of the address space of the process.
++  int error = 0;
++  const bool limited_as = LimitAddressSpace(&error);
++  if (error) {
++    // Restore errno. Internally to |LimitAddressSpace|, the errno due to
++    // setrlimit may be lost.
++    errno = error;
++    PCHECK(limited_as);
++  }
++
++  if (hook)
++    CHECK(std::move(hook).Run(options));
++
++  return true;
++}
++
++bool SandboxLinux::LimitAddressSpace(int* error) {
++#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \
++    !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++  if (SandboxTypeFromCommandLine(*command_line) == sandbox::mojom::Sandbox::kNoSandbox) {
++    return false;
++  }
++
++  // Unfortunately, it does not appear possible to set RLIMIT_AS such that it
++  // will both (a) be high enough to support V8's and WebAssembly's address
++  // space requirements while also (b) being low enough to mitigate exploits
++  // using integer overflows that require large allocations, heap spray, or
++  // other memory-hungry attack modes.
++
++  *error = sandbox::ResourceLimits::Lower(
++      RLIMIT_DATA, static_cast<rlim_t>(sandbox::kDataSizeLimit));
++
++  // Cache the resource limit before turning on the sandbox.
++  base::SysInfo::AmountOfVirtualMemory();
++  base::SysInfo::MaxSharedMemorySize();
++
++  return *error == 0;
++#else
++  base::SysInfo::AmountOfVirtualMemory();
++  return false;
++#endif  // !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) &&
++        // !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++}
++
++// static
++std::string SandboxLinux::GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type) {
++  switch (sandbox_type) {
++    case sandbox::mojom::Sandbox::kNoSandbox:
++      return "Unsandboxed";
++    case sandbox::mojom::Sandbox::kRenderer:
++      return "Renderer";
++    case sandbox::mojom::Sandbox::kUtility:
++      return "Utility";
++    case sandbox::mojom::Sandbox::kGpu:
++      return "GPU";
++#if BUILDFLAG(ENABLE_PPAPI)
++    case sandbox::mojom::Sandbox::kPpapi:
++      return "PPAPI";
++#endif
++    case sandbox::mojom::Sandbox::kNetwork:
++      return "Network";
++    case sandbox::mojom::Sandbox::kCdm:
++      return "CDM";
++    case sandbox::mojom::Sandbox::kPrintCompositor:
++      return "Print Compositor";
++    case sandbox::mojom::Sandbox::kAudio:
++      return "Audio";
++    case sandbox::mojom::Sandbox::kSpeechRecognition:
++      return "Speech Recognition";
++    case sandbox::mojom::Sandbox::kService:
++      return "Service";
++    case sandbox::mojom::Sandbox::kVideoCapture:
++      return "Video Capture";
++    default:
++      return "Unknown";
++  }
++}
++
++}  // namespace policy
++}  // namespace sandbox
+diff --git a/sandbox/policy/netbsd/sandbox_netbsd.h b/sandbox/policy/netbsd/sandbox_netbsd.h
+new file mode 100644
+index 0000000000..6d711b24e3
+--- /dev/null
++++ b/sandbox/policy/netbsd/sandbox_netbsd.h
+@@ -0,0 +1,278 @@
++// 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 SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++#define SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/logging.h"
++#include "base/posix/global_descriptors.h"
++#include "sandbox/policy/export.h"
++#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "base/sanitizer_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++namespace base {
++template <typename T>
++struct DefaultSingletonTraits;
++class Thread;
++}  // namespace base
++
++namespace sandbox {
++namespace syscall_broker {
++class BrokerProcess;
++}  // namespace syscall_broker
++}  // namespace sandbox
++
++namespace sandbox {
++namespace policy {
++
++// A singleton class to represent and change our sandboxing state for the
++// three main Linux sandboxes.
++// The sandboxing model allows using two layers of sandboxing. The first layer
++// can be implemented either with unprivileged namespaces or with the setuid
++// sandbox. This class provides a way to engage the namespace sandbox, but does
++// not deal with the legacy setuid sandbox directly.
++// The second layer is mainly based on seccomp-bpf and is engaged with
++// InitializeSandbox(). InitializeSandbox() is also responsible for "sealing"
++// the first layer of sandboxing. That is, InitializeSandbox must always be
++// called to have any meaningful sandboxing at all.
++class SANDBOX_POLICY_EXPORT SandboxLinux {
++ public:
++  // This is a list of sandbox IPC methods which the renderer may send to the
++  // sandbox host. See
++  // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandbox_ipc.md
++  // This isn't the full list, values < 32 are reserved for methods called from
++  // Skia, and values < 64 are reserved for libc_interceptor.cc.
++  enum LinuxSandboxIPCMethods {
++    DEPRECATED_METHOD_GET_FALLBACK_FONT_FOR_CHAR = 64,
++    DEPRECATED_METHOD_GET_CHILD_WITH_INODE,
++    DEPRECATED_METHOD_GET_STYLE_FOR_STRIKE,
++    METHOD_MAKE_SHARED_MEMORY_SEGMENT,
++    DEPRECATED_METHOD_MATCH_WITH_FALLBACK,
++  };
++
++  // These form a bitmask which describes the conditions of the Linux sandbox.
++  // Note: this doesn't strictly give you the current status, it states
++  // what will be enabled when the relevant processes are initialized.
++  enum Status {
++    // SUID sandbox active.
++    kSUID = 1 << 0,
++
++    // Sandbox is using a new PID namespace.
++    kPIDNS = 1 << 1,
++
++    // Sandbox is using a new network namespace.
++    kNetNS = 1 << 2,
++
++    // seccomp-bpf sandbox active.
++    kSeccompBPF = 1 << 3,
++
++    // The Yama LSM module is present and enforcing.
++    kYama = 1 << 4,
++
++    // seccomp-bpf sandbox is active and the kernel supports TSYNC.
++    kSeccompTSYNC = 1 << 5,
++
++    // User namespace sandbox active.
++    kUserNS = 1 << 6,
++
++    // A flag that denotes an invalid sandbox status.
++    kInvalid = 1 << 31,
++  };
++
++  // SandboxLinux Options are a superset of SandboxSecompBPF Options.
++  struct Options : public SandboxSeccompBPF::Options {
++    // When running with a zygote, the namespace sandbox will have already
++    // been engaged prior to initializing SandboxLinux itself, and need not
++    // be done so again. Set to true to indicate that there isn't a zygote
++    // for this process and the step is to be performed here explicitly.
++    bool engage_namespace_sandbox = false;
++
++    // Allow starting the sandbox with multiple threads already running. This
++    // will enable TSYNC for seccomp-BPF, which syncs the seccomp-BPF policy
++    // across all running threads.
++    bool allow_threads_during_sandbox_init = false;
++
++    // Enables the CHECK for open directories. The open directory check is only
++    // useful for the chroot jail (from the semantic layer of the sandbox), and
++    // can safely be disabled if we are only enabling the seccomp-BPF layer.
++    bool check_for_open_directories = true;
++  };
++
++  // Callers can provide this hook to run code right before the policy
++  // is passed to the BPF compiler and the sandbox is engaged. If
++  // pre_sandbox_hook() returns true, the sandbox will be engaged
++  // afterwards, otherwise the process is terminated.
++  using PreSandboxHook = base::OnceCallback<bool(Options)>;
++
++  // Get our singleton instance.
++  static SandboxLinux* GetInstance();
++
++  SandboxLinux(const SandboxLinux&) = delete;
++  SandboxLinux& operator=(const SandboxLinux&) = delete;
++
++  bool SetPledge(const char *pstring, const char *ppath);
++  bool SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type);
++
++  // Do some initialization that can only be done before any of the sandboxes
++  // are enabled. If using the setuid sandbox, this should be called manually
++  // before the setuid sandbox is engaged.
++  // Security: When this runs, it is imperative that either InitializeSandbox()
++  // runs as well or that all file descriptors returned in
++  // GetFileDescriptorsToClose() get closed.
++  // Otherwise file descriptors that bypass the security of the setuid sandbox
++  // would be kept open. One must be particularly careful if a process performs
++  // a fork().
++  void PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type);
++
++  // Check that the current process is the init process of a new PID
++  // namespace and then proceed to drop access to the file system by using
++  // a new unprivileged namespace. This is a layer-1 sandbox.
++  // In order for this sandbox to be effective, it must be "sealed" by calling
++  // InitializeSandbox().
++  void EngageNamespaceSandbox(bool from_zygote);
++
++  // Return a list of file descriptors to close if PreinitializeSandbox() ran
++  // but InitializeSandbox() won't. Avoid using.
++  // TODO(jln): get rid of this hack.
++  std::vector<int> GetFileDescriptorsToClose();
++
++  // Seal an eventual layer-1 sandbox and initialize the layer-2 sandbox with
++  // an adequate policy depending on the process type and command line
++  // arguments.
++  // Currently the layer-2 sandbox is composed of seccomp-bpf and address space
++  // limitations.
++  // This function should only be called without any thread running.
++  bool InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++                         PreSandboxHook hook,
++                         const Options& options);
++
++  // Stop |thread| in a way that can be trusted by the sandbox.
++  void StopThread(base::Thread* thread);
++
++  // Returns the status of the renderer, worker and ppapi sandbox. Can only
++  // be queried after going through PreinitializeSandbox(). This is a bitmask
++  // and uses the constants defined in "enum Status" above. Since the
++  // status needs to be provided before the sandboxes are actually started,
++  // this returns what will actually happen once InitializeSandbox()
++  // is called from inside these processes.
++  int GetStatus();
++
++  static std::string GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type);
++
++  // Returns true if the current process is single-threaded or if the number
++  // of threads cannot be determined.
++  bool IsSingleThreaded() const;
++
++  // Returns true if we started Seccomp BPF.
++  bool seccomp_bpf_started() const;
++
++  // Check the policy and eventually start the seccomp-bpf sandbox. This should
++  // never be called with threads started. If we detect that threads have
++  // started we will crash.
++  bool StartSeccompBPF(sandbox::mojom::Sandbox sandbox_type,
++                       PreSandboxHook hook,
++                       const Options& options);
++
++  // Limit the address space of the current process (and its children) to make
++  // some vulnerabilities harder to exploit. Writes the errno due to setrlimit
++  // (including 0 if no error) into |error|.
++  bool LimitAddressSpace(int* error);
++
++  // Returns a file descriptor to proc. The file descriptor is no longer valid
++  // after the sandbox has been sealed.
++  int proc_fd() const {
++    DCHECK_NE(-1, proc_fd_);
++    return proc_fd_;
++  }
++
++#if BUILDFLAG(USING_SANITIZER)
++  __sanitizer_sandbox_arguments* sanitizer_args() const {
++    return sanitizer_args_.get();
++  };
++#endif
++
++  // A BrokerProcess is a helper that is started before the sandbox is engaged,
++  // typically from a pre-sandbox hook, that will serve requests to access
++  // files over an IPC channel. The client  of this runs from a SIGSYS handler
++  // triggered by the seccomp-bpf sandbox.
++  // |client_sandbox_policy| is the policy being run by the client, and is
++  // used to derive the equivalent broker-side policy.
++  // |broker_side_hook| is an alternate pre-sandbox hook to be run before the
++  // broker itself gets sandboxed, to which the broker side policy and
++  // |options| are passed.
++  // Crashes the process if the broker can not be started since continuation
++  // is impossible (and presumably unsafe).
++  // This should never be destroyed, as after the sandbox is started it is
++  // vital to the process.
++#if 0
++  void StartBrokerProcess(
++      const sandbox::syscall_broker::BrokerCommandSet& allowed_command_set,
++      std::vector<sandbox::syscall_broker::BrokerFilePermission> permissions,
++      PreSandboxHook broker_side_hook,
++      const Options& options);
++
++  sandbox::syscall_broker::BrokerProcess* broker_process() const {
++    return broker_process_;
++  }
++#endif
++
++ private:
++  friend struct base::DefaultSingletonTraits<SandboxLinux>;
++
++  SandboxLinux();
++  ~SandboxLinux();
++
++  // We must have been pre_initialized_ before using these.
++  bool seccomp_bpf_supported() const;
++  bool seccomp_bpf_with_tsync_supported() const;
++
++  // Returns true if it can be determined that the current process has open
++  // directories that are not managed by the SandboxLinux class. This would
++  // be a vulnerability as it would allow to bypass the setuid sandbox.
++  bool HasOpenDirectories() const;
++
++  // The last part of the initialization is to make sure any temporary "hole"
++  // in the sandbox is closed. For now, this consists of closing proc_fd_.
++  void SealSandbox();
++
++  // GetStatus() makes promises as to how the sandbox will behave. This
++  // checks that no promises have been broken.
++  void CheckForBrokenPromises(sandbox::mojom::Sandbox sandbox_type);
++
++  // Stop |thread| and make sure it does not appear in /proc/self/tasks/
++  // anymore.
++  void StopThreadAndEnsureNotCounted(base::Thread* thread) const;
++
++  // A file descriptor to /proc. It's dangerous to have it around as it could
++  // allow for sandbox bypasses. It needs to be closed before we consider
++  // ourselves sandboxed.
++  int proc_fd_;
++
++  bool seccomp_bpf_started_;
++  // The value returned by GetStatus(). Gets computed once and then cached.
++  int sandbox_status_flags_;
++  // Did PreinitializeSandbox() run?
++  bool pre_initialized_;
++  bool seccomp_bpf_supported_;             // Accurate if pre_initialized_.
++  bool seccomp_bpf_with_tsync_supported_;  // Accurate if pre_initialized_.
++  bool yama_is_enforcing_;                 // Accurate if pre_initialized_.
++  bool initialize_sandbox_ran_;            // InitializeSandbox() was called.
++#if BUILDFLAG(USING_SANITIZER)
++  std::unique_ptr<__sanitizer_sandbox_arguments> sanitizer_args_;
++#endif
++  sandbox::syscall_broker::BrokerProcess* broker_process_;  // Leaked as global.
++};
++
++}  // namespace policy
++}  // namespace sandbox
++
++#endif  // SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
+diff --git a/sandbox/policy/openbsd/sandbox_openbsd.cc b/sandbox/policy/openbsd/sandbox_openbsd.cc
+index ba5379fac1..291a14f45f 100644
+--- a/sandbox/policy/openbsd/sandbox_openbsd.cc
++++ b/sandbox/policy/openbsd/sandbox_openbsd.cc
+@@ -65,11 +65,11 @@
+ 
+ #define MAXTOKENS	3
+ 
+-#define _UNVEIL_MAIN		"/etc/chromium/unveil.main";
+-#define _UNVEIL_GPU		"/etc/chromium/unveil.gpu";
+-#define _UNVEIL_UTILITY_NETWORK	"/etc/chromium/unveil.utility_network";
+-#define _UNVEIL_UTILITY_AUDIO	"/etc/chromium/unveil.utility_audio";
+-#define _UNVEIL_UTILITY_VIDEO	"/etc/chromium/unveil.utility_video";
++#define _UNVEIL_MAIN		"@PKG_SYSCONFBASE@/chromium/unveil.main";
++#define _UNVEIL_GPU		"@PKG_SYSCONFBASE@/chromium/unveil.gpu";
++#define _UNVEIL_UTILITY_NETWORK	"@PKG_SYSCONFBASE@/chromium/unveil.utility_network";
++#define _UNVEIL_UTILITY_AUDIO	"@PKG_SYSCONFBASE@/chromium/unveil.utility_audio";
++#define _UNVEIL_UTILITY_VIDEO	"@PKG_SYSCONFBASE@/chromium/unveil.utility_video";
+ 
+ namespace sandbox {
+ namespace policy {
+@@ -320,7 +320,7 @@ bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
+ 
+   switch(sandbox_type) {
+     case sandbox::mojom::Sandbox::kNoSandbox:
+-      SetPledge(NULL, "/etc/chromium/pledge.main");
++      SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.main");
+       break;
+     case sandbox::mojom::Sandbox::kRenderer:
+       // prot_exec needed by v8
+@@ -337,13 +337,13 @@ bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
+       break;
+ #endif
+     case sandbox::mojom::Sandbox::kAudio:
+-      SetPledge(NULL, "/etc/chromium/pledge.utility_audio");
++      SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.utility_audio");
+       break;
+     case sandbox::mojom::Sandbox::kNetwork:
+-      SetPledge(NULL, "/etc/chromium/pledge.utility_network");
++      SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.utility_network");
+       break;
+     case sandbox::mojom::Sandbox::kVideoCapture:
+-      SetPledge(NULL, "/etc/chromium/pledge.utility_video");
++      SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.utility_video");
+       break;
+     case sandbox::mojom::Sandbox::kUtility:
+     case sandbox::mojom::Sandbox::kService:
+diff --git a/sandbox/policy/sandbox.h b/sandbox/policy/sandbox.h
+index 44f331a70f..4a27162638 100644
+--- a/sandbox/policy/sandbox.h
++++ b/sandbox/policy/sandbox.h
+@@ -14,6 +14,8 @@
+ 
+ #if BUILDFLAG(IS_OPENBSD)
+ #include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#elif BUILDFLAG(IS_NETBSD)
++#include "sandbox/policy/netbsd/sandbox_netbsd.h"
+ #elif BUILDFLAG(IS_FREEBSD)
+ #include "sandbox/policy/freebsd/sandbox_freebsd.h"
+ #endif
+diff --git a/services/device/hid/BUILD.gn b/services/device/hid/BUILD.gn
+index 1215615a54..38e1e14aca 100644
+--- a/services/device/hid/BUILD.gn
++++ b/services/device/hid/BUILD.gn
+@@ -55,6 +55,15 @@ source_set("hid") {
+     ]
+   }
+ 
++#  if (is_netbsd) {
++#    sources += [
++#      "hid_connection_netbsd.cc",
++#      "hid_connection_netbsd.h",
++#      "hid_service_netbsd.cc",
++#      "hid_service_netbsd.h",
++#    ]
++#  }
++
+   if ((is_linux || is_chromeos) && !is_bsd && use_udev) {
+     sources += [
+       "hid_connection_linux.cc",
+diff --git a/services/device/hid/hid_connection_netbsd.cc b/services/device/hid/hid_connection_netbsd.cc
+new file mode 100644
+index 0000000000..941a0f7eee
+--- /dev/null
++++ b/services/device/hid/hid_connection_netbsd.cc
+@@ -0,0 +1,240 @@
++// 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 "services/device/hid/hid_connection_netbsd.h"
++
++#include <dev/usb/usbhid.h>
++#include <dev/usb/usb_ioctl.h>
++
++#include "base/files/file_descriptor_watcher_posix.h"
++#include "base/location.h"
++#include "base/numerics/safe_math.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/stringprintf.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "base/threading/thread_restrictions.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/hid/hid_service.h"
++
++namespace device {
++
++class HidConnectionNetBSD::BlockingTaskRunnerHelper {
++ public:
++  BlockingTaskRunnerHelper(base::ScopedFD fd,
++                     scoped_refptr<HidDeviceInfo> device_info,
++                     base::WeakPtr<HidConnectionNetBSD> connection)
++      : fd_(std::move(fd)),
++        connection_(connection),
++	origin_task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++    DETACH_FROM_SEQUENCE(sequence_checker_);
++    // Report buffers must always have room for the report ID.
++    report_buffer_size_ = device_info->max_input_report_size() + 1;
++    has_report_id_ = device_info->has_report_id();
++  }
++
++  BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++  BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++  ~BlockingTaskRunnerHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); }
++
++  // Starts the FileDescriptorWatcher that reads input events from the device.
++  // Must be called on a thread that has a base::MessageLoopForIO.
++  void Start() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::internal::AssertBlockingAllowed();
++
++    file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
++        fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnFileCanReadWithoutBlocking,
++                                       base::Unretained(this)));
++  }
++
++  void Write(scoped_refptr<base::RefCountedBytes> buffer,
++             WriteCallback callback) {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++
++    auto data = buffer->as_vector().data();
++    size_t size = buffer->size();
++    // if report id is 0, it shouldn't be included
++    if (data[0] == 0) {
++      data++;
++      size--;
++    }
++
++    ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size));
++    if (result < 0) {
++      HID_PLOG(EVENT) << "Write failed";
++      origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false));
++    } else {
++      if (static_cast<size_t>(result) != size)
++        HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size;
++      origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true));
++    }
++  }
++
++  void GetFeatureReport(uint8_t report_id,
++                        scoped_refptr<base::RefCountedBytes> buffer,
++                        ReadCallback callback) {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++    struct usb_gen_descriptor ugd;
++    ugd.ugd_report_type = UHID_FEATURE_REPORT;
++    ugd.ugd_data = buffer->as_vector().data();
++    ugd.ugd_maxlen = buffer->size();
++    int result = HANDLE_EINTR(
++        ioctl(fd_.get(), USB_GET_REPORT, &ugd));
++    if (result < 0) {
++      HID_PLOG(EVENT) << "Failed to get feature report";
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), false, nullptr, 0));
++    } else if (result == 0) {
++      HID_LOG(EVENT) << "Get feature result too short.";
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), false, nullptr, 0));
++    } else {
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), true, buffer, result));
++    }
++  }
++
++  void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++                         WriteCallback callback) {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    struct usb_gen_descriptor ugd;
++    ugd.ugd_report_type = UHID_FEATURE_REPORT;
++    ugd.ugd_data = buffer->as_vector().data();
++    ugd.ugd_maxlen = buffer->size();
++    // NetBSD does not require report id if it's not used
++    if (buffer->data()[0] == 0) {
++      ugd.ugd_data = buffer->as_vector().data() + 1;
++      ugd.ugd_maxlen = buffer->size() - 1;
++    } else {
++      ugd.ugd_data = buffer->as_vector().data();
++      ugd.ugd_maxlen = buffer->size();
++    }
++    int result = HANDLE_EINTR(
++        ioctl(fd_.get(), USB_SET_REPORT, &ugd));
++    if (result < 0) {
++      HID_PLOG(EVENT) << "Failed to send feature report";
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), false));
++    } else {
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), true));
++    }
++  }
++
++ private:
++  void OnFileCanReadWithoutBlocking() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++    scoped_refptr<base::RefCountedBytes> buffer(new base::RefCountedBytes(report_buffer_size_));
++    unsigned char* data = buffer->as_vector().data();
++    size_t length = report_buffer_size_;
++    if (!has_report_id_) {
++      // NetBSD will not prefix the buffer with a report ID if report IDs are not
++      // used by the device. Prefix the buffer with 0.
++      *data++ = 0;
++      length--;
++    }
++
++    ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length));
++    if (bytes_read < 0) {
++      if (errno != EAGAIN) {
++        HID_PLOG(EVENT) << "Read failed";
++        // This assumes that the error is unrecoverable and disables reading
++        // from the device until it has been re-opened.
++        // TODO(reillyg): Investigate starting and stopping the file descriptor
++        // watcher in response to pending read requests so that per-request
++        // errors can be returned to the client.
++        file_watcher_.reset();
++      }
++      return;
++    }
++    if (!has_report_id_) {
++      // Behave as if the byte prefixed above as the the report ID was read.
++      bytes_read++;
++    }
++
++    origin_task_runner_->PostTask(
++        FROM_HERE, base::BindOnce(&HidConnectionNetBSD::ProcessInputReport,
++                              connection_, buffer, bytes_read));
++  }
++
++  SEQUENCE_CHECKER(sequence_checker_);
++  base::ScopedFD fd_;
++  size_t report_buffer_size_;
++  bool has_report_id_;
++  base::WeakPtr<HidConnectionNetBSD> connection_;
++  const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_;
++  std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
++};
++
++HidConnectionNetBSD::HidConnectionNetBSD(
++    scoped_refptr<HidDeviceInfo> device_info,
++    base::ScopedFD fd,
++    scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++    bool allow_protected_reports,
++    bool allow_fido_reports)
++    : HidConnection(device_info, allow_protected_reports, allow_fido_reports),
++      helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner)),
++      blocking_task_runner_(std::move(blocking_task_runner)) {
++  helper_.reset(new BlockingTaskRunnerHelper(std::move(fd), device_info,
++                                                 weak_factory_.GetWeakPtr()));
++  blocking_task_runner_->PostTask(
++      FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start,
++                                base::Unretained(helper_.get())));
++}
++
++HidConnectionNetBSD::~HidConnectionNetBSD() {}
++
++void HidConnectionNetBSD::PlatformClose() {
++  // By closing the device on the blocking task runner 1) the requirement that
++  // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied
++  // and 2) any tasks posted to this task runner that refer to this file will
++  // complete before it is closed.
++  blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release());
++}
++
++void HidConnectionNetBSD::PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
++                                     WriteCallback callback) {
++
++  blocking_task_runner_->PostTask(
++      FROM_HERE,
++      base::BindOnce(&BlockingTaskRunnerHelper::Write, base::Unretained(helper_.get()),
++                 buffer, std::move(callback)));
++}
++
++void HidConnectionNetBSD::PlatformGetFeatureReport(uint8_t report_id,
++                                                ReadCallback callback) {
++  // The first byte of the destination buffer is the report ID being requested
++  // and is overwritten by the feature report.
++  DCHECK_GT(device_info()->max_feature_report_size(), 0u);
++  scoped_refptr<base::RefCountedBytes> buffer(
++      new base::RefCountedBytes(device_info()->max_feature_report_size() + 1));
++  if (report_id != 0)
++    buffer->as_vector().data()[0] = report_id;
++
++  blocking_task_runner_->PostTask(
++      FROM_HERE,
++      base::BindOnce(&BlockingTaskRunnerHelper::GetFeatureReport,
++                 base::Unretained(helper_.get()), report_id,
++                 buffer, std::move(callback)));
++}
++
++void HidConnectionNetBSD::PlatformSendFeatureReport(
++    scoped_refptr<base::RefCountedBytes> buffer,
++    WriteCallback callback) {
++  base::ScopedBlockingCall scoped_blocking_call(
++      FROM_HERE, base::BlockingType::MAY_BLOCK);
++  blocking_task_runner_->PostTask(
++      FROM_HERE,
++      base::BindOnce(&BlockingTaskRunnerHelper::SendFeatureReport,
++                 base::Unretained(helper_.get()), buffer, std::move(callback)));
++}
++
++}  // namespace device
+diff --git a/services/device/hid/hid_connection_netbsd.h b/services/device/hid/hid_connection_netbsd.h
+new file mode 100644
+index 0000000000..ab38024093
+--- /dev/null
++++ b/services/device/hid/hid_connection_netbsd.h
+@@ -0,0 +1,67 @@
++// 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 DEVICE_HID_HID_CONNECTION_NETBSD_H_
++#define DEVICE_HID_HID_CONNECTION_NETBSD_H_
++
++#include <stddef.h>
++#include <stdint.h>
++
++#include "base/files/scoped_file.h"
++#include "base/memory/weak_ptr.h"
++#include "base/memory/ref_counted_memory.h"
++#include "base/task/sequenced_task_runner.h"
++#include "services/device/hid/hid_connection.h"
++
++namespace base {
++class SequencedTaskRunner;
++}
++
++namespace net {
++class IOBuffer;
++}
++
++namespace device {
++
++class HidConnectionNetBSD : public HidConnection {
++ public:
++  HidConnectionNetBSD(
++      scoped_refptr<HidDeviceInfo> device_info,
++      base::ScopedFD fd,
++      scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++      bool allow_protected_reports,
++      bool allow_fido_reports);
++
++ private:
++  friend class base::RefCountedThreadSafe<HidConnectionNetBSD>;
++  class BlockingTaskRunnerHelper;
++
++  HidConnectionNetBSD(const HidConnectionNetBSD&) = delete;
++  HidConnectionNetBSD& operator=(const HidConnectionNetBSD&) = delete;
++
++  ~HidConnectionNetBSD() override;
++
++  // HidConnection implementation.
++  void PlatformClose() override;
++  void PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
++                     WriteCallback callback) override;
++  void PlatformGetFeatureReport(uint8_t report_id,
++                                ReadCallback callback) override;
++  void PlatformSendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++                                 WriteCallback callback) override;
++
++  // |helper_| lives on the sequence to which |blocking_task_runner_| posts
++  // tasks so all calls must be posted there including this object's
++  // destruction.
++  std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++
++  const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
++  const scoped_refptr<base::SequencedTaskRunner> task_runner_;
++
++  base::WeakPtrFactory<HidConnectionNetBSD> weak_factory_{this};
++};
++
++}  // namespace device
++
++#endif  // DEVICE_HID_HID_CONNECTION_FREEBSD_H_
+diff --git a/services/device/hid/hid_service_freebsd.cc b/services/device/hid/hid_service_freebsd.cc
+index 0b6bf3b4ce..d7a6ee97af 100644
+--- a/services/device/hid/hid_service_freebsd.cc
++++ b/services/device/hid/hid_service_freebsd.cc
+@@ -228,7 +228,7 @@ class HidServiceFreeBSD::BlockingTaskRunnerHelper {
+     struct sockaddr_un sa;
+ 
+     sa.sun_family = AF_UNIX;
+-    strlcpy(sa.sun_path, "/var/run/devd.seqpacket.pipe", sizeof(sa.sun_path));
++    strlcpy(sa.sun_path, "@VARBASE@/run/devd.seqpacket.pipe", sizeof(sa.sun_path));
+     if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) {
+       close(devd_fd);
+       return;
+diff --git a/services/device/hid/hid_service_netbsd.cc b/services/device/hid/hid_service_netbsd.cc
+new file mode 100644
+index 0000000000..5f0a890e57
+--- /dev/null
++++ b/services/device/hid/hid_service_netbsd.cc
+@@ -0,0 +1,395 @@
++// 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 "services/device/hid/hid_service_netbsd.h"
++
++#include <dev/usb/usb_ioctl.h>
++#include <stdint.h>
++#include <sys/socket.h>
++#include <sys/un.h>
++
++#include <set>
++#include <string>
++#include <vector>
++
++#include "base/files/file_descriptor_watcher_posix.h"
++#include "base/files/file_enumerator.h"
++#include "base/files/file_util.h"
++#include "base/files/file.h"
++#include "base/location.h"
++#include "base/logging.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/stl_util.h"
++#include "base/strings/pattern.h"
++#include "base/strings/stringprintf.h"
++#include "base/strings/sys_string_conversions.h"
++#include "base/strings/string_util.h"
++#include "base/strings/string_split.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/task/thread_pool.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "base/threading/thread_restrictions.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/hid/hid_connection_netbsd.h"
++
++const int kMaxPermissionChecks = 5;
++
++namespace device {
++
++struct HidServiceNetBSD::ConnectParams {
++  ConnectParams(scoped_refptr<HidDeviceInfo> device_info,
++                bool allow_protected_reports,
++		bool allow_fido_reports,
++                ConnectCallback callback)
++      : device_info(std::move(device_info)),
++	allow_protected_reports(allow_protected_reports),
++	allow_fido_reports(allow_fido_reports),
++        callback(std::move(callback)),
++	task_runner(base::SequencedTaskRunner::GetCurrentDefault()),
++        blocking_task_runner(
++            base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)) {}
++  ~ConnectParams() {}
++
++  scoped_refptr<HidDeviceInfo> device_info;
++  bool allow_protected_reports;
++  bool allow_fido_reports;
++  ConnectCallback callback;
++  scoped_refptr<base::SequencedTaskRunner> task_runner;
++  scoped_refptr<base::SequencedTaskRunner> blocking_task_runner;
++  base::ScopedFD fd;
++};
++
++class HidServiceNetBSD::BlockingTaskRunnerHelper {
++ public:
++  BlockingTaskRunnerHelper(base::WeakPtr<HidServiceNetBSD> service)
++      : service_(std::move(service)),
++	task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++    DETACH_FROM_SEQUENCE(sequence_checker_);
++
++    timer_.reset(new base::RepeatingTimer());
++    devd_buffer_ = new net::IOBufferWithSize(1024);
++  }
++
++  BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++  BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++  ~BlockingTaskRunnerHelper() {
++  }
++
++  void Start() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++    const base::FilePath kDevRoot("/dev");
++    const std::string kUHIDPattern("/dev/uhid*");
++
++    base::FileEnumerator enumerator(kDevRoot, false, base::FileEnumerator::FILES);
++    do {
++      const base::FilePath next_device_path(enumerator.Next());
++      const std::string next_device = next_device_path.value();
++      if (next_device.empty())
++        break;
++
++      if (base::MatchPattern(next_device, kUHIDPattern))
++        OnDeviceAdded(next_device.substr(5));
++    } while (true);
++
++    SetupDevdMonitor();
++
++    task_runner_->PostTask(
++        FROM_HERE,
++        base::BindOnce(&HidServiceNetBSD::FirstEnumerationComplete, service_));
++  }
++
++  bool HaveReadWritePermissions(std::string device_id) {
++    std::string device_node = "/dev/" + device_id;
++    base::internal::AssertBlockingAllowed();
++
++    base::FilePath device_path(device_node);
++    base::File device_file;
++    int flags =
++        base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++    device_file.Initialize(device_path, flags);
++    if (!device_file.IsValid())
++      return false;
++
++    return true;
++  }
++
++  void OnDeviceAdded(std::string device_id) {
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++    std::string device_node = "/dev/" + device_id;
++    uint16_t vendor_id = 0xffff;
++    uint16_t product_id = 0xffff;
++    std::string product_name = "";
++    std::string serial_number = "";
++
++    std::vector<uint8_t> report_descriptor;
++
++    base::internal::AssertBlockingAllowed();
++
++    base::FilePath device_path(device_node);
++    base::File device_file;
++    int flags =
++        base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++    device_file.Initialize(device_path, flags);
++    if (!device_file.IsValid()) {
++      HID_LOG(ERROR) << "Failed to open '" << device_node
++                     << "': "
++                     << base::File::ErrorToString(device_file.error_details());
++      return;
++    }
++
++    base::ScopedFD fd;
++    fd.reset(device_file.TakePlatformFile());
++
++    struct usb_gen_descriptor ugd;
++    ugd.ugd_data = NULL;
++    ugd.ugd_maxlen = 0xffff;
++    int result = HANDLE_EINTR(
++        ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd));
++
++    if (result < 0) {
++      HID_LOG(ERROR) << "Failed to get report descriptor size";
++      return;
++    }
++
++    report_descriptor.resize(ugd.ugd_actlen);
++
++    ugd.ugd_data = report_descriptor.data();
++    ugd.ugd_maxlen = ugd.ugd_actlen;
++    result = HANDLE_EINTR(
++        ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd));
++
++    if (result < 0) {
++      HID_LOG(ERROR) << "Failed to get report descriptor";
++      return;
++    }
++
++    scoped_refptr<HidDeviceInfo> device_info(new HidDeviceInfo(
++        device_id,
++        /*physical_device_id*/"",
++	vendor_id,
++	product_id,
++	product_name,
++	serial_number,
++        device::mojom::HidBusType::kHIDBusTypeUSB,
++        report_descriptor,
++	device_node));
++
++    task_runner_->PostTask(FROM_HERE, base::BindOnce(&HidServiceNetBSD::AddDevice,
++                                                 service_, device_info));
++  }
++
++  void OnDeviceRemoved(std::string device_id) {
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++    task_runner_->PostTask(
++        FROM_HERE, base::BindOnce(&HidServiceNetBSD::RemoveDevice, service_,
++                                  device_id));
++  }
++
++ private:
++
++  void CheckPendingPermissionChange() {
++    base::internal::AssertBlockingAllowed();
++    std::map<std::string, int>::iterator it;
++    for (it = permissions_checks_attempts_.begin(); it != permissions_checks_attempts_.end();) {
++      std::string device_name = it->first;
++      bool keep = true;
++      if (HaveReadWritePermissions(device_name)) {
++        OnDeviceAdded(device_name);
++        keep = false;
++      }
++      else if (it->second-- <= 0) {
++        HID_LOG(ERROR) << "Still don't have write permissions to '" << device_name
++                       << "' after " << kMaxPermissionChecks << " attempts";
++        keep = false;
++      }
++
++      if (keep)
++        ++it;
++      else
++        permissions_checks_attempts_.erase(it++);
++    }
++
++    if (permissions_checks_attempts_.empty())
++      timer_->Stop();
++  }
++
++  void SetupDevdMonitor() {
++    base::internal::AssertBlockingAllowed();
++
++    int devd_fd = socket(AF_UNIX, SOCK_SEQPACKET, 0);
++    if (devd_fd < 0)
++      return;
++
++    struct sockaddr_un sa;
++
++    sa.sun_family = AF_UNIX;
++    strlcpy(sa.sun_path, "@VARBASE@/run/devd.seqpacket.pipe", sizeof(sa.sun_path));
++    if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) {
++      close(devd_fd);
++      return;
++    }
++
++    devd_fd_.reset(devd_fd);
++    file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
++        devd_fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnDevdMessageCanBeRead,
++                                            base::Unretained(this)));
++  }
++
++  void OnDevdMessageCanBeRead() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    ssize_t bytes_read = HANDLE_EINTR(recv(devd_fd_.get(), devd_buffer_->data(),
++                                      devd_buffer_->size() - 1, MSG_WAITALL));
++    if (bytes_read < 0) {
++      if (errno != EAGAIN) {
++        HID_LOG(ERROR) << "Read failed";
++        file_watcher_.reset();
++      }
++      return;
++    }
++
++    devd_buffer_->data()[bytes_read] = 0;
++    char *data = devd_buffer_->data();
++    // It may take some time for devd to change permissions
++    // on /dev/uhidX node. So do not fail immediately if
++    // open fail. Retry each second for kMaxPermissionChecks
++    // times before giving up entirely
++    if (base::StartsWith(data, "+uhid", base::CompareCase::SENSITIVE)) {
++      std::vector<std::string> parts = base::SplitString(
++        data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
++      if (!parts.empty()) {
++        std::string device_name = parts[0].substr(1); // skip '+'
++        if (HaveReadWritePermissions(device_name))
++          OnDeviceAdded(parts[0].substr(1));
++        else {
++          // Do not re-add to checks
++          if (permissions_checks_attempts_.find(device_name) == permissions_checks_attempts_.end()) {
++            permissions_checks_attempts_.insert(std::pair<std::string, int>(device_name, kMaxPermissionChecks));
++            timer_->Start(FROM_HERE, base::Seconds(1),
++                          this, &BlockingTaskRunnerHelper::CheckPendingPermissionChange);
++          }
++        }
++      }
++    }
++
++    if (base::StartsWith(data, "-uhid", base::CompareCase::SENSITIVE)) {
++      std::vector<std::string> parts = base::SplitString(
++        data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
++      if (!parts.empty()) {
++        std::string device_name = parts[0].substr(1); // skip '-'
++        auto it = permissions_checks_attempts_.find(device_name);
++        if (it != permissions_checks_attempts_.end()) {
++          permissions_checks_attempts_.erase(it);
++          if (permissions_checks_attempts_.empty())
++            timer_->Stop();
++        }
++        OnDeviceRemoved(parts[0].substr(1));
++      }
++    }
++  }
++
++  SEQUENCE_CHECKER(sequence_checker_);
++
++  // This weak pointer is only valid when checked on this task runner.
++  base::WeakPtr<HidServiceNetBSD> service_;
++  scoped_refptr<base::SequencedTaskRunner> task_runner_;
++  std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
++  std::unique_ptr<base::RepeatingTimer> timer_;
++  base::ScopedFD devd_fd_;
++  scoped_refptr<net::IOBufferWithSize> devd_buffer_;
++  std::map<std::string, int> permissions_checks_attempts_;
++};
++
++HidServiceNetBSD::HidServiceNetBSD()
++    : blocking_task_runner_(
++          base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)),
++      helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)) {
++  helper_.reset(new BlockingTaskRunnerHelper(weak_factory_.GetWeakPtr()));
++  blocking_task_runner_->PostTask(
++      FROM_HERE,
++      base::BindOnce(&BlockingTaskRunnerHelper::Start, base::Unretained(helper_.get())));
++}
++
++HidServiceNetBSD::~HidServiceNetBSD() {
++  blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release());
++}
++
++base::WeakPtr<HidService> HidServiceNetBSD::GetWeakPtr() {
++  return weak_factory_.GetWeakPtr();
++}
++
++// static
++void HidServiceNetBSD::OpenOnBlockingThread(
++    std::unique_ptr<ConnectParams> params) {
++  base::ScopedBlockingCall scoped_blocking_call(
++      FROM_HERE, base::BlockingType::MAY_BLOCK);
++  scoped_refptr<base::SequencedTaskRunner> task_runner = params->task_runner;
++
++  base::FilePath device_path(params->device_info->device_node());
++  base::File device_file;
++  int flags =
++      base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++  device_file.Initialize(device_path, flags);
++  if (!device_file.IsValid()) {
++    HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node()
++                   << "': "
++                   << base::File::ErrorToString(device_file.error_details());
++    task_runner->PostTask(FROM_HERE,
++		          base::BindOnce(std::move(params->callback), nullptr));
++    return;
++  }
++  params->fd.reset(device_file.TakePlatformFile());
++  task_runner->PostTask(FROM_HERE, base::BindOnce(&HidServiceNetBSD::FinishOpen,
++			                          std::move(params)));
++}
++
++void HidServiceNetBSD::Connect(const std::string& device_guid,
++                                bool allow_protected_reports,
++				bool allow_fido_reports,
++                                ConnectCallback callback) {
++  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++  const auto& map_entry = devices().find(device_guid);
++  if (map_entry == devices().end()) {
++    base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
++        FROM_HERE, base::BindOnce(std::move(callback), nullptr));
++    return;
++  }
++
++  scoped_refptr<HidDeviceInfo> device_info = map_entry->second;
++
++  auto params = std::make_unique<ConnectParams>(device_info,
++                                                allow_protected_reports,
++						allow_fido_reports,
++						std::move(callback));
++  scoped_refptr<base::SequencedTaskRunner> blocking_task_runner =
++      params->blocking_task_runner;
++
++  blocking_task_runner->PostTask(
++      FROM_HERE, base::BindOnce(&HidServiceNetBSD::OpenOnBlockingThread,
++                                std::move(params)));
++}
++
++// static
++void HidServiceNetBSD::FinishOpen(std::unique_ptr<ConnectParams> params) {
++  DCHECK(params->fd.is_valid());
++
++  if (!base::SetNonBlocking(params->fd.get())) {
++    HID_PLOG(ERROR) << "Failed to set the non-blocking flag on the device fd";
++    std::move(params->callback).Run(nullptr);
++  }
++
++  std::move(params->callback).Run(base::MakeRefCounted<HidConnectionNetBSD>(
++    std::move(params->device_info),
++    std::move(params->fd),
++    std::move(params->blocking_task_runner),
++    params->allow_protected_reports,
++    params->allow_fido_reports
++  ));
++}
++
++}  // namespace device
+diff --git a/services/device/hid/hid_service_netbsd.h b/services/device/hid/hid_service_netbsd.h
+new file mode 100644
+index 0000000000..917394c54b
+--- /dev/null
++++ b/services/device/hid/hid_service_netbsd.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 DEVICE_HID_HID_SERVICE_NETBSD_H_
++#define DEVICE_HID_HID_SERVICE_NETBSD_H_
++
++#include <string>
++
++#include "base/memory/ref_counted.h"
++#include "base/memory/weak_ptr.h"
++#include "base/timer/timer.h"
++#include "services/device/hid/hid_service.h"
++#include "net/base/io_buffer.h"
++
++namespace device {
++
++class HidServiceNetBSD : public HidService {
++ public:
++  HidServiceNetBSD();
++
++  HidServiceNetBSD(const HidServiceNetBSD&) = delete;
++  HidServiceNetBSD& operator=(const HidServiceNetBSD&) = delete;
++
++  ~HidServiceNetBSD() override;
++
++  void Connect(const std::string& device_guid,
++               bool allow_protected_reports,
++	       bool allow_fido_reports,
++               ConnectCallback connect) override;
++  base::WeakPtr<HidService> GetWeakPtr() override;
++
++ private:
++  struct ConnectParams;
++  class BlockingTaskRunnerHelper;
++
++  static void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params);
++  static void FinishOpen(std::unique_ptr<ConnectParams> params);
++
++  const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
++  // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds
++  // a weak reference back to the service that owns it.
++  std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++  base::WeakPtrFactory<HidServiceNetBSD> weak_factory_{this};
++};
++
++}  // namespace device
++
++#endif  // DEVICE_HID_HID_SERVICE_FREEBSD_H_
+diff --git a/services/device/time_zone_monitor/time_zone_monitor_linux.cc b/services/device/time_zone_monitor/time_zone_monitor_linux.cc
+index a01a691ac4..e9ae5da25d 100644
+--- a/services/device/time_zone_monitor/time_zone_monitor_linux.cc
++++ b/services/device/time_zone_monitor/time_zone_monitor_linux.cc
+@@ -132,7 +132,7 @@ class TimeZoneMonitorLinuxImpl
+     // reasonable.
+     const char* const kFilesToWatch[] = {
+ #if BUILDFLAG(IS_BSD)
+-        "/etc/localtime",
++        "@PKG_SYSCONFBASE@/localtime",
+ #else
+         "/etc/localtime", "/etc/timezone", "/etc/TZ",
+ #endif
+diff --git a/services/device/usb/BUILD.gn b/services/device/usb/BUILD.gn
+index 7d9063bffa..af677e3e3f 100644
+--- a/services/device/usb/BUILD.gn
++++ b/services/device/usb/BUILD.gn
+@@ -114,7 +114,7 @@ static_library("usb") {
+     deps += [ "//third_party/libusb" ]
+   }
+ 
+-  if (is_freebsd) {
++  if (is_freebsd || is_netbsd) {
+     sources += [
+       "usb_service_fake.cc",
+       "usb_service_fake.h",
+diff --git a/services/device/usb/usb_service.cc b/services/device/usb/usb_service.cc
+index f9d9ab14d2..ee0070823f 100644
+--- a/services/device/usb/usb_service.cc
++++ b/services/device/usb/usb_service.cc
+@@ -28,7 +28,7 @@
+ #include "services/device/usb/usb_service_win.h"
+ #elif BUILDFLAG(IS_OPENBSD)
+ #include "services/device/usb/usb_service_impl.h"
+-#elif BUILDFLAG(IS_FREEBSD)
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ #include "services/device/usb/usb_service_fake.h"
+ #endif
+ 
+diff --git a/services/network/network_sandbox_hook_linux.h b/services/network/network_sandbox_hook_linux.h
+index 9d39bb72c6..20ff2dfaea 100644
+--- a/services/network/network_sandbox_hook_linux.h
++++ b/services/network/network_sandbox_hook_linux.h
+@@ -6,7 +6,7 @@
+ #define SERVICES_NETWORK_NETWORK_SANDBOX_HOOK_LINUX_H_
+ 
+ #include "base/component_export.h"
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include "sandbox/policy/sandbox.h"
+ #else
+ #include "sandbox/policy/linux/sandbox_linux.h"
+diff --git a/services/network/public/cpp/BUILD.gn b/services/network/public/cpp/BUILD.gn
+index dd3d7b9495..4cfb59af75 100644
+--- a/services/network/public/cpp/BUILD.gn
++++ b/services/network/public/cpp/BUILD.gn
+@@ -637,7 +637,7 @@ source_set("tests") {
+     ]
+   }
+ 
+-  if (is_linux) {
++  if ((is_linux) && !is_bsd) {
+     sources += [ "network_interface_change_listener_mojom_traits_unittest.cc" ]
+   }
+ 
+diff --git a/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc b/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc
+index 8420decc95..102c9586a7 100644
+--- a/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc
++++ b/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc
+@@ -12,7 +12,7 @@
+ 
+ #include <vector>
+ 
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #define vm_rssize info.p_vm_rssize
+ #elif BUILDFLAG(IS_FREEBSD)
+ #include <sys/user.h>
+@@ -28,13 +28,21 @@ bool OSMetrics::FillOSMemoryDump(base::ProcessId pid,
+                               ? base::Process::Current()
+                               : base::Process::Open(pid);
+   const size_t kPageSize = base::GetPageSize();
++#if BUILDFLAG(IS_NETBSD)
++  struct kinfo_proc2 info;
++  size_t length = sizeof(struct kinfo_proc2);
++#else
+   struct kinfo_proc info;
+   size_t length = sizeof(struct kinfo_proc);
++#endif
+ #if BUILDFLAG(IS_OPENBSD)
+   int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process.Handle(),
+                 static_cast<int>(length), 1 };
+ #elif BUILDFLAG(IS_FREEBSD)
+   int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process.Handle() };
++#elif BUILDFLAG(IS_NETBSD)
++  int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process.Handle(),
++                sizeof(struct kinfo_proc2), 1 };
+ #endif
+ 
+   if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
+diff --git a/skia/ext/platform_canvas.h b/skia/ext/platform_canvas.h
+index 34d8b858f5..4a14221dbd 100644
+--- a/skia/ext/platform_canvas.h
++++ b/skia/ext/platform_canvas.h
+@@ -58,7 +58,7 @@ SK_API HDC GetNativeDrawingContext(SkCanvas* canvas);
+ 
+ #elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || \
+     defined(__sun) || defined(ANDROID) || defined(__APPLE__) ||             \
+-    defined(__Fuchsia__)
++    defined(__Fuchsia__) || defined(__NetBSD__)
+ // Construct a canvas from the given memory region. The memory is not cleared
+ // first. @data must be, at least, @height * StrideForWidth(@width) bytes.
+ SK_API std::unique_ptr<SkCanvas> CreatePlatformCanvasWithPixels(
+diff --git a/third_party/abseil-cpp/absl/base/internal/raw_logging.cc b/third_party/abseil-cpp/absl/base/internal/raw_logging.cc
+index d32b40a8bb..d2b3b1faa5 100644
+--- a/third_party/abseil-cpp/absl/base/internal/raw_logging.cc
++++ b/third_party/abseil-cpp/absl/base/internal/raw_logging.cc
+@@ -44,7 +44,7 @@
+ #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
+     defined(__hexagon__) || defined(__Fuchsia__) ||                     \
+     defined(__native_client__) || defined(__OpenBSD__) ||               \
+-    defined(__EMSCRIPTEN__) || defined(__ASYLO__)
++    defined(__EMSCRIPTEN__) || defined(__ASYLO__) || defined(__NetBSD__)
+ 
+ #include <unistd.h>
+ 
+diff --git a/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h b/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h
+index 0272f0305d..c8816e30d5 100644
+--- a/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h
++++ b/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h
+@@ -34,7 +34,8 @@
+ #if defined(__ELF__) && !defined(__OpenBSD__) && !defined(__QNX__) && \
+     !defined(__native_client__) && !defined(__asmjs__) &&             \
+     !defined(__wasm__) && !defined(__HAIKU__) && !defined(__sun) &&   \
+-    !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__FreeBSD__)
++    !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__FreeBSD__) && \
++    !defined(__NetBSD__)
+ #define ABSL_HAVE_ELF_MEM_IMAGE 1
+ #endif
+ 
+diff --git a/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc b/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc
+index e7e30a2fb7..f2c751009a 100644
+--- a/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc
++++ b/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc
+@@ -19,7 +19,8 @@
+ #endif
+ 
+ #if defined(HAS_STRPTIME) && HAS_STRPTIME
+-#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
++#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && \
++    !defined(__NetBSD__)
+ #define _XOPEN_SOURCE 500  // Exposes definitions for SUSv2 (UNIX 98).
+ #endif
+ #endif
+diff --git a/third_party/afl/src/afl-fuzz.c b/third_party/afl/src/afl-fuzz.c
+index a787f9a685..30f0d59f73 100644
+--- a/third_party/afl/src/afl-fuzz.c
++++ b/third_party/afl/src/afl-fuzz.c
+@@ -58,7 +58,8 @@
+ #include <sys/ioctl.h>
+ #include <sys/file.h>
+ 
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++    defined (__NetBSD__)
+ #  include <sys/sysctl.h>
+ #endif /* __APPLE__ || __FreeBSD__ || __OpenBSD__ */
+ 
+@@ -3531,7 +3532,8 @@ static double get_runnable_processes(void) {
+ 
+   static double res;
+ 
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++    defined (__NetBSD__)
+ 
+   /* I don't see any portable sysctl or so that would quickly give us the
+      number of runnable processes; the 1-minute load average can be a
+@@ -7347,7 +7349,8 @@ static void get_core_count(void) {
+ 
+   u32 cur_runnable = 0;
+ 
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++    defined (__NetBSD__)
+ 
+   size_t s = sizeof(cpu_core_count);
+ 
+@@ -7392,7 +7395,8 @@ static void get_core_count(void) {
+ 
+     cur_runnable = (u32)get_runnable_processes();
+ 
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++    defined (__NetBSD__)
+ 
+     /* Add ourselves, since the 1-minute average doesn't include that yet. */
+ 
+diff --git a/third_party/angle/src/common/platform.h b/third_party/angle/src/common/platform.h
+index 08078b3d8b..4ffd458d4d 100644
+--- a/third_party/angle/src/common/platform.h
++++ b/third_party/angle/src/common/platform.h
+@@ -30,12 +30,15 @@
+ #    define ANGLE_PLATFORM_OPENBSD 1
+ #    define ANGLE_PLATFORM_POSIX 1
+ #    define ANGLE_PLATFORM_BSD 1
++#elif defined(__NetBSD__)
++#    define ANGLE_PLATFORM_NETBSD 1
++#    define ANGLE_PLATFORM_POSIX 1
++#    define ANGLE_PLATFORM_BSD 1
+ #elif defined(__FreeBSD__)
+ #    define ANGLE_PLATFORM_FREEBSD 1
+ #    define ANGLE_PLATFORM_POSIX 1
+ #    define ANGLE_PLATFORM_BSD 1
+-#elif defined(__NetBSD__) ||              \
+-    defined(__DragonFly__) || defined(__sun) || defined(__GLIBC__) || defined(__GNU__) || \
++#elif defined(__DragonFly__) || defined(__sun) || defined(__GLIBC__) || defined(__GNU__) || \
+     defined(__QNX__) || defined(__Fuchsia__) || defined(__HAIKU__)
+ #    define ANGLE_PLATFORM_POSIX 1
+ #else
+diff --git a/third_party/angle/src/common/system_utils_linux.cpp b/third_party/angle/src/common/system_utils_linux.cpp
+index c64a05f79e..410ae2f25d 100644
+--- a/third_party/angle/src/common/system_utils_linux.cpp
++++ b/third_party/angle/src/common/system_utils_linux.cpp
+@@ -17,6 +17,8 @@
+ 
+ #if ANGLE_PLATFORM_OPENBSD
+ #include <pthread_np.h>
++#elif ANGLE_PLATFORM_NETBSD
++#include <pthread.h>
+ #endif
+ 
+ namespace angle
+@@ -64,6 +66,8 @@ void SetCurrentThreadName(const char *name)
+     // returned), just ignore the name.
+ #if ANGLE_PLATFORM_OPENBSD
+     pthread_set_name_np(pthread_self(), name);
++#elif ANGLE_PLATFORM_NETBSD
++    pthread_setname_np(pthread_self(), "%s", (void *)name);
+ #else
+     pthread_setname_np(pthread_self(), name);
+ #endif
+diff --git a/third_party/angle/src/gpu_info_util/SystemInfo_internal.h b/third_party/angle/src/gpu_info_util/SystemInfo_internal.h
+index 3471ed3f19..12da25f48f 100644
+--- a/third_party/angle/src/gpu_info_util/SystemInfo_internal.h
++++ b/third_party/angle/src/gpu_info_util/SystemInfo_internal.h
+@@ -15,7 +15,7 @@
+ namespace angle
+ {
+ 
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ bool CollectMesaCardInfo(std::vector<GPUDeviceInfo> *devices);                
+ #if defined(__FreeBSD__)
+ bool GetPCIDevicesFreeBSD(std::vector<GPUDeviceInfo> *devices);
+diff --git a/third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp b/third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp
+index 3593b70adf..90c7e53789 100644
+--- a/third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp
++++ b/third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp
+@@ -71,7 +71,7 @@ bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices)
+ 
+ bool GetSystemInfo(SystemInfo *info)
+ {
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+     if (!CollectMesaCardInfo(&(info->gpus)))
+     {
+ #if defined(__FreeBSD__)
+diff --git a/third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp b/third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp
+index 9f028cf086..f1bdca8eba 100644
+--- a/third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp
++++ b/third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp
+@@ -8,7 +8,7 @@
+ 
+ #include "gpu_info_util/SystemInfo_internal.h"
+ 
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <GL/glx.h>
+ #include <GL/glxext.h>
+ #endif
+@@ -22,7 +22,7 @@
+ #    error SystemInfo_x11.cpp compiled without GPU_INFO_USE_X11
+ #endif
+ 
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #define GLX_RENDERER_VENDOR_ID_MESA	0x8183
+ #define GLX_RENDERER_DEVICE_ID_MESA	0x8184
+ #endif
+@@ -30,7 +30,7 @@
+ namespace angle
+ {
+ 
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ bool CollectMesaCardInfo(std::vector<GPUDeviceInfo> *devices)
+ {
+     unsigned int vid[3], did[3];
+diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py b/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
+index cdbf6cb89a..bb75cb06f5 100644
+--- a/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
++++ b/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
+@@ -30,7 +30,7 @@ def init(root_src_dir, enable_style_format=True):
+ 
+     # Determine //buildtools/<platform>/ directory
+     new_path_platform_suffix = ""
+-    if sys.platform.startswith(("linux","openbsd","freebsd")):
++    if sys.platform.startswith(("linux","openbsd","freebsd","netbsd")):
+         platform = "linux64"
+         exe_suffix = ""
+     elif sys.platform.startswith("darwin"):
+diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
+index f96abe5df1..b9efc3f326 100644
+--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
++++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
+@@ -324,7 +324,7 @@
+       name: "AppTitle",
+       status: "experimental",
+       origin_trial_feature_name: "AppTitle",
+-      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
++      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+       base_feature: "WebAppEnableAppTitle",
+     },
+     {
+@@ -1528,7 +1528,7 @@
+       status: "test",
+       base_feature: "none",
+       origin_trial_feature_name: "FedCmContinueOnBundle",
+-      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
++      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+       origin_trial_allows_third_party: true,
+     },
+     {
+@@ -1545,7 +1545,7 @@
+       status: "test",
+       base_feature: "none",
+       origin_trial_feature_name: "FedCmButtonMode",
+-      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
++      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+       origin_trial_allows_third_party: true,
+     },
+     {
+@@ -1590,7 +1590,7 @@
+       base_feature: "none",
+       public: true,
+       origin_trial_feature_name: "FedCmMultipleIdentityProviders",
+-      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
++      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+       origin_trial_allows_third_party: true,
+     },
+     {
+@@ -1928,7 +1928,7 @@
+       base_feature_status: "enabled",
+       copied_from_base_feature_if: "overridden",
+       origin_trial_feature_name: "FullscreenPopupWindows",
+-      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
++      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+     },
+     {
+       name: "GamepadButtonAxisEvents",
+@@ -3005,7 +3005,7 @@
+       // Tracking bug for the implementation: https://crbug.com/1462930
+       name: "PermissionElement",
+       origin_trial_feature_name: "PermissionElement",
+-      origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd"],
++      origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd", "netbsd"],
+       status: "experimental",
+       public: true,
+       base_feature_status: "enabled",
+@@ -3140,7 +3140,7 @@
+     {
+       name: "PrivateNetworkAccessPermissionPrompt",
+       origin_trial_feature_name: "PrivateNetworkAccessPermissionPrompt",
+-      origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd"],
++      origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd", "netbsd"],
+       status: "stable",
+       public: true,
+       base_feature: "none",
+@@ -4116,7 +4116,7 @@
+       name: "UnrestrictedSharedArrayBuffer",
+       base_feature: "none",
+       origin_trial_feature_name: "UnrestrictedSharedArrayBuffer",
+-      origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd"],
++      origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd", "netbsd"],
+     },
+     // Enables using policy-controlled feature "usb-unrestricted" to allow
+     // isolated context to access protected USB interface classes and to
+@@ -4285,7 +4285,7 @@
+     {
+       name: "WebAppScopeExtensions",
+       origin_trial_feature_name: "WebAppScopeExtensions",
+-      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
++      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+       status: "experimental",
+       base_feature: "none",
+     },
+@@ -4328,7 +4328,7 @@
+       status: "experimental",
+       base_feature: "none",
+       origin_trial_feature_name: "WebAppUrlHandling",
+-      origin_trial_os: ["win", "mac", "linux", "openbsd", "freebsd"],
++      origin_trial_os: ["win", "mac", "linux", "openbsd", "freebsd", "netbsd"],
+     },
+     {
+       // WebAssembly JS Promise Integration,
+diff --git a/third_party/blink/renderer/platform/wtf/stack_util.cc b/third_party/blink/renderer/platform/wtf/stack_util.cc
+index b59f2153b2..c394c8c0c6 100644
+--- a/third_party/blink/renderer/platform/wtf/stack_util.cc
++++ b/third_party/blink/renderer/platform/wtf/stack_util.cc
+@@ -21,8 +21,10 @@ extern "C" void* __libc_stack_end;  // NOLINT
+ 
+ #if BUILDFLAG(IS_BSD)
+ #include <sys/signal.h>
++#if !BUILDFLAG(IS_NETBSD)
+ #include <pthread_np.h>
+ #endif
++#endif
+ 
+ namespace WTF {
+ 
+@@ -36,7 +38,8 @@ size_t GetUnderestimatedStackSize() {
+ // correctly for the main thread.
+ 
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA) || \
++    BUILDFLAG(IS_NETBSD)
+   // pthread_getattr_np() can fail if the thread is not invoked by
+   // pthread_create() (e.g., the main thread of blink_unittests).
+   // If so, a conservative size estimate is returned.
+@@ -57,7 +60,7 @@ size_t GetUnderestimatedStackSize() {
+     pthread_attr_destroy(&attr);
+     return size;
+   }
+-#if BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+   pthread_attr_destroy(&attr);
+ #endif
+ 
+@@ -106,7 +109,7 @@ size_t GetUnderestimatedStackSize() {
+ 
+ void* GetStackStart() {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_NETBSD)
+   pthread_attr_t attr;
+   int error;
+ #if BUILDFLAG(IS_FREEBSD)
+@@ -123,7 +126,7 @@ void* GetStackStart() {
+     pthread_attr_destroy(&attr);
+     return reinterpret_cast<uint8_t*>(base) + size;
+   }
+-#if BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+   pthread_attr_destroy(&attr);
+ #endif
+ #if defined(__GLIBC__)
+diff --git a/third_party/blink/renderer/platform/wtf/thread_specific.h b/third_party/blink/renderer/platform/wtf/thread_specific.h
+index 05247e1cd5..e157854abc 100644
+--- a/third_party/blink/renderer/platform/wtf/thread_specific.h
++++ b/third_party/blink/renderer/platform/wtf/thread_specific.h
+@@ -104,7 +104,8 @@ inline bool ThreadSpecific<T>::IsSet() {
+ template <typename T>
+ inline ThreadSpecific<T>::operator T*() {
+   T* off_thread_ptr;
+-#if defined(__GLIBC__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD)
++#if defined(__GLIBC__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \
++    BUILDFLAG(IS_NETBSD)
+   // TLS is fast on these platforms.
+   // TODO(csharrison): Qualify this statement for Android.
+   const bool kMainThreadAlwaysChecksTLS = true;
+diff --git a/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc b/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
+index 420fe059fd..742616f562 100644
+--- a/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
++++ b/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
+@@ -163,6 +163,8 @@ std::string MinidumpMiscInfoDebugBuildString() {
+   static constexpr char kOS[] = "openbsd";
+ #elif defined(OS_FREEBSD)
+   static constexpr char kOS[] = "freebsd";
++#elif defined(OS_NETBSD)
++  static constexpr char kOS[] = "netbsd";
+ #else
+ #error define kOS for this operating system
+ #endif
+diff --git a/third_party/crashpad/crashpad/util/misc/capture_context.h b/third_party/crashpad/crashpad/util/misc/capture_context.h
+index 63e57a29ac..97ced1bb8e 100644
+--- a/third_party/crashpad/crashpad/util/misc/capture_context.h
++++ b/third_party/crashpad/crashpad/util/misc/capture_context.h
+@@ -22,7 +22,7 @@
+ #elif BUILDFLAG(IS_WIN)
+ #include <windows.h>
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-      BUILDFLAG(IS_FREEBSD)
++      BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+ #include <ucontext.h>
+ #endif  // BUILDFLAG(IS_APPLE)
+ 
+diff --git a/third_party/dawn/include/dawn/native/VulkanBackend.h b/third_party/dawn/include/dawn/native/VulkanBackend.h
+index 3221ad2e37..8b987ab197 100644
+--- a/third_party/dawn/include/dawn/native/VulkanBackend.h
++++ b/third_party/dawn/include/dawn/native/VulkanBackend.h
+@@ -83,7 +83,8 @@ struct ExternalImageExportInfoVk : ExternalImageExportInfo {
+ };
+ 
+ // Can't use DAWN_PLATFORM_IS(LINUX) since header included in both Dawn and Chrome
+-#if defined(__linux__) || defined(__Fuchsia__) || defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__Fuchsia__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++    defined(__NetBSD__)
+ 
+ // Common properties of external images represented by FDs. On successful import the file
+ // descriptor's ownership is transferred to the Dawn implementation and they shouldn't be
+diff --git a/third_party/dawn/src/dawn/common/Platform.h b/third_party/dawn/src/dawn/common/Platform.h
+index 7833c5322f..aa885145f0 100644
+--- a/third_party/dawn/src/dawn/common/Platform.h
++++ b/third_party/dawn/src/dawn/common/Platform.h
+@@ -59,7 +59,7 @@
+ #error "Unsupported Windows platform."
+ #endif
+ 
+-#elif defined(__OpenBSD__) || defined(__FreeBSD__)
++#elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #define DAWN_PLATFORM_IS_LINUX 1
+ #define DAWN_PLATFORM_IS_BSD 1
+ #define DAWN_PLATFORM_IS_POSIX 1
+diff --git a/third_party/ffmpeg/configure b/third_party/ffmpeg/configure
+index 4fab369817..97f91efcb8 100755
+--- a/third_party/ffmpeg/configure
++++ b/third_party/ffmpeg/configure
+@@ -6818,8 +6818,8 @@ if ! disabled pthreads && ! enabled w32threads && ! enabled os2threads; then
+         if enabled pthread_np_h; then
+             hdrs="$hdrs pthread_np.h"
+         fi
+-        check_lib pthread_set_name_np pthread_np.h pthread_set_name_np -lpthread
+-        check_lib pthread_setname_np pthread_np.h pthread_setname_np -lpthread
++        check_lib pthread_set_name_np "$hdrs" pthread_set_name_np -lpthread
++        check_lib pthread_setname_np "$hdrs" pthread_setname_np -lpthread
+     fi
+ fi
+ 
+diff --git a/third_party/ffmpeg/libavutil/random_seed.c b/third_party/ffmpeg/libavutil/random_seed.c
+index b234db552a..affd8c7bda 100644
+--- a/third_party/ffmpeg/libavutil/random_seed.c
++++ b/third_party/ffmpeg/libavutil/random_seed.c
+@@ -20,6 +20,10 @@
+ 
+ #include "config.h"
+ 
++#if defined(__NetBSD__)
++#define _NETBSD_SOURCE 1
++#endif
++
+ #if HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+diff --git a/third_party/ipcz/src/reference_drivers/random.cc b/third_party/ipcz/src/reference_drivers/random.cc
+index 831b3a61d7..faaebde8b3 100644
+--- a/third_party/ipcz/src/reference_drivers/random.cc
++++ b/third_party/ipcz/src/reference_drivers/random.cc
+@@ -14,7 +14,8 @@
+ #include <windows.h>
+ #elif BUILDFLAG(IS_FUCHSIA)
+ #include <zircon/syscalls.h>
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)) && \
++         !BUILDFLAG(IS_NETBSD)
+ #include <asm/unistd.h>
+ #include <sys/syscall.h>
+ #include <unistd.h>
+@@ -25,7 +26,7 @@
+ #include <nacl/nacl_random.h>
+ #endif
+ 
+-#if BUILDFLAG(IS_POSIX)
++#if BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_NETBSD)
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -55,7 +56,7 @@ decltype(&ProcessPrng) GetProcessPrng() {
+ }
+ #endif
+ 
+-#if defined(OS_POSIX) && !BUILDFLAG(IS_MAC)
++#if (defined(OS_POSIX) && !BUILDFLAG(IS_MAC)) || BUILDFLAG(IS_NETBSD)
+ void RandomBytesFromDevUrandom(absl::Span<uint8_t> destination) {
+   static int urandom_fd = [] {
+     for (;;) {
+@@ -86,7 +87,8 @@ void RandomBytes(absl::Span<uint8_t> destination) {
+   process_prng_fn(destination.data(), destination.size());
+ #elif BUILDFLAG(IS_FUCHSIA)
+   zx_cprng_draw(destination.data(), destination.size());
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)) && \
++         !BUILDFLAG(IS_NETBSD)
+   while (!destination.empty()) {
+     ssize_t result =
+         syscall(__NR_getrandom, destination.data(), destination.size(), 0);
+@@ -102,7 +104,7 @@ void RandomBytes(absl::Span<uint8_t> destination) {
+ #elif BUILDFLAG(IS_MAC)
+   const bool ok = getentropy(destination.data(), destination.size()) == 0;
+   ABSL_ASSERT(ok);
+-#elif BUILDFLAG(IS_IOS)
++#elif BUILDFLAG(IS_IOS) || BUILDFLAG(IS_NETBSD)
+   RandomBytesFromDevUrandom(destination);
+ #elif BUILDFLAG(IS_NACL)
+   while (!destination.empty()) {
+diff --git a/third_party/libc++/src/src/chrono.cpp b/third_party/libc++/src/src/chrono.cpp
+index e26e681355..8f70facd78 100644
+--- a/third_party/libc++/src/src/chrono.cpp
++++ b/third_party/libc++/src/src/chrono.cpp
+@@ -31,7 +31,8 @@
+ #  include <sys/time.h> // for gettimeofday and timeval
+ #endif
+ 
+-#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || \
++    defined(__FreeBSD__) || defined(__NetBSD__)
+ #  define _LIBCPP_HAS_CLOCK_GETTIME
+ #endif
+ 
+diff --git a/third_party/libc++/src/src/filesystem/filesystem_clock.cpp b/third_party/libc++/src/src/filesystem/filesystem_clock.cpp
+index 31d7446de1..4b08dbd931 100644
+--- a/third_party/libc++/src/src/filesystem/filesystem_clock.cpp
++++ b/third_party/libc++/src/src/filesystem/filesystem_clock.cpp
+@@ -29,7 +29,8 @@
+ #  include <sys/time.h> // for gettimeofday and timeval
+ #endif
+ 
+-#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || \
++    defined(__FreeBSD__) || defined(__NetBSD__)
+ #  define _LIBCPP_HAS_CLOCK_GETTIME
+ #endif
+ 
+diff --git a/third_party/libc++abi/src/src/cxa_guard_impl.h b/third_party/libc++abi/src/src/cxa_guard_impl.h
+index 320501cb85..bb139b0bf0 100644
+--- a/third_party/libc++abi/src/src/cxa_guard_impl.h
++++ b/third_party/libc++abi/src/src/cxa_guard_impl.h
+@@ -425,6 +425,17 @@ void PlatformFutexWake(int* addr) {
+   __tsan_release(addr);
+   futex(reinterpret_cast<volatile uint32_t*>(addr), WAKE, INT_MAX, NULL, NULL);
+ }
++#elif defined(__NetBSD__)
++void PlatformFutexWait(int* addr, int expect) {
++  constexpr int WAIT = 0;
++  syscall(SYS___futex, addr, WAIT, expect, NULL, NULL, 0, 0);
++  __tsan_acquire(addr);
++}
++void PlatformFutexWake(int* addr) {
++  constexpr int WAKE = 1;
++  __tsan_release(addr);
++  syscall(SYS___futex, addr, WAKE, INT_MAX, NULL, NULL, 0, 0);
++}
+ #elif defined(SYS_futex)
+ void PlatformFutexWait(int* addr, int expect) {
+   constexpr int WAIT = 0;
+diff --git a/third_party/libdrm/src/xf86drmMode.c b/third_party/libdrm/src/xf86drmMode.c
+index 22a8a7c229..246d81d7f4 100644
+--- a/third_party/libdrm/src/xf86drmMode.c
++++ b/third_party/libdrm/src/xf86drmMode.c
+@@ -966,7 +966,7 @@ drm_public int drmCheckModesettingSupported(const char *busid)
+ 	}
+ #elif defined(__DragonFly__)
+ 	return 0;
+-#elif defined(__OpenBSD__)
++#elif defined(__OpenBSD__) || defined(__NetBSD__)
+ 	int	fd;
+ 	struct drm_mode_card_res res;
+ 	drmModeResPtr r = 0;
+@@ -1119,7 +1119,11 @@ drm_public int drmModePageFlipTarget(int fd, uint32_t crtc_id, uint32_t fb_id,
+ 
+ drm_public int drmModeSetPlane(int fd, uint32_t plane_id, uint32_t crtc_id,
+ 		    uint32_t fb_id, uint32_t flags,
++#if defined(__NetBSD__)
++			uint32_t crtc_x, uint32_t crtc_y,
++#else
+ 		    int32_t crtc_x, int32_t crtc_y,
++#endif
+ 		    uint32_t crtc_w, uint32_t crtc_h,
+ 		    uint32_t src_x, uint32_t src_y,
+ 		    uint32_t src_w, uint32_t src_h)
+diff --git a/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h b/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h
+index f01375cc9d..1f85287d46 100644
+--- a/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h
++++ b/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h
+@@ -22,7 +22,8 @@
+ #elif (__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)
+ // C++11 Lock implementation based on std::mutex.
+ #include "phonenumbers/base/memory/singleton_stdmutex.h"
+-#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
++#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++    defined(__NetBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
+ #include "phonenumbers/base/memory/singleton_posix.h"
+ #elif defined(WIN32)
+ #include "phonenumbers/base/memory/singleton_win32.h"
+diff --git a/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h b/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h
+index fa7f9d8c37..30d53c3de2 100644
+--- a/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h
++++ b/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h
+@@ -22,7 +22,8 @@
+ #elif (__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)
+ // C++11 Lock implementation based on std::mutex.
+ #include "phonenumbers/base/synchronization/lock_stdmutex.h"
+-#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
++#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++  defined(__NetBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
+ #include "phonenumbers/base/synchronization/lock_posix.h"
+ #elif defined(WIN32)
+ #include "phonenumbers/base/synchronization/lock_win32.h"
+diff --git a/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h b/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h
+index ba5b99435d..848ae59278 100644
+--- a/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h
++++ b/third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h
+@@ -23,7 +23,7 @@
+ // user of the library know that it can't be used in a thread-safe manner when
+ // it is not depending on Boost.
+ #if !defined(__linux__) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD) && \
+-    !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY) && \
++    !defined(__NetBSD__) && !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY) && \
+ 	!((__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)) && \
+ 	!defined(WIN32)
+ #error Building without Boost, please provide \
+@@ -33,7 +33,8 @@
+ #endif
+ 
+ #if !defined(NDEBUG) && !defined(I18N_PHONENUMBERS_USE_BOOST) && \
+-    (defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD))
++    (defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++    defined(__NetBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD))
+ 
+ #include <pthread.h>
+ 
+diff --git a/third_party/libsync/src/include/sync/sync.h b/third_party/libsync/src/include/sync/sync.h
+index 5f407c0795..c26073f5ed 100644
+--- a/third_party/libsync/src/include/sync/sync.h
++++ b/third_party/libsync/src/include/sync/sync.h
+@@ -22,7 +22,7 @@
+ #include <sys/cdefs.h>
+ #include <stdint.h>
+ 
+-#if !defined(__OpenBSD__) && !defined(__FreeBSD__)
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+ #include <linux/types.h>
+ #endif
+ 
+diff --git a/third_party/libsync/src/sync.c b/third_party/libsync/src/sync.c
+index cd943d0d66..9d6a4b0abd 100644
+--- a/third_party/libsync/src/sync.c
++++ b/third_party/libsync/src/sync.c
+@@ -29,7 +29,7 @@
+ 
+ #include <sync/sync.h>
+ 
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ typedef __uint8_t __u8;
+ typedef __uint32_t __u32;
+ typedef __int32_t __s32;
+diff --git a/third_party/lzma_sdk/C/CpuArch.c b/third_party/lzma_sdk/C/CpuArch.c
+index d848ac199b..239f2b6884 100644
+--- a/third_party/lzma_sdk/C/CpuArch.c
++++ b/third_party/lzma_sdk/C/CpuArch.c
+@@ -445,7 +445,7 @@ MY_HWCAP_CHECK_FUNC (AES)
+ 
+ #include <sys/auxv.h>
+ 
+-#if !defined(ARMV8_OS_FUCHSIA) && !defined(__FreeBSD__)
++#if !defined(ARMV8_OS_FUCHSIA) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+ #define USE_HWCAP
+ #endif // !defined(ARMV8_OS_FUCHSIA)
+ 
+diff --git a/third_party/node/node.py b/third_party/node/node.py
+index 17a7633dbc..c4dad924b0 100755
+--- a/third_party/node/node.py
++++ b/third_party/node/node.py
+@@ -22,6 +22,7 @@ def GetBinaryPath():
+     'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
+     'OpenBSD': ('openbsd', 'node-openbsd', 'bin', 'node'),
+     'FreeBSD': ('freebsd', 'node-freebsd', 'bin', 'node'),
++    'NetBSD': ('netbsd', 'node-netbsd', 'bin', 'node'),
+     'Windows': ('win', 'node.exe'),
+   }[platform.system()])
+ 
+diff --git a/third_party/perfetto/include/perfetto/base/build_config.h b/third_party/perfetto/include/perfetto/base/build_config.h
+index e090b30385..f972b86dd7 100644
+--- a/third_party/perfetto/include/perfetto/base/build_config.h
++++ b/third_party/perfetto/include/perfetto/base/build_config.h
+@@ -53,7 +53,7 @@
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
+ #endif
+-#elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__)
++#elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 1
+diff --git a/third_party/perfetto/include/perfetto/base/time.h b/third_party/perfetto/include/perfetto/base/time.h
+index 2bf6b9aa47..39f7db368f 100644
+--- a/third_party/perfetto/include/perfetto/base/time.h
++++ b/third_party/perfetto/include/perfetto/base/time.h
+@@ -199,7 +199,7 @@ inline TimeNanos GetTimeInternalNs(clockid_t clk_id) {
+ // Return ns from boot. Conversely to GetWallTimeNs, this clock counts also time
+ // during suspend (when supported).
+ inline TimeNanos GetBootTimeNs() {
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__NetBSD__)
+   return GetTimeInternalNs(kWallTimeClockSource);
+ #else
+   // Determine if CLOCK_BOOTTIME is available on the first call.
+@@ -217,7 +217,7 @@ inline TimeNanos GetWallTimeNs() {
+ }
+ 
+ inline TimeNanos GetWallTimeRawNs() {
+-#if defined(__OpenBSD__)
++#if defined(__OpenBSD__) || defined(__NetBSD__)
+   return GetTimeInternalNs(CLOCK_MONOTONIC);
+ #elif defined(__FreeBSD__)
+   return GetTimeInternalNs(CLOCK_MONOTONIC_FAST);
+diff --git a/third_party/perfetto/src/base/unix_socket.cc b/third_party/perfetto/src/base/unix_socket.cc
+index 76a91369de..a9b899f5ae 100644
+--- a/third_party/perfetto/src/base/unix_socket.cc
++++ b/third_party/perfetto/src/base/unix_socket.cc
+@@ -44,7 +44,7 @@
+ #include <unistd.h>
+ #endif
+ 
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) || defined(__FreeBSD__)
++#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <sys/ucred.h>
+ #endif
+ 
+@@ -917,7 +917,7 @@ void UnixSocket::ReadPeerCredentialsPosix() {
+     return;
+   PERFETTO_CHECK(peer_cred_mode_ != SockPeerCredMode::kIgnore);
+ 
+-#if !defined(__FreeBSD__) && PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if !defined(__FreeBSD__) && !defined(__NetBSD__) && PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+ #if PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+   struct sockpeercred user_cred;
+@@ -930,6 +930,14 @@ void UnixSocket::ReadPeerCredentialsPosix() {
+   PERFETTO_CHECK(res == 0);
+   peer_uid_ = user_cred.uid;
+   peer_pid_ = user_cred.pid;
++#elif defined(__NetBSD__)
++  struct unpcbid user_cred;
++  socklen_t len = sizeof(user_cred);
++  int fd = sock_raw_.fd();
++  int res = getsockopt(fd, 0, LOCAL_PEEREID, &user_cred, &len);
++  PERFETTO_CHECK(res == 0);
++  peer_uid_ = user_cred.unp_euid;
++  peer_pid_ = user_cred.unp_pid;
+ #elif PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
+   struct xucred user_cred;
+   socklen_t len = sizeof(user_cred);
+diff --git a/third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc b/third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc
+index c441fb124b..0387d9b06b 100644
+--- a/third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc
++++ b/third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc
+@@ -62,7 +62,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
+     case FtraceEvent::kV4l2QbufFieldNumber: {
+       V4l2QbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+       BufferEvent evt;
+-      evt.device_minor = pb_evt.minor();
++      evt.device_minor = pb_evt.gminor();
+       evt.index = pb_evt.index();
+       evt.type = pb_evt.type();
+       evt.bytesused = pb_evt.bytesused();
+@@ -103,7 +103,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
+     case FtraceEvent::kV4l2DqbufFieldNumber: {
+       V4l2DqbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+       BufferEvent evt;
+-      evt.device_minor = pb_evt.minor();
++      evt.device_minor = pb_evt.gminor();
+       evt.index = pb_evt.index();
+       evt.type = pb_evt.type();
+       evt.bytesused = pb_evt.bytesused();
+@@ -149,7 +149,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
+     case FtraceEvent::kVb2V4l2BufQueueFieldNumber: {
+       Vb2V4l2BufQueueFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+       BufferEvent evt;
+-      evt.device_minor = pb_evt.minor();
++      evt.device_minor = pb_evt.gminor();
+       evt.index = std::nullopt;
+       evt.type = std::nullopt;
+       evt.bytesused = std::nullopt;
+@@ -180,7 +180,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
+     case FtraceEvent::kVb2V4l2BufDoneFieldNumber: {
+       Vb2V4l2BufDoneFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+       BufferEvent evt;
+-      evt.device_minor = pb_evt.minor();
++      evt.device_minor = pb_evt.gminor();
+       evt.index = std::nullopt;
+       evt.type = std::nullopt;
+       evt.bytesused = std::nullopt;
+@@ -211,7 +211,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
+     case FtraceEvent::kVb2V4l2QbufFieldNumber: {
+       Vb2V4l2QbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+       BufferEvent evt;
+-      evt.device_minor = pb_evt.minor();
++      evt.device_minor = pb_evt.gminor();
+       evt.index = std::nullopt;
+       evt.type = std::nullopt;
+       evt.bytesused = std::nullopt;
+@@ -242,7 +242,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
+     case FtraceEvent::kVb2V4l2DqbufFieldNumber: {
+       Vb2V4l2DqbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+       BufferEvent evt;
+-      evt.device_minor = pb_evt.minor();
++      evt.device_minor = pb_evt.gminor();
+       evt.index = std::nullopt;
+       evt.type = std::nullopt;
+       evt.bytesused = std::nullopt;
+diff --git a/third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h b/third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h
+index db7a0d9353..4146bc6959 100644
+--- a/third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h
++++ b/third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h
+@@ -27,7 +27,7 @@
+ #define HAVE_XLOCALE 0
+ #endif
+ 
+-#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION)
++#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) || defined(__NetBSD__)
+ #define HAVE_LOCALE_T 0
+ #else
+ #define HAVE_LOCALE_T 1
+diff --git a/third_party/skia/src/ports/SkMemory_malloc.cpp b/third_party/skia/src/ports/SkMemory_malloc.cpp
+index df1eee3ff9..564e572e23 100644
+--- a/third_party/skia/src/ports/SkMemory_malloc.cpp
++++ b/third_party/skia/src/ports/SkMemory_malloc.cpp
+@@ -15,7 +15,8 @@
+ 
+ #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
+ #include <malloc/malloc.h>
+-#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__)
++#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__) && \
++    !defined(__NetBSD__)
+ #include <malloc.h>
+ #elif defined(SK_BUILD_FOR_WIN)
+ #include <malloc.h>
+@@ -126,7 +127,7 @@ size_t sk_malloc_size(void* addr, size_t size) {
+     #elif defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 17
+         completeSize = malloc_usable_size(addr);
+         SkASSERT(completeSize >= size);
+-    #elif defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__)
++    #elif defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__) && !defined(__NetBSD__)
+         completeSize = malloc_usable_size(addr);
+         SkASSERT(completeSize >= size);
+     #elif defined(SK_BUILD_FOR_WIN)
+diff --git a/third_party/speech-dispatcher/libspeechd_version.h b/third_party/speech-dispatcher/libspeechd_version.h
+index c455a1ffa5..4520c3f56f 100644
+--- a/third_party/speech-dispatcher/libspeechd_version.h
++++ b/third_party/speech-dispatcher/libspeechd_version.h
+@@ -16,7 +16,7 @@
+  * You should have received a copy of the GNU Lesser General Public License
+  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+  *
+- * $Id: patch-third_party_speech-dispatcher_libspeechd_version_h,v 1.4 2024/03/22 13:10:56 robert Exp $
++ * Id: patch-third_party_speech-dispatcher_libspeechd_version_h,v 1.4 2024/03/22 13:10:56 robert
+  */
+ 
+ #ifndef _LIBSPEECHD_VERSION_H
+diff --git a/third_party/sqlite/src/amalgamation/sqlite3.c b/third_party/sqlite/src/amalgamation/sqlite3.c
+index 6bf7cecc94..2d03c334ee 100644
+--- a/third_party/sqlite/src/amalgamation/sqlite3.c
++++ b/third_party/sqlite/src/amalgamation/sqlite3.c
+@@ -20532,6 +20532,9 @@ SQLITE_PRIVATE int sqlite3HeapNearlyFull(void);
+ ** The alloca() routine never returns NULL.  This will cause code paths
+ ** that deal with sqlite3StackAlloc() failures to be unreachable.
+ */
++#if defined(__NetBSD__)
++# undef SQLITE_USE_ALLOCA
++#endif
+ #ifdef SQLITE_USE_ALLOCA
+ # define sqlite3StackAllocRaw(D,N)   alloca(N)
+ # define sqlite3StackAllocRawNN(D,N) alloca(N)
+diff --git a/third_party/sqlite/src/amalgamation_dev/sqlite3.c b/third_party/sqlite/src/amalgamation_dev/sqlite3.c
+index b1e0e620f1..e3d79b311c 100644
+--- a/third_party/sqlite/src/amalgamation_dev/sqlite3.c
++++ b/third_party/sqlite/src/amalgamation_dev/sqlite3.c
+@@ -20545,6 +20545,9 @@ SQLITE_PRIVATE int sqlite3HeapNearlyFull(void);
+ ** The alloca() routine never returns NULL.  This will cause code paths
+ ** that deal with sqlite3StackAlloc() failures to be unreachable.
+ */
++#if defined(__NetBSD__)
++# undef SQLITE_USE_ALLOCA
++#endif
+ #ifdef SQLITE_USE_ALLOCA
+ # define sqlite3StackAllocRaw(D,N)   alloca(N)
+ # define sqlite3StackAllocRawNN(D,N) alloca(N)
+diff --git a/third_party/swiftshader/src/Reactor/Debug.cpp b/third_party/swiftshader/src/Reactor/Debug.cpp
+index 96695d65c7..3fc8049988 100644
+--- a/third_party/swiftshader/src/Reactor/Debug.cpp
++++ b/third_party/swiftshader/src/Reactor/Debug.cpp
+@@ -46,7 +46,8 @@ namespace {
+ 
+ bool IsUnderDebugger()
+ {
+-#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
++#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && \
++	!defined(__NetBSD__)
+ 	static bool checked = false;
+ 	static bool res = false;
+ 
+diff --git a/third_party/swiftshader/src/System/Configurator.cpp b/third_party/swiftshader/src/System/Configurator.cpp
+index 62a9b7eef3..3853d05686 100644
+--- a/third_party/swiftshader/src/System/Configurator.cpp
++++ b/third_party/swiftshader/src/System/Configurator.cpp
+@@ -38,7 +38,7 @@ namespace sw {
+ 
+ Configurator::Configurator(const std::string &filePath)
+ {
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ 	return;
+ #endif
+ 	std::fstream file(filePath, std::ios::in);
+diff --git a/third_party/swiftshader/src/System/Linux/MemFd.cpp b/third_party/swiftshader/src/System/Linux/MemFd.cpp
+index 7b5a091b18..77eb5a3243 100644
+--- a/third_party/swiftshader/src/System/Linux/MemFd.cpp
++++ b/third_party/swiftshader/src/System/Linux/MemFd.cpp
+@@ -25,7 +25,7 @@
+ #	define MFD_CLOEXEC 0x0001U
+ #endif
+ 
+-#if !defined(__OpenBSD__) && !defined(__FreeBSD__)
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+ #if __aarch64__
+ #	define __NR_memfd_create 279
+ #elif __arm__
+@@ -71,7 +71,7 @@ bool LinuxMemFd::allocate(const char *name, size_t size)
+ #else
+ 	// In the event of no system call this returns -1 with errno set
+ 	// as ENOSYS.
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) ||  defined(__NetBSD__)
+ 	fd_ = memfd_create(name, MFD_CLOEXEC);
+ #else
+ 	fd_ = syscall(__NR_memfd_create, name, MFD_CLOEXEC);
+diff --git a/third_party/swiftshader/third_party/marl/src/memory.cpp b/third_party/swiftshader/third_party/marl/src/memory.cpp
+index abecf15baf..3b8e460c9b 100644
+--- a/third_party/swiftshader/third_party/marl/src/memory.cpp
++++ b/third_party/swiftshader/third_party/marl/src/memory.cpp
+@@ -19,7 +19,8 @@
+ 
+ #include <cstring>
+ 
+-#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__EMSCRIPTEN__) || defined(__OpenBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__EMSCRIPTEN__) || defined(__OpenBSD__) || \
++      defined(__NetBSD__)
+ #include <sys/mman.h>
+ #include <unistd.h>
+ namespace {
+diff --git a/third_party/swiftshader/third_party/marl/src/thread.cpp b/third_party/swiftshader/third_party/marl/src/thread.cpp
+index b87ab0b41b..9609843664 100644
+--- a/third_party/swiftshader/third_party/marl/src/thread.cpp
++++ b/third_party/swiftshader/third_party/marl/src/thread.cpp
+@@ -46,6 +46,9 @@
+ #include <unistd.h>
+ #include <thread>
+ #endif
++#if defined(__NetBSD__)
++#include <stdarg.h>
++#endif
+ 
+ namespace {
+ 
+@@ -444,6 +447,8 @@ void Thread::setName(const char* fmt, ...) {
+   pthread_setname_np(name);
+ #elif defined(__FreeBSD__)
+   pthread_set_name_np(pthread_self(), name);
++#elif defined(__NetBSD__)
++  pthread_setname_np(pthread_self(), "%s", (void *)name);
+ #elif !defined(__Fuchsia__) && !defined(__EMSCRIPTEN__) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
+   pthread_setname_np(pthread_self(), name);
+ #endif
+diff --git a/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc b/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
+index 47b5b51412..68d65ed278 100644
+--- a/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
++++ b/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
+@@ -28,7 +28,7 @@ int main() {
+   // fontconfig cache.
+   //     $ echo -n /test_fonts | md5sum
+   //     fb5c91b2895aa445d23aebf7f9e2189c  -
+-  static const char kCacheKey[] = "fb5c91b2895aa445d23aebf7f9e2189c";
++  static const char kCacheKey[] = "cd4b5bc7-6cfc-41dc-8982-f2db624179ba";
+ 
+   // fontconfig writes the mtime of the test_fonts directory into the cache. It
+   // presumably checks this later to ensure that the cache is still up to date.
+@@ -56,7 +56,7 @@ int main() {
+   FcFini();
+ 
+   // Check existence of intended fontconfig cache file.
+-  auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-" + FC_CACHE_VERSION;
++  auto cache = fontconfig_caches + "/" + kCacheKey + "-x86_64.cache-" + FC_CACHE_VERSION;
+   bool cache_exists = access(cache.c_str(), F_OK) == 0;
+   return !cache_exists;
+ }
+diff --git a/third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h b/third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+index fe3fafe39c..edfbc9eadf 100644
+--- a/third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
++++ b/third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+@@ -2740,7 +2740,7 @@ static void* vma_aligned_alloc(size_t alignment, size_t size)
+ 
+     return memalign(alignment, size);
+ }
+-#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)) || defined(__OpenBSD__) || defined(__FreeBSD__)
++#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <cstdlib>
+ 
+ #if defined(__APPLE__)
+diff --git a/third_party/vulkan-validation-layers/src/layers/vulkan/generated/vk_function_pointers.cpp b/third_party/vulkan-validation-layers/src/layers/vulkan/generated/vk_function_pointers.cpp
+index d3120b0c7a..16b7c1f8ea 100644
+--- a/third_party/vulkan-validation-layers/src/layers/vulkan/generated/vk_function_pointers.cpp
++++ b/third_party/vulkan-validation-layers/src/layers/vulkan/generated/vk_function_pointers.cpp
+@@ -53,7 +53,8 @@ static void *get_proc_address(dl_handle library, const char *name) {
+     assert(name);
+     return (void *)GetProcAddress(library, name);
+ }
+-#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__QNX__)
++#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__QNX__) || \
++         defined(__NetBSD__)
+ 
+ #include <dlfcn.h>
+ 
+diff --git a/tools/json_schema_compiler/feature_compiler.py b/tools/json_schema_compiler/feature_compiler.py
+index 342b322530..5951276973 100644
+--- a/tools/json_schema_compiler/feature_compiler.py
++++ b/tools/json_schema_compiler/feature_compiler.py
+@@ -279,6 +279,7 @@ FEATURE_GRAMMAR = ({
+                 'win': 'Feature::WIN_PLATFORM',
+                 'openbsd': 'Feature::LINUX_PLATFORM',
+                 'freebsd': 'Feature::LINUX_PLATFORM',
++                'netbsd': 'Feature::LINUX_PLATFORM',
+             }
+         }
+     },
+diff --git a/tools/v8_context_snapshot/BUILD.gn b/tools/v8_context_snapshot/BUILD.gn
+index 80d4b3d0a6..82de8e9f55 100644
+--- a/tools/v8_context_snapshot/BUILD.gn
++++ b/tools/v8_context_snapshot/BUILD.gn
+@@ -36,6 +36,24 @@ buildflag_header("buildflags") {
+   ]
+ }
+ 
++action("run_paxctl_v8_context_snapshot_generator") {
++  deps = [ ":v8_context_snapshot_generator($v8_snapshot_toolchain)" ]
++
++  script = "//v8/tools/run-paxctl.py"
++  stamp = "$target_gen_dir/paxctl_stamp"
++  outputs = [ stamp ]
++
++  sources = []
++  data = []
++
++  args = [
++    rebase_path(stamp, root_build_dir),
++    "/usr/sbin/paxctl", "+m",
++    "./" + rebase_path(get_label_info(":v8_context_snapshot_generator", "root_out_dir") + "/v8_context_snapshot_generator",
++    root_build_dir),
++  ]
++}
++
+ if (use_v8_context_snapshot) {
+   if (v8_snapshot_toolchain == current_toolchain) {
+     action("generate_v8_context_snapshot") {
+@@ -52,7 +70,11 @@ if (use_v8_context_snapshot) {
+         "--output_file=$output_path",
+       ]
+ 
+-      deps = [ ":v8_context_snapshot_generator" ]
++      if (target_os == "netbsd") {
++        deps = [ ":v8_context_snapshot_generator", ":run_paxctl_v8_context_snapshot_generator" ]
++      } else {
++        deps = [ ":v8_context_snapshot_generator" ]
++      }
+ 
+       # TODO(sky): figure out why this doesn't work on android cross compile.
+       # In the case of compiling for the snapshot `shlib_extension` is ".so"
+diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py
+index 872083e1cb..05bf464a76 100755
+--- a/tools/variations/fieldtrial_to_struct.py
++++ b/tools/variations/fieldtrial_to_struct.py
+@@ -43,6 +43,7 @@ _platforms = [
+     'windows',
+     'openbsd',
+     'freebsd',
++    'netbsd',
+ ]
+ 
+ _form_factors = [
+diff --git a/ui/qt/qt.gni b/ui/qt/qt.gni
+index 53fd68bf7a..fa5e245cd3 100644
+--- a/ui/qt/qt.gni
++++ b/ui/qt/qt.gni
+@@ -14,7 +14,7 @@ declare_args() {
+ 
+ declare_args() {
+   if (!use_sysroot && use_qt) {
+-    moc_qt5_path = ""
++    moc_qt5_path = "@QTDIR@/bin"
+   }
+ }
+ 
+diff --git a/v8/BUILD.gn b/v8/BUILD.gn
+index 186ad4dbe1..01497b9f13 100644
+--- a/v8/BUILD.gn
++++ b/v8/BUILD.gn
+@@ -878,6 +878,7 @@ external_v8_defines = [
+   "V8_TARGET_OS_CHROMEOS",
+   "V8_TARGET_OS_OPENBSD",
+   "V8_TARGET_OS_FREEBSD",
++  "V8_TARGET_OS_NETBSD",
+ ]
+ 
+ enabled_external_v8_defines = []
+@@ -956,6 +957,9 @@ if (target_os == "android") {
+ } else if (target_os == "freebsd") {
+   enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ]
+   enabled_external_v8_defines += [ "V8_TARGET_OS_FREEBSD" ]
++} else if (target_os == "netbsd") {
++  enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ]
++  enabled_external_v8_defines += [ "V8_TARGET_OS_NETBSD" ]
+ }
+ 
+ disabled_external_v8_defines = external_v8_defines - enabled_external_v8_defines
+@@ -2375,6 +2379,23 @@ action("generate_bytecode_builtins_list") {
+   ]
+ }
+ 
++action("run_paxctl_mksnapshot") {
++    deps = [ ":mksnapshot($v8_snapshot_toolchain)" ]
++
++    script = "tools/run-paxctl.py"
++    stamp = "$target_gen_dir/paxctl_stamp"
++    outputs = [ stamp ]
++
++    sources = []
++    data = []
++
++    args = [
++      rebase_path(stamp, root_build_dir), "/usr/sbin/paxctl", "+m", "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)",
++                                        "root_out_dir") + "/mksnapshot",
++                         root_build_dir),
++    ]
++}
++
+ # Template to generate different V8 snapshots based on different runtime flags.
+ # Can be invoked with run_mksnapshot(<name>). The target will resolve to
+ # run_mksnapshot_<name>. If <name> is "default", no file suffixes will be used.
+@@ -2393,7 +2414,11 @@ template("run_mksnapshot") {
+     suffix = "_$name"
+   }
+   action("run_mksnapshot_" + name) {
+-    deps = [ ":mksnapshot($v8_snapshot_toolchain)" ]
++    if (target_os == "netbsd") {
++      deps = [ ":mksnapshot($v8_snapshot_toolchain)", ":run_paxctl_mksnapshot" ]
++    } else {
++      deps = [ ":mksnapshot($v8_snapshot_toolchain)" ]
++    }
+ 
+     script = "tools/run.py"
+ 
+@@ -4489,7 +4514,7 @@ v8_header_set("v8_internal_headers") {
+       # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
+       # based on Darwin and thus POSIX-compliant to a similar degree.
+       if (is_linux || is_chromeos || is_mac || is_ios ||
+-          target_os == "freebsd") {
++          target_os == "freebsd" || target_os == "netbsd") {
+         sources += [ "src/trap-handler/handler-inside-posix.h" ]
+       } else if (is_win) {
+         sources += [ "src/trap-handler/handler-inside-win.h" ]
+@@ -5877,7 +5902,7 @@ v8_source_set("v8_base_without_compiler") {
+       # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
+       # based on Darwin and thus POSIX-compliant to a similar degree.
+       if (is_linux || is_chromeos || is_mac || is_ios ||
+-          target_os == "freebsd") {
++          target_os == "freebsd" || target_os == "netbsd") {
+         sources += [
+           "src/trap-handler/handler-inside-posix.cc",
+           "src/trap-handler/handler-outside-posix.cc",
+@@ -6521,6 +6546,15 @@ v8_component("v8_libbase") {
+       "src/base/platform/platform-openbsd.cc",
+     ]
+     libs = [ "execinfo" ]
++  } else if (is_netbsd) {
++    sources += [
++      "src/base/debug/stack_trace_posix.cc",
++      "src/base/platform/platform-openbsd.cc",
++    ]
++    libs = [
++      "rt",
++      "execinfo",
++    ]
+   } else if (is_freebsd) {
+     sources += [
+       "src/base/debug/stack_trace_posix.cc",
+diff --git a/v8/include/v8config.h b/v8/include/v8config.h
+index c967e0958c..0d882fac0d 100644
+--- a/v8/include/v8config.h
++++ b/v8/include/v8config.h
+@@ -195,6 +195,7 @@ path. Add it with -I<path> to the command line
+   && !defined(V8_TARGET_OS_LINUX) \
+   && !defined(V8_TARGET_OS_OPENBSD) \
+   && !defined(V8_TARGET_OS_FREEBSD) \
++  && !defined(V8_TARGET_OS_NETBSD) \
+   && !defined(V8_TARGET_OS_MACOS) \
+   && !defined(V8_TARGET_OS_WIN) \
+   && !defined(V8_TARGET_OS_CHROMEOS)
+@@ -209,6 +210,7 @@ path. Add it with -I<path> to the command line
+   || defined(V8_TARGET_OS_LINUX) \
+   || defined(V8_TARGET_OS_OPENBSD) \
+   || defined(V8_TARGET_OS_FREEBSD) \
++  || defined(V8_TARGET_OS_NETBSD) \
+   || defined(V8_TARGET_OS_MACOS) \
+   || defined(V8_TARGET_OS_WIN) \
+   || defined(V8_TARGET_OS_CHROMEOS)
+@@ -242,6 +244,11 @@ path. Add it with -I<path> to the command line
+ # define V8_TARGET_OS_BSD
+ #endif
+ 
++#ifdef V8_OS_NETBSD
++# define V8_TARGET_OS_NETBSD
++# define V8_TARGET_OS_BSD
++#endif
++
+ #ifdef V8_OS_MACOS
+ # define V8_TARGET_OS_MACOS
+ #endif
+diff --git a/v8/src/api/api.cc b/v8/src/api/api.cc
+index ed4043c99a..08676618f2 100644
+--- a/v8/src/api/api.cc
++++ b/v8/src/api/api.cc
+@@ -145,7 +145,7 @@
+ #include "src/wasm/wasm-serialization.h"
+ #endif  // V8_ENABLE_WEBASSEMBLY
+ 
+-#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD
++#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
+ #include <signal.h>
+ #include <unistd.h>
+ 
+@@ -6452,7 +6452,7 @@ bool v8::V8::Initialize(const int build_config) {
+   return true;
+ }
+ 
+-#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD
++#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD|| V8_OS_NETBSD
+ bool TryHandleWebAssemblyTrapPosix(int sig_code, siginfo_t* info,
+                                    void* context) {
+ #if V8_ENABLE_WEBASSEMBLY && V8_TRAP_HANDLER_SUPPORTED
+diff --git a/v8/src/base/platform/platform-openbsd.cc b/v8/src/base/platform/platform-openbsd.cc
+index 8ade6f9b37..81b2cd86c9 100644
+--- a/v8/src/base/platform/platform-openbsd.cc
++++ b/v8/src/base/platform/platform-openbsd.cc
+@@ -6,7 +6,9 @@
+ // POSIX-compatible parts, the implementation is in platform-posix.cc.
+ 
+ #include <pthread.h>
++#if !defined(__NetBSD__)
+ #include <pthread_np.h>
++#endif
+ #include <semaphore.h>
+ #include <signal.h>
+ #include <stdlib.h>
+@@ -125,6 +127,22 @@ void OS::AdjustSchedulingParams() {}
+ 
+ // static
+ Stack::StackSlot Stack::ObtainCurrentThreadStackStart() {
++#if defined(__NetBSD__)
++  pthread_attr_t attr;
++  int error;
++  pthread_attr_init(&attr);
++  error = pthread_attr_get_np(pthread_self(), &attr);
++  if (!error) {
++    void* base;
++    size_t size;
++    error = pthread_attr_getstack(&attr, &base, &size);
++    CHECK(!error);
++    pthread_attr_destroy(&attr);
++    return reinterpret_cast<uint8_t*>(base) + size;
++  }
++  pthread_attr_destroy(&attr);
++  return nullptr;
++#else
+   stack_t ss;
+   void *base;
+   if (pthread_stackseg_np(pthread_self(), &ss) != 0)
+@@ -132,6 +150,7 @@ Stack::StackSlot Stack::ObtainCurrentThreadStackStart() {
+ 
+   base = (void*)((size_t) ss.ss_sp - ss.ss_size);
+   return reinterpret_cast<uint8_t*>(base) + ss.ss_size;
++#endif
+ }
+ 
+ std::optional<OS::MemoryRange> OS::GetFirstFreeMemoryRangeWithin(
+diff --git a/v8/src/base/platform/platform-posix.cc b/v8/src/base/platform/platform-posix.cc
+index 17533d7ed8..cd70a62e28 100644
+--- a/v8/src/base/platform/platform-posix.cc
++++ b/v8/src/base/platform/platform-posix.cc
+@@ -27,6 +27,9 @@
+     defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <sys/sysctl.h>  // for sysctl
+ #endif
++#if defined(__NetBSD__)
++#include <lwp.h>
++#endif
+ 
+ #if defined(ANDROID) && !defined(V8_ANDROID_LOG_STDOUT)
+ #define LOG_TAG "v8"
+@@ -73,8 +76,10 @@
+ #endif
+ 
+ #if V8_OS_FREEBSD || V8_OS_DARWIN || V8_OS_BSD || V8_OS_SOLARIS
++#ifndef MAP_ANONYMOUS
+ #define MAP_ANONYMOUS MAP_ANON
+ #endif
++#endif
+ 
+ #if defined(V8_OS_SOLARIS)
+ #if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__)
+@@ -306,7 +311,7 @@ void OS::SetRandomMmapSeed(int64_t seed) {
+ }
+ 
+ #if V8_OS_OPENBSD
+-// Allow OpenBSD's mmap to select a random address on OpenBSD 
++// Allow OpenBSD's mmap to select a random address on OpenBSD
+ // static
+ void* OS::GetRandomMmapAddr() {
+   return nullptr;
+@@ -832,6 +837,8 @@ int OS::GetCurrentThreadId() {
+   return static_cast<int>(thread_self());
+ #elif V8_OS_FUCHSIA
+   return static_cast<int>(zx_thread_self());
++#elif V8_OS_NETBSD
++  return static_cast<int>(_lwp_self());
+ #elif V8_OS_SOLARIS
+   return static_cast<int>(pthread_self());
+ #else
+@@ -1124,7 +1131,11 @@ Thread::Thread(const Options& options)
+       stack_size_(options.stack_size()),
+       priority_(options.priority()),
+       start_semaphore_(nullptr) {
++#if !defined(V8_OS_NETBSD)
+   const int min_stack_size = static_cast<int>(PTHREAD_STACK_MIN);
++#else
++  const int min_stack_size = static_cast<int>(sysconf(_SC_THREAD_STACK_MIN));
++#endif
+   if (stack_size_ > 0) stack_size_ = std::max(stack_size_, min_stack_size);
+   set_name(options.name());
+ }
+@@ -1139,7 +1150,7 @@ static void SetThreadName(const char* name) {
+   pthread_set_name_np(pthread_self(), name);
+ #elif V8_OS_NETBSD
+   static_assert(Thread::kMaxThreadNameLength <= PTHREAD_MAX_NAMELEN_NP);
+-  pthread_setname_np(pthread_self(), "%s", name);
++  pthread_setname_np(pthread_self(), "%s", (void *)name);
+ #elif V8_OS_DARWIN
+   // pthread_setname_np is only available in 10.6 or later, so test
+   // for it at runtime.
+@@ -1314,7 +1325,7 @@ void Thread::SetThreadLocal(LocalStorageKey key, void* value) {
+ // keep this version in POSIX as most Linux-compatible derivatives will
+ // support it. MacOS and FreeBSD are different here.
+ #if !defined(V8_OS_FREEBSD) && !defined(V8_OS_DARWIN) && !defined(_AIX) && \
+-    !defined(V8_OS_SOLARIS) && !defined(V8_OS_OPENBSD)
++    !defined(V8_OS_SOLARIS) && !defined(V8_OS_OPENBSD) && !defined(V8_OS_NETBSD)
+ 
+ namespace {
+ #if DEBUG
+diff --git a/v8/src/base/strings.h b/v8/src/base/strings.h
+index c3015e72c8..6f8fee9d52 100644
+--- a/v8/src/base/strings.h
++++ b/v8/src/base/strings.h
+@@ -8,6 +8,9 @@
+ #include "src/base/base-export.h"
+ #include "src/base/macros.h"
+ #include "src/base/vector.h"
++#if defined(__NetBSD__)
++#include <stdarg.h>
++#endif
+ 
+ namespace v8 {
+ namespace base {
+diff --git a/v8/src/base/sys-info.cc b/v8/src/base/sys-info.cc
+index c6c84e5f12..e3503041e1 100644
+--- a/v8/src/base/sys-info.cc
++++ b/v8/src/base/sys-info.cc
+@@ -37,8 +37,12 @@ namespace base {
+ 
+ // static
+ int SysInfo::NumberOfProcessors() {
++#if V8_OS_OPENBSD || V8_OS_NETBSD
+ #if V8_OS_OPENBSD
+   int mib[2] = {CTL_HW, HW_NCPUONLINE};
++#else
++  int mib[2] = {CTL_HW, HW_NCPU};
++#endif
+   int ncpu = 0;
+   size_t len = sizeof(ncpu);
+   if (sysctl(mib, arraysize(mib), &ncpu, &len, nullptr, 0) != 0) {
+diff --git a/v8/src/base/utils/random-number-generator.cc b/v8/src/base/utils/random-number-generator.cc
+index 91b7c6fc66..465edf438b 100644
+--- a/v8/src/base/utils/random-number-generator.cc
++++ b/v8/src/base/utils/random-number-generator.cc
+@@ -56,7 +56,7 @@ RandomNumberGenerator::RandomNumberGenerator() {
+   DCHECK_EQ(0, result);
+   USE(result);
+   SetSeed((static_cast<int64_t>(first_half) << 32) + second_half);
+-#elif V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD
++#elif V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
+   // Despite its prefix suggests it is not RC4 algorithm anymore.
+   // It always succeeds while having decent performance and
+   // no file descriptor involved.
+diff --git a/v8/src/trap-handler/handler-inside-posix.cc b/v8/src/trap-handler/handler-inside-posix.cc
+index 1f876c7664..156715ed1b 100644
+--- a/v8/src/trap-handler/handler-inside-posix.cc
++++ b/v8/src/trap-handler/handler-inside-posix.cc
+@@ -27,7 +27,7 @@
+ 
+ #include <signal.h>
+ 
+-#if defined(V8_OS_LINUX) || defined(V8_OS_FREEBSD)
++#if defined(V8_OS_LINUX) || defined(V8_OS_FREEBSD) || defined(V8_OS_NETBSD)
+ #include <ucontext.h>
+ #elif V8_OS_DARWIN
+ #include <sys/ucontext.h>
+@@ -63,6 +63,8 @@ namespace trap_handler {
+ #define CONTEXT_REG(reg, REG) &uc->uc_mcontext.mc_##reg
+ #elif V8_OS_OPENBSD
+ #define CONTEXT_REG(reg, REG) &uc->sc_##reg
++#elif V8_OS_NETBSD
++#define CONTEXT_REG(reg, REG) &uc->uc_mcontext.__gregs[_REG_##REG]
+ #else
+ #error "Unsupported platform."
+ #endif
+diff --git a/v8/src/trap-handler/handler-inside-posix.h b/v8/src/trap-handler/handler-inside-posix.h
+index ef2f4ee84d..d17ee7b539 100644
+--- a/v8/src/trap-handler/handler-inside-posix.h
++++ b/v8/src/trap-handler/handler-inside-posix.h
+@@ -13,7 +13,7 @@ namespace v8 {
+ namespace internal {
+ namespace trap_handler {
+ 
+-#if V8_OS_LINUX || V8_OS_FREEBSD || V8_OS_OPENBSD
++#if V8_OS_LINUX || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
+ constexpr int kOobSignal = SIGSEGV;
+ #elif V8_OS_DARWIN
+ constexpr int kOobSignal = SIGBUS;
+diff --git a/v8/src/trap-handler/trap-handler.h b/v8/src/trap-handler/trap-handler.h
+index 632139dded..96729f391a 100644
+--- a/v8/src/trap-handler/trap-handler.h
++++ b/v8/src/trap-handler/trap-handler.h
+@@ -20,7 +20,7 @@ namespace trap_handler {
+ // X64 on Linux, Windows, MacOS, FreeBSD.
+ #if V8_HOST_ARCH_X64 && V8_TARGET_ARCH_X64 &&                        \
+     ((V8_OS_LINUX && !V8_OS_ANDROID) || V8_OS_WIN || V8_OS_DARWIN || \
+-     V8_OS_FREEBSD || V8_OS_OPENBSD)
++     V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD)
+ #define V8_TRAP_HANDLER_SUPPORTED true
+ // Arm64 (non-simulator) on Mac and Linux.
+ #elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_ARM64 && \
+diff --git a/v8/tools/run-paxctl.py b/v8/tools/run-paxctl.py
+new file mode 100644
+index 0000000000..7cffa35b09
+--- /dev/null
++++ b/v8/tools/run-paxctl.py
+@@ -0,0 +1,16 @@
++#!@PYTHONBIN@
++# Copyright 2014 the V8 project 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 program wraps an arbitrary command since gn currently can only execute
++scripts."""
++
++import subprocess
++import sys
++import os
++
++with open(sys.argv[1], 'w'):
++  os.utime(sys.argv[1], None)
++
++sys.exit(subprocess.call(sys.argv[2:]))
diff --git a/chromium/options.mk b/chromium/options.mk
index 4f2f20ae07..04065bb3be 100644
--- a/chromium/options.mk
+++ b/chromium/options.mk
@@ -21,13 +21,16 @@ GN_ARGS+=	use_pulseaudio=true
 .if !empty(PKG_OPTIONS:Mdebug)
 BUILDTYPE=		Debug
 GN_ARGS+=		is_debug=true
-# Dynamic link build causes link errors in pkgsrc.
-GN_ARGS+=		is_component_build=false
+GN_ARGS+=		symbol_level=1
 GN_BOOTSTRAP_FLAGS+=	--debug
-GN_VERBOSE=		-v
+GN_VERBOSE=		#-v
+INSTALL_UNSTRIPPED=	yes
 .else
 BUILDTYPE=		Release
-GN_ARGS+=		is_debug=false \
-			symbol_level=0
+GN_ARGS+=		is_official_build=true
+GN_ARGS+=		is_component_build=false
+GN_ARGS+=		is_debug=false
+GN_ARGS+=		blink_symbol_level=0
+GN_ARGS+=		symbol_level=0
 GN_VERBOSE=		# empty
 .endif
diff --git a/chromium/patches/patch-BUILD.gn b/chromium/patches/patch-BUILD.gn
index e5ff055d47..66cd599802 100644
--- a/chromium/patches/patch-BUILD.gn
+++ b/chromium/patches/patch-BUILD.gn
@@ -1,219 +1,73 @@
 $NetBSD$
 
---- BUILD.gn.orig	2020-06-25 09:32:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- BUILD.gn.orig	2024-07-24 02:44:20.887256000 +0000
 +++ BUILD.gn
-@@ -203,7 +203,7 @@ group("gn_all") {
-     ]
-   }
- 
--  if (is_win || (is_linux && !is_chromeos) || is_android) {
-+  if (is_win || (is_linux && !is_chromeos) || is_android || is_bsd) {
-     deps += [
-       "//weblayer/shell:weblayer_shell",
-       "//weblayer/test:weblayer_browsertests",
-@@ -413,12 +413,12 @@ group("gn_all") {
-   #       seems currently broken for this platform at the moment, and the
-   #       corresponding code build and works on Linux unmodified.
-   #       See instructions in the corresponding BUILD.gn.
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps +=
-         [ "//third_party/android_crazy_linker:android_crazy_linker_zip_fuzzer" ]
-   }
- 
--  if (is_linux || is_chromeos) {
-+  if (is_linux || is_chromeos || is_bsd) {
-     # This is only used by ChromeOS, but we want maximal fuzzer coverage, so
-     # run it under linux too.
-     deps += [
-@@ -474,6 +474,15 @@ group("gn_all") {
-       "//testing:empty_main",
-     ]
+@@ -66,7 +66,7 @@ declare_args() {
+   root_extra_deps = []
+ }
  
-+  if (is_bsd) {
-+    deps += [
-+      "//chrome:xdg_mime",
-+      "//net:disk_cache_memory_test",
-+      "//net:quic_client",
-+      "//net:quic_server",
-+      "//testing:empty_main",
-+    ]
-+
-     if (use_dbus) {
-       deps += [
-         "//dbus:dbus_test_server",
-@@ -487,14 +496,14 @@ group("gn_all") {
+-if (is_official_build) {
++if (is_official_build && !is_bsd) {
+   # An official (maximally optimized!) component (optimized for build times)
+   # build doesn't make sense and usually doesn't work.
+   assert(!is_component_build)
+@@ -98,7 +98,6 @@ group("gn_all") {
+       "//codelabs",
+       "//components:components_unittests",
+       "//components/gwp_asan:gwp_asan_unittests",
+-      "//infra/orchestrator:orchestrator_all",
+       "//net:net_unittests",
+       "//sandbox:sandbox_unittests",
+       "//services:services_unittests",
+@@ -433,7 +432,7 @@ group("gn_all") {
+       }
      }
-   }
- 
--  if (is_ios || is_win || (is_linux && !is_chromeos)) {
-+  if (is_ios || is_win || (is_linux && !is_chromeos) || is_bsd) {
-     deps += [
-       "//base:base_i18n_perftests",
-       "//google_apis:google_apis_unittests",
-     ]
-   }
  
--  if ((is_win || is_mac || is_linux || is_chromeos || is_fuchsia) &&
-+  if ((is_win || is_mac || is_linux || is_chromeos || is_fuchsia || is_bsd) &&
-       (target_cpu == "x86" || target_cpu == "x64")) {
-     deps += [ "//third_party/swiftshader" ]
-   }
-@@ -520,7 +529,7 @@ group("gn_all") {
-       "//ui/compositor:compositor_unittests",
-     ]
- 
--    if (!is_android) {
-+    if (!is_android && is_linux) {
+-    if (is_linux || is_chromeos || is_android) {
++    if ((is_linux && !is_bsd) || is_chromeos || is_android) {
        deps += [
-         "//chrome/test:load_library_perf_tests",
-         "//chrome/test:sync_performance_tests",
-@@ -545,6 +554,27 @@ group("gn_all") {
-       ]
+         "//third_party/breakpad:breakpad_unittests",
+         "//third_party/breakpad:core-2-minidump",
+@@ -629,6 +628,15 @@ group("gn_all") {
+       }
      }
  
 +    if (is_bsd) {
-+      deps += [
-+        "//chrome/test:load_library_perf_tests",
-+        "//chrome/test:sync_performance_tests",
-+        "//chrome/test/chromedriver:chromedriver",
-+        "//media/cast:generate_barcode_video",
-+        "//media/cast:generate_timecode_audio",
-+        "//net:crash_cache",
-+        "//net:dns_fuzz_stub",
-+        "//net:net_watcher",  # TODO(GYP): This should be conditional on
-+                              # use_v8_in_net
-+        "//net:run_testserver",
-+        "//net:stress_cache",
-+        "//net:tld_cleanup",
-+        "//ppapi:pepper_hash_for_uma",
-+        "//ppapi:ppapi_perftests",
-+        "//third_party/leveldatabase:env_chromium_unittests",
-+        "//third_party/libaddressinput:libaddressinput_unittests",
++      deps -= [
++        "//third_party/breakpad:dump_syms($host_toolchain)",
++        "//third_party/breakpad:microdump_stackwalk($host_toolchain)",
++        "//third_party/breakpad:minidump_dump($host_toolchain)",
++        "//third_party/breakpad:minidump_stackwalk($host_toolchain)",
 +      ]
 +    }
 +
-     if (is_android) {
-       deps += [ "//chrome/test/chromedriver:chromedriver($host_toolchain)" ]
-     }
-@@ -559,7 +589,7 @@ group("gn_all") {
-     if (enable_nacl) {
-       deps += [ "//components/nacl/loader:nacl_loader_unittests" ]
- 
--      if (is_linux) {
-+      if (is_linux || is_bsd) {
-         # TODO(dpranke): Figure out what platforms should actually have this.
-         deps += [ "//components/nacl/loader:nacl_helper" ]
- 
-@@ -593,6 +623,17 @@ group("gn_all") {
-       "//third_party/breakpad:minidump_dump($host_toolchain)",
-       "//third_party/breakpad:minidump_stackwalk($host_toolchain)",
-     ]
-+  }
-+
-+  if (is_bsd) {
-+    deps += [
-+      "//components/network_hints/browser",
-+      "//content/public/app",
-+      "//mojo:mojo_perftests",
-+      "//services/service_manager/public/cpp",
-+      "//testing/gmock:gmock_main",
-+    ]
-+  }
- 
-     if (!is_android) {
+     if (is_mac) {
        deps += [
-@@ -665,7 +706,7 @@ group("gn_all") {
-         host_os == "win") {
-       deps += [ "//chrome/test/mini_installer:mini_installer_tests" ]
-     }
--  } else if (!is_android && !is_ios && !is_fuchsia) {
-+  } else if (!is_android && !is_ios && !is_fuchsia && !is_bsd) {
-     deps += [ "//third_party/breakpad:symupload($host_toolchain)" ]
-   }
- 
-@@ -680,7 +721,7 @@ group("gn_all") {
-     }
-   }
- 
--  if (is_mac || is_win || is_android || (is_linux && !is_chromeos)) {
-+  if (is_mac || is_win || is_android || (is_linux && !is_chromeos) || is_bsd) {
-     deps += [
-       "//third_party/crashpad/crashpad:crashpad_tests",
-       "//third_party/crashpad/crashpad/handler:crashpad_handler",
-@@ -704,19 +745,19 @@ group("gn_all") {
-     deps += [ "//content/browser/bluetooth/tools:bluetooth_metrics_hash" ]
-   }
- 
--  if (is_win || is_linux) {
-+  if (is_win || is_linux || is_bsd) {
-     deps += [ "//mojo" ]
-   }
- 
--  if (is_mac || is_linux || is_android || is_fuchsia) {
-+  if (is_mac || is_linux || is_android || is_fuchsia || is_bsd) {
-     deps += [ "//third_party/perfetto:all" ]
-   }
- 
--  if (is_win || is_mac || is_linux) {
-+  if (is_win || is_mac || is_linux || is_bsd) {
-     deps += [ "//third_party/sqlite:sqlite_shell" ]
-   }
- 
--  if (is_linux && !is_chromeos && !is_chromecast) {
-+  if ((is_linux || is_bsd) && !is_chromeos && !is_chromecast) {
-     # TODO(GYP): Figure out if any of these should be in gn_all
-     # and figure out how cross-platform they are
-     deps += [
-@@ -758,13 +799,13 @@ group("gn_all") {
+         "//third_party/breakpad:dump_syms",
+@@ -675,7 +683,7 @@ group("gn_all") {
+           host_os == "win") {
+         deps += [ "//chrome/test/mini_installer:mini_installer_tests" ]
        }
-       deps += [ "//third_party/libjpeg_turbo:simd_asm" ]
+-    } else if (!is_android && !is_ios && !is_fuchsia) {
++    } else if (!is_android && !is_ios && !is_fuchsia && !is_bsd) {
+       deps += [ "//third_party/breakpad:symupload($host_toolchain)" ]
      }
--    if (is_linux && current_toolchain == host_toolchain) {
-+    if ((is_linux || is_bsd) && current_toolchain == host_toolchain) {
-       deps += [ "//v8:v8_shell" ]
-     }
-   }
- 
-   if ((is_linux && !is_chromecast) || (is_win && use_libfuzzer) ||
--      (use_libfuzzer && is_mac)) {
-+      (use_libfuzzer && is_mac) || is_bsd) {
-     deps += [
-       "//chrome/services/ipp_parser/public/cpp:fuzzers",
-       "//testing/libfuzzer/fuzzers",
-@@ -786,7 +827,7 @@ group("gn_all") {
-     deps += [ "//native_client_sdk/src:nacl_core_sdk" ]
-   }
  
--  if (is_linux && use_ozone) {
-+  if ((is_linux || is_bsd) && use_ozone) {
-     deps += [
-       "//headless:headless_non_renderer",
-       "//headless:headless_tests",
-@@ -798,8 +839,12 @@ group("gn_all") {
-       "//chrome/browser/vr:vr_common_perftests",
-       "//chrome/browser/vr:vr_common_unittests",
-       "//chrome/browser/vr:vr_pixeltests",
-+    ]
-+    if (is_linux) {
-+    deps += [
-       "//tools/perf/contrib/vr_benchmarks:vr_perf_tests",
+@@ -1101,7 +1109,7 @@ if (use_blink && !is_cronet_build) {
      ]
-+    }
-     if (is_desktop_linux && use_ozone) {
-       deps += [ "//chrome/browser/vr/testapp:vr_testapp" ]
-     }
-@@ -838,7 +883,7 @@ group("gn_all") {
-   deps += [ "//third_party/opencv:opencv_emd_fuzzer" ]
- }
+   }
  
--if ((is_linux || is_win) && enable_remoting && !use_ozone) {
-+if ((is_linux || is_win || is_bsd) && enable_remoting && !use_ozone) {
-   # This group is used for network annotation check test.
-   group("shipped_binaries") {
-     deps = [
-@@ -1085,7 +1130,7 @@ if (!is_ios) {
-       ]
+-  if (!is_chromeos_ash && !is_ios && !is_fuchsia && !is_android && !is_castos) {
++  if (!is_chromeos_ash && !is_ios && !is_fuchsia && !is_android && !is_castos && !is_bsd) {
+     script_test("chrome_wpt_tests") {
+       script = "//third_party/blink/tools/run_wpt_tests.py"
+       args = [
+@@ -1194,7 +1202,7 @@ if (use_blink && !is_cronet_build) {
+       data_deps += [ "//content/web_test:web_test_common_mojom_js_data_deps" ]
      }
  
 -    if (!is_win && !is_android) {
@@ -221,12 +75,21 @@ $NetBSD$
        data_deps +=
            [ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ]
      }
-@@ -1292,7 +1337,7 @@ group("chromium_builder_perf") {
+@@ -1203,7 +1211,7 @@ if (use_blink && !is_cronet_build) {
+       data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
+     }
+ 
+-    if (is_linux || is_chromeos) {
++    if ((is_linux && !is_bsd) || is_chromeos) {
+       data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
+     }
+ 
+@@ -1667,7 +1675,7 @@ group("chromium_builder_perf") {
+       data_deps += [ "//chrome/test:performance_browser_tests" ]
+     }
  
-     if (is_win) {
-       data_deps += [ "//chrome/installer/mini_installer:mini_installer" ]
--    } else {
-+    } else if (!is_bsd) {
+-    if (!is_win) {
++    if (!is_win && !is_bsd) {
        data_deps +=
            [ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ]
      }
diff --git a/chromium/patches/patch-apps_app__restore__service__browsertest.cc b/chromium/patches/patch-apps_app__restore__service__browsertest.cc
deleted file mode 100644
index 737786c4c3..0000000000
--- a/chromium/patches/patch-apps_app__restore__service__browsertest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- apps/app_restore_service_browsertest.cc.orig	2020-06-25 09:31:17.000000000 +0000
-+++ apps/app_restore_service_browsertest.cc
-@@ -148,7 +148,7 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowse
- }
- 
- // Flaky: crbug.com/269613
--#if defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
- #define MAYBE_FileAccessIsRestored DISABLED_FileAccessIsRestored
- #else
- #define MAYBE_FileAccessIsRestored FileAccessIsRestored
diff --git a/chromium/patches/patch-apps_ui_views_app__window__frame__view.cc b/chromium/patches/patch-apps_ui_views_app__window__frame__view.cc
index 6d9a8a61da..120d9dc315 100644
--- a/chromium/patches/patch-apps_ui_views_app__window__frame__view.cc
+++ b/chromium/patches/patch-apps_ui_views_app__window__frame__view.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- apps/ui/views/app_window_frame_view.cc.orig	2020-07-24 02:37:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- apps/ui/views/app_window_frame_view.cc.orig	2024-07-24 02:44:21.071273800 +0000
 +++ apps/ui/views/app_window_frame_view.cc
-@@ -125,7 +125,7 @@ gfx::Rect AppWindowFrameView::GetBoundsF
- gfx::Rect AppWindowFrameView::GetWindowBoundsForClientBounds(
-     const gfx::Rect& client_bounds) const {
+@@ -148,7 +148,7 @@ gfx::Rect AppWindowFrameView::GetWindowB
    gfx::Rect window_bounds = client_bounds;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    // Get the difference between the widget's client area bounds and window
    // bounds, and grow |window_bounds| by that amount.
    gfx::Insets native_frame_insets =
diff --git a/chromium/patches/patch-ash_display_mirror__window__controller.cc b/chromium/patches/patch-ash_display_mirror__window__controller.cc
new file mode 100644
index 0000000000..baeb1063ef
--- /dev/null
+++ b/chromium/patches/patch-ash_display_mirror__window__controller.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ash/display/mirror_window_controller.cc.orig	2024-07-24 02:44:21.383303900 +0000
++++ ash/display/mirror_window_controller.cc
+@@ -294,7 +294,11 @@ void MirrorWindowController::UpdateWindo
+       if (!base::Contains(display_info_list, iter->first,
+                           &display::ManagedDisplayInfo::id)) {
+         CloseAndDeleteHost(iter->second, true);
++#if defined(__llvm__)
++        mirroring_host_info_map_.erase(iter++);
++#else
+         iter = mirroring_host_info_map_.erase(iter);
++#endif
+       } else {
+         ++iter;
+       }
diff --git a/chromium/patches/patch-base_BUILD.gn b/chromium/patches/patch-base_BUILD.gn
index 2fc3d6c266..75ebf58f48 100644
--- a/chromium/patches/patch-base_BUILD.gn
+++ b/chromium/patches/patch-base_BUILD.gn
@@ -1,154 +1,178 @@
 $NetBSD$
 
---- base/BUILD.gn.orig	2020-07-15 18:56:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/BUILD.gn.orig	2024-07-24 02:44:22.431405500 +0000
 +++ base/BUILD.gn
-@@ -60,7 +60,7 @@ declare_args() {
-   # replacement base::Location::Current(). On by default in non-official builds
-   # for testing purposes.
-   # TODO(https://crbug.com/974061): remove this eventually.
--  from_here_uses_location_builtins = !is_official_build
-+  from_here_uses_location_builtins = !is_official_build && !is_bsd
- 
-   # Unsafe developer build. Has developer-friendly features that may weaken or
-   # disable security measures like sandboxing or ASLR.
-@@ -887,7 +887,7 @@ jumbo_component("base") {
-       "timer/hi_res_timer_manager_posix.cc",
-     ]
+@@ -182,7 +182,7 @@ buildflag_header("ios_cronet_buildflags"
+   flags = [ "CRONET_BUILD=$is_cronet_build" ]
+ }
  
--    if (!is_nacl && !is_mac && !is_ios) {
-+    if (!is_nacl && !is_mac && !is_ios && !is_bsd) {
-       sources += [
-         "profiler/stack_copier_signal.cc",
-         "profiler/stack_copier_signal.h",
-@@ -896,6 +896,12 @@ jumbo_component("base") {
-         "profiler/thread_delegate_posix.h",
-       ]
-     }
-+
-+    if (is_bsd) {
-+      sources += [
-+        "profiler/stack_sampler_posix.cc",
-+      ]
-+    }
-   }
- 
-   if (is_win) {
-@@ -1182,7 +1188,7 @@ jumbo_component("base") {
-     ]
-   }
+-enable_message_pump_epoll = is_linux || is_chromeos || is_android
++enable_message_pump_epoll = (is_linux || is_chromeos || is_android) && !is_bsd
+ buildflag_header("message_pump_buildflags") {
+   header = "message_pump_buildflags.h"
+   header_dir = "base/message_loop"
+@@ -966,7 +966,7 @@ component("base") {
+     #"system/sys_info_openbsd.cc",
+   ]
  
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
+-  if (is_apple || current_os == "freebsd" || current_os == "openbsd") {
++  if (is_apple || current_os == "freebsd" || current_os == "openbsd" || current_os == "netbsd") {
      sources += [
-       "debug/proc_maps_linux.cc",
-       "debug/proc_maps_linux.h",
-@@ -1233,7 +1239,7 @@ jumbo_component("base") {
-       sources += [ "base_paths_posix.h" ]
-     }
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources += [
-         "base_paths_posix.cc",
-         "debug/elf_reader.cc",
-@@ -1287,7 +1293,7 @@ jumbo_component("base") {
+       "posix/sysctl.cc",
+       "posix/sysctl.h",
+@@ -1119,11 +1119,23 @@ component("base") {
    # Needed for <atomic> if using newer C++ library than sysroot, except if
    # building inside the cros_sdk environment - use host_toolchain as a
    # more robust check for this.
--  if (!use_sysroot && (is_android || (is_linux && !is_chromecast)) &&
-+  if (!use_sysroot && (is_android || ((is_linux || is_bsd) && !is_chromecast) && !is_clang) &&
+-  if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos)) &&
++  if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos && !is_bsd)) &&
        host_toolchain != "//build/toolchain/cros:host") {
      libs += [ "atomic" ]
    }
-@@ -1313,7 +1319,7 @@ jumbo_component("base") {
-         "allocator/allocator_shim_override_glibc_weak_symbols.h",
-       ]
-       deps += [ "//base/allocator:tcmalloc" ]
--    } else if (is_linux && use_allocator == "none") {
-+    } else if ((is_linux || is_bsd) && use_allocator == "none") {
-       sources += [ "allocator/allocator_shim_default_dispatch_to_glibc.cc" ]
-     } else if ((is_linux || is_android) && use_allocator == "partition") {
-       # Cannot use the same dispatching for host-side binaries.
-@@ -1889,7 +1895,7 @@ jumbo_component("base") {
+ 
++  # *BSD needs libkvm
++  if (is_bsd) {
++    libs += [ "kvm" ]
++  }
++
++  if (is_freebsd) {
++    libs += [
++      "execinfo",
++      "util",
++    ]
++  }
++
+   if (use_allocator_shim) {
+     if (is_apple) {
+       sources += [ "allocator/early_zone_registration_apple.h" ]
+@@ -1143,7 +1155,7 @@ component("base") {
+ 
+   # Allow more direct string conversions on platforms with native utf8
+   # strings
+-  if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia) {
++  if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia || is_bsd) {
+     defines += [ "SYSTEM_NATIVE_UTF8" ]
    }
  
-   # Linux.
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     # TODO(brettw) this will need to be parameterized at some point.
-     linux_configs = []
-     if (use_glib) {
-@@ -1925,6 +1931,33 @@ jumbo_component("base") {
-     }
+@@ -2110,6 +2122,29 @@ component("base") {
+     ]
    }
  
-+  if (is_netbsd) {
-+    sources -= [
-+      "files/file_path_watcher_linux.cc",
-+      "files/file_util_linux.cc",
-+      "process/memory_linux.cc",
-+      "process/process_handle_linux.cc",
-+      "process/process_iterator_linux.cc",
-+      "process/process_metrics_linux.cc",
-+      "system/sys_info_linux.cc"
++  if (is_openbsd) {
++    sources += [
++      "process/process_handle_openbsd.cc",
++      "process/process_iterator_openbsd.cc",
++      "process/process_metrics_openbsd.cc",
++      "system/sys_info_openbsd.cc",
 +    ]
++  } else if (is_freebsd) {
++    sources += [
++      "process/process_handle_freebsd.cc",
++      "process/process_iterator_freebsd.cc",
++      "process/process_metrics_freebsd.cc",
++      "system/sys_info_freebsd.cc",
++    ]
++  }  else if (is_netbsd) {
 +    sources += [
-+      "files/file_path_watcher_kqueue.cc",
-+      "files/file_path_watcher_kqueue.h",
-+      "files/file_path_watcher_stub.cc",
-+      "process/memory_stubs.cc",
 +      "process/process_handle_netbsd.cc",
 +      "process/process_iterator_netbsd.cc",
 +      "process/process_metrics_netbsd.cc",
 +      "system/sys_info_netbsd.cc",
 +    ]
-+    libs += [
-+      "execinfo", # logging.cc
-+      "kvm",      # process_metrics_freebsd
-+      "util"      # process_metrics_freebsd
-+    ]
 +  }
 +
    # iOS
    if (is_ios) {
-     sources -= [
-@@ -2987,7 +3020,7 @@ test("base_unittests") {
-     ]
+     sources += [
+@@ -2255,6 +2290,33 @@ component("base") {
+     }
    }
  
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [ "debug/proc_maps_linux_unittest.cc" ]
++  if (is_bsd) {
++    sources -= [
++      "files/file_path_watcher_inotify.cc",
++      "files/scoped_file_linux.cc",
++      "process/set_process_title_linux.cc",
++      "process/set_process_title_linux.h",
++      "system/sys_info_linux.cc",
++      "process/process_iterator_linux.cc",
++      "process/process_linux.cc",
++      "process/process_metrics_linux.cc",
++      "process/process_handle_linux.cc",
++      "profiler/stack_copier_signal.cc",
++      "profiler/stack_copier_signal.h",
++      "profiler/thread_delegate_posix.cc",
++      "profiler/thread_delegate_posix.h",
++      "threading/platform_thread_linux.cc",
++      "stack_canary_linux.cc",
++      "stack_canary_linux.h",
++    ]
++    sources += [
++      "files/file_path_watcher_kqueue.cc",
++      "files/file_path_watcher_kqueue.h",
++      "files/file_path_watcher_bsd.cc",
++      "threading/platform_thread_bsd.cc",
++    ]
++  }
++
+   if (use_blink) {
+     sources += [
+       "files/file_path_watcher.cc",
+@@ -2265,7 +2327,7 @@ component("base") {
    }
  
-@@ -3026,7 +3059,7 @@ test("base_unittests") {
-       "posix/unix_domain_socket_unittest.cc",
-       "task/thread_pool/task_tracker_posix_unittest.cc",
-     ]
--    if (!is_nacl && !is_mac && !is_ios) {
-+    if (!is_nacl && !is_mac && !is_ios && !is_bsd) {
-       sources += [ "profiler/stack_copier_signal_unittest.cc" ]
-     }
+   if (dep_libevent) {
+-    deps += [ "//third_party/libevent" ]
++    public_deps += [ "//third_party/libevent" ]
    }
-@@ -3173,7 +3206,7 @@ test("base_unittests") {
-     }
+ 
+   if (use_libevent) {
+@@ -3062,7 +3124,7 @@ if (is_apple) {
+   }
+ }
+ 
+-if (!is_nacl && (is_linux || is_chromeos)) {
++if (!is_nacl && !is_bsd && (is_linux || is_chromeos)) {
+   # This test must compile with -fstack-protector-all
+   source_set("stack_canary_linux_unittests") {
+     testonly = true
+@@ -3711,7 +3773,7 @@ test("base_unittests") {
+     ]
    }
  
--  if (is_fuchsia || is_linux) {
-+  if (is_fuchsia || is_linux || is_bsd) {
-     sources += [ "debug/elf_reader_unittest.cc" ]
+-  if (is_linux || is_chromeos) {
++  if (!is_bsd && (is_linux || is_chromeos)) {
+     sources += [
+       "debug/proc_maps_linux_unittest.cc",
+       "files/scoped_file_linux_unittest.cc",
+@@ -3738,7 +3800,7 @@ test("base_unittests") {
+       "posix/file_descriptor_shuffle_unittest.cc",
+       "posix/unix_domain_socket_unittest.cc",
+     ]
+-    if (!is_nacl && !is_apple) {
++    if (!is_nacl && !is_apple && !is_bsd) {
+       sources += [
+         "profiler/stack_base_address_posix_unittest.cc",
+         "profiler/stack_copier_signal_unittest.cc",
+@@ -3749,7 +3811,7 @@ test("base_unittests") {
  
-     deps += [ "//base/test:malloc_wrapper" ]
-@@ -3241,6 +3274,12 @@ test("base_unittests") {
-     manifest = "//build/config/fuchsia/tests.cmx"
+   # Allow more direct string conversions on platforms with native utf8
+   # strings
+-  if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia) {
++  if (is_apple || is_chromeos || is_castos || is_cast_android || is_fuchsia || is_bsd) {
+     defines += [ "SYSTEM_NATIVE_UTF8" ]
    }
  
-+  if (is_bsd) {
-+    sources -= [
-+      "debug/proc_maps_linux_unittest.cc",
-+    ]
-+  }
-+
-   if (!is_fuchsia && !is_ios) {
-     sources += [ "files/file_locking_unittest.cc" ]
+@@ -4017,7 +4079,7 @@ test("base_unittests") {
+     }
    }
+ 
+-  if (is_fuchsia || is_linux || is_chromeos) {
++  if ((is_fuchsia || is_linux || is_chromeos) && !is_bsd) {
+     sources += [
+       "debug/elf_reader_unittest.cc",
+       "debug/test_elf_image_builder.cc",
diff --git a/chromium/patches/patch-base_allocator_BUILD.gn b/chromium/patches/patch-base_allocator_BUILD.gn
deleted file mode 100644
index d058f780f7..0000000000
--- a/chromium/patches/patch-base_allocator_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- base/allocator/BUILD.gn.orig	2020-07-15 18:55:48.000000000 +0000
-+++ base/allocator/BUILD.gn
-@@ -64,7 +64,7 @@ config("tcmalloc_flags") {
-     cflags = []
-   }
- 
--  if (is_linux || is_android) {
-+  if (is_linux || is_android || is_bsd) {
-     # We enable all warnings by default, but upstream disables a few.
-     # Keep "-Wno-*" flags in sync with upstream by comparing against:
-     # http://code.google.com/p/google-perftools/source/browse/trunk/Makefile.am
-@@ -233,7 +233,7 @@ if (use_allocator == "tcmalloc") {
-       defines += [ "ENABLE_PROFILING=1" ]
-     }
- 
--    if (is_linux || is_android) {
-+    if (is_linux || is_android || is_bsd) {
-       sources -= [
-         "$tcmalloc_dir/src/system-alloc.h",
-         "$tcmalloc_dir/src/windows/port.cc",
diff --git a/chromium/patches/patch-base_allocator_allocator__shim__unittest.cc b/chromium/patches/patch-base_allocator_allocator__shim__unittest.cc
deleted file mode 100644
index 5422fbd5a6..0000000000
--- a/chromium/patches/patch-base_allocator_allocator__shim__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/allocator/allocator_shim_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/allocator/allocator_shim_unittest.cc
-@@ -557,7 +557,7 @@ static size_t GetAllocatedSize(void* ptr
- static size_t GetAllocatedSize(void* ptr) {
-   return malloc_size(ptr);
- }
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- static size_t GetAllocatedSize(void* ptr) {
-   return malloc_usable_size(ptr);
- }
diff --git a/chromium/patches/patch-base_allocator_dispatcher_tls.h b/chromium/patches/patch-base_allocator_dispatcher_tls.h
new file mode 100644
index 0000000000..93c8df7195
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_dispatcher_tls.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/dispatcher/tls.h.orig	2024-07-24 02:44:22.431405500 +0000
++++ base/allocator/dispatcher/tls.h
+@@ -77,7 +77,7 @@ struct BASE_EXPORT MMapAllocator {
+   constexpr static size_t AllocationChunkSize = 16384;
+ #elif BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS)
+   constexpr static size_t AllocationChunkSize = 16384;
+-#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_ARM64)
+   constexpr static size_t AllocationChunkSize = 16384;
+ #else
+   constexpr static size_t AllocationChunkSize = 4096;
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h b/chromium/patches/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h
deleted file mode 100644
index 85469118c8..0000000000
--- a/chromium/patches/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/allocator/partition_allocator/page_allocator_internals_posix.h.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/allocator/partition_allocator/page_allocator_internals_posix.h
-@@ -24,7 +24,7 @@
- #if defined(OS_ANDROID)
- #include <sys/prctl.h>
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include <sys/resource.h>
- 
- #include <algorithm>
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_partition__alloc.gni b/chromium/patches/patch-base_allocator_partition__allocator_partition__alloc.gni
new file mode 100644
index 0000000000..a14cc6674a
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_partition__alloc.gni
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/partition_alloc.gni.orig	2024-07-24 02:44:22.435405700 +0000
++++ base/allocator/partition_allocator/partition_alloc.gni
+@@ -31,7 +31,7 @@ if (is_nacl) {
+ use_large_empty_slot_span_ring = is_mac
+ 
+ has_memory_tagging =
+-    current_cpu == "arm64" && is_clang && !is_asan && (is_linux || is_android)
++    current_cpu == "arm64" && is_clang && !is_asan && !is_bsd && (is_linux || is_android)
+ 
+ declare_args() {
+   # Causes all the allocations to be routed via allocator_shim.cc. Usually,
+@@ -360,7 +360,7 @@ assert(!use_asan_backup_ref_ptr || use_r
+ # dependencies that use partition_allocator are compiled in AOSP against a
+ # version of glibc that does not include pkeys syscall numbers.
+ is_pkeys_available =
+-    (is_linux || is_chromeos) && current_cpu == "x64" && !is_cronet_build
++    !is_bsd && (is_linux || is_chromeos) && current_cpu == "x64" && !is_cronet_build
+ declare_args() {
+   enable_pkeys = is_pkeys_available
+ }
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_partition__alloc__unittest.cc b/chromium/patches/patch-base_allocator_partition__allocator_partition__alloc__unittest.cc
deleted file mode 100644
index a30c2cb94e..0000000000
--- a/chromium/patches/patch-base_allocator_partition__allocator_partition__alloc__unittest.cc
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD$
-
---- base/allocator/partition_allocator/partition_alloc_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/allocator/partition_allocator/partition_alloc_unittest.cc
-@@ -313,9 +313,13 @@ void FreeFullPage(PartitionRoot<base::in
-   }
- }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- bool CheckPageInCore(void* ptr, bool in_core) {
-+#if defined(OS_BSD)
-+  char ret = 0;
-+#else
-   unsigned char ret = 0;
-+#endif
-   EXPECT_EQ(0, mincore(ptr, kSystemPageSize, &ret));
-   return in_core == (ret & 1);
- }
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn
new file mode 100644
index 0000000000..3580ff063e
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/BUILD.gn.orig	2024-07-24 02:44:22.435405700 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
+@@ -863,7 +863,7 @@ if (is_clang_or_gcc) {
+         configs -= [ partition_alloc_enable_arc_config ]
+       }
+     }
+-    if (is_chromeos || is_linux) {
++    if ((is_chromeos || is_linux) && !is_bsd) {
+       shim_headers += [
+         "shim/allocator_shim_override_cpp_symbols.h",
+         "shim/allocator_shim_override_glibc_weak_symbols.h",
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h
new file mode 100644
index 0000000000..dfd9a9e32f
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_address__space__randomization.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h.orig	2024-07-24 02:44:22.439406200 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h
+@@ -38,7 +38,7 @@ AslrMask(uintptr_t bits) {
+ 
+ #if PA_BUILDFLAG(PA_ARCH_CPU_64_BITS)
+ 
+-  #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
++  #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR) && !PA_BUILDFLAG(IS_BSD)
+ 
+     // We shouldn't allocate system pages at all for sanitizer builds. However,
+     // we do, and if random hint addresses interfere with address ranges
+@@ -125,7 +125,7 @@ AslrMask(uintptr_t bits) {
+         return AslrAddress(0x20000000ULL);
+       }
+     #elif PA_BUILDFLAG(PA_ARCH_CPU_ARM64)
+-      #if PA_BUILDFLAG(IS_LINUX)
++      #if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_BSD)
+ 
+       // Linux on arm64 can use 39, 42, 48, or 52-bit user space, depending on
+       // page size and number of levels of translation pages used. We use
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h
new file mode 100644
index 0000000000..89e92dcc57
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/page_allocator.h.orig	2024-07-24 02:44:22.443406600 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/page_allocator.h
+@@ -259,7 +259,7 @@ bool DecommitAndZeroSystemPages(void* ad
+ // recommitted. Do not assume that this will not change over time.
+ constexpr PA_COMPONENT_EXPORT(
+     PARTITION_ALLOC) bool DecommittedMemoryIsAlwaysZeroed() {
+-#if PA_BUILDFLAG(IS_APPLE)
++#if PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_BSD)
+   return false;
+ #else
+   return true;
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h
new file mode 100644
index 0000000000..7626e81d94
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__constants.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h.orig	2024-07-24 02:44:22.443406600 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
+@@ -26,7 +26,7 @@
+ #define PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR __attribute__((const))
+ 
+ #elif (PA_BUILDFLAG(IS_ANDROID) && PA_BUILDFLAG(PA_ARCH_CPU_64_BITS)) || \
+-    (PA_BUILDFLAG(IS_LINUX) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64))
++    ((PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_BSD)) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64))
+ // This should work for all POSIX (if needed), but currently all other
+ // supported OS/architecture combinations use either hard-coded values
+ // (such as x86) or have means to determine these values without needing
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h
new file mode 100644
index 0000000000..6c4771b2de
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_page__allocator__internals__posix.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.h.orig	2024-07-24 02:44:22.443406600 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.h
+@@ -411,8 +411,12 @@ bool TryRecommitSystemPagesInternal(
+ 
+ void DiscardSystemPagesInternal(uintptr_t address, size_t length) {
+   void* ptr = reinterpret_cast<void*>(address);
+-#if PA_BUILDFLAG(IS_APPLE)
++#if PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_BSD)
++#if PA_BUILDFLAG(IS_BSD)
++  int ret = madvise(ptr, length, MADV_FREE);
++#else
+   int ret = madvise(ptr, length, MADV_FREE_REUSABLE);
++#endif
+   if (ret) {
+     // MADV_FREE_REUSABLE sometimes fails, so fall back to MADV_DONTNEED.
+     ret = madvise(ptr, length, MADV_DONTNEED);
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc
new file mode 100644
index 0000000000..a563bbee9d
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_debug_stack__trace__posix.cc
@@ -0,0 +1,40 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_posix.cc.orig	2024-07-24 02:44:22.447407000 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_posix.cc
+@@ -13,11 +13,11 @@
+ #include "partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
+ #include "partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
+ 
+-#if !PA_BUILDFLAG(IS_ANDROID) && !PA_BUILDFLAG(IS_APPLE)
++#if !PA_BUILDFLAG(IS_ANDROID) && !PA_BUILDFLAG(IS_APPLE) && !PA_BUILDFLAG(IS_BSD)
+ #include <link.h>  // For ElfW() macro.
+ #endif
+ 
+-#if PA_BUILDFLAG(IS_APPLE)
++#if PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_BSD)
+ #include <dlfcn.h>
+ #endif
+ 
+@@ -25,7 +25,7 @@ namespace partition_alloc::internal::bas
+ 
+ namespace {
+ 
+-#if !PA_BUILDFLAG(IS_APPLE)
++#if !PA_BUILDFLAG(IS_APPLE) && !PA_BUILDFLAG(IS_BSD)
+ 
+ // On Android the 'open' function has two versions:
+ // int open(const char *pathname, int flags);
+@@ -369,7 +369,7 @@ void PrintStackTraceInternal(const void*
+ }
+ #endif  // !PA_BUILDFLAG(IS_APPLE)
+ 
+-#if PA_BUILDFLAG(IS_APPLE)
++#if PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_BSD)
+ // Since /proc/self/maps is not available, use dladdr() to obtain module
+ // names and offsets inside the modules from the given addresses.
+ void PrintStackTraceInternal(const void* const* trace, size_t size) {
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc
new file mode 100644
index 0000000000..6e085c6afe
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_rand__util__posix.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_posix.cc.orig	2024-07-24 02:44:22.455407900 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_posix.cc
+@@ -102,6 +102,10 @@ void RandBytes(void* output, size_t outp
+   if (getentropy(output, output_length) == 0) {
+     return;
+   }
++#elif PA_BUILDFLAG(IS_BSD)
++  if (getentropy(output, output_length) == 0) {
++    return;
++  }
+ #endif
+   // If getrandom(2) above returned with an error and the /dev/urandom fallback
+   // took place on Linux/ChromeOS bots, they would fail with a CHECK in
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h
new file mode 100644
index 0000000000..861f0dafe4
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h.orig	2024-07-24 02:44:22.459408300 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h
+@@ -37,6 +37,8 @@ typedef DWORD PlatformThreadId;
+ typedef zx_handle_t PlatformThreadId;
+ #elif PA_BUILDFLAG(IS_APPLE)
+ typedef mach_port_t PlatformThreadId;
++#elif PA_BUILDFLAG(IS_BSD)
++typedef uint64_t PlatformThreadId;
+ #elif PA_BUILDFLAG(IS_POSIX)
+ typedef pid_t PlatformThreadId;
+ #endif
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h
new file mode 100644
index 0000000000..bcf5beaea2
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__internal__posix.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h.orig	2024-07-24 02:44:22.459408300 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h
+@@ -10,7 +10,7 @@
+ 
+ namespace partition_alloc::internal::base::internal {
+ 
+-#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS)
++#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD)
+ // Current thread id is cached in thread local storage for performance reasons.
+ // In some rare cases it's important to invalidate that cache explicitly (e.g.
+ // after going through clone() syscall which does not call pthread_atfork()
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc
new file mode 100644
index 0000000000..3acf4275a3
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__base_threading_platform__thread__posix.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix.cc.orig	2024-07-24 02:44:22.459408300 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix.cc
+@@ -18,7 +18,7 @@
+ #include "partition_alloc/partition_alloc_base/logging.h"
+ #include "partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h"
+ 
+-#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS)
++#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD)
+ #include <sys/syscall.h>
+ #include <atomic>
+ #endif
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h
new file mode 100644
index 0000000000..4041535ca7
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__config.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h.orig	2024-07-24 02:44:22.463408500 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h
+@@ -236,7 +236,7 @@ constexpr bool kUseLazyCommit = false;
+ // This may be required on more platforms in the future.
+ #define PA_CONFIG_HAS_ATFORK_HANDLER()                 \
+   (PA_BUILDFLAG(IS_APPLE) || PA_BUILDFLAG(IS_LINUX) || \
+-   PA_BUILDFLAG(IS_CHROMEOS))
++   PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD))
+ 
+ // PartitionAlloc uses PartitionRootEnumerator to acquire all
+ // PartitionRoots at BeforeFork and to release at AfterFork.
+@@ -284,7 +284,7 @@ constexpr bool kUseLazyCommit = false;
+ // Also enabled on ARM64 macOS and iOS, as the 16kiB pages on this platform lead
+ // to larger slot spans.
+ #if PA_BUILDFLAG(IS_LINUX) || \
+-    (PA_BUILDFLAG(IS_APPLE) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64))
++    (PA_BUILDFLAG(IS_APPLE) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64)) || PA_BUILDFLAG(IS_BSD)
+ #define PA_CONFIG_PREFER_SMALLER_SLOT_SPANS() 1
+ #else
+ #define PA_CONFIG_PREFER_SMALLER_SLOT_SPANS() 0
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h
new file mode 100644
index 0000000000..bdfaa07748
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__constants.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h.orig	2024-07-24 02:44:22.463408500 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h
+@@ -329,7 +329,7 @@ PA_DEFINE_OPERATORS_FOR_FLAGS(PoolHandle
+ // 8GB for each of the glued pools).
+ #if PA_BUILDFLAG(HAS_64_BIT_POINTERS)
+ #if PA_BUILDFLAG(IS_ANDROID) || PA_BUILDFLAG(IS_IOS) || \
+-    PA_BUILDFLAG(ENABLE_POINTER_COMPRESSION)
++    PA_BUILDFLAG(ENABLE_POINTER_COMPRESSION) || PA_BUILDFLAG(IS_BSD)
+ constexpr size_t kPoolMaxSize = 8 * kGiB;
+ #else
+ constexpr size_t kPoolMaxSize = 16 * kGiB;
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h
new file mode 100644
index 0000000000..049764eeb6
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__alloc__forward.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h.orig	2024-07-24 02:44:22.463408500 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h
+@@ -28,9 +28,13 @@ namespace internal {
+ // the second one 16. We could technically return something different for
+ // malloc() and operator new(), but this would complicate things, and most of
+ // our allocations are presumably coming from operator new() anyway.
++#if defined(__i386__) && defined(OS_FREEBSD)
++constexpr size_t kAlignment = 8;
++#else
+ constexpr size_t kAlignment =
+     std::max(alignof(max_align_t),
+              static_cast<size_t>(__STDCPP_DEFAULT_NEW_ALIGNMENT__));
++#endif
+ static_assert(kAlignment <= 16,
+               "PartitionAlloc doesn't support a fundamental alignment larger "
+               "than 16 bytes.");
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc
new file mode 100644
index 0000000000..13da277ec0
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_partition__root.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/partition_root.cc.orig	2024-07-24 02:44:22.467409000 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/partition_root.cc
+@@ -48,7 +48,7 @@
+ #include "wow64apiset.h"
+ #endif
+ 
+-#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS)
++#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD)
+ #include <pthread.h>
+ #endif
+ 
+@@ -282,7 +282,7 @@ void PartitionAllocMallocInitOnce() {
+     return;
+   }
+ 
+-#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS)
++#if PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_CHROMEOS) || PA_BUILDFLAG(IS_BSD)
+   // When fork() is called, only the current thread continues to execute in the
+   // child process. If the lock is held, but *not* by this thread when fork() is
+   // called, we have a deadlock.
+@@ -1079,7 +1079,7 @@ void PartitionRoot::Init(PartitionOption
+     // apple OSes.
+     PA_CHECK((internal::SystemPageSize() == (size_t{1} << 12)) ||
+              (internal::SystemPageSize() == (size_t{1} << 14)));
+-#elif PA_BUILDFLAG(IS_LINUX) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64)
++#elif (PA_BUILDFLAG(IS_LINUX) || PA_BUILDFLAG(IS_BSD)) && PA_BUILDFLAG(PA_ARCH_CPU_ARM64)
+     // Check runtime pagesize. Though the code is currently the same, it is
+     // not merged with the IS_APPLE case above as a 1 << 16 case needs to be
+     // added here in the future, to allow 64 kiB pagesize. That is only
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc
new file mode 100644
index 0000000000..b8b4d304d6
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_spinning__mutex.cc
@@ -0,0 +1,65 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc.orig	2024-07-24 02:44:22.479410200 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc
+@@ -17,7 +17,16 @@
+ #endif
+ 
+ #if PA_CONFIG(HAS_LINUX_KERNEL)
++#if defined(OS_OPENBSD) || defined(OS_NETBSD)
++#include <sys/time.h>
++#include <sys/futex.h>
++#elif defined(OS_FREEBSD)
++#include <sys/types.h>
++#include <sys/thr.h>
++#include <sys/umtx.h>
++#else
+ #include <linux/futex.h>
++#endif
+ #include <sys/syscall.h>
+ #include <unistd.h>
+ 
+@@ -109,8 +118,19 @@ void SpinningMutex::FutexWait() {
+   // |kLockedContended| anymore. Note that even without spurious wakeups, the
+   // value of |state_| is not guaranteed when this returns, as another thread
+   // may get the lock before we get to run.
++#if defined(OS_FREEBSD)
++  int err = _umtx_op(&state_, UMTX_OP_WAIT_UINT_PRIVATE,
++                    kLockedContended, nullptr, nullptr);
++#elif defined(OS_OPENBSD)
++  int err = futex(reinterpret_cast<volatile unsigned int *>(&state_), FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
++                    kLockedContended, nullptr, nullptr);
++#elif defined(OS_NETBSD)
++  int err = syscall(SYS___futex, reinterpret_cast<int *>(&state_), FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
++                     kLockedContended, nullptr, nullptr, 0, 0);
++#else
+   int err = syscall(SYS_futex, &state_, FUTEX_WAIT | FUTEX_PRIVATE_FLAG,
+                     kLockedContended, nullptr, nullptr, 0);
++#endif
+ 
+   if (err) {
+     // These are programming error, check them.
+@@ -122,8 +142,19 @@ void SpinningMutex::FutexWait() {
+ 
+ void SpinningMutex::FutexWake() {
+   int saved_errno = errno;
++#if defined(OS_FREEBSD)
++  long retval = _umtx_op(&state_, UMTX_OP_WAKE_PRIVATE,
++                         1 /* wake up a single waiter */, nullptr, nullptr);
++#elif defined(OS_OPENBSD)
++  long retval = futex(reinterpret_cast<volatile unsigned int *>(&state_), FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
++                        1 /* wake up a single waiter */, nullptr, nullptr);
++#elif defined(OS_NETBSD)
++  long retval = syscall(SYS___futex, reinterpret_cast<int *>(&state_), FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
++                         1 /* wake up a single waiter */, nullptr, nullptr, 0, 0);
++#else
+   long retval = syscall(SYS_futex, &state_, FUTEX_WAKE | FUTEX_PRIVATE_FLAG,
+                         1 /* wake up a single waiter */, nullptr, nullptr, 0);
++#endif
+   PA_CHECK(retval != -1);
+   errno = saved_errno;
+ }
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc
new file mode 100644
index 0000000000..637d6c178d
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_stack_stack.cc
@@ -0,0 +1,56 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc.orig	2024-07-24 02:44:22.479410200 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/stack/stack.cc
+@@ -18,6 +18,10 @@
+ #include <pthread.h>
+ #endif
+ 
++#if PA_BUILDFLAG(IS_BSD) && !PA_BUILDFLAG(IS_NETBSD)
++#include <pthread_np.h>
++#endif
++
+ #if PA_BUILDFLAG(PA_LIBC_GLIBC)
+ extern "C" void* __libc_stack_end;
+ #endif
+@@ -50,6 +54,36 @@ void* GetStackTop() {
+   return pthread_get_stackaddr_np(pthread_self());
+ }
+ 
++#elif PA_BUILDFLAG(IS_OPENBSD)
++
++void* GetStackTop() {
++  stack_t ss;
++  if (pthread_stackseg_np(pthread_self(), &ss) != 0)
++    return nullptr;
++  return reinterpret_cast<uint8_t*>(ss.ss_sp);
++}
++
++#elif PA_BUILDFLAG(IS_FREEBSD) || PA_BUILDFLAG(IS_NETBSD)
++
++void* GetStackTop() {
++   pthread_attr_t attr;
++   int error = pthread_attr_init(&attr);
++   if (error) {
++     return nullptr;
++   }
++   error = pthread_attr_get_np(pthread_self(), &attr);
++   if (!error) {
++     void* base;
++     size_t size;
++     error = pthread_attr_getstack(&attr, &base, &size);
++     PA_CHECK(!error);
++     pthread_attr_destroy(&attr);
++     return reinterpret_cast<uint8_t*>(base) + size;
++   }
++  pthread_attr_destroy(&attr);
++  return nullptr;
++}
++
+ #elif PA_BUILDFLAG(IS_POSIX) || PA_BUILDFLAG(IS_FUCHSIA)
+ 
+ void* GetStackTop() {
diff --git a/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc
new file mode 100644
index 0000000000..94dfb30b2b
--- /dev/null
+++ b/chromium/patches/patch-base_allocator_partition__allocator_src_partition__alloc_thread__isolation_pkey.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.cc.orig	2024-07-24 02:44:22.487410800 +0000
++++ base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.cc
+@@ -16,7 +16,7 @@
+ #include "partition_alloc/partition_alloc_check.h"
+ #include "partition_alloc/thread_isolation/thread_isolation.h"
+ 
+-#if !PA_BUILDFLAG(IS_LINUX) && !PA_BUILDFLAG(IS_CHROMEOS)
++#if !PA_BUILDFLAG(IS_LINUX) && !PA_BUILDFLAG(IS_CHROMEOS) && !PA_BUILDFLAG(IS_BSD)
+ #error "This pkey code is currently only supported on Linux and ChromeOS"
+ #endif
+ 
diff --git a/chromium/patches/patch-base_atomicops.h b/chromium/patches/patch-base_atomicops.h
new file mode 100644
index 0000000000..be69a94763
--- /dev/null
+++ b/chromium/patches/patch-base_atomicops.h
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/atomicops.h.orig	2024-07-24 02:44:22.535415400 +0000
++++ base/atomicops.h
+@@ -71,7 +71,11 @@ typedef intptr_t Atomic64;
+ 
+ // Use AtomicWord for a machine-sized pointer.  It will use the Atomic32 or
+ // Atomic64 routines below, depending on your architecture.
++#if !defined(OS_OPENBSD) && defined(__i386__)
++typedef Atomic32 AtomicWord;
++#else
+ typedef intptr_t AtomicWord;
++#endif
+ 
+ // Atomically execute:
+ //      result = *ptr;
diff --git a/chromium/patches/patch-base_base__paths__posix.cc b/chromium/patches/patch-base_base__paths__posix.cc
index c74aef2d33..50d670e407 100644
--- a/chromium/patches/patch-base_base__paths__posix.cc
+++ b/chromium/patches/patch-base_base__paths__posix.cc
@@ -1,13 +1,128 @@
 $NetBSD$
 
---- base/base_paths_posix.cc.orig	2020-07-15 18:55:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/base_paths_posix.cc.orig	2024-07-24 02:44:22.535415400 +0000
 +++ base/base_paths_posix.cc
-@@ -67,7 +67,7 @@ bool PathProviderPosix(int key, FilePath
+@@ -15,6 +15,7 @@
+ #include <ostream>
+ #include <string>
+ 
++#include "base/command_line.h"
+ #include "base/environment.h"
+ #include "base/files/file_path.h"
+ #include "base/files/file_util.h"
+@@ -26,9 +27,13 @@
+ #include "base/process/process_metrics.h"
+ #include "build/build_config.h"
+ 
+-#if BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_BSD)
+ #include <sys/param.h>
+ #include <sys/sysctl.h>
++#if BUILDFLAG(IS_OPENBSD)
++#include <kvm.h>
++#define MAXTOKENS 2
++#endif
+ #elif BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_AIX)
+ #include <stdlib.h>
+ #endif
+@@ -49,13 +54,21 @@ bool PathProviderPosix(int key, FilePath
+       *result = bin_dir;
+       return true;
+ #elif BUILDFLAG(IS_FREEBSD)
+-      int name[] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 };
+-      std::optional<std::string> bin_dir = StringSysctl(name, std::size(name));
++      std::optional<std::string> bin_dir = StringSysctl({ CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 });
++      if (!bin_dir.has_value() || bin_dir.value().length() <= 1) {
++        NOTREACHED_IN_MIGRATION() << "Unable to resolve path.";
++        return false;
++      }
++      *result = FilePath(bin_dir.value());
++      return true;
++#elif BUILDFLAG(IS_NETBSD)
++      std::optional<std::string> bin_dir = StringSysctl({ CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_PATHNAME });
+       if (!bin_dir.has_value() || bin_dir.value().length() <= 1) {
+         NOTREACHED_IN_MIGRATION() << "Unable to resolve path.";
+         return false;
        }
+       *result = FilePath(bin_dir.value());
++      VLOG(1) << "PathProviderPosix result: " << bin_dir.value();
+       return true;
+ #elif BUILDFLAG(IS_SOLARIS)
+       char bin_dir[PATH_MAX + 1];
+@@ -67,13 +80,65 @@ bool PathProviderPosix(int key, FilePath
        *result = FilePath(bin_dir);
        return true;
--#elif defined(OS_OPENBSD) || defined(OS_AIX)
-+#elif defined(OS_OPENBSD) || defined(OS_AIX) || defined(OS_NETBSD)
-       // There is currently no way to get the executable path on OpenBSD
-       char* cpath;
-       if ((cpath = getenv("CHROME_EXE_PATH")) != NULL)
+ #elif BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_AIX)
+-      // There is currently no way to get the executable path on OpenBSD
+-      char* cpath;
+-      if ((cpath = getenv("CHROME_EXE_PATH")) != NULL)
+-        *result = FilePath(cpath);
+-      else
+-        *result = FilePath("/usr/local/chrome/chrome");
+-      return true;
++      char *cpath;
++#if !BUILDFLAG(IS_AIX)
++      struct kinfo_file *files;
++      kvm_t *kd = NULL;
++      char errbuf[_POSIX2_LINE_MAX];
++      static char retval[PATH_MAX];
++      int cnt;
++      struct stat sb;
++      pid_t cpid = getpid();
++      bool ret = false;
++
++      const base::CommandLine* command_line =
++          base::CommandLine::ForCurrentProcess();
++
++      VLOG(1) << "PathProviderPosix argv: " << command_line->argv()[0];
++
++      if (realpath(command_line->argv()[0].c_str(), retval) == NULL)
++        goto out;
++
++      if (stat(command_line->argv()[0].c_str(), &sb) < 0)
++        goto out;
++
++      if (!command_line->HasSwitch("no-sandbox")) {
++        ret = true;
++        *result = FilePath(retval);
++        VLOG(1) << "PathProviderPosix (sandbox) result: " << retval;
++        goto out;
++      }
++
++      if ((kd = kvm_openfiles(NULL, NULL, NULL, (int)KVM_NO_FILES, errbuf)) == NULL)
++        goto out;
++
++      if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, cpid,
++                                sizeof(struct kinfo_file), &cnt)) == NULL)
++        goto out;
++
++      for (int i = 0; i < cnt; i++) {
++        if (files[i].fd_fd == KERN_FILE_TEXT &&
++            files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) &&
++            files[i].va_fileid == sb.st_ino) {
++          ret = true;
++          *result = FilePath(retval);
++          VLOG(1) << "PathProviderPosix result: " << retval;
++        }
++      }
++out:
++      if (kd)
++        kvm_close(kd);
++      if (!ret) {
++#endif
++        if ((cpath = getenv("CHROME_EXE_PATH")) != NULL)
++          *result = FilePath(cpath);
++        else
++          *result = FilePath("/usr/local/chrome/chrome");
++        return true;
++#if !BUILDFLAG(IS_AIX)
++      }
++      return ret;
++#endif
+ #endif
+     }
+     case DIR_SRC_TEST_DATA_ROOT: {
diff --git a/chromium/patches/patch-base_base__switches.cc b/chromium/patches/patch-base_base__switches.cc
deleted file mode 100644
index e1bc8705a2..0000000000
--- a/chromium/patches/patch-base_base__switches.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- base/base_switches.cc.orig	2020-07-08 21:40:31.000000000 +0000
-+++ base/base_switches.cc
-@@ -117,7 +117,7 @@ const char kDisableHighResTimer[] = "dis
- const char kDisableUsbKeyboardDetect[]      = "disable-usb-keyboard-detect";
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // The /dev/shm partition is too small in certain VM environments, causing
- // Chrome to fail or crash (see http://crbug.com/715363). Use this flag to
- // work-around this issue (a temporary directory will always be used to create
-@@ -142,7 +142,7 @@ const char kReachedCodeSamplingIntervalU
-     "reached-code-sampling-interval-us";
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Controls whether or not retired instruction counts are surfaced for threads
- // in trace events on Linux.
- //
diff --git a/chromium/patches/patch-base_base__switches.h b/chromium/patches/patch-base_base__switches.h
deleted file mode 100644
index 88fad95327..0000000000
--- a/chromium/patches/patch-base_base__switches.h
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- base/base_switches.h.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/base_switches.h
-@@ -38,7 +38,7 @@ extern const char kDisableHighResTimer[]
- extern const char kDisableUsbKeyboardDetect[];
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- extern const char kDisableDevShmUsage[];
- #endif
- 
-@@ -51,7 +51,7 @@ extern const char kEnableReachedCodeProf
- extern const char kOrderfileMemoryOptimization[];
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- extern const char kEnableThreadInstructionCount[];
- #endif
- 
diff --git a/chromium/patches/patch-base_compiler__specific.h b/chromium/patches/patch-base_compiler__specific.h
new file mode 100644
index 0000000000..43ba5eebd0
--- /dev/null
+++ b/chromium/patches/patch-base_compiler__specific.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/compiler_specific.h.orig	2024-07-24 02:44:22.539415800 +0000
++++ base/compiler_specific.h
+@@ -316,7 +316,8 @@
+ //
+ // In some cases it's desirable to remove this, e.g. on hot functions, or if
+ // we have purposely changed the reference canary.
+-#if defined(COMPILER_GCC) || defined(__clang__)
++#if (defined(COMPILER_GCC) || defined(__clang__)) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && \
++      !defined(__NetBSD__)
+ #if HAS_ATTRIBUTE(__no_stack_protector__)
+ #define NO_STACK_PROTECTOR __attribute__((__no_stack_protector__))
+ #else
diff --git a/chromium/patches/patch-base_cpu.cc b/chromium/patches/patch-base_cpu.cc
deleted file mode 100644
index 4273f0f84f..0000000000
--- a/chromium/patches/patch-base_cpu.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- base/cpu.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/cpu.cc
-@@ -15,7 +15,7 @@
- 
- #include "base/stl_util.h"
- 
--#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX))
-+#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD))
- #include "base/files/file_util.h"
- #endif
- 
-@@ -136,7 +136,7 @@ uint64_t xgetbv(uint32_t xcr) {
- 
- #endif  // ARCH_CPU_X86_FAMILY
- 
--#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX))
-+#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD))
- std::string* CpuInfoBrand() {
-   static std::string* brand = []() {
-     // This function finds the value from /proc/cpuinfo under the key "model
-@@ -288,7 +288,7 @@ void CPU::Initialize() {
-     }
-   }
- #elif defined(ARCH_CPU_ARM_FAMILY)
--#if (defined(OS_ANDROID) || defined(OS_LINUX))
-+#if (defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD))
-   cpu_brand_ = *CpuInfoBrand();
- #elif defined(OS_WIN)
-   // Windows makes high-resolution thread timing information available in
diff --git a/chromium/patches/patch-base_debug_debugger__posix.cc b/chromium/patches/patch-base_debug_debugger__posix.cc
index 38ddebcf51..4ac7655056 100644
--- a/chromium/patches/patch-base_debug_debugger__posix.cc
+++ b/chromium/patches/patch-base_debug_debugger__posix.cc
@@ -1,20 +1,35 @@
 $NetBSD$
 
---- base/debug/debugger_posix.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/debug/debugger_posix.cc.orig	2024-07-24 02:44:22.551417000 +0000
 +++ base/debug/debugger_posix.cc
-@@ -93,6 +93,7 @@ bool BeingDebugged() {
+@@ -41,6 +41,10 @@
+ #include <sys/sysctl.h>
+ #endif
+ 
++#if BUILDFLAG(IS_OPENBSD)
++#include <sys/proc.h>
++#endif
++
+ #if BUILDFLAG(IS_FREEBSD)
+ #include <sys/user.h>
+ #endif
+@@ -86,6 +90,7 @@ bool BeingDebugged() {
  
    // Initialize mib, which tells sysctl what info we want.  In this case,
    // we're looking for information about a specific process ID.
-+#if defined(OS_FREEBSD) || defined(OS_OPENBSD)
++#if !BUILDFLAG(IS_NETBSD)
    int mib[] = {
      CTL_KERN,
      KERN_PROC,
-@@ -103,10 +104,24 @@ bool BeingDebugged() {
+@@ -97,36 +102,75 @@ bool BeingDebugged() {
      0
  #endif
    };
-+#elif defined(OS_NETBSD)
++#else
 +  int mib[] = {
 +    CTL_KERN,
 +    KERN_PROC2,
@@ -27,23 +42,65 @@ $NetBSD$
  
    // Caution: struct kinfo_proc is marked __APPLE_API_UNSTABLE.  The source and
    // binary interfaces may change.
-+#if defined(OS_NETBSD)
++#if BUILDFLAG(IS_OPENBSD)
++  struct kinfo_proc *info;
++  size_t info_size;
++#elif BUILDFLAG(IS_NETBSD)
 +  struct kinfo_proc2 info;
++  size_t info_size = sizeof(info);
 +#else
    struct kinfo_proc info;
-+#endif
    size_t info_size = sizeof(info);
++#endif
  
- #if defined(OS_OPENBSD)
-@@ -114,6 +129,11 @@ bool BeingDebugged() {
+ #if BUILDFLAG(IS_OPENBSD)
+   if (sysctl(mib, std::size(mib), NULL, &info_size, NULL, 0) < 0)
      return -1;
  
-   mib[5] = (info_size / sizeof(struct kinfo_proc));
-+#elif defined(OS_NETBSD)
-+  if (sysctl(mib, base::size(mib), NULL, &info_size, NULL, 0) < 0)
+-  mib[5] = (info_size / sizeof(struct kinfo_proc));
++  mib[5] = static_cast<int>((info_size / sizeof(struct kinfo_proc)));
++  if ((info = reinterpret_cast<kinfo_proc*>(malloc(info_size))) == NULL) {
++    is_set = true;
++    being_debugged = false;
++    return being_debugged;
++  }
++
++  int sysctl_result = sysctl(mib, std::size(mib), info, &info_size, NULL, 0);
++#elif BUILDFLAG(IS_NETBSD)
++  if (sysctl(mib, std::size(mib), NULL, &info_size, NULL, 0) < 0)
 +    return -1;
 +
 +  mib[5] = (info_size / sizeof(struct kinfo_proc2));
  #endif
  
-   int sysctl_result = sysctl(mib, base::size(mib), &info, &info_size, NULL, 0);
++#if !BUILDFLAG(IS_OPENBSD)
+   int sysctl_result = sysctl(mib, std::size(mib), &info, &info_size, NULL, 0);
++#endif
+   DCHECK_EQ(sysctl_result, 0);
+   if (sysctl_result != 0) {
+     is_set = true;
+     being_debugged = false;
+-    return being_debugged;
++    goto out;
+   }
+ 
+   // This process is being debugged if the P_TRACED flag is set.
+   is_set = true;
+ #if BUILDFLAG(IS_FREEBSD)
+   being_debugged = (info.ki_flag & P_TRACED) != 0;
+-#elif BUILDFLAG(IS_BSD)
++#elif BUILDFLAG(IS_OPENBSD)
++  being_debugged = (info->p_psflags & PS_TRACED) != 0;
++#elif BUILDFLAG(IS_NETBSD)
+   being_debugged = (info.p_flag & P_TRACED) != 0;
+ #else
+   being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0;
+ #endif
++
++out:
++#if BUILDFLAG(IS_OPENBSD)
++  free(info);
++#endif
+   return being_debugged;
+ }
+ 
diff --git a/chromium/patches/patch-base_debug_elf__reader.cc b/chromium/patches/patch-base_debug_elf__reader.cc
index 5c204f3b1d..49b9b408c3 100644
--- a/chromium/patches/patch-base_debug_elf__reader.cc
+++ b/chromium/patches/patch-base_debug_elf__reader.cc
@@ -1,30 +1,19 @@
 $NetBSD$
 
---- base/debug/elf_reader.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/debug/elf_reader.cc.orig	2024-07-24 02:44:22.555417500 +0000
 +++ base/debug/elf_reader.cc
-@@ -36,7 +36,9 @@ using Nhdr = Elf64_Nhdr;
- using Word = Elf64_Word;
- #endif
+@@ -50,6 +50,10 @@ using Xword = Elf64_Xword;
  
-+#if !defined(OS_BSD)
  constexpr char kGnuNoteName[] = "GNU";
-+#endif
  
- // Returns a pointer to the header of the ELF binary mapped into memory,
- // or a null pointer if the header is invalid.
-@@ -99,6 +101,7 @@ size_t ReadElfBuildId(const void* elf_ma
-     bool found = false;
-     while (current_section < section_end) {
-       current_note = reinterpret_cast<const Nhdr*>(current_section);
-+#if !defined(OS_BSD)
-       if (current_note->n_type == NT_GNU_BUILD_ID) {
-         StringPiece note_name(current_section + sizeof(Nhdr),
-                               current_note->n_namesz);
-@@ -108,6 +111,7 @@ size_t ReadElfBuildId(const void* elf_ma
-           break;
-         }
-       }
++#ifndef NT_GNU_BUILD_ID
++#define NT_GNU_BUILD_ID 3
 +#endif
- 
-       size_t section_size = bits::Align(current_note->n_namesz, 4) +
-                             bits::Align(current_note->n_descsz, 4) +
++
+ // Returns a pointer to the header of the ELF binary mapped into memory, or a
+ // null pointer if the header is invalid. Here and below |elf_mapped_base| is a
+ // pointer to the start of the ELF image.
diff --git a/chromium/patches/patch-base_debug_proc__maps__linux.cc b/chromium/patches/patch-base_debug_proc__maps__linux.cc
new file mode 100644
index 0000000000..7552603f63
--- /dev/null
+++ b/chromium/patches/patch-base_debug_proc__maps__linux.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/debug/proc_maps_linux.cc.orig	2024-07-24 02:44:22.555417500 +0000
++++ base/debug/proc_maps_linux.cc
+@@ -18,7 +18,7 @@
+ #include "base/strings/string_split.h"
+ #include "build/build_config.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include <inttypes.h>
+ #endif
+ 
diff --git a/chromium/patches/patch-base_debug_proc_maps_linux.cc b/chromium/patches/patch-base_debug_proc_maps_linux.cc
deleted file mode 100644
index f21f57ad80..0000000000
--- a/chromium/patches/patch-base_debug_proc_maps_linux.cc
+++ /dev/null
@@ -1,71 +0,0 @@
-$NetBSD$
-
---- base/debug/proc_maps_linux.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/debug/proc_maps_linux.cc
-@@ -13,7 +13,7 @@
- #include "base/strings/string_split.h"
- #include "build/build_config.h"
- 
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- #include <inttypes.h>
- #endif
- 
-@@ -29,6 +29,13 @@
- namespace base {
- namespace debug {
- 
-+#if defined(OS_FREEBSD)
-+const char kProcSelfMapsPath[] = "/proc/curproc/map";
-+#elif defined(OS_NETBSD)
-+const char kProcSelfMapsPath[] = "/proc/self/map";
-+#else
-+const char kProcSelfMapsPath[] = "/proc/self/map";
-+
- // Scans |proc_maps| starting from |pos| returning true if the gate VMA was
- // found, otherwise returns false.
- static bool ContainsGateVMA(std::string* proc_maps, size_t pos) {
-@@ -44,15 +51,16 @@ static bool ContainsGateVMA(std::string*
-   return false;
- #endif
- }
-+#endif
- 
- bool ReadProcMaps(std::string* proc_maps) {
-   // seq_file only writes out a page-sized amount on each call. Refer to header
-   // file for details.
-   const long kReadSize = sysconf(_SC_PAGESIZE);
- 
--  base::ScopedFD fd(HANDLE_EINTR(open("/proc/self/maps", O_RDONLY)));
-+  base::ScopedFD fd(HANDLE_EINTR(open(kProcSelfMapsPath, O_RDONLY)));
-   if (!fd.is_valid()) {
--    DPLOG(ERROR) << "Couldn't open /proc/self/maps";
-+    DPLOG(ERROR) << "Couldn't open " << kProcSelfMapsPath;
-     return false;
-   }
-   proc_maps->clear();
-@@ -66,7 +74,7 @@ bool ReadProcMaps(std::string* proc_maps
- 
-     ssize_t bytes_read = HANDLE_EINTR(read(fd.get(), buffer, kReadSize));
-     if (bytes_read < 0) {
--      DPLOG(ERROR) << "Couldn't read /proc/self/maps";
-+      DPLOG(ERROR) << "Couldn't read " << kProcSelfMapsPath;
-       proc_maps->clear();
-       return false;
-     }
-@@ -77,6 +85,7 @@ bool ReadProcMaps(std::string* proc_maps
-     if (bytes_read == 0)
-       break;
- 
-+#if !defined(OS_BSD)
-     // The gate VMA is handled as a special case after seq_file has finished
-     // iterating through all entries in the virtual memory table.
-     //
-@@ -87,6 +96,7 @@ bool ReadProcMaps(std::string* proc_maps
-     // Avoid this by searching for the gate VMA and breaking early.
-     if (ContainsGateVMA(proc_maps, pos))
-       break;
-+#endif
-   }
- 
-   return true;
diff --git a/chromium/patches/patch-base_debug_stack__trace.cc b/chromium/patches/patch-base_debug_stack__trace.cc
new file mode 100644
index 0000000000..6a07e1f8da
--- /dev/null
+++ b/chromium/patches/patch-base_debug_stack__trace.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/debug/stack_trace.cc.orig	2024-07-24 02:44:22.555417500 +0000
++++ base/debug/stack_trace.cc
+@@ -255,7 +255,7 @@ bool StackTrace::WillSymbolizeToStreamFo
+   // Symbols are not expected to be reliable when gn args specifies
+   // symbol_level=0.
+   return false;
+-#elif defined(__UCLIBC__) || defined(_AIX)
++#elif defined(__UCLIBC__) || defined(_AIX) || BUILDFLAG(IS_BSD)
+   // StackTrace::OutputToStream() is not implemented under uclibc, nor AIX.
+   // See https://crbug.com/706728
+   return false;
+@@ -317,7 +317,7 @@ std::string StackTrace::ToString() const
+ 
+ std::string StackTrace::ToStringWithPrefix(cstring_view prefix_string) const {
+   std::stringstream stream;
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if !defined(__UCLIBC__) && !defined(_AIX) && !BUILDFLAG(IS_BSD)
+   OutputToStreamWithPrefix(&stream, prefix_string);
+ #endif
+   return stream.str();
+@@ -341,7 +341,7 @@ bool StackTrace::ShouldSuppressOutput() 
+ }
+ 
+ std::ostream& operator<<(std::ostream& os, const StackTrace& s) {
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if !defined(__UCLIBC__) && !defined(_AIX) && !BUILDFLAG(IS_BSD)
+   s.OutputToStream(&os);
+ #else
+   os << "StackTrace::OutputToStream not implemented.";
diff --git a/chromium/patches/patch-base_debug_stack__trace__posix.cc b/chromium/patches/patch-base_debug_stack__trace__posix.cc
index 9c504f544e..43b85a4a75 100644
--- a/chromium/patches/patch-base_debug_stack__trace__posix.cc
+++ b/chromium/patches/patch-base_debug_stack__trace__posix.cc
@@ -1,27 +1,105 @@
 $NetBSD$
 
---- base/debug/stack_trace_posix.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/debug/stack_trace_posix.cc.orig	2024-07-24 02:44:22.555417500 +0000
 +++ base/debug/stack_trace_posix.cc
-@@ -35,7 +35,7 @@
+@@ -45,8 +45,8 @@
+ // Surprisingly, uClibc defines __GLIBC__ in some build configs, but
+ // execinfo.h and backtrace(3) are really only present in glibc and in macOS
+ // libc.
+-#if BUILDFLAG(IS_APPLE) || \
+-    (defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(__AIX))
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_NETBSD) || \
++    (defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(__AIX) && !BUILDFLAG(IS_BSD))
+ #define HAVE_BACKTRACE
+ #include <execinfo.h>
+ #endif
+@@ -64,8 +64,10 @@
  #include <AvailabilityMacros.h>
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
++#if !BUILDFLAG(IS_BSD)
+ #include <sys/prctl.h>
++#endif
+ 
  #include "base/debug/proc_maps_linux.h"
  #endif
+@@ -307,7 +309,7 @@ void PrintToStderr(const char* output) {
+   std::ignore = HANDLE_EINTR(write(STDERR_FILENO, output, strlen(output)));
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ void AlarmSignalHandler(int signal, siginfo_t* info, void* void_context) {
+   // We have seen rare cases on AMD linux where the default signal handler
+   // either does not run or a thread (Probably an AMD driver thread) prevents
+@@ -324,7 +326,11 @@ void AlarmSignalHandler(int signal, sigi
+       "Warning: Default signal handler failed to terminate process.\n");
+   PrintToStderr("Calling exit_group() directly to prevent timeout.\n");
+   // See: https://man7.org/linux/man-pages/man2/exit_group.2.html
++#if BUILDFLAG(IS_BSD) 
++  _exit(EXIT_FAILURE);
++#else
+   syscall(SYS_exit_group, EXIT_FAILURE);
++#endif
+ }
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ||
+         // BUILDFLAG(IS_CHROMEOS)
+@@ -541,7 +547,7 @@ void StackDumpSignalHandler(int signal, 
+     _exit(EXIT_FAILURE);
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Set an alarm to trigger in case the default handler does not terminate
+   // the process. See 'AlarmSignalHandler' for more details.
+   struct sigaction action;
+@@ -566,6 +572,7 @@ void StackDumpSignalHandler(int signal, 
+   // signals that do not re-raise autonomously), such as signals delivered via
+   // kill() and asynchronous hardware faults such as SEGV_MTEAERR, which would
+   // otherwise be lost when re-raising the signal via raise().
++#if !BUILDFLAG(IS_BSD)
+   long retval = syscall(SYS_rt_tgsigqueueinfo, getpid(), syscall(SYS_gettid),
+                         info->si_signo, info);
+   if (retval == 0) {
+@@ -580,6 +587,7 @@ void StackDumpSignalHandler(int signal, 
+   if (errno != EPERM) {
+     _exit(EXIT_FAILURE);
+   }
++#endif
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) ||
+         // BUILDFLAG(IS_CHROMEOS)
  
-@@ -657,6 +657,9 @@ class SandboxSymbolizeHelper {
+@@ -769,6 +777,7 @@ class SandboxSymbolizeHelper {
+     return -1;
+   }
+ 
++#if !BUILDFLAG(IS_BSD)
+   // This class is copied from
+   // third_party/crashpad/crashpad/util/linux/scoped_pr_set_dumpable.h.
+   // It aims at ensuring the process is dumpable before opening /proc/self/mem.
+@@ -861,11 +870,15 @@ class SandboxSymbolizeHelper {
+       r.base = cur_base;
+     }
+   }
++#endif
+ 
+   // Parses /proc/self/maps in order to compile a list of all object file names
    // for the modules that are loaded in the current process.
    // Returns true on success.
    bool CacheMemoryRegions() {
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
 +    return false;
 +#else
      // Reads /proc/self/maps.
      std::string contents;
      if (!ReadProcMaps(&contents)) {
-@@ -674,6 +677,7 @@ class SandboxSymbolizeHelper {
+@@ -883,6 +896,7 @@ class SandboxSymbolizeHelper {
  
      is_initialized_ = true;
      return true;
@@ -29,15 +107,3 @@ $NetBSD$
    }
  
    // Opens all object files and caches their file descriptors.
-@@ -697,7 +701,11 @@ class SandboxSymbolizeHelper {
-           // Skip regions with empty file names.
-           continue;
-         }
-+#if defined(OS_BSD)
-         if (region.path[0] == '[') {
-+#else
-+        if (region.path[0] == '[') {
-+#endif
-           // Skip pseudo-paths, like [stack], [vdso], [heap], etc ...
-           continue;
-         }
diff --git a/chromium/patches/patch-base_debug_stack__trace__unittest.cc b/chromium/patches/patch-base_debug_stack__trace__unittest.cc
deleted file mode 100644
index 514b22a7ed..0000000000
--- a/chromium/patches/patch-base_debug_stack__trace__unittest.cc
+++ /dev/null
@@ -1,24 +0,0 @@
-$NetBSD$
-
---- base/debug/stack_trace_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/debug/stack_trace_unittest.cc
-@@ -86,6 +86,7 @@ TEST_F(StackTraceTest, OutputToStream) {
-             std::string::npos)
-       << "Unable to resolve symbols.";
- 
-+#if !defined(OS_BSD)
-   // Expect a demangled symbol.
-   // Note that Windows Release builds omit the function parameters from the
-   // demangled stack output, otherwise this could be "testing::Test::Run()".
-@@ -103,9 +104,10 @@ TEST_F(StackTraceTest, OutputToStream) {
-   EXPECT_TRUE(backtrace_message.find(__func__) != std::string::npos)
-       << "Expected to find " << __func__ << " in backtrace:\n"
-       << backtrace_message;
-+#endif
- }
- 
--#if !defined(OFFICIAL_BUILD) && !defined(NO_UNWIND_TABLES)
-+#if !defined(OFFICIAL_BUILD) && !defined(NO_UNWIND_TABLES) && !defined(OS_BSD)
- // Disabled in Official builds, where Link-Time Optimization can result in two
- // or fewer stack frames being available, causing the test to fail.
- TEST_F(StackTraceTest, TruncatedTrace) {
diff --git a/chromium/patches/patch-base_features.cc b/chromium/patches/patch-base_features.cc
new file mode 100644
index 0000000000..77445c4101
--- /dev/null
+++ b/chromium/patches/patch-base_features.cc
@@ -0,0 +1,34 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/features.cc.orig	2024-07-24 02:44:22.559418000 +0000
++++ base/features.cc
+@@ -9,8 +9,10 @@
+ #include "base/threading/platform_thread.h"
+ #include "build/buildflag.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
++#if !BUILDFLAG(IS_BSD)
+ #include "base/message_loop/message_pump_epoll.h"
++#endif
+ #include "base/message_loop/message_pump_libevent.h"
+ #endif
+ 
+@@ -97,10 +99,12 @@ void Init(EmitThreadControllerProfilerMe
+   sequence_manager::internal::ThreadController::InitializeFeatures(
+       emit_thread_controller_profiler_metadata);
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   MessagePumpLibevent::InitializeFeatures();
++#if !BUILDFLAG(IS_BSD)
+   MessagePumpEpoll::InitializeFeatures();
+ #endif
++#endif
+ 
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_CHROMEOS)
+   PlatformThread::InitializeFeatures();
diff --git a/chromium/patches/patch-base_files_dir__reader__linux.h b/chromium/patches/patch-base_files_dir__reader__linux.h
new file mode 100644
index 0000000000..456a9adb11
--- /dev/null
+++ b/chromium/patches/patch-base_files_dir__reader__linux.h
@@ -0,0 +1,45 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/files/dir_reader_linux.h.orig	2024-07-24 02:44:22.559418000 +0000
++++ base/files/dir_reader_linux.h
+@@ -21,10 +21,16 @@
+ #include "base/logging.h"
+ #include "base/posix/eintr_wrapper.h"
+ 
++#include "build/build_config.h"
++
+ // See the comments in dir_reader_posix.h about this.
+ 
+ namespace base {
+ 
++#if BUILDFLAG(IS_BSD)
++#include <dirent.h>
++typedef struct dirent linux_dirent;
++#else
+ struct linux_dirent {
+   uint64_t        d_ino;
+   int64_t         d_off;
+@@ -32,6 +38,7 @@ struct linux_dirent {
+   unsigned char   d_type;
+   char            d_name[0];
+ };
++#endif
+ 
+ class DirReaderLinux {
+  public:
+@@ -66,7 +73,11 @@ class DirReaderLinux {
+     if (offset_ != size_)
+       return true;
+ 
++#if BUILDFLAG(IS_BSD)
++    const int r = getdents(fd_, reinterpret_cast<char *>(buf_), sizeof(buf_));
++#else
+     const long r = syscall(__NR_getdents64, fd_, buf_, sizeof(buf_));
++#endif
+     if (r == 0)
+       return false;
+     if (r < 0) {
diff --git a/chromium/patches/patch-base_files_dir__reader__posix.h b/chromium/patches/patch-base_files_dir__reader__posix.h
new file mode 100644
index 0000000000..dec9f874a9
--- /dev/null
+++ b/chromium/patches/patch-base_files_dir__reader__posix.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/files/dir_reader_posix.h.orig	2024-07-24 02:44:22.559418000 +0000
++++ base/files/dir_reader_posix.h
+@@ -17,7 +17,7 @@
+ // seems worse than falling back to enumerating all file descriptors so we will
+ // probably never implement this on the Mac.
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "base/files/dir_reader_linux.h"
+ #else
+ #include "base/files/dir_reader_fallback.h"
+@@ -25,7 +25,7 @@
+ 
+ namespace base {
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ typedef DirReaderLinux DirReaderPosix;
+ #else
+ typedef DirReaderFallback DirReaderPosix;
diff --git a/chromium/patches/patch-base_files_file__path__unittest.cc b/chromium/patches/patch-base_files_file__path__unittest.cc
deleted file mode 100644
index cd6ab78071..0000000000
--- a/chromium/patches/patch-base_files_file__path__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/files/file_path_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/files/file_path_unittest.cc
-@@ -1149,7 +1149,7 @@ TEST_F(FilePathTest, FromUTF8Unsafe_And_
-       "\xEF\xBC\xA1\xEF\xBC\xA2\xEF\xBC\xA3.txt" },
-   };
- 
--#if !defined(SYSTEM_NATIVE_UTF8) && defined(OS_LINUX)
-+#if !defined(SYSTEM_NATIVE_UTF8) && (defined(OS_LINUX) || defined(OS_BSD))
-   ScopedLocale locale("en_US.UTF-8");
- #endif
- 
diff --git a/chromium/patches/patch-base_files_file__path__watcher.h b/chromium/patches/patch-base_files_file__path__watcher.h
new file mode 100644
index 0000000000..f6fa97f2dc
--- /dev/null
+++ b/chromium/patches/patch-base_files_file__path__watcher.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/files/file_path_watcher.h.orig	2024-07-24 02:44:22.563418100 +0000
++++ base/files/file_path_watcher.h
+@@ -105,7 +105,7 @@ class BASE_EXPORT FilePathWatcher {
+     Type type = Type::kNonRecursive;
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+     // The callback will return the full path to a changed file instead of
+     // the watched path supplied as |path| when Watch is called.
+     // So the full path can be different from the watched path when a folder is
diff --git a/chromium/patches/patch-base_files_file__path__watcher__bsd.cc b/chromium/patches/patch-base_files_file__path__watcher__bsd.cc
new file mode 100644
index 0000000000..f62ac41f6b
--- /dev/null
+++ b/chromium/patches/patch-base_files_file__path__watcher__bsd.cc
@@ -0,0 +1,63 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/files/file_path_watcher_bsd.cc.orig	2024-08-01 14:08:56.603110898 +0000
++++ base/files/file_path_watcher_bsd.cc
+@@ -0,0 +1,54 @@
++// Copyright 2021 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 <memory>
++
++#include "base/files/file_path_watcher.h"
++#include "base/files/file_path_watcher_kqueue.h"
++#include "base/memory/ptr_util.h"
++#include "build/build_config.h"
++
++namespace base {
++
++namespace {
++
++class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate {
++ public:
++  FilePathWatcherImpl() = default;
++  FilePathWatcherImpl(const FilePathWatcherImpl&) = delete;
++  FilePathWatcherImpl& operator=(const FilePathWatcherImpl&) = delete;
++  ~FilePathWatcherImpl() override = default;
++
++  bool Watch(const FilePath& path,
++             Type type,
++             const FilePathWatcher::Callback& callback) override {
++    DCHECK(!impl_.get());
++    if (type == Type::kRecursive) {
++      if (!FilePathWatcher::RecursiveWatchAvailable())
++        return false;
++    } else {
++      impl_ = std::make_unique<FilePathWatcherKQueue>();
++    }
++    DCHECK(impl_.get());
++    return impl_->Watch(path, type, callback);
++  }
++
++  void Cancel() override {
++    if (impl_.get())
++      impl_->Cancel();
++    set_cancelled();
++  }
++
++ private:
++  std::unique_ptr<PlatformDelegate> impl_;
++};
++
++}  // namespace
++
++FilePathWatcher::FilePathWatcher() {
++  DETACH_FROM_SEQUENCE(sequence_checker_);
++  impl_ = std::make_unique<FilePathWatcherImpl>();
++}
++
++}  // namespace base
diff --git a/chromium/patches/patch-base_files_file__path__watcher__kqueue.cc b/chromium/patches/patch-base_files_file__path__watcher__kqueue.cc
index 51668170f1..0e0bd6861a 100644
--- a/chromium/patches/patch-base_files_file__path__watcher__kqueue.cc
+++ b/chromium/patches/patch-base_files_file__path__watcher__kqueue.cc
@@ -1,15 +1,24 @@
 $NetBSD$
 
-static cast from a pointer to intptr_t is not allowed.
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
 
---- base/files/file_path_watcher_kqueue.cc.orig	2020-07-24 02:37:41.000000000 +0000
+--- base/files/file_path_watcher_kqueue.cc.orig	2024-07-24 02:44:22.563418100 +0000
 +++ base/files/file_path_watcher_kqueue.cc
-@@ -74,7 +74,7 @@ int FilePathWatcherKQueue::EventsForPath
+@@ -81,9 +81,15 @@ size_t FilePathWatcherKQueue::EventsForP
+     FilePath::StringType subdir = (i != (components.end() - 1)) ? *(i + 1) : "";
+     EventData* data = new EventData(built_path, subdir);
      struct kevent event;
++#if defined(__NetBSD__) && __NetBSD_Version__ < 999000000
++    EV_SET(&event, fd, EVFILT_VNODE, (EV_ADD | EV_CLEAR | EV_RECEIPT),
++           (NOTE_DELETE | NOTE_WRITE | NOTE_ATTRIB |
++            NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, reinterpret_cast<intptr_t>(data));
++#else
      EV_SET(&event, fd, EVFILT_VNODE, (EV_ADD | EV_CLEAR | EV_RECEIPT),
             (NOTE_DELETE | NOTE_WRITE | NOTE_ATTRIB |
--            NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, data);
-+            NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, reinterpret_cast<intptr_t>(data));
+             NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, data);
++#endif
      events->push_back(event);
    }
    return last_existing_entry;
diff --git a/chromium/patches/patch-base_files_file__path__watcher__kqueue.h b/chromium/patches/patch-base_files_file__path__watcher__kqueue.h
new file mode 100644
index 0000000000..0c1a223558
--- /dev/null
+++ b/chromium/patches/patch-base_files_file__path__watcher__kqueue.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/files/file_path_watcher_kqueue.h.orig	2024-07-24 02:44:22.563418100 +0000
++++ base/files/file_path_watcher_kqueue.h
+@@ -5,6 +5,7 @@
+ #ifndef BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_
+ #define BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_
+ 
++#include <sys/time.h>
+ #include <sys/event.h>
+ 
+ #include <memory>
diff --git a/chromium/patches/patch-base_files_file__path__watcher__stub.cc b/chromium/patches/patch-base_files_file__path__watcher__stub.cc
deleted file mode 100644
index a80b14c240..0000000000
--- a/chromium/patches/patch-base_files_file__path__watcher__stub.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD$
-
---- base/files/file_path_watcher_stub.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/files/file_path_watcher_stub.cc
-@@ -5,10 +5,13 @@
- // This file exists for Unix systems which don't have the inotify headers, and
- // thus cannot build file_watcher_inotify.cc
- 
-+#include <memory>
- #include "base/files/file_path_watcher.h"
-+#include "base/files/file_path_watcher_kqueue.h"
- 
- #include "base/macros.h"
- #include "base/memory/ptr_util.h"
-+#include "build/build_config.h"
- 
- namespace base {
- 
-@@ -22,12 +25,29 @@ class FilePathWatcherImpl : public FileP
-   bool Watch(const FilePath& path,
-              bool recursive,
-              const FilePathWatcher::Callback& callback) override {
-+#if defined(OS_BSD)
-+    DCHECK(!impl_.get());
-+    if (recursive) {
-+      return false;
-+    } else {
-+      impl_ = std::make_unique<FilePathWatcherKQueue>();
-+    }
-+    DCHECK(impl_.get());
-+    return impl_->Watch(path, recursive, callback);
-+#else
-     return false;
-+#endif
-   }
- 
--  void Cancel() override {}
-+  void Cancel() override {
-+    if (impl_.get())
-+      impl_->Cancel();
-+    set_cancelled();
-+  }
- 
-  private:
-+  std::unique_ptr<PlatformDelegate> impl_;
-+
-   DISALLOW_COPY_AND_ASSIGN(FilePathWatcherImpl);
- };
- 
diff --git a/chromium/patches/patch-base_files_file__path__watcher__unittest.cc b/chromium/patches/patch-base_files_file__path__watcher__unittest.cc
index 18e75c666e..2ad8fe07d3 100644
--- a/chromium/patches/patch-base_files_file__path__watcher__unittest.cc
+++ b/chromium/patches/patch-base_files_file__path__watcher__unittest.cc
@@ -1,22 +1,35 @@
 $NetBSD$
 
---- base/files/file_path_watcher_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/files/file_path_watcher_unittest.cc.orig	2024-07-24 02:44:22.563418100 +0000
 +++ base/files/file_path_watcher_unittest.cc
-@@ -798,7 +798,7 @@ enum Permission {
-   Execute
- };
+@@ -902,7 +902,7 @@ TEST_F(FilePathWatcherTest, WatchDirecto
+   }
+   delegate.RunUntilEventsMatch(event_expecter);
+ 
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && BUILDFLAG(IS_BSD)
+   ASSERT_TRUE(WriteFile(file1, "content v2"));
+   // Mac implementation does not detect files modified in a directory.
+   // TODO(crbug.com/40263777): Expect that no events are fired on Mac.
+@@ -1848,7 +1848,7 @@ namespace {
  
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
+ enum Permission { Read, Write, Execute };
+ 
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
  bool ChangeFilePermissions(const FilePath& path, Permission perm, bool allow) {
    struct stat stat_buf;
  
-@@ -829,7 +829,7 @@ bool ChangeFilePermissions(const FilePat
- }
- #endif  // defined(OS_MACOSX)
+@@ -1882,7 +1882,7 @@ bool ChangeFilePermissions(const FilePat
+ 
+ }  // namespace
  
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) && BUILDFLAG(IS_BSD)
  // Linux implementation of FilePathWatcher doesn't catch attribute changes.
  // http://crbug.com/78043
  // Windows implementation of FilePathWatcher catches attribute changes that
diff --git a/chromium/patches/patch-base_files_file__util.h b/chromium/patches/patch-base_files_file__util.h
deleted file mode 100644
index 4e76ef5754..0000000000
--- a/chromium/patches/patch-base_files_file__util.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/files/file_util.h.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/files/file_util.h
-@@ -582,7 +582,7 @@ BASE_EXPORT bool VerifyPathControlledByA
- // the directory |path|, in the number of FilePath::CharType, or -1 on failure.
- BASE_EXPORT int GetMaximumPathComponentLength(const base::FilePath& path);
- 
--#if defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
- // Broad categories of file systems as returned by statfs() on Linux.
- enum FileSystemType {
-   FILE_SYSTEM_UNKNOWN,  // statfs failed.
diff --git a/chromium/patches/patch-base_files_file__util__posix.cc b/chromium/patches/patch-base_files_file__util__posix.cc
index 255da6c3b5..28de54f8e6 100644
--- a/chromium/patches/patch-base_files_file__util__posix.cc
+++ b/chromium/patches/patch-base_files_file__util__posix.cc
@@ -1,13 +1,61 @@
 $NetBSD$
 
---- base/files/file_util_posix.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/files/file_util_posix.cc.orig	2024-07-24 02:44:22.567418600 +0000
 +++ base/files/file_util_posix.cc
-@@ -415,7 +415,7 @@ bool CreatePipe(ScopedFD* read_fd, Scope
- }
+@@ -889,36 +889,33 @@ bool CreateNewTempDirectory(const FilePa
+ bool CreateDirectoryAndGetError(const FilePath& full_path, File::Error* error) {
+   ScopedBlockingCall scoped_blocking_call(
+       FROM_HERE, BlockingType::MAY_BLOCK);  // For call to mkdir().
++  const FilePath kFileSystemRoot("/");
+   std::vector<FilePath> subpaths;
+ 
+   // Collect a list of all parent directories.
+   FilePath last_path = full_path;
+-  subpaths.push_back(full_path);
+-  for (FilePath path = full_path.DirName(); path.value() != last_path.value();
+-       path = path.DirName()) {
++  if (full_path != kFileSystemRoot)
++    subpaths.push_back(full_path);
++  for (FilePath path = full_path.DirName(); (path.value() != last_path.value() &&
++       (path != kFileSystemRoot)); path = path.DirName()) {
+     subpaths.push_back(path);
+     last_path = path;
+   }
  
- bool CreateLocalNonBlockingPipe(int fds[2]) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   return pipe2(fds, O_CLOEXEC | O_NONBLOCK) == 0;
- #else
-   int raw_fds[2];
+   // Iterate through the parents and create the missing ones.
+   for (const FilePath& subpath : base::Reversed(subpaths)) {
+-    if (DirectoryExists(subpath)) {
+-      continue;
+-    }
+-    if (mkdir(subpath.value().c_str(), 0700) == 0) {
+-      continue;
+-    }
+-    // Mkdir failed, but it might have failed with EEXIST, or some other error
+-    // due to the directory appearing out of thin air. This can occur if
+-    // two processes are trying to create the same file system tree at the same
+-    // time. Check to see if it exists and make sure it is a directory.
+-    int saved_errno = errno;
+-    if (!DirectoryExists(subpath)) {
+-      if (error) {
+-        *error = File::OSErrorToFileError(saved_errno);
++    if (!PathExists(subpath)) {
++      if ((mkdir(subpath.value().c_str(), 0700) == -1) &&
++          ((full_path != subpath) ? (errno != ENOENT) : (-1))) {
++        int saved_errno = errno;
++        if (error)
++          *error = File::OSErrorToFileError(saved_errno);
++        return false;
+       }
+-      errno = saved_errno;
+-      return false;
++    } else if (!DirectoryExists(subpath)) {
++        if (error)
++          *error = File::OSErrorToFileError(ENOTDIR);
++        return false;
+     }
+   }
+   return true;
diff --git a/chromium/patches/patch-base_files_file__util__unittest.cc b/chromium/patches/patch-base_files_file__util__unittest.cc
index f9f6e5c1be..64edc70803 100644
--- a/chromium/patches/patch-base_files_file__util__unittest.cc
+++ b/chromium/patches/patch-base_files_file__util__unittest.cc
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- base/files/file_util_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/files/file_util_unittest.cc.orig	2024-07-24 02:44:22.567418600 +0000
 +++ base/files/file_util_unittest.cc
-@@ -3501,7 +3501,7 @@ TEST_F(FileUtilTest, ReadFileToStringWit
+@@ -3903,7 +3903,7 @@ TEST_F(FileUtilTest, ReadFileToStringWit
  }
- #endif  // defined(OS_WIN)
+ #endif  // BUILDFLAG(IS_WIN)
  
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_FREEBSD)
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
  TEST_F(FileUtilTest, ReadFileToStringWithProcFileSystem) {
    FilePath file_path("/proc/cpuinfo");
    std::string data = "temp";
+@@ -4620,7 +4620,7 @@ TEST(FileUtilMultiThreadedTest, MultiThr
+                 NULL);
+ #else
+     size_t bytes_written =
+-        ::write(::fileno(output_file.get()), content.c_str(), content.length());
++        ::write(fileno(output_file.get()), content.c_str(), content.length());
+ #endif
+     EXPECT_EQ(content.length(), bytes_written);
+     ::fflush(output_file.get());
diff --git a/chromium/patches/patch-base_files_important__file__writer__cleaner.cc b/chromium/patches/patch-base_files_important__file__writer__cleaner.cc
new file mode 100644
index 0000000000..94d340c1a8
--- /dev/null
+++ b/chromium/patches/patch-base_files_important__file__writer__cleaner.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/files/important_file_writer_cleaner.cc.orig	2024-07-24 02:44:22.567418600 +0000
++++ base/files/important_file_writer_cleaner.cc
+@@ -25,7 +25,8 @@ namespace base {
+ namespace {
+ 
+ base::Time GetUpperBoundTime() {
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA)
++// needed because of .CreationTime() pledge
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   // If process creation time is not available then use instance creation
+   // time as the upper-bound for old files. Modification times may be
+   // rounded-down to coarse-grained increments, e.g. FAT has 2s granularity,
diff --git a/chromium/patches/patch-base_files_scoped__file.cc b/chromium/patches/patch-base_files_scoped__file.cc
index 294e2dfd5d..3fc92b64a9 100644
--- a/chromium/patches/patch-base_files_scoped__file.cc
+++ b/chromium/patches/patch-base_files_scoped__file.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/files/scoped_file.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/files/scoped_file.cc.orig	2024-07-24 02:44:22.571419000 +0000
 +++ base/files/scoped_file.cc
-@@ -31,7 +31,7 @@ void ScopedFDCloseTraits::Free(int fd) {
+@@ -32,7 +32,7 @@ void ScopedFDCloseTraits::Free(int fd) {
    int ret = IGNORE_EINTR(close(fd));
  
- #if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_FUCHSIA) || \
--    defined(OS_ANDROID)
-+    defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
+-    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
    // NB: Some file descriptors can return errors from close() e.g. network
    // filesystems such as NFS and Linux input devices. On Linux, macOS, and
    // Fuchsia's POSIX layer, errors from close other than EBADF do not indicate
diff --git a/chromium/patches/patch-base_functional_unretained__traits.h b/chromium/patches/patch-base_functional_unretained__traits.h
new file mode 100644
index 0000000000..a9267a6f13
--- /dev/null
+++ b/chromium/patches/patch-base_functional_unretained__traits.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/functional/unretained_traits.h.orig	2024-07-24 02:44:22.575419400 +0000
++++ base/functional/unretained_traits.h
+@@ -93,7 +93,7 @@ struct SupportsUnretainedImpl {
+ // official builds, and then in non-test code as well.
+ #if defined(FORCE_UNRETAINED_COMPLETENESS_CHECKS_FOR_TESTS) || \
+     (!defined(UNIT_TEST) && !defined(OFFICIAL_BUILD) &&        \
+-     (BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)))
++     (BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)))
+       static_assert(v,
+                     "Argument requires unretained storage, but type is not "
+                     "fully defined. This prevents determining whether "
diff --git a/chromium/patches/patch-base_i18n_icu__util.cc b/chromium/patches/patch-base_i18n_icu__util.cc
index ef43a9f55d..ef34a30e8b 100644
--- a/chromium/patches/patch-base_i18n_icu__util.cc
+++ b/chromium/patches/patch-base_i18n_icu__util.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- base/i18n/icu_util.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/i18n/icu_util.cc.orig	2024-07-24 02:44:22.583420300 +0000
 +++ base/i18n/icu_util.cc
-@@ -49,7 +49,7 @@
+@@ -52,7 +52,7 @@
+ #include "third_party/icu/source/common/unicode/unistr.h"
  #endif
  
- #if defined(OS_ANDROID) || defined(OS_FUCHSIA) || \
--    (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMECAST))
-+    (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMECAST)) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) || \
+     BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
  #include "third_party/icu/source/i18n/unicode/timezone.h"
  #endif
- 
-@@ -341,7 +341,7 @@ void InitializeIcuTimeZone() {
-       fuchsia::IntlProfileWatcher::GetPrimaryTimeZoneIdForIcuInitialization();
+@@ -328,7 +328,7 @@ void InitializeIcuTimeZone() {
+       FuchsiaIntlProfileWatcher::GetPrimaryTimeZoneIdForIcuInitialization();
    icu::TimeZone::adoptDefault(
        icu::TimeZone::createTimeZone(icu::UnicodeString::fromUTF8(zone_id)));
--#elif defined(OS_LINUX) && !BUILDFLAG(IS_CHROMECAST)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !BUILDFLAG(IS_CHROMECAST)
+-#elif BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
++#elif BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD)
    // To respond to the time zone change properly, the default time zone
    // cache in ICU has to be populated on starting up.
    // See TimeZoneMonitorLinux::NotifyClientsFromImpl().
diff --git a/chromium/patches/patch-base_linux__util.cc b/chromium/patches/patch-base_linux__util.cc
index 4d6f42106e..edf41a3962 100644
--- a/chromium/patches/patch-base_linux__util.cc
+++ b/chromium/patches/patch-base_linux__util.cc
@@ -1,12 +1,23 @@
 $NetBSD$
 
---- base/linux_util.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/linux_util.cc.orig	2024-07-24 02:44:22.591421000 +0000
 +++ base/linux_util.cc
-@@ -19,6 +19,7 @@
- #include "base/files/dir_reader_posix.h"
- #include "base/files/file_util.h"
- #include "base/files/scoped_file.h"
-+#include "base/logging.h"
- #include "base/no_destructor.h"
- #include "base/strings/safe_sprintf.h"
- #include "base/strings/string_number_conversions.h"
+@@ -154,10 +154,14 @@ void SetLinuxDistro(const std::string& d
+ }
+ 
+ bool GetThreadsForProcess(pid_t pid, std::vector<pid_t>* tids) {
++#if BUILDFLAG(IS_BSD)
++  return false;
++#else
+   // 25 > strlen("/proc//task") + strlen(std::to_string(INT_MAX)) + 1 = 22
+   char buf[25];
+   strings::SafeSPrintf(buf, "/proc/%d/task", pid);
+   return GetThreadsFromProcessDir(buf, tids);
++#endif
+ }
+ 
+ bool GetThreadsForCurrentProcess(std::vector<pid_t>* tids) {
diff --git a/chromium/patches/patch-base_location__unittest.cc b/chromium/patches/patch-base_location__unittest.cc
deleted file mode 100644
index af76cf7055..0000000000
--- a/chromium/patches/patch-base_location__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/location_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/location_unittest.cc
-@@ -32,7 +32,7 @@ TEST(LocationTest, CurrentYieldsCorrectV
-   EXPECT_EQ(here.line_number(), previous_line + 1);
-   EXPECT_STREQ("TestBody", here.function_name());
- #endif
--#elif defined(OFFICIAL_BUILD)
-+#elif defined(OFFICIAL_BUILD) && !defined(OS_BSD)
- #error Location builtins must be supported in official builds.
- #elif BUILDFLAG(FROM_HERE_USES_LOCATION_BUILTINS)
- #error FROM_HERE requires location builtins to be supported.
diff --git a/chromium/patches/patch-base_logging__unittest.cc b/chromium/patches/patch-base_logging__unittest.cc
index 03872bf67c..0dbf4a8527 100644
--- a/chromium/patches/patch-base_logging__unittest.cc
+++ b/chromium/patches/patch-base_logging__unittest.cc
@@ -1,13 +1,37 @@
 $NetBSD$
 
---- base/logging_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/logging_unittest.cc.orig	2024-07-24 02:44:22.591421000 +0000
 +++ base/logging_unittest.cc
-@@ -552,7 +552,7 @@ void CheckCrashTestSighandler(int, sigin
+@@ -41,7 +41,7 @@
+ #include "base/posix/eintr_wrapper.h"
+ #endif  // BUILDFLAG(IS_POSIX)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD)
+ #include <ucontext.h>
+ #endif
+ 
+@@ -579,14 +579,18 @@ void CheckCrashTestSighandler(int, sigin
    // need the arch-specific boilerplate below, which is inspired by breakpad.
    // At the same time, on OSX, ucontext.h is deprecated but si_addr works fine.
    uintptr_t crash_addr = 0;
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
    crash_addr = reinterpret_cast<uintptr_t>(info->si_addr);
- #else  // OS_POSIX && !OS_MACOSX
+ #else  // OS_*
    ucontext_t* context = reinterpret_cast<ucontext_t*>(context_ptr);
+ #if defined(ARCH_CPU_X86)
+   crash_addr = static_cast<uintptr_t>(context->uc_mcontext.gregs[REG_EIP]);
+ #elif defined(ARCH_CPU_X86_64)
++#if BUILDFLAG(IS_OPENBSD)
++  crash_addr = static_cast<uintptr_t>(context->sc_rip);
++#else
+   crash_addr = static_cast<uintptr_t>(context->uc_mcontext.gregs[REG_RIP]);
++#endif
+ #elif defined(ARCH_CPU_ARMEL)
+   crash_addr = static_cast<uintptr_t>(context->uc_mcontext.arm_pc);
+ #elif defined(ARCH_CPU_ARM64)
diff --git a/chromium/patches/patch-base_memory_discardable__memory.cc b/chromium/patches/patch-base_memory_discardable__memory.cc
index b95af29fdb..d3765efb84 100644
--- a/chromium/patches/patch-base_memory_discardable__memory.cc
+++ b/chromium/patches/patch-base_memory_discardable__memory.cc
@@ -1,40 +1,44 @@
 $NetBSD$
 
---- base/memory/discardable_memory.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/memory/discardable_memory.cc.orig	2024-07-24 02:44:22.595421300 +0000
 +++ base/memory/discardable_memory.cc
-@@ -23,7 +23,7 @@ const base::Feature kMadvFreeDiscardable
-     "MadvFreeDiscardableMemory", base::FEATURE_DISABLED_BY_DEFAULT};
- #endif  // defined(OS_POSIX)
- 
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
- const base::Feature kDiscardableMemoryBackingTrial{
-     "DiscardableMemoryBackingTrial", base::FEATURE_DISABLED_BY_DEFAULT};
+@@ -26,7 +26,7 @@ BASE_FEATURE(kMadvFreeDiscardableMemory,
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif  // BUILDFLAG(IS_POSIX)
  
-@@ -47,7 +47,7 @@ const base::FeatureParam<DiscardableMemo
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kDiscardableMemoryBackingTrial,
+              "DiscardableMemoryBackingTrial",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -52,7 +52,7 @@ const base::FeatureParam<DiscardableMemo
  
  namespace {
  
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  
  DiscardableMemoryBacking GetBackingForFieldTrial() {
    DiscardableMemoryTrialGroup trial_group =
-@@ -65,7 +65,7 @@ DiscardableMemoryBacking GetBackingForFi
+@@ -71,7 +71,7 @@ DiscardableMemoryBacking GetBackingForFi
  
  }  // namespace
  
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  
  // Probe capabilities of this device to determine whether we should participate
  // in the discardable memory backing trial.
-@@ -94,7 +94,7 @@ DiscardableMemory::DiscardableMemory() =
+@@ -101,7 +101,7 @@ DiscardableMemory::DiscardableMemory() =
  DiscardableMemory::~DiscardableMemory() = default;
  
  DiscardableMemoryBacking GetDiscardableMemoryBacking() {
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (DiscardableMemoryBackingFieldTrialIsEnabled()) {
      return GetBackingForFieldTrial();
    }
diff --git a/chromium/patches/patch-base_memory_discardable__memory__internal.h b/chromium/patches/patch-base_memory_discardable__memory__internal.h
index 536d5f6cca..88ad55f204 100644
--- a/chromium/patches/patch-base_memory_discardable__memory__internal.h
+++ b/chromium/patches/patch-base_memory_discardable__memory__internal.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/memory/discardable_memory_internal.h.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/memory/discardable_memory_internal.h.orig	2024-07-24 02:44:22.595421300 +0000
 +++ base/memory/discardable_memory_internal.h
 @@ -10,7 +10,7 @@
  #include "base/metrics/field_trial_params.h"
  #include "build/build_config.h"
  
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  
  namespace base {
  
diff --git a/chromium/patches/patch-base_memory_madv__free__discardable__memory__posix.cc b/chromium/patches/patch-base_memory_madv__free__discardable__memory__posix.cc
index eb06b0deb5..d8f6e244d0 100644
--- a/chromium/patches/patch-base_memory_madv__free__discardable__memory__posix.cc
+++ b/chromium/patches/patch-base_memory_madv__free__discardable__memory__posix.cc
@@ -1,13 +1,27 @@
 $NetBSD$
 
---- base/memory/madv_free_discardable_memory_posix.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/memory/madv_free_discardable_memory_posix.cc.orig	2024-07-24 02:44:22.599421700 +0000
 +++ base/memory/madv_free_discardable_memory_posix.cc
-@@ -292,7 +292,7 @@ void MadvFreeDiscardableMemoryPosix::Set
+@@ -311,6 +311,10 @@ void MadvFreeDiscardableMemoryPosix::Set
  
  bool MadvFreeDiscardableMemoryPosix::IsResident() const {
    DFAKE_SCOPED_RECURSIVE_LOCK(thread_collision_warner_);
--#ifdef OS_MACOSX
-+#if defined(OS_MACOSX) || defined(OS_BSD)
++// XXX mincore
++#if BUILDFLAG(IS_BSD)
++  return false;
++#else
+ #if BUILDFLAG(IS_APPLE)
    std::vector<char> vec(allocated_pages_);
  #else
-   std::vector<unsigned char> vec(allocated_pages_);
+@@ -326,6 +330,7 @@ bool MadvFreeDiscardableMemoryPosix::IsR
+       return false;
+   }
+   return true;
++#endif
+ }
+ 
+ bool MadvFreeDiscardableMemoryPosix::IsDiscarded() const {
diff --git a/chromium/patches/patch-base_memory_platform__shared__memory__region.h b/chromium/patches/patch-base_memory_platform__shared__memory__region.h
index 054bae6fd1..b47d54b9bb 100644
--- a/chromium/patches/patch-base_memory_platform__shared__memory__region.h
+++ b/chromium/patches/patch-base_memory_platform__shared__memory__region.h
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- base/memory/platform_shared_memory_region.h.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/memory/platform_shared_memory_region.h.orig	2024-07-24 02:44:22.599421700 +0000
 +++ base/memory/platform_shared_memory_region.h
-@@ -27,7 +27,7 @@
- #include "base/files/scoped_file.h"
- #endif
+@@ -17,7 +17,7 @@
+ #include "base/unguessable_token.h"
+ #include "build/build_config.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  namespace content {
  class SandboxIPCHandler;
  }
-@@ -121,7 +121,7 @@ class BASE_EXPORT PlatformSharedMemoryRe
+@@ -84,7 +84,7 @@ class BASE_EXPORT PlatformSharedMemoryRe
      kMaxValue = GET_SHMEM_TEMP_DIR_FAILURE
    };
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) | defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Structure to limit access to executable region creation.
    struct ExecutableRegion {
     private:
-@@ -266,7 +266,7 @@ class BASE_EXPORT PlatformSharedMemoryRe
+@@ -216,7 +216,7 @@ class BASE_EXPORT PlatformSharedMemoryRe
                             CheckPlatformHandlePermissionsCorrespondToMode);
    static PlatformSharedMemoryRegion Create(Mode mode,
                                             size_t size
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
                                             ,
                                             bool executable = false
  #endif
diff --git a/chromium/patches/patch-base_memory_platform__shared__memory__region__posix.cc b/chromium/patches/patch-base_memory_platform__shared__memory__region__posix.cc
index 87bc1ba2f4..533294f63f 100644
--- a/chromium/patches/patch-base_memory_platform__shared__memory__region__posix.cc
+++ b/chromium/patches/patch-base_memory_platform__shared__memory__region__posix.cc
@@ -1,22 +1,35 @@
 $NetBSD$
 
---- base/memory/platform_shared_memory_region_posix.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/memory/platform_shared_memory_region_posix.cc.orig	2024-07-24 02:44:22.599421700 +0000
 +++ base/memory/platform_shared_memory_region_posix.cc
-@@ -70,7 +70,7 @@ FDPair ScopedFDPair::get() const {
-   return {fd.get(), readonly_fd.get()};
- }
+@@ -55,7 +55,7 @@ bool CheckFDAccessMode(int fd, int expec
+ 
+ }  // namespace
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // static
  ScopedFD PlatformSharedMemoryRegion::ExecutableRegion::CreateFD(size_t size) {
    PlatformSharedMemoryRegion region =
-@@ -204,7 +204,7 @@ bool PlatformSharedMemoryRegion::MapAtIn
+@@ -168,7 +168,7 @@ bool PlatformSharedMemoryRegion::Convert
  // static
  PlatformSharedMemoryRegion PlatformSharedMemoryRegion::Create(Mode mode,
                                                                size_t size
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
                                                                ,
                                                                bool executable
  #endif
+@@ -197,7 +197,7 @@ PlatformSharedMemoryRegion PlatformShare
+   // flag.
+   FilePath directory;
+   if (!GetShmemTempDir(
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+           executable,
+ #else
+           false /* executable */,
diff --git a/chromium/patches/patch-base_memory_shared__memory__region__unittest.cc b/chromium/patches/patch-base_memory_shared__memory__region__unittest.cc
deleted file mode 100644
index 4ec0c2b314..0000000000
--- a/chromium/patches/patch-base_memory_shared__memory__region__unittest.cc
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD$
-
---- base/memory/shared_memory_region_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/memory/shared_memory_region_unittest.cc
-@@ -188,10 +188,12 @@ TYPED_TEST(SharedMemoryRegionTest, MapAt
-   std::tie(region, rw_mapping) = CreateMappedRegion<TypeParam>(kDataSize);
-   ASSERT_TRUE(region.IsValid());
-   ASSERT_TRUE(rw_mapping.IsValid());
-+#if !defined(OS_BSD)
-   off_t offset = kDataSize / 2;
-   typename TypeParam::MappingType mapping =
-       region.MapAt(offset, kDataSize - offset);
-   EXPECT_FALSE(mapping.IsValid());
-+#endif
- }
- 
- TYPED_TEST(SharedMemoryRegionTest, MapZeroBytesFails) {
diff --git a/chromium/patches/patch-base_message__loop_message__pump__glib.cc b/chromium/patches/patch-base_message__loop_message__pump__glib.cc
new file mode 100644
index 0000000000..cc1a55a8a5
--- /dev/null
+++ b/chromium/patches/patch-base_message__loop_message__pump__glib.cc
@@ -0,0 +1,34 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/message_loop/message_pump_glib.cc.orig	2024-07-24 02:44:22.607422600 +0000
++++ base/message_loop/message_pump_glib.cc
+@@ -8,6 +8,11 @@
+ #include <glib.h>
+ #include <math.h>
+ 
++#if BUILDFLAG(IS_BSD) && !BUILDFLAG(IS_NETBSD)
++#include <pthread.h>
++#include <pthread_np.h>
++#endif
++
+ #include "base/logging.h"
+ #include "base/memory/raw_ptr.h"
+ #include "base/notreached.h"
+@@ -51,9 +56,13 @@ int GetTimeIntervalMilliseconds(TimeTick
+ }
+ 
+ bool RunningOnMainThread() {
++#if BUILDFLAG(IS_BSD) && !BUILDFLAG(IS_NETBSD)
++  return pthread_main_np();
++#else
+   auto pid = getpid();
+   auto tid = PlatformThread::CurrentId();
+   return pid > 0 && tid > 0 && pid == tid;
++#endif
+ }
+ 
+ // A brief refresher on GLib:
diff --git a/chromium/patches/patch-base_native__library__posix.cc b/chromium/patches/patch-base_native__library__posix.cc
index 98428fadf7..068b4252ca 100644
--- a/chromium/patches/patch-base_native__library__posix.cc
+++ b/chromium/patches/patch-base_native__library__posix.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/native_library_posix.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/native_library_posix.cc.orig	2024-07-24 02:44:22.623424000 +0000
 +++ base/native_library_posix.cc
-@@ -29,7 +29,7 @@ NativeLibrary LoadNativeLibraryWithOptio
+@@ -33,7 +33,7 @@ NativeLibrary LoadNativeLibraryWithOptio
    // http://crbug.com/17943, http://crbug.com/17557, http://crbug.com/36892,
    // and http://crbug.com/40794.
    int flags = RTLD_LAZY;
--#if defined(OS_ANDROID) || !defined(RTLD_DEEPBIND)
-+#if defined(OS_ANDROID) || !defined(RTLD_DEEPBIND) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || !defined(RTLD_DEEPBIND)
++#if BUILDFLAG(IS_ANDROID) || !defined(RTLD_DEEPBIND) || BUILDFLAG(IS_BSD)
    // Certain platforms don't define RTLD_DEEPBIND. Android dlopen() requires
    // further investigation, as it might vary across versions. Crash here to
    // warn developers that they're trying to rely on uncertain behavior.
diff --git a/chromium/patches/patch-base_native__library__unittest.cc b/chromium/patches/patch-base_native__library__unittest.cc
index 630a53bd3f..358deb8913 100644
--- a/chromium/patches/patch-base_native__library__unittest.cc
+++ b/chromium/patches/patch-base_native__library__unittest.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/native_library_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/native_library_unittest.cc.orig	2024-07-24 02:44:22.627424500 +0000
 +++ base/native_library_unittest.cc
-@@ -121,7 +121,7 @@ TEST(NativeLibraryTest, LoadLibrary) {
+@@ -133,7 +133,7 @@ TEST(NativeLibraryTest, LoadLibrary) {
  // versions with respect to symbol resolution scope.
  // TSan and MSan error out on RTLD_DEEPBIND, https://crbug.com/705255
- #if !defined(OS_ANDROID) && !defined(THREAD_SANITIZER) && \
+ #if !BUILDFLAG(IS_ANDROID) && !defined(THREAD_SANITIZER) && \
 -    !defined(MEMORY_SANITIZER)
-+    !defined(MEMORY_SANITIZER) && !defined(OS_BSD)
++    !defined(MEMORY_SANITIZER) && !BUILDFLAG(IS_BSD)
  
  // Verifies that the |prefer_own_symbols| option satisfies its guarantee that
  // a loaded library will always prefer local symbol resolution before
diff --git a/chromium/patches/patch-base_path__service__unittest.cc b/chromium/patches/patch-base_path__service__unittest.cc
deleted file mode 100644
index 67214f6345..0000000000
--- a/chromium/patches/patch-base_path__service__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/path_service_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/path_service_unittest.cc
-@@ -37,7 +37,7 @@ bool ReturnsValidPath(int dir_type) {
-   if (dir_type == DIR_CACHE)
-     check_path_exists = false;
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // On the linux try-bots: a path is returned (e.g. /home/chrome-bot/Desktop),
-   // but it doesn't exist.
-   if (dir_type == DIR_USER_DESKTOP)
diff --git a/chromium/patches/patch-base_posix_can__lower__nice__to.cc b/chromium/patches/patch-base_posix_can__lower__nice__to.cc
index 85925828c9..0f2cf162d3 100644
--- a/chromium/patches/patch-base_posix_can__lower__nice__to.cc
+++ b/chromium/patches/patch-base_posix_can__lower__nice__to.cc
@@ -1,22 +1,22 @@
 $NetBSD$
 
---- base/posix/can_lower_nice_to.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/posix/can_lower_nice_to.cc.orig	2024-07-24 02:44:22.631425000 +0000
 +++ base/posix/can_lower_nice_to.cc
-@@ -31,6 +31,9 @@ bool CanLowerNiceTo(int nice_value) {
-   if (geteuid() == 0)
-     return true;
+@@ -11,8 +11,12 @@
  
-+#if defined(OS_BSD)
-+  return false;
-+#else
-   // 2. Skip checking the CAP_SYS_NICE permission because it would require
-   // libcap.so.
+ #include "build/build_config.h"
  
-@@ -54,6 +57,7 @@ bool CanLowerNiceTo(int nice_value) {
-   // And lowering niceness to |nice_value| is allowed if it is greater than or
-   // equal to the limit:
-   return nice_value >= lowest_nice_allowed;
++#if BUILDFLAG(IS_FREEBSD)
++#include <sys/param.h>
 +#endif
- }
- 
- }  // namespace internal
++
+ // Not defined on AIX by default.
+-#if BUILDFLAG(IS_AIX)
++#if BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ #if defined(RLIMIT_NICE)
+ #error Assumption about OS_AIX is incorrect
+ #endif
diff --git a/chromium/patches/patch-base_posix_sysctl.cc b/chromium/patches/patch-base_posix_sysctl.cc
new file mode 100644
index 0000000000..ba4eebe9d0
--- /dev/null
+++ b/chromium/patches/patch-base_posix_sysctl.cc
@@ -0,0 +1,38 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/posix/sysctl.cc.orig	2024-07-24 02:44:22.631425000 +0000
++++ base/posix/sysctl.cc
+@@ -4,6 +4,7 @@
+ 
+ #include "base/posix/sysctl.h"
+ 
++#include <sys/types.h>
+ #include <sys/sysctl.h>
+ 
+ #include <initializer_list>
+@@ -16,17 +17,17 @@
+ #include "build/build_config.h"
+ 
+ namespace {
+-
++// NetBSD has sysctl_func macro in sys/sysctl.h, workaround: sysctl_func -> sysctl_func2
+ std::optional<std::string> StringSysctlImpl(
+-    base::FunctionRef<int(char* /*out*/, size_t* /*out_len*/)> sysctl_func) {
++    base::FunctionRef<int(char* /*out*/, size_t* /*out_len*/)> sysctl_func2) {
+   size_t buf_len;
+-  int result = sysctl_func(nullptr, &buf_len);
++  int result = sysctl_func2(nullptr, &buf_len);
+   if (result < 0 || buf_len < 1) {
+     return std::nullopt;
+   }
+ 
+   std::string value(buf_len - 1, '\0');
+-  result = sysctl_func(&value[0], &buf_len);
++  result = sysctl_func2(&value[0], &buf_len);
+   if (result < 0) {
+     return std::nullopt;
+   }
diff --git a/chromium/patches/patch-base_posix_unix__domain__socket.cc b/chromium/patches/patch-base_posix_unix__domain__socket.cc
index 2bd1b511f0..e02c95a592 100644
--- a/chromium/patches/patch-base_posix_unix__domain__socket.cc
+++ b/chromium/patches/patch-base_posix_unix__domain__socket.cc
@@ -1,56 +1,63 @@
 $NetBSD$
 
---- base/posix/unix_domain_socket.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/posix/unix_domain_socket.cc.orig	2024-07-24 02:44:22.631425000 +0000
 +++ base/posix/unix_domain_socket.cc
-@@ -6,6 +6,8 @@
- 
- #include <errno.h>
- #include <sys/socket.h>
-+#include <sys/types.h>
-+#include <sys/ucred.h>
- #if !defined(OS_NACL_NONSFI)
- #include <sys/un.h>
- #endif
-@@ -57,7 +59,7 @@ bool CreateSocketPair(ScopedFD* one, Sco
+@@ -56,7 +56,7 @@ bool CreateSocketPair(ScopedFD* one, Sco
  
  // static
  bool UnixDomainSocket::EnableReceiveProcessId(int fd) {
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_NETBSD)
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
    const int enable = 1;
    return setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &enable, sizeof(enable)) == 0;
  #else
-@@ -151,7 +153,11 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
- #if !defined(OS_NACL_NONSFI) && !defined(OS_MACOSX)
-       // The PNaCl toolchain for Non-SFI binary build and macOS do not support
-       // ucred. macOS supports xucred, but this structure is insufficient.
-+#if defined(OS_NETBSD)
-+      + CMSG_SPACE(sizeof(struct unpcbid))
-+#else
+@@ -82,7 +82,7 @@ bool UnixDomainSocket::SendMsg(int fd,
+ 
+     struct cmsghdr* cmsg;
+     msg.msg_control = control_buffer;
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+     msg.msg_controllen = checked_cast<socklen_t>(control_len);
+ #else
+     msg.msg_controllen = control_len;
+@@ -90,7 +90,7 @@ bool UnixDomainSocket::SendMsg(int fd,
+     cmsg = CMSG_FIRSTHDR(&msg);
+     cmsg->cmsg_level = SOL_SOCKET;
+     cmsg->cmsg_type = SCM_RIGHTS;
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+     cmsg->cmsg_len = checked_cast<u_int>(CMSG_LEN(sizeof(int) * fds.size()));
+ #else
+     cmsg->cmsg_len = CMSG_LEN(sizeof(int) * fds.size());
+@@ -154,7 +154,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
+ 
+   const size_t kControlBufferSize =
+       CMSG_SPACE(sizeof(int) * kMaxFileDescriptors)
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
+       // macOS does not support ucred.
+       // macOS supports xucred, but this structure is insufficient.
        + CMSG_SPACE(sizeof(struct ucred))
-+#endif
- #endif  // OS_NACL_NONSFI or OS_MACOSX
-       ;
-   char control_buffer[kControlBufferSize];
-@@ -176,7 +182,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
+@@ -182,7 +182,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
          wire_fds = reinterpret_cast<int*>(CMSG_DATA(cmsg));
          wire_fds_len = payload_len / sizeof(int);
        }
--#if !defined(OS_NACL_NONSFI) && !defined(OS_MACOSX)
-+#if !defined(OS_NACL_NONSFI) && !defined(OS_MACOSX) && !defined(OS_NETBSD)
-       // The PNaCl toolchain for Non-SFI binary build and macOS do not support
-       // SCM_CREDENTIALS.
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
+       // macOS does not support SCM_CREDENTIALS.
        if (cmsg->cmsg_level == SOL_SOCKET &&
-@@ -211,6 +217,12 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
+           cmsg->cmsg_type == SCM_CREDENTIALS) {
+@@ -216,6 +216,9 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
      socklen_t pid_size = sizeof(pid);
      if (getsockopt(fd, SOL_LOCAL, LOCAL_PEERPID, &pid, &pid_size) != 0)
        pid = -1;
-+#elif defined(OS_NETBSD)
-+    socklen_t pid_size = sizeof(pid);
-+    struct unpcbid cred;
-+    if (getsockopt(fd, 0, LOCAL_PEEREID, &cred, &pid_size) != 0)
-+      pid = -1;
-+    pid = cred.unp_pid;
++#elif BUILDFLAG(IS_BSD)
++    NOTIMPLEMENTED();
++    pid = -1;
  #else
      // |pid| will legitimately be -1 if we read EOF, so only DCHECK if we
      // actually received a message.  Unfortunately, Linux allows sending zero
diff --git a/chromium/patches/patch-base_posix_unix__domain__socket__unittest.cc b/chromium/patches/patch-base_posix_unix__domain__socket__unittest.cc
new file mode 100644
index 0000000000..21b70e3f21
--- /dev/null
+++ b/chromium/patches/patch-base_posix_unix__domain__socket__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/posix/unix_domain_socket_unittest.cc.orig	2024-07-24 02:44:22.631425000 +0000
++++ base/posix/unix_domain_socket_unittest.cc
+@@ -15,6 +15,8 @@
+ #include <sys/types.h>
+ #include <unistd.h>
+ 
++#include <signal.h>
++
+ #include "base/files/file_util.h"
+ #include "base/files/scoped_file.h"
+ #include "base/functional/bind.h"
diff --git a/chromium/patches/patch-base_process_internal__linux.h b/chromium/patches/patch-base_process_internal__linux.h
index f352085e35..3568f93d9b 100644
--- a/chromium/patches/patch-base_process_internal__linux.h
+++ b/chromium/patches/patch-base_process_internal__linux.h
@@ -1,27 +1,26 @@
 $NetBSD$
 
---- base/process/internal_linux.h.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/internal_linux.h.orig	2024-07-24 02:44:22.635425300 +0000
 +++ base/process/internal_linux.h
-@@ -55,6 +55,14 @@ bool ParseProcStats(const std::string& s
- // If the ordering ever changes, carefully review functions that use these
- // values.
- enum ProcStatsFields {
-+#if defined(OS_BSD)
-+  VM_COMM = 0,         // Command name.
-+  VM_PPID = 2,         // Parent process id.
-+  VM_PGRP = 3,         // Process group id.
-+  VM_STARTTIME = 7,    // The process start time.
-+  VM_UTIME = 8,        // The user time.
-+  VM_STIME = 9,        // The system time
+@@ -140,6 +140,9 @@ TimeDelta ClockTicksToTimeDelta(int64_t 
+ // arguments to the lambda.
+ template <typename Lambda>
+ void ForEachProcessTask(base::ProcessHandle process, Lambda&& lambda) {
++#if BUILDFLAG(IS_BSD)
++  return;
 +#else
-   VM_COMM = 1,         // Filename of executable, without parentheses.
-   VM_STATE = 2,        // Letter indicating the state of the process.
-   VM_PPID = 3,         // PID of the parent.
-@@ -67,6 +75,7 @@ enum ProcStatsFields {
-   VM_STARTTIME = 21,   // The time the process started in clock ticks.
-   VM_VSIZE = 22,       // Virtual memory size in bytes.
-   VM_RSS = 23,         // Resident Set Size in pages.
+   // Iterate through the different threads tracked in /proc/<pid>/task.
+   FilePath fd_path = GetProcPidDir(process).Append("task");
+ 
+@@ -159,6 +162,7 @@ void ForEachProcessTask(base::ProcessHan
+     FilePath task_path = fd_path.Append(tid_str);
+     lambda(tid, task_path);
+   }
 +#endif
- };
+ }
  
- // Reads the |field_num|th field from |proc_stats|. Returns 0 on failure.
+ }  // namespace internal
diff --git a/chromium/patches/patch-base_process_kill.h b/chromium/patches/patch-base_process_kill.h
index cfe18ce5a8..3cb0c7715a 100644
--- a/chromium/patches/patch-base_process_kill.h
+++ b/chromium/patches/patch-base_process_kill.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/process/kill.h.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/kill.h.orig	2024-07-24 02:44:22.635425300 +0000
 +++ base/process/kill.h
-@@ -118,7 +118,7 @@ BASE_EXPORT TerminationStatus GetTermina
+@@ -123,7 +123,7 @@ BASE_EXPORT TerminationStatus GetTermina
  BASE_EXPORT TerminationStatus GetKnownDeadTerminationStatus(
      ProcessHandle handle, int* exit_code);
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // Spawns a thread to wait asynchronously for the child |process| to exit
  // and then reaps it.
  BASE_EXPORT void EnsureProcessGetsReaped(Process process);
diff --git a/chromium/patches/patch-base_process_kill__posix.cc b/chromium/patches/patch-base_process_kill__posix.cc
index 4d890e23bd..b516057e72 100644
--- a/chromium/patches/patch-base_process_kill__posix.cc
+++ b/chromium/patches/patch-base_process_kill__posix.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/process/kill_posix.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/kill_posix.cc.orig	2024-07-24 02:44:22.639425500 +0000
 +++ base/process/kill_posix.cc
-@@ -168,7 +168,7 @@ void EnsureProcessTerminated(Process pro
-       0, new BackgroundReaper(std::move(process), TimeDelta::FromSeconds(2)));
+@@ -157,7 +157,7 @@ void EnsureProcessTerminated(Process pro
+       0, new BackgroundReaper(std::move(process), Seconds(2)));
  }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  void EnsureProcessGetsReaped(Process process) {
    DCHECK(!process.is_current());
  
diff --git a/chromium/patches/patch-base_process_launch.cc b/chromium/patches/patch-base_process_launch.cc
deleted file mode 100644
index c85b1bd2e7..0000000000
--- a/chromium/patches/patch-base_process_launch.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/process/launch.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/process/launch.cc
-@@ -15,7 +15,7 @@ LaunchOptions::~LaunchOptions() = defaul
- 
- LaunchOptions LaunchOptionsForTest() {
-   LaunchOptions options;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // To prevent accidental privilege sharing to an untrusted child, processes
-   // are started with PR_SET_NO_NEW_PRIVS. Do not set that here, since this
-   // new child will be used for testing only.
diff --git a/chromium/patches/patch-base_process_launch.h b/chromium/patches/patch-base_process_launch.h
index f21ddf688b..4c8b985905 100644
--- a/chromium/patches/patch-base_process_launch.h
+++ b/chromium/patches/patch-base_process_launch.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/process/launch.h.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/launch.h.orig	2024-07-24 02:44:22.639425500 +0000
 +++ base/process/launch.h
-@@ -180,7 +180,7 @@ struct BASE_EXPORT LaunchOptions {
+@@ -200,7 +200,7 @@ struct BASE_EXPORT LaunchOptions {
    bool clear_environment = false;
- #endif  // OS_WIN || OS_POSIX || OS_FUCHSIA
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // If non-zero, start the process using clone(), using flags as provided.
    // Unlike in clone, clone_flags may not contain a custom termination signal
    // that is sent to the parent when the child dies. The termination signal will
diff --git a/chromium/patches/patch-base_process_launch__posix.cc b/chromium/patches/patch-base_process_launch__posix.cc
index 5aed6156a8..65d81a088f 100644
--- a/chromium/patches/patch-base_process_launch__posix.cc
+++ b/chromium/patches/patch-base_process_launch__posix.cc
@@ -1,13 +1,27 @@
 $NetBSD$
 
---- base/process/launch_posix.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/launch_posix.cc.orig	2024-07-24 02:44:22.639425500 +0000
 +++ base/process/launch_posix.cc
-@@ -214,6 +214,8 @@ static const char kFDDir[] = "/dev/fd";
+@@ -66,6 +66,9 @@
+ #error "macOS should use launch_mac.cc"
+ #endif
+ 
++#if defined(OS_FREEBSD)
++#pragma weak environ
++#endif
+ extern char** environ;
+ 
+ namespace base {
+@@ -210,6 +213,8 @@ static const char kFDDir[] = "/dev/fd";
  static const char kFDDir[] = "/dev/fd";
- #elif defined(OS_OPENBSD)
+ #elif BUILDFLAG(IS_OPENBSD)
  static const char kFDDir[] = "/dev/fd";
-+#elif defined(OS_NETBSD)
++#elif BUILDFLAG(IS_NETBSD)
 +static const char kFDDir[] = "/dev/fd";
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
  static const char kFDDir[] = "/proc/self/fd";
  #endif
diff --git a/chromium/patches/patch-base_process_memory.cc b/chromium/patches/patch-base_process_memory.cc
deleted file mode 100644
index 7ebb8c7db3..0000000000
--- a/chromium/patches/patch-base_process_memory.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- base/process/memory.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/process/memory.cc
-@@ -44,7 +44,7 @@ NOINLINE void OnNoMemoryInternal(size_t 
- }  // namespace internal
- 
- // Defined in memory_win.cc for Windows.
--#if !defined(OS_WIN)
-+#if !defined(OS_WIN) && !defined(OS_BSD)
- 
- namespace {
- 
-@@ -63,7 +63,7 @@ void TerminateBecauseOutOfMemory(size_t 
- #endif  // !defined(OS_WIN)
- 
- // Defined in memory_mac.mm for Mac.
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
- 
- bool UncheckedCalloc(size_t num_items, size_t size, void** result) {
-   const size_t alloc_size = num_items * size;
diff --git a/chromium/patches/patch-base_process_memory.h b/chromium/patches/patch-base_process_memory.h
deleted file mode 100644
index 16079c01bd..0000000000
--- a/chromium/patches/patch-base_process_memory.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/process/memory.h.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/process/memory.h
-@@ -24,7 +24,7 @@ BASE_EXPORT void EnableTerminationOnOutO
- // Crash reporting classifies such crashes as OOM.
- BASE_EXPORT void TerminateBecauseOutOfMemory(size_t size);
- 
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_BSD)
- BASE_EXPORT extern size_t g_oom_size;
- 
- // The maximum allowed value for the OOM score.
diff --git a/chromium/patches/patch-base_process_memory__linux.cc b/chromium/patches/patch-base_process_memory__linux.cc
new file mode 100644
index 0000000000..2826315419
--- /dev/null
+++ b/chromium/patches/patch-base_process_memory__linux.cc
@@ -0,0 +1,50 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/memory_linux.cc.orig	2024-07-24 02:44:22.639425500 +0000
++++ base/process/memory_linux.cc
+@@ -28,6 +28,7 @@ void __libc_free(void*);
+ 
+ namespace base {
+ 
++#if !BUILDFLAG(IS_BSD)
+ namespace {
+ 
+ void ReleaseReservationOrTerminate() {
+@@ -37,12 +38,14 @@ void ReleaseReservationOrTerminate() {
+ }
+ 
+ }  // namespace
++#endif
+ 
+ void EnableTerminationOnHeapCorruption() {
+   // On Linux, there nothing to do AFAIK.
+ }
+ 
+ void EnableTerminationOnOutOfMemory() {
++#if !BUILDFLAG(IS_BSD)
+   // Set the new-out of memory handler.
+   std::set_new_handler(&ReleaseReservationOrTerminate);
+   // If we're using glibc's allocator, the above functions will override
+@@ -51,8 +54,10 @@ void EnableTerminationOnOutOfMemory() {
+ #if PA_BUILDFLAG(USE_ALLOCATOR_SHIM)
+   allocator_shim::SetCallNewHandlerOnMallocFailure(true);
+ #endif
++#endif
+ }
+ 
++#if !BUILDFLAG(IS_BSD)
+ // ScopedAllowBlocking() has private constructor and it can only be used in
+ // friend classes/functions. Declaring a class is easier in this situation to
+ // avoid adding more dependency to thread_restrictions.h because of the
+@@ -110,6 +115,7 @@ bool AdjustOOMScoreHelper::AdjustOOMScor
+ bool AdjustOOMScore(ProcessId process, int score) {
+   return AdjustOOMScoreHelper::AdjustOOMScore(process, score);
+ }
++#endif
+ 
+ bool UncheckedMalloc(size_t size, void** result) {
+ #if PA_BUILDFLAG(USE_ALLOCATOR_SHIM)
diff --git a/chromium/patches/patch-base_process_memory__unittest.cc b/chromium/patches/patch-base_process_memory__unittest.cc
deleted file mode 100644
index 7a08363680..0000000000
--- a/chromium/patches/patch-base_process_memory__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/process/memory_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/process/memory_unittest.cc
-@@ -106,7 +106,7 @@ TEST(MemoryTest, AllocatorShimWorking) {
- // OpenBSD does not support these tests. Don't test these on ASan/TSan/MSan
- // configurations: only test the real allocator.
- // Windows only supports these tests with the allocator shim in place.
--#if !defined(OS_OPENBSD) && BUILDFLAG(USE_ALLOCATOR_SHIM) && \
-+#if !defined(OS_BSD) && BUILDFLAG(USE_ALLOCATOR_SHIM) && \
-     !defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
- 
- namespace {
diff --git a/chromium/patches/patch-base_process_process__handle.cc b/chromium/patches/patch-base_process_process__handle.cc
index ac5f21a90a..87cede2c51 100644
--- a/chromium/patches/patch-base_process_process__handle.cc
+++ b/chromium/patches/patch-base_process_process__handle.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/process/process_handle.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_handle.cc.orig	2024-07-24 02:44:22.639425500 +0000
 +++ base/process/process_handle.cc
 @@ -30,7 +30,7 @@ UniqueProcId GetUniqueIdForProcess() {
               : UniqueProcId(GetCurrentProcId());
  }
  
--#if defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_AIX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
  
  void InitUniqueIdForProcessInPidNamespace(ProcessId pid_outside_of_namespace) {
    DCHECK(pid_outside_of_namespace != kNullProcessId);
diff --git a/chromium/patches/patch-base_process_process__handle.h b/chromium/patches/patch-base_process_process__handle.h
index 14865a4fd2..26b63a0e23 100644
--- a/chromium/patches/patch-base_process_process__handle.h
+++ b/chromium/patches/patch-base_process_process__handle.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/process/process_handle.h.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_handle.h.orig	2024-07-24 02:44:22.639425500 +0000
 +++ base/process/process_handle.h
-@@ -103,7 +103,7 @@ BASE_EXPORT ProcessId GetCurrentProcId()
+@@ -86,7 +86,7 @@ BASE_EXPORT ProcessId GetCurrentProcId()
  // processes may be reused.
  BASE_EXPORT UniqueProcId GetUniqueIdForProcess();
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // When a process is started in a different PID namespace from the browser
  // process, this function must be called with the process's PID in the browser's
  // PID namespace in order to initialize its unique ID. Not thread safe.
diff --git a/chromium/patches/patch-base_process_process__handle__freebsd.cc b/chromium/patches/patch-base_process_process__handle__freebsd.cc
new file mode 100644
index 0000000000..3449fddaf4
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__handle__freebsd.cc
@@ -0,0 +1,33 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_handle_freebsd.cc.orig	2024-07-24 02:44:22.639425500 +0000
++++ base/process/process_handle_freebsd.cc
+@@ -3,6 +3,7 @@
+ // found in the LICENSE file.
+ 
+ #include "base/process/process_handle.h"
++#include "base/files/file_util.h"
+ 
+ #include <limits.h>
+ #include <stddef.h>
+@@ -20,12 +21,15 @@ namespace base {
+ 
+ ProcessId GetParentProcessId(ProcessHandle process) {
+   struct kinfo_proc info;
+-  size_t length;
++  size_t length = sizeof(struct kinfo_proc);
+   int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process };
+ 
+   if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
+     return -1;
+ 
++  if (length < sizeof(struct kinfo_proc))
++    return -1;
++
+   return info.ki_ppid;
+ }
+ 
diff --git a/chromium/patches/patch-base_process_process__handle__netbsd.cc b/chromium/patches/patch-base_process_process__handle__netbsd.cc
index 9cbcc8fbef..e7445b81ce 100644
--- a/chromium/patches/patch-base_process_process__handle__netbsd.cc
+++ b/chromium/patches/patch-base_process_process__handle__netbsd.cc
@@ -1,57 +1,64 @@
 $NetBSD$
 
---- base/process/process_handle_netbsd.cc.orig	2020-07-09 13:18:47.299833505 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_handle_netbsd.cc.orig	2024-08-01 14:08:56.648717030 +0000
 +++ base/process/process_handle_netbsd.cc
-@@ -0,0 +1,52 @@
-+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+@@ -0,0 +1,55 @@
++// Copyright 2011 The Chromium Authors
 +// Use of this source code is governed by a BSD-style license that can be
 +// found in the LICENSE file.
 +
 +#include "base/process/process_handle.h"
-+#include "base/stl_util.h"
++#include "base/files/file_util.h"
 +
 +#include <stddef.h>
++#include <sys/param.h>
++#include <sys/proc.h>
 +#include <sys/sysctl.h>
 +#include <sys/types.h>
 +#include <unistd.h>
-+#include <cstring>
++
++#include <optional>
++
++#include "base/files/file_path.h"
++#include "base/posix/sysctl.h"
 +
 +namespace base {
 +
 +ProcessId GetParentProcessId(ProcessHandle process) {
-+  struct kinfo_proc2 info;
++  struct kinfo_proc2 *info;
 +  size_t length;
++  pid_t ppid;
 +  int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process,
 +                sizeof(struct kinfo_proc2), 1 };
 +
-+  if (sysctl(mib, base::size(mib), NULL, &length, NULL, 0) < 0)
++  if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0)
 +    return -1;
 +
-+  mib[5] = (length / sizeof(struct kinfo_proc2));
++  info = (struct kinfo_proc2 *)malloc(length);
 +
-+  if (sysctl(mib, base::size(mib), &info, &length, NULL, 0) < 0)
-+    return -1;
++  mib[5] = static_cast<int>((length / sizeof(struct kinfo_proc2)));
 +
-+  return info.p_ppid;
++  if (sysctl(mib, std::size(mib), info, &length, NULL, 0) < 0) {
++    ppid = -1;
++    goto out;
++  }
++
++  ppid = info->p_ppid;
++
++out:
++  free(info);
++  return ppid;
 +}
 +
 +FilePath GetProcessExecutablePath(ProcessHandle process) {
-+  struct kinfo_proc2 kp;
-+  size_t len;
-+  int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process,
-+                sizeof(struct kinfo_proc2), 1 };
++  std::optional<std::string> pathname =
++      base::StringSysctl({CTL_KERN, KERN_PROC_ARGS, process, KERN_PROC_PATHNAME});
 +
-+  if (sysctl(mib, base::size(mib), NULL, &len, NULL, 0) == -1)
-+    return FilePath();
-+  mib[5] = (len / sizeof(struct kinfo_proc2));
-+  if (sysctl(mib, base::size(mib), &kp, &len, NULL, 0) < 0)
-+    return FilePath();
-+  if ((kp.p_flag & P_SYSTEM) != 0)
-+    return FilePath();
-+  if (strcmp(kp.p_comm, "chrome") == 0)
-+    return FilePath(kp.p_comm);
-+
-+  return FilePath();
++  return FilePath(pathname.value_or(std::string{}));
 +}
 +
 +}  // namespace base
diff --git a/chromium/patches/patch-base_process_process__handle__openbsd.cc b/chromium/patches/patch-base_process_process__handle__openbsd.cc
new file mode 100644
index 0000000000..99694bedbe
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__handle__openbsd.cc
@@ -0,0 +1,140 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_handle_openbsd.cc.orig	2024-07-24 02:44:22.639425500 +0000
++++ base/process/process_handle_openbsd.cc
+@@ -3,48 +3,112 @@
+ // found in the LICENSE file.
+ 
+ #include "base/process/process_handle.h"
++#include "base/files/file_util.h"
+ 
+ #include <stddef.h>
++#include <stdlib.h>
++#include <sys/param.h>
++#include <sys/proc.h>
++#include <sys/stat.h>
+ #include <sys/sysctl.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+ 
++#include <kvm.h>
++
+ namespace base {
+ 
+ ProcessId GetParentProcessId(ProcessHandle process) {
+-  struct kinfo_proc info;
++  struct kinfo_proc *info;
+   size_t length;
++  pid_t ppid;
+   int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process,
+                 sizeof(struct kinfo_proc), 0 };
+ 
+   if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0)
+     return -1;
+ 
+-  mib[5] = (length / sizeof(struct kinfo_proc));
++  info = (struct kinfo_proc *)malloc(length);
+ 
+-  if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
+-    return -1;
++  mib[5] = static_cast<int>((length / sizeof(struct kinfo_proc)));
++
++  if (sysctl(mib, std::size(mib), info, &length, NULL, 0) < 0) {
++    ppid = -1;
++    goto out;
++  }
++
++  ppid = info->p_ppid;
+ 
+-  return info.p_ppid;
++out:
++  free(info);
++  return ppid;
+ }
+ 
+ FilePath GetProcessExecutablePath(ProcessHandle process) {
+-  struct kinfo_proc kp;
++  struct kinfo_file *files;
++  kvm_t *kd = NULL;
++  char errbuf[_POSIX2_LINE_MAX];
++  char **retvalargs, *cpath, retval[PATH_MAX];
++  int cnt;
+   size_t len;
+-  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process,
+-                sizeof(struct kinfo_proc), 0 };
+-
+-  if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) == -1)
+-    return FilePath();
+-  mib[5] = (len / sizeof(struct kinfo_proc));
+-  if (sysctl(mib, std::size(mib), &kp, &len, NULL, 0) < 0)
+-    return FilePath();
+-  if ((kp.p_flag & P_SYSTEM) != 0)
+-    return FilePath();
+-  if (strcmp(kp.p_comm, "chrome") == 0)
+-    return FilePath(kp.p_comm);
++  char *tokens[2];
++  struct stat sb;
++  FilePath result;
++
++  int mib[] = { CTL_KERN, KERN_PROC_ARGS, process, KERN_PROC_ARGV };
++
++  if ((cpath = getenv("CHROME_EXE_PATH")) != NULL)
++    result = FilePath(cpath);
++  else
++    result = FilePath("/usr/local/chrome/chrome");
++
++  if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) != -1) {
++    retvalargs = static_cast<char**>(malloc(len));
++    if (!retvalargs)
++      return result;
++
++    if (sysctl(mib, std::size(mib), retvalargs, &len, NULL, 0) < 0) {
++      free(retvalargs);
++      return result;
++    }
++
++    if ((*tokens = strtok(retvalargs[0], ":")) == NULL) {
++      free(retvalargs);
++      return result;
++    }
++
++    free(retvalargs);
++
++    if (tokens[0] == NULL)
++      return result;
++
++    if (realpath(tokens[0], retval) == NULL)
++      return result;
++
++    if (stat(retval, &sb) < 0)
++      return result;
++
++    if ((kd = kvm_openfiles(NULL, NULL, NULL, (int)KVM_NO_FILES,
++         errbuf)) == NULL)
++      return result;
++
++    if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, process,
++        sizeof(struct kinfo_file), &cnt)) == NULL) {
++      kvm_close(kd);
++      return result;
++    }
++
++    for (int i = 0; i < cnt; i++) {
++      if (files[i].fd_fd == KERN_FILE_TEXT &&
++          files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) &&
++          files[i].va_fileid == sb.st_ino) {
++            kvm_close(kd);
++            result = FilePath(retval);
++      }
++    }
++  }
+ 
+-  return FilePath();
++  return result;
+ }
+ 
+ }  // namespace base
diff --git a/chromium/patches/patch-base_process_process__iterator.h b/chromium/patches/patch-base_process_process__iterator.h
index f8af2d55db..05267450a8 100644
--- a/chromium/patches/patch-base_process_process__iterator.h
+++ b/chromium/patches/patch-base_process_process__iterator.h
@@ -1,27 +1,29 @@
 $NetBSD$
 
---- base/process/process_iterator.h.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_iterator.h.orig	2024-07-24 02:44:22.639425500 +0000
 +++ base/process/process_iterator.h
 @@ -24,7 +24,7 @@
- #if defined(OS_WIN)
  #include <windows.h>
+ 
  #include <tlhelp32.h>
--#elif defined(OS_MACOSX) || defined(OS_OPENBSD)
-+#elif defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_NETBSD)
+-#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD)
++#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
  #include <sys/sysctl.h>
- #elif defined(OS_FREEBSD)
+ #elif BUILDFLAG(IS_FREEBSD)
  #include <sys/user.h>
-@@ -111,9 +111,12 @@ class BASE_EXPORT ProcessIterator {
- #if defined(OS_WIN)
+@@ -116,7 +116,11 @@ class BASE_EXPORT ProcessIterator {
    HANDLE snapshot_;
-   bool started_iteration_;
--#elif defined(OS_MACOSX) || defined(OS_BSD)
-+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
-   std::vector<kinfo_proc> kinfo_procs_;
-   size_t index_of_kinfo_proc_;
-+#elif defined(OS_NETBSD)
+   bool started_iteration_ = false;
+ #elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
++# if BUILDFLAG(IS_NETBSD)
 +  std::vector<kinfo_proc2> kinfo_procs_;
-+  size_t index_of_kinfo_proc_;
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
-   DIR* procfs_dir_;
- #endif
++# else
+   std::vector<kinfo_proc> kinfo_procs_;
++# endif
+   size_t index_of_kinfo_proc_ = 0;
+ #elif BUILDFLAG(IS_POSIX)
+   struct DIRClose {
diff --git a/chromium/patches/patch-base_process_process__iterator__freebsd.cc b/chromium/patches/patch-base_process_process__iterator__freebsd.cc
new file mode 100644
index 0000000000..820b53bf18
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__iterator__freebsd.cc
@@ -0,0 +1,57 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_iterator_freebsd.cc.orig	2024-07-24 02:44:22.639425500 +0000
++++ base/process/process_iterator_freebsd.cc
+@@ -18,7 +18,7 @@ namespace base {
+ 
+ ProcessIterator::ProcessIterator(const ProcessFilter* filter)
+     : filter_(filter) {
+-  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, getuid() };
++  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, (int) getuid() };
+ 
+   bool done = false;
+   int try_num = 1;
+@@ -37,7 +37,7 @@ ProcessIterator::ProcessIterator(const P
+       num_of_kinfo_proc += 16;
+       kinfo_procs_.resize(num_of_kinfo_proc);
+       len = num_of_kinfo_proc * sizeof(struct kinfo_proc);
+-      if (sysctl(mib, std::size(mib), &kinfo_procs_[0], &len, NULL, 0) < 0) {
++      if (sysctl(mib, std::size(mib), kinfo_procs_.data(), &len, NULL, 0) < 0) {
+         // If we get a mem error, it just means we need a bigger buffer, so
+         // loop around again.  Anything else is a real error and give up.
+         if (errno != ENOMEM) {
+@@ -47,7 +47,7 @@ ProcessIterator::ProcessIterator(const P
+         }
+       } else {
+         // Got the list, just make sure we're sized exactly right
+-        size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
++	num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
+         kinfo_procs_.resize(num_of_kinfo_proc);
+         done = true;
+       }
+@@ -68,18 +68,13 @@ bool ProcessIterator::CheckForNextProces
+   for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++index_of_kinfo_proc_) {
+     size_t length;
+     struct kinfo_proc kinfo = kinfo_procs_[index_of_kinfo_proc_];
+-    int mib[] = { CTL_KERN, KERN_PROC_ARGS, kinfo.ki_pid };
++    int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_ARGS, kinfo.ki_pid };
+ 
+     if ((kinfo.ki_pid > 0) && (kinfo.ki_stat == SZOMB))
+       continue;
+ 
+-    length = 0;
+-    if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0) {
+-      LOG(ERROR) << "failed to figure out the buffer size for a command line";
+-      continue;
+-    }
+-
+-    data.resize(length);
++    data.resize(ARG_MAX);
++    length = ARG_MAX;
+ 
+     if (sysctl(mib, std::size(mib), &data[0], &length, NULL, 0) < 0) {
+       LOG(ERROR) << "failed to fetch a commandline";
diff --git a/chromium/patches/patch-base_process_process__iterator__netbsd.cc b/chromium/patches/patch-base_process_process__iterator__netbsd.cc
index d7aeea1c0c..9a32f58217 100644
--- a/chromium/patches/patch-base_process_process__iterator__netbsd.cc
+++ b/chromium/patches/patch-base_process_process__iterator__netbsd.cc
@@ -1,74 +1,65 @@
 $NetBSD$
 
---- base/process/process_iterator_netbsd.cc.orig	2020-07-09 13:18:47.324483044 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_iterator_netbsd.cc.orig	2024-08-01 14:08:56.652412756 +0000
 +++ base/process/process_iterator_netbsd.cc
-@@ -0,0 +1,146 @@
-+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+@@ -0,0 +1,132 @@
++// Copyright 2013 The Chromium Authors
 +// Use of this source code is governed by a BSD-style license that can be
 +// found in the LICENSE file.
 +
 +#include "base/process/process_iterator.h"
 +
 +#include <errno.h>
-+#include <sys/types.h>
 +#include <stddef.h>
-+#include <sys/sysctl.h>
 +#include <unistd.h>
-+
-+/* getuid() */
-+#include <unistd.h>
-+#include <sys/types.h>
++#include <sys/param.h>
++#include <sys/proc.h>
++#include <sys/sysctl.h>
 +
 +#include "base/logging.h"
-+#include "base/macros.h"
 +#include "base/strings/string_split.h"
 +#include "base/strings/string_util.h"
 +
 +namespace base {
 +
 +ProcessIterator::ProcessIterator(const ProcessFilter* filter)
-+  : index_of_kinfo_proc_(),
-+  filter_(filter) {
-+
-+  int mib[6];
-+
-+  printf("%s\n", __PRETTY_FUNCTION__);
-+
-+  mib[0] = CTL_KERN;
-+  mib[1] = KERN_PROC2;
-+  mib[2] = KERN_PROC_UID;
-+  mib[3] = getuid();
-+  mib[4] = sizeof(struct kinfo_proc2);
-+  mib[5] = 0;
++    : filter_(filter) {
++  int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_UID, static_cast<int>(getuid()),
++                sizeof(struct kinfo_proc2), 1 };
 +
 +  bool done = false;
 +  int try_num = 1;
 +  const int max_tries = 10;
++  size_t num_of_kinfo_proc;
 +
 +  do {
 +    size_t len = 0;
-+    if (sysctl(mib, 6, NULL, &len, NULL, 0) <0 ){
-+      LOG(ERROR) << "failed to get the size needed for the process list";
++    if (sysctl(mib, std::size(mib), NULL, &len, NULL, 0) < 0) {
++      DLOG(ERROR) << "failed to get the size needed for the process list";
 +      kinfo_procs_.resize(0);
 +      done = true;
 +    } else {
-+      size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc2);
++      num_of_kinfo_proc = len / sizeof(struct kinfo_proc2);
 +      // Leave some spare room for process table growth (more could show up
 +      // between when we check and now)
 +      num_of_kinfo_proc += 16;
 +      kinfo_procs_.resize(num_of_kinfo_proc);
 +      len = num_of_kinfo_proc * sizeof(struct kinfo_proc2);
-+      if (sysctl(mib, 6, &kinfo_procs_[0], &len, NULL, 0) <0) {
++      if (sysctl(mib, std::size(mib), &kinfo_procs_[0], &len, NULL, 0) < 0) {
 +        // If we get a mem error, it just means we need a bigger buffer, so
 +        // loop around again.  Anything else is a real error and give up.
 +        if (errno != ENOMEM) {
-+          LOG(ERROR) << "failed to get the process list";
++          DLOG(ERROR) << "failed to get the process list";
 +          kinfo_procs_.resize(0);
 +          done = true;
 +        }
 +      } else {
 +        // Got the list, just make sure we're sized exactly right
-+        size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc2);
++        num_of_kinfo_proc = len / sizeof(struct kinfo_proc2);
 +        kinfo_procs_.resize(num_of_kinfo_proc);
 +        done = true;
 +      }
@@ -76,13 +67,12 @@ $NetBSD$
 +  } while (!done && (try_num++ < max_tries));
 +
 +  if (!done) {
-+    LOG(ERROR) << "failed to collect the process list in a few tries";
++    DLOG(ERROR) << "failed to collect the process list in a few tries";
 +    kinfo_procs_.resize(0);
 +  }
 +}
 +
-+ProcessIterator::~ProcessIterator() {
-+}
++ProcessIterator::~ProcessIterator() = default;
 +
 +bool ProcessIterator::CheckForNextProcess() {
 +  std::string data;
@@ -97,13 +87,13 @@ $NetBSD$
 +
 +    // Find out what size buffer we need.
 +    size_t data_len = 0;
-+    if (sysctl(mib, __arraycount(mib), NULL, &data_len, NULL, 0) < 0) {
++    if (sysctl(mib, std::size(mib), NULL, &data_len, NULL, 0) < 0) {
 +      DVPLOG(1) << "failed to figure out the buffer size for a commandline";
 +      continue;
 +    }
 +
 +    data.resize(data_len);
-+    if (sysctl(mib, __arraycount(mib), &data[0], &data_len, NULL, 0) < 0) {
++    if (sysctl(mib, std::size(mib), &data[0], &data_len, NULL, 0) < 0) {
 +      DVPLOG(1) << "failed to fetch a commandline";
 +      continue;
 +    }
@@ -145,7 +135,7 @@ $NetBSD$
 +
 +bool NamedProcessIterator::IncludeEntry() {
 +  return (executable_name_ == entry().exe_file() &&
-+                            ProcessIterator::IncludeEntry());
++          ProcessIterator::IncludeEntry());
 +}
 +
 +}  // namespace base
diff --git a/chromium/patches/patch-base_process_process__iterator__openbsd.cc b/chromium/patches/patch-base_process_process__iterator__openbsd.cc
new file mode 100644
index 0000000000..80113d02fe
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__iterator__openbsd.cc
@@ -0,0 +1,51 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_iterator_openbsd.cc.orig	2024-07-24 02:44:22.643426000 +0000
++++ base/process/process_iterator_openbsd.cc
+@@ -6,6 +6,9 @@
+ 
+ #include <errno.h>
+ #include <stddef.h>
++#include <unistd.h>
++#include <sys/param.h>
++#include <sys/proc.h>
+ #include <sys/sysctl.h>
+ 
+ #include "base/logging.h"
+@@ -16,12 +19,13 @@ namespace base {
+ 
+ ProcessIterator::ProcessIterator(const ProcessFilter* filter)
+     : filter_(filter) {
+-  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, getuid(),
++  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, static_cast<int>(getuid()),
+                 sizeof(struct kinfo_proc), 0 };
+ 
+   bool done = false;
+   int try_num = 1;
+   const int max_tries = 10;
++  size_t num_of_kinfo_proc;
+ 
+   do {
+     size_t len = 0;
+@@ -30,7 +34,7 @@ ProcessIterator::ProcessIterator(const P
+       kinfo_procs_.resize(0);
+       done = true;
+     } else {
+-      size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
++      num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
+       // Leave some spare room for process table growth (more could show up
+       // between when we check and now)
+       num_of_kinfo_proc += 16;
+@@ -46,7 +50,7 @@ ProcessIterator::ProcessIterator(const P
+         }
+       } else {
+         // Got the list, just make sure we're sized exactly right
+-        size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
++        num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
+         kinfo_procs_.resize(num_of_kinfo_proc);
+         done = true;
+       }
diff --git a/chromium/patches/patch-base_process_process__linux.cc b/chromium/patches/patch-base_process_process__linux.cc
deleted file mode 100644
index 9e89f3d9ee..0000000000
--- a/chromium/patches/patch-base_process_process__linux.cc
+++ /dev/null
@@ -1,34 +0,0 @@
-$NetBSD$
-
---- base/process/process_linux.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/process/process_linux.cc
-@@ -80,6 +80,9 @@ Time Process::CreationTime() const {
-                                   internal::VM_STARTTIME)
-                             : internal::ReadProcStatsAndGetFieldAsInt64(
-                                   Pid(), internal::VM_STARTTIME);
-+#if defined(OS_BSD)
-+  return Time::FromTimeT(start_ticks);
-+#else
-   if (!start_ticks)
-     return Time();
-   TimeDelta start_offset = internal::ClockTicksToTimeDelta(start_ticks);
-@@ -87,8 +90,11 @@ Time Process::CreationTime() const {
-   if (boot_time.is_null())
-     return Time();
-   return Time(boot_time + start_offset);
-+#endif
- }
- 
-+#if !defined(OS_BSD)
-+  return Time::FromTimeT(start_ticks);
- // static
- bool Process::CanBackgroundProcesses() {
- #if defined(OS_CHROMEOS)
-@@ -140,6 +146,7 @@ bool Process::SetProcessBackgrounded(boo
-   DPCHECK(result == 0);
-   return result == 0;
- }
-+#endif
- 
- #if defined(OS_CHROMEOS)
- bool IsProcessBackgroundedCGroup(const StringPiece& cgroup_contents) {
diff --git a/chromium/patches/patch-base_process_process__metrics.cc b/chromium/patches/patch-base_process_process__metrics.cc
index 949e0f7eca..0e64695dc8 100644
--- a/chromium/patches/patch-base_process_process__metrics.cc
+++ b/chromium/patches/patch-base_process_process__metrics.cc
@@ -1,22 +1,55 @@
 $NetBSD$
 
---- base/process/process_metrics.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics.cc.orig	2024-07-24 02:44:22.643426000 +0000
 +++ base/process/process_metrics.cc
-@@ -58,7 +58,7 @@ SystemMetrics SystemMetrics::Sample() {
+@@ -17,7 +17,7 @@ namespace base {
+ namespace {
+ 
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ int CalculateEventsPerSecond(uint64_t event_count,
+                              uint64_t* last_event_count,
+                              base::TimeTicks* last_calculated) {
+@@ -54,7 +54,7 @@ SystemMetrics SystemMetrics::Sample() {
    SystemMetrics system_metrics;
  
    system_metrics.committed_memory_ = GetSystemCommitCharge();
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
    GetSystemMemoryInfo(&system_metrics.memory_info_);
    GetVmStatInfo(&system_metrics.vmstat_info_);
    GetSystemDiskInfo(&system_metrics.disk_info_);
-@@ -76,7 +76,7 @@ std::unique_ptr<Value> SystemMetrics::To
-   std::unique_ptr<DictionaryValue> res(new DictionaryValue());
+@@ -73,7 +73,7 @@ Value::Dict SystemMetrics::ToDict() cons
+   Value::Dict res;
+ 
+   res.Set("committed_memory", static_cast<int>(committed_memory_));
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   Value::Dict meminfo = memory_info_.ToDict();
+   meminfo.Merge(vmstat_info_.ToDict());
+   res.Set("meminfo", std::move(meminfo));
+@@ -100,7 +100,6 @@ std::unique_ptr<ProcessMetrics> ProcessM
+ #endif  // !BUILDFLAG(IS_MAC)
+ }
+ 
+-#if !BUILDFLAG(IS_FREEBSD) || !BUILDFLAG(IS_POSIX)
+ double ProcessMetrics::GetPlatformIndependentCPUUsage(
+     TimeDelta cumulative_cpu) {
+   TimeTicks time = TimeTicks::Now();
+@@ -129,10 +128,9 @@ ProcessMetrics::GetPlatformIndependentCP
+     return GetPlatformIndependentCPUUsage(cpu_usage);
+   });
+ }
+-#endif
  
-   res->SetIntKey("committed_memory", static_cast<int>(committed_memory_));
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
-   std::unique_ptr<DictionaryValue> meminfo = memory_info_.ToValue();
-   std::unique_ptr<DictionaryValue> vmstat = vmstat_info_.ToValue();
-   meminfo->MergeDictionary(vmstat.get());
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ int ProcessMetrics::CalculateIdleWakeupsPerSecond(
+     uint64_t absolute_idle_wakeups) {
+   return CalculateEventsPerSecond(absolute_idle_wakeups,
diff --git a/chromium/patches/patch-base_process_process__metrics.h b/chromium/patches/patch-base_process_process__metrics.h
index ab9a22c6b1..2283b4ec57 100644
--- a/chromium/patches/patch-base_process_process__metrics.h
+++ b/chromium/patches/patch-base_process_process__metrics.h
@@ -1,95 +1,121 @@
 $NetBSD$
 
---- base/process/process_metrics.h.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics.h.orig	2024-07-24 02:44:22.643426000 +0000
 +++ base/process/process_metrics.h
-@@ -44,7 +44,7 @@ namespace base {
- // Full declaration is in process_metrics_iocounters.h.
- struct IoCounters;
+@@ -38,7 +38,7 @@
+ #endif
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+ #include <string>
+ #include <utility>
+ #include <vector>
+@@ -48,7 +48,7 @@
  
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ namespace base {
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
  // Minor and major page fault counts since the process creation.
  // Both counts are process-wide, and exclude child processes.
  //
-@@ -95,7 +95,7 @@ class BASE_EXPORT ProcessMetrics {
+@@ -116,7 +116,7 @@ class BASE_EXPORT ProcessMetrics {
    // convenience wrapper for CreateProcessMetrics().
    static std::unique_ptr<ProcessMetrics> CreateCurrentProcessMetrics();
  
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
    // Resident Set Size is a Linux/Android specific memory concept. Do not
    // attempt to extend this to other platforms.
    BASE_EXPORT size_t GetResidentSetSize() const;
-@@ -186,7 +186,7 @@ class BASE_EXPORT ProcessMetrics {
+@@ -150,7 +150,7 @@ class BASE_EXPORT ProcessMetrics {
+   base::expected<TimeDelta, ProcessCPUUsageError> GetCumulativeCPUUsage();
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+   // Emits the cumulative CPU usage for all currently active threads since they
+   // were started into the output parameter (replacing its current contents).
+   // Threads that have already terminated will not be reported. Thus, the sum of
+@@ -195,7 +195,7 @@ class BASE_EXPORT ProcessMetrics {
    int GetOpenFdSoftLimit() const;
- #endif  // defined(OS_POSIX)
+ #endif  // BUILDFLAG(IS_POSIX)
  
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
    // Bytes of swap as reported by /proc/[pid]/status.
    uint64_t GetVmSwapBytes() const;
  
-@@ -205,7 +205,7 @@ class BASE_EXPORT ProcessMetrics {
-   ProcessMetrics(ProcessHandle process, PortProvider* port_provider);
- #endif  // !defined(OS_MACOSX) || defined(OS_IOS)
+@@ -216,7 +216,7 @@ class BASE_EXPORT ProcessMetrics {
+ #endif  // !BUILDFLAG(IS_MAC)
  
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
    int CalculateIdleWakeupsPerSecond(uint64_t absolute_idle_wakeups);
  #endif
- #if defined(OS_MACOSX)
-@@ -234,7 +234,7 @@ class BASE_EXPORT ProcessMetrics {
-   // Number of bytes transferred to/from disk in bytes.
-   uint64_t last_cumulative_disk_usage_ = 0;
+ #if BUILDFLAG(IS_APPLE)
+@@ -238,12 +238,10 @@ class BASE_EXPORT ProcessMetrics {
+   // Used to store the previous times and CPU usage counts so we can
+   // compute the CPU usage between calls.
+   TimeTicks last_cpu_time_;
+-#if !BUILDFLAG(IS_FREEBSD) || !BUILDFLAG(IS_POSIX)
+   TimeDelta last_cumulative_cpu_;
+-#endif
  
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
    // Same thing for idle wakeups.
    TimeTicks last_idle_wakeups_time_;
    uint64_t last_absolute_idle_wakeups_;
-@@ -286,7 +286,8 @@ BASE_EXPORT void IncreaseFdLimitTo(unsig
- #endif  // defined(OS_POSIX)
+@@ -284,7 +282,7 @@ BASE_EXPORT void IncreaseFdLimitTo(unsig
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_FUCHSIA)
-+    defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_FUCHSIA) || \
-+    defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) ||      \
+     BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_AIX) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
  // Data about system-wide memory consumption. Values are in KB. Available on
  // Windows, Mac, Linux, Android and Chrome OS.
  //
-@@ -319,7 +320,7 @@ struct BASE_EXPORT SystemMemoryInfoKB {
-   int avail_phys = 0;
+@@ -319,7 +317,7 @@ struct BASE_EXPORT SystemMemoryInfoKB {
  #endif
  
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
    // This provides an estimate of available memory as described here:
    // https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773
    // NOTE: this is ONLY valid in kernels 3.14 and up.  Its value will always
-@@ -334,7 +335,7 @@ struct BASE_EXPORT SystemMemoryInfoKB {
+@@ -334,7 +332,7 @@ struct BASE_EXPORT SystemMemoryInfoKB {
  #endif
  
- #if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_AIX) || \
--    defined(OS_FUCHSIA)
-+    defined(OS_FUCHSIA) || defined(OS_BSD)
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
    int buffers = 0;
    int cached = 0;
    int active_anon = 0;
-@@ -372,7 +373,7 @@ BASE_EXPORT bool GetSystemMemoryInfo(Sys
- #endif  // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
-         // defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_FUCHSIA)
+@@ -371,7 +369,7 @@ BASE_EXPORT bool GetSystemMemoryInfo(Sys
+         // BUILDFLAG(IS_FUCHSIA)
  
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
  // Parse the data found in /proc/<pid>/stat and return the sum of the
  // CPU-related ticks.  Returns -1 on parse error.
  // Exposed for testing.
-@@ -540,7 +541,7 @@ class BASE_EXPORT SystemMetrics {
+@@ -566,7 +564,7 @@ class BASE_EXPORT SystemMetrics {
    FRIEND_TEST_ALL_PREFIXES(SystemMetricsTest, SystemMetrics);
  
    size_t committed_memory_;
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
    SystemMemoryInfoKB memory_info_;
    VmStatInfo vmstat_info_;
    SystemDiskInfo disk_info_;
diff --git a/chromium/patches/patch-base_process_process__metrics__freebsd.cc b/chromium/patches/patch-base_process_process__metrics__freebsd.cc
new file mode 100644
index 0000000000..8154766d0b
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__metrics__freebsd.cc
@@ -0,0 +1,309 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics_freebsd.cc.orig	2024-07-24 02:44:22.643426000 +0000
++++ base/process/process_metrics_freebsd.cc
+@@ -3,19 +3,37 @@
+ // found in the LICENSE file.
+ 
+ #include "base/process/process_metrics.h"
++#include "base/notreached.h"
+ 
+ #include <stddef.h>
++#include <sys/types.h>
+ #include <sys/sysctl.h>
+ #include <sys/user.h>
+ #include <unistd.h>
+ 
++#include <fcntl.h> /* O_RDONLY */
++#include <kvm.h>
++#include <libutil.h>
++
+ #include "base/memory/ptr_util.h"
++#include "base/values.h"
+ 
+ namespace base {
++namespace {
++int GetPageShift() {
++  int pagesize = getpagesize();
++  int pageshift = 0;
++
++  while (pagesize > 1) {
++    pageshift++;
++    pagesize >>= 1;
++  }
++
++  return pageshift;
++}
++}
+ 
+-ProcessMetrics::ProcessMetrics(ProcessHandle process)
+-    : process_(process),
+-      last_cpu_(0) {}
++ProcessMetrics::ProcessMetrics(ProcessHandle process) : process_(process) {}
+ 
+ // static
+ std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics(
+@@ -23,22 +41,18 @@ std::unique_ptr<ProcessMetrics> ProcessM
+   return WrapUnique(new ProcessMetrics(process));
+ }
+ 
+-base::expected<double, ProcessCPUUsageError>
+-ProcessMetrics::GetPlatformIndependentCPUUsage() {
++base::expected<TimeDelta, ProcessCPUUsageError>
++ProcessMetrics::GetCumulativeCPUUsage() {
+   struct kinfo_proc info;
+-  int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, process_};
+-  size_t length = sizeof(info);
++  size_t length = sizeof(struct kinfo_proc);
++  struct timeval tv;
++
++  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_ };
+ 
+   if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
+-    return base::unexpected(ProcessCPUUsageError::kSystemError);
++    return base::ok(TimeDelta());
+ 
+-  return base::ok(double{info.ki_pctcpu} / FSCALE * 100.0);
+-}
+-
+-base::expected<TimeDelta, ProcessCPUUsageError>
+-ProcessMetrics::GetCumulativeCPUUsage() {
+-  NOTREACHED_IN_MIGRATION();
+-  return base::unexpected(ProcessCPUUsageError::kNotImplemented);
++  return base::ok(Microseconds(info.ki_runtime));
+ }
+ 
+ size_t GetSystemCommitCharge() {
+@@ -64,4 +78,228 @@ size_t GetSystemCommitCharge() {
+   return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
+ }
+ 
++int64_t GetNumberOfThreads(ProcessHandle process) {
++  // Taken from FreeBSD top (usr.bin/top/machine.c)
++
++  kvm_t* kd = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvm_open");
++  if (kd == NULL)
++    return 0;
++
++  struct kinfo_proc* pbase;
++  int nproc;
++  pbase = kvm_getprocs(kd, KERN_PROC_PID, process, &nproc);
++  if (pbase == NULL)
++    return 0;
++
++  if (kvm_close(kd) == -1)
++    return 0;
++
++  return nproc;
++}
++
++bool GetSystemMemoryInfo(SystemMemoryInfoKB *meminfo) {
++  unsigned int mem_total, mem_free, swap_total, swap_used;
++  size_t length;
++  int pagesizeKB;
++
++  pagesizeKB = getpagesize() / 1024;
++
++  length = sizeof(mem_total);
++  if (sysctlbyname("vm.stats.vm.v_page_count", &mem_total,
++      &length, NULL, 0) != 0 || length != sizeof(mem_total))
++    return false;
++
++  length = sizeof(mem_free);
++  if (sysctlbyname("vm.stats.vm.v_free_count", &mem_free, &length, NULL, 0)
++      != 0 || length != sizeof(mem_free))
++    return false;
++
++  length = sizeof(swap_total);
++  if (sysctlbyname("vm.swap_size", &swap_total, &length, NULL, 0)
++      != 0 || length != sizeof(swap_total))
++    return false;
++
++  length = sizeof(swap_used);
++  if (sysctlbyname("vm.swap_anon_use", &swap_used, &length, NULL, 0)
++      != 0 || length != sizeof(swap_used))
++    return false;
++
++  meminfo->total = mem_total * pagesizeKB;
++  meminfo->free = mem_free * pagesizeKB;
++  meminfo->swap_total = swap_total * pagesizeKB;
++  meminfo->swap_free = (swap_total - swap_used) * pagesizeKB;
++
++  return true;
++}
++
++int ProcessMetrics::GetOpenFdCount() const {
++  struct kinfo_file * kif;
++  int cnt;
++
++  if ((kif = kinfo_getfile(process_, &cnt)) == NULL)
++    return -1;
++
++  free(kif);
++
++  return cnt;
++}
++
++int ProcessMetrics::GetOpenFdSoftLimit() const {
++  size_t length;
++  int total_count = 0;
++  int mib[] = { CTL_KERN, KERN_MAXFILESPERPROC };
++
++  length = sizeof(total_count);
++
++  if (sysctl(mib, std::size(mib), &total_count, &length, NULL, 0) < 0) {
++    total_count = -1;
++  }
++
++  return total_count;
++}
++
++size_t ProcessMetrics::GetResidentSetSize() const {
++  kvm_t *kd = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, "kvm_open");
++
++  if (kd == nullptr)
++    return 0;
++
++  struct kinfo_proc *pp;
++  int nproc;
++
++  if ((pp = kvm_getprocs(kd, KERN_PROC_PID, process_, &nproc)) == nullptr) {
++    kvm_close(kd);
++    return 0;
++  }
++
++  size_t rss;
++
++  if (nproc > 0) {
++    rss = pp->ki_rssize << GetPageShift();
++  } else {
++    rss = 0;
++  }
++
++  kvm_close(kd);
++  return rss;
++}
++
++uint64_t ProcessMetrics::GetVmSwapBytes() const {
++  kvm_t *kd = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, "kvm_open");
++
++  if (kd == nullptr)
++    return 0;
++
++  struct kinfo_proc *pp;
++  int nproc;
++
++  if ((pp = kvm_getprocs(kd, KERN_PROC_PID, process_, &nproc)) == nullptr) {
++    kvm_close(kd);
++    return 0;
++  }
++
++  size_t swrss;
++
++  if (nproc > 0) {
++    swrss = pp->ki_swrss > pp->ki_rssize
++      ? (pp->ki_swrss - pp->ki_rssize) << GetPageShift()
++      : 0;
++  } else {
++    swrss = 0;
++  }
++
++  kvm_close(kd);
++  return swrss;
++}
++
++int ProcessMetrics::GetIdleWakeupsPerSecond() {
++  NOTIMPLEMENTED();
++  return 0;
++}
++
++bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) {
++  NOTIMPLEMENTED();
++  return false;
++}
++
++bool GetVmStatInfo(VmStatInfo* vmstat) {
++  NOTIMPLEMENTED();
++  return false;
++}
++
++SystemDiskInfo::SystemDiskInfo() {
++  reads = 0;
++  reads_merged = 0;
++  sectors_read = 0;
++  read_time = 0;
++  writes = 0;
++  writes_merged = 0;
++  sectors_written = 0;
++  write_time = 0;
++  io = 0;
++  io_time = 0;
++  weighted_io_time = 0;
++}
++
++SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo& other) = default;
++
++SystemDiskInfo& SystemDiskInfo::operator=(const SystemDiskInfo&) = default;
++
++Value::Dict SystemDiskInfo::ToDict() const {
++  Value::Dict res;
++
++  // Write out uint64_t variables as doubles.
++  // Note: this may discard some precision, but for JS there's no other option.
++  res.Set("reads", static_cast<double>(reads));
++  res.Set("reads_merged", static_cast<double>(reads_merged));
++  res.Set("sectors_read", static_cast<double>(sectors_read));
++  res.Set("read_time", static_cast<double>(read_time));
++  res.Set("writes", static_cast<double>(writes));
++  res.Set("writes_merged", static_cast<double>(writes_merged));
++  res.Set("sectors_written", static_cast<double>(sectors_written));
++  res.Set("write_time", static_cast<double>(write_time));
++  res.Set("io", static_cast<double>(io));
++  res.Set("io_time", static_cast<double>(io_time));
++  res.Set("weighted_io_time", static_cast<double>(weighted_io_time));
++
++  NOTIMPLEMENTED();
++
++  return res;
++}
++
++Value::Dict SystemMemoryInfoKB::ToDict() const {
++  Value::Dict res;
++  res.Set("total", total);
++  res.Set("free", free);
++  res.Set("available", available);
++  res.Set("buffers", buffers);
++  res.Set("cached", cached);
++  res.Set("active_anon", active_anon);
++  res.Set("inactive_anon", inactive_anon);
++  res.Set("active_file", active_file);
++  res.Set("inactive_file", inactive_file);
++  res.Set("swap_total", swap_total);
++  res.Set("swap_free", swap_free);
++  res.Set("swap_used", swap_total - swap_free);
++  res.Set("dirty", dirty);
++  res.Set("reclaimable", reclaimable);
++
++  NOTIMPLEMENTED();
++
++  return res;
++}
++
++Value::Dict VmStatInfo::ToDict() const {
++  Value::Dict res;
++  // TODO(crbug.com/1334256): Make base::Value able to hold uint64_t and remove
++  // casts below.
++  res.Set("pswpin", static_cast<int>(pswpin));
++  res.Set("pswpout", static_cast<int>(pswpout));
++  res.Set("pgmajfault", static_cast<int>(pgmajfault));
++
++  NOTIMPLEMENTED();
++
++  return res;
++}
++
+ }  // namespace base
diff --git a/chromium/patches/patch-base_process_process__metrics__netbsd.cc b/chromium/patches/patch-base_process_process__metrics__netbsd.cc
index 762a8cd444..d5840648be 100644
--- a/chromium/patches/patch-base_process_process__metrics__netbsd.cc
+++ b/chromium/patches/patch-base_process_process__metrics__netbsd.cc
@@ -1,9 +1,13 @@
 $NetBSD$
 
---- base/process/process_metrics_netbsd.cc.orig	2020-07-09 13:21:37.235642797 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics_netbsd.cc.orig	2024-08-01 14:08:56.656006793 +0000
 +++ base/process/process_metrics_netbsd.cc
-@@ -0,0 +1,79 @@
-+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+@@ -0,0 +1,175 @@
++// Copyright 2013 The Chromium Authors
 +// Use of this source code is governed by a BSD-style license that can be
 +// found in the LICENSE file.
 +
@@ -11,74 +15,170 @@ $NetBSD$
 +
 +#include <stddef.h>
 +#include <stdint.h>
++#include <fcntl.h>
 +#include <sys/param.h>
 +#include <sys/sysctl.h>
 +#include <sys/vmmeter.h>
 +
 +#include "base/memory/ptr_util.h"
-+#include "base/process/process_metrics_iocounters.h"
-+#include "base/stl_util.h"
-+#include "base/logging.h"
++#include "base/types/expected.h"
++#include "base/values.h"
++#include "base/notreached.h"
 +
 +namespace base {
 +
-+// static
-+std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics(
-+    ProcessHandle process) {
-+  return WrapUnique(new ProcessMetrics(process));
-+}
++ProcessMetrics::ProcessMetrics(ProcessHandle process) : process_(process) {}
 +
-+bool ProcessMetrics::GetIOCounters(IoCounters* io_counters) const {
-+  return false;
-+}
-+
-+static int GetProcessCPU(pid_t pid) {
++base::expected<TimeDelta, ProcessCPUUsageError>
++ProcessMetrics::GetCumulativeCPUUsage() {
 +  struct kinfo_proc2 info;
-+  size_t length;
-+  int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, pid,
-+                sizeof(struct kinfo_proc2), 1 };
++  size_t length = sizeof(struct kinfo_proc2);
++  struct timeval tv;
 +
-+  if (sysctl(mib, base::size(mib), NULL, &length, NULL, 0) < 0)
-+    return -1;
-+
-+  mib[5] = (length / sizeof(struct kinfo_proc2));
++  int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process_,
++                sizeof(struct kinfo_proc2), 1 };
 +
-+  if (sysctl(mib, base::size(mib), &info, &length, NULL, 0) < 0)
-+    return 0;
++  if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) {
++    return base::unexpected(ProcessCPUUsageError::kSystemError);
++  }
 +
-+  return info.p_pctcpu;
-+}
++  tv.tv_sec = info.p_rtime_sec;
++  tv.tv_usec = info.p_rtime_usec;
 +
-+TimeDelta ProcessMetrics::GetCumulativeCPUUsage() {
-+  //NOTREACHED();
-+  return TimeDelta();
++  return base::ok(Microseconds(TimeValToMicroseconds(tv)));
 +}
 +
-+bool ProcessMetrics::GetCumulativeCPUUsagePerThread(CPUUsagePerThread&) {
-+  //NOTREACHED();
-+  return false;
++// static
++std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics(
++    ProcessHandle process) {
++  return WrapUnique(new ProcessMetrics(process));
 +}
 +
-+ProcessMetrics::ProcessMetrics(ProcessHandle process)
-+    : process_(process) {}
-+
 +size_t GetSystemCommitCharge() {
 +  int mib[] = { CTL_VM, VM_METER };
-+  int pagesize;
++  size_t pagesize;
 +  struct vmtotal vmtotal;
 +  unsigned long mem_total, mem_free, mem_inactive;
 +  size_t len = sizeof(vmtotal);
 +
-+  if (sysctl(mib, base::size(mib), &vmtotal, &len, NULL, 0) < 0)
++  if (sysctl(mib, std::size(mib), &vmtotal, &len, NULL, 0) < 0) {
 +    return 0;
++  }
 +
 +  mem_total = vmtotal.t_vm;
 +  mem_free = vmtotal.t_free;
 +  mem_inactive = vmtotal.t_vm - vmtotal.t_avm;
 +
-+  pagesize = getpagesize();
++  pagesize = checked_cast<size_t>(getpagesize());
 +
 +  return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
 +}
 +
++int ProcessMetrics::GetOpenFdCount() const {
++  return -1;
++}
++
++int ProcessMetrics::GetOpenFdSoftLimit() const {
++  return getdtablesize();
++//  return GetMaxFds();
++}
++
++uint64_t ProcessMetrics::GetVmSwapBytes() const {
++  NOTIMPLEMENTED();
++  return 0;
++}
++
++bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo) {
++  NOTIMPLEMENTED_LOG_ONCE();
++  return false;
++}
++
++bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) {
++  NOTIMPLEMENTED();
++  return false;
++}
++
++bool GetVmStatInfo(VmStatInfo* vmstat) {
++  NOTIMPLEMENTED();
++  return false;
++}
++
++int ProcessMetrics::GetIdleWakeupsPerSecond() {
++  NOTIMPLEMENTED();
++  return 0;
++}
++
++Value::Dict SystemMemoryInfoKB::ToDict() const {
++  Value::Dict res;
++  res.Set("total", total);
++  res.Set("free", free);
++  res.Set("available", available);
++  res.Set("buffers", buffers);
++  res.Set("cached", cached);
++  res.Set("active_anon", active_anon);
++  res.Set("inactive_anon", inactive_anon);
++  res.Set("active_file", active_file);
++  res.Set("inactive_file", inactive_file);
++  res.Set("swap_total", swap_total);
++  res.Set("swap_free", swap_free);
++  res.Set("swap_used", swap_total - swap_free);
++  res.Set("dirty", dirty);
++  res.Set("reclaimable", reclaimable);
++
++  NOTIMPLEMENTED();
++
++  return res;
++}
++
++Value::Dict VmStatInfo::ToDict() const {
++  Value::Dict res;
++  res.Set("pswpin", static_cast<int>(pswpin));
++  res.Set("pswpout", static_cast<int>(pswpout));
++  res.Set("pgmajfault", static_cast<int>(pgmajfault));
++
++  NOTIMPLEMENTED();
++
++  return res;
++}
++
++SystemDiskInfo::SystemDiskInfo() {
++  reads = 0;
++  reads_merged = 0;
++  sectors_read = 0;
++  read_time = 0;
++  writes = 0;
++  writes_merged = 0;
++  sectors_written = 0;
++  write_time = 0;
++  io = 0;
++  io_time = 0;
++  weighted_io_time = 0;
++}
++
++SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo&) = default;
++
++SystemDiskInfo& SystemDiskInfo::operator=(const SystemDiskInfo&) = default;
++
++Value::Dict SystemDiskInfo::ToDict() const {
++  Value::Dict res;
++
++  // Write out uint64_t variables as doubles.
++  // Note: this may discard some precision, but for JS there's no other option.
++  res.Set("reads", static_cast<double>(reads));
++  res.Set("reads_merged", static_cast<double>(reads_merged));
++  res.Set("sectors_read", static_cast<double>(sectors_read));
++  res.Set("read_time", static_cast<double>(read_time));
++  res.Set("writes", static_cast<double>(writes));
++  res.Set("writes_merged", static_cast<double>(writes_merged));
++  res.Set("sectors_written", static_cast<double>(sectors_written));
++  res.Set("write_time", static_cast<double>(write_time));
++  res.Set("io", static_cast<double>(io));
++  res.Set("io_time", static_cast<double>(io_time));
++  res.Set("weighted_io_time", static_cast<double>(weighted_io_time));
++
++  NOTIMPLEMENTED();
++
++  return res;
++}
++
 +}  // namespace base
diff --git a/chromium/patches/patch-base_process_process__metrics__openbsd.cc b/chromium/patches/patch-base_process_process__metrics__openbsd.cc
new file mode 100644
index 0000000000..63ef0a059b
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__metrics__openbsd.cc
@@ -0,0 +1,240 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics_openbsd.cc.orig	2024-07-24 02:44:22.643426000 +0000
++++ base/process/process_metrics_openbsd.cc
+@@ -6,36 +6,40 @@
+ 
+ #include <stddef.h>
+ #include <stdint.h>
++#include <fcntl.h>
+ #include <sys/param.h>
+ #include <sys/sysctl.h>
++#include <sys/vmmeter.h>
++
++#include <kvm.h>
+ 
+ #include "base/memory/ptr_util.h"
+ #include "base/types/expected.h"
++#include "base/values.h"
++#include "base/notreached.h"
+ 
+ namespace base {
+ 
+-namespace {
++ProcessMetrics::ProcessMetrics(ProcessHandle process) : process_(process) {}
+ 
+-base::expected<int, ProcessCPUUsageError> GetProcessCPU(pid_t pid) {
++base::expected<TimeDelta, ProcessCPUUsageError>
++ProcessMetrics::GetCumulativeCPUUsage() {
+   struct kinfo_proc info;
+-  size_t length;
+-  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid,
+-                sizeof(struct kinfo_proc), 0 };
+-
+-  if (sysctl(mib, std::size(mib), NULL, &length, NULL, 0) < 0) {
+-    return base::unexpected(ProcessCPUUsageError::kSystemError);
+-  }
++  size_t length = sizeof(struct kinfo_proc);
++  struct timeval tv;
+ 
+-  mib[5] = (length / sizeof(struct kinfo_proc));
++  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_,
++                sizeof(struct kinfo_proc), 1 };
+ 
+   if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) {
+     return base::unexpected(ProcessCPUUsageError::kSystemError);
+   }
+ 
+-  return base::ok(info.p_pctcpu);
+-}
++  tv.tv_sec = info.p_rtime_sec;
++  tv.tv_usec = info.p_rtime_usec;
+ 
+-}  // namespace
++  return base::ok(Microseconds(TimeValToMicroseconds(tv)));
++}
+ 
+ // static
+ std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics(
+@@ -43,38 +47,9 @@ std::unique_ptr<ProcessMetrics> ProcessM
+   return WrapUnique(new ProcessMetrics(process));
+ }
+ 
+-base::expected<double, ProcessCPUUsageError>
+-ProcessMetrics::GetPlatformIndependentCPUUsage() {
+-  TimeTicks time = TimeTicks::Now();
+-
+-  if (last_cpu_time_.is_zero()) {
+-    // First call, just set the last values.
+-    last_cpu_time_ = time;
+-    return base::ok(0.0);
+-  }
+-
+-  const base::expected<int, ProcessCPUUsageError> cpu = GetProcessCPU(process_);
+-  if (!cpu.has_value()) {
+-    return base::unexpected(cpu.error());
+-  }
+-
+-  last_cpu_time_ = time;
+-  return base::ok(double{cpu.value()} / FSCALE * 100.0);
+-}
+-
+-base::expected<TimeDelta, ProcessCPUUsageError>
+-ProcessMetrics::GetCumulativeCPUUsage() {
+-  NOTREACHED_IN_MIGRATION();
+-  return base::unexpected(ProcessCPUUsageError::kNotImplemented);
+-}
+-
+-ProcessMetrics::ProcessMetrics(ProcessHandle process)
+-    : process_(process),
+-      last_cpu_(0) {}
+-
+ size_t GetSystemCommitCharge() {
+   int mib[] = { CTL_VM, VM_METER };
+-  int pagesize;
++  size_t pagesize;
+   struct vmtotal vmtotal;
+   unsigned long mem_total, mem_free, mem_inactive;
+   size_t len = sizeof(vmtotal);
+@@ -86,9 +61,136 @@ size_t GetSystemCommitCharge() {
+   mem_free = vmtotal.t_free;
+   mem_inactive = vmtotal.t_vm - vmtotal.t_avm;
+ 
+-  pagesize = getpagesize();
++  pagesize = checked_cast<size_t>(getpagesize());
+ 
+   return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
+ }
+ 
++int ProcessMetrics::GetOpenFdCount() const {
++#if 0
++  struct kinfo_file *files;
++  kvm_t *kd = NULL;
++  int total_count = 0;
++  char errbuf[_POSIX2_LINE_MAX];
++
++  if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, errbuf)) == NULL)
++    goto out;
++  
++  if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, process_,  
++        sizeof(struct kinfo_file), &total_count)) == NULL) {
++	  total_count = 0;
++	  goto out;
++  }
++
++  kvm_close(kd);
++
++out:
++  return total_count;
++#endif
++  return getdtablecount();
++}
++
++int ProcessMetrics::GetOpenFdSoftLimit() const {
++  return getdtablesize();
++//  return GetMaxFds();
++}
++
++uint64_t ProcessMetrics::GetVmSwapBytes() const {
++  NOTIMPLEMENTED();
++  return 0;
++}
++
++bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo) {
++  NOTIMPLEMENTED_LOG_ONCE();
++  return false;
++}
++
++bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) {
++  NOTIMPLEMENTED();
++  return false;
++}
++
++bool GetVmStatInfo(VmStatInfo* vmstat) {
++  NOTIMPLEMENTED();
++  return false;
++}
++
++int ProcessMetrics::GetIdleWakeupsPerSecond() {
++  NOTIMPLEMENTED();
++  return 0;
++}
++
++Value::Dict SystemMemoryInfoKB::ToDict() const {
++  Value::Dict res;
++  res.Set("total", total);
++  res.Set("free", free);
++  res.Set("available", available);
++  res.Set("buffers", buffers);
++  res.Set("cached", cached);
++  res.Set("active_anon", active_anon);   
++  res.Set("inactive_anon", inactive_anon);
++  res.Set("active_file", active_file);
++  res.Set("inactive_file", inactive_file);
++  res.Set("swap_total", swap_total);
++  res.Set("swap_free", swap_free);
++  res.Set("swap_used", swap_total - swap_free);
++  res.Set("dirty", dirty);   
++  res.Set("reclaimable", reclaimable);
++
++  NOTIMPLEMENTED();
++
++  return res;
++}
++
++Value::Dict VmStatInfo::ToDict() const {
++  Value::Dict res;
++  res.Set("pswpin", static_cast<int>(pswpin));
++  res.Set("pswpout", static_cast<int>(pswpout));
++  res.Set("pgmajfault", static_cast<int>(pgmajfault));
++
++  NOTIMPLEMENTED();
++
++  return res;
++}   
++
++SystemDiskInfo::SystemDiskInfo() {
++  reads = 0;
++  reads_merged = 0;
++  sectors_read = 0;
++  read_time = 0;
++  writes = 0;
++  writes_merged = 0;
++  sectors_written = 0;
++  write_time = 0;
++  io = 0;
++  io_time = 0;
++  weighted_io_time = 0;
++}
++
++SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo&) = default;
++
++SystemDiskInfo& SystemDiskInfo::operator=(const SystemDiskInfo&) = default;
++
++Value::Dict SystemDiskInfo::ToDict() const {
++  Value::Dict res;
++ 
++  // Write out uint64_t variables as doubles.
++  // Note: this may discard some precision, but for JS there's no other option.
++  res.Set("reads", static_cast<double>(reads));
++  res.Set("reads_merged", static_cast<double>(reads_merged));
++  res.Set("sectors_read", static_cast<double>(sectors_read));
++  res.Set("read_time", static_cast<double>(read_time));
++  res.Set("writes", static_cast<double>(writes));
++  res.Set("writes_merged", static_cast<double>(writes_merged));
++  res.Set("sectors_written", static_cast<double>(sectors_written));
++  res.Set("write_time", static_cast<double>(write_time));
++  res.Set("io", static_cast<double>(io));
++  res.Set("io_time", static_cast<double>(io_time));
++  res.Set("weighted_io_time", static_cast<double>(weighted_io_time));
++
++  NOTIMPLEMENTED();
++
++  return res;
++}
++
+ }  // namespace base
diff --git a/chromium/patches/patch-base_process_process__metrics__posix.cc b/chromium/patches/patch-base_process_process__metrics__posix.cc
index 3e52065c28..f1b91f21d6 100644
--- a/chromium/patches/patch-base_process_process__metrics__posix.cc
+++ b/chromium/patches/patch-base_process_process__metrics__posix.cc
@@ -1,21 +1,26 @@
 $NetBSD$
 
---- base/process/process_metrics_posix.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics_posix.cc.orig	2024-07-24 02:44:22.643426000 +0000
 +++ base/process/process_metrics_posix.cc
-@@ -20,6 +20,7 @@
+@@ -21,6 +21,8 @@
  
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_APPLE)
  #include <malloc/malloc.h>
-+#elif defined(OS_FREEBSD) || defined(OS_NETBSD)
++#elif BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
++#include <stdlib.h>
  #else
  #include <malloc.h>
  #endif
-@@ -126,7 +127,7 @@ size_t ProcessMetrics::GetMallocUsage() 
- #else
-   return minfo.hblkhd + minfo.arena;
- #endif
--#elif defined(OS_FUCHSIA)
-+#elif defined(OS_FUCHSIA) || defined(OS_BSD)
+@@ -134,7 +136,7 @@ size_t ProcessMetrics::GetMallocUsage() 
+   return stats.size_in_use;
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+   return GetMallocUsageMallinfo();
+-#elif BUILDFLAG(IS_FUCHSIA)
++#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
    // TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
    return 0;
  #endif
diff --git a/chromium/patches/patch-base_process_process__metrics__unittest.cc b/chromium/patches/patch-base_process_process__metrics__unittest.cc
new file mode 100644
index 0000000000..98f022815f
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__metrics__unittest.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_metrics_unittest.cc.orig	2024-07-24 02:44:22.643426000 +0000
++++ base/process/process_metrics_unittest.cc
+@@ -62,7 +62,8 @@
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||      \
+     BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_APPLE)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_APPLE) || \
++    BUILDFLAG(IS_BSD)
+ #define ENABLE_CPU_TESTS 1
+ #else
+ #define ENABLE_CPU_TESTS 0
diff --git a/chromium/patches/patch-base_process_process__posix.cc b/chromium/patches/patch-base_process_process__posix.cc
new file mode 100644
index 0000000000..dd1c339f1b
--- /dev/null
+++ b/chromium/patches/patch-base_process_process__posix.cc
@@ -0,0 +1,100 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_posix.cc.orig	2024-07-24 02:44:22.643426000 +0000
++++ base/process/process_posix.cc
+@@ -23,10 +23,15 @@
+ #include "base/trace_event/base_tracing.h"
+ #include "build/build_config.h"
+ 
+-#if BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include <sys/event.h>
+ #endif
+ 
++#if BUILDFLAG(IS_BSD)
++#include <sys/types.h>
++#include <sys/sysctl.h> 
++#endif
++
+ #if BUILDFLAG(CLANG_PROFILING)
+ #include "base/test/clang_profiling.h"
+ #endif
+@@ -99,7 +104,7 @@ bool WaitpidWithTimeout(base::ProcessHan
+ }
+ #endif
+ 
+-#if BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ // Using kqueue on Mac so that we can wait on non-child processes.
+ // We can't use kqueues on child processes because we need to reap
+ // our own children using wait.
+@@ -376,7 +381,7 @@ bool Process::WaitForExitWithTimeoutImpl
+   const bool exited = (parent_pid < 0);
+ 
+   if (!exited && parent_pid != our_pid) {
+-#if BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+     // On Mac we can wait on non child processes.
+     return WaitForSingleNonChildProcess(handle, timeout);
+ #else
+@@ -413,7 +418,56 @@ void Process::Exited(int exit_code) cons
+ 
+ int Process::GetOSPriority() const {
+   DCHECK(IsValid());
++// avoid pledge(2) violation
++#if BUILDFLAG(IS_BSD)
++  return 0;
++#else
+   return getpriority(PRIO_PROCESS, static_cast<id_t>(process_));
++#endif
++}
++
++Time Process::CreationTime() const {
++// avoid ps pledge in the network process
++#if !BUILDFLAG(IS_BSD)
++  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(),
++               sizeof(struct kinfo_proc), 0 };
++  struct kinfo_proc *info = nullptr;
++  size_t info_size;
++#endif
++  Time ct = Time();
++
++#if !BUILDFLAG(IS_BSD)
++  if (sysctl(mib, std::size(mib), NULL, &info_size, NULL, 0) < 0)
++    goto out;
++
++  mib[5] = (info_size / sizeof(struct kinfo_proc));
++  if ((info = reinterpret_cast<kinfo_proc*>(malloc(info_size))) == NULL)
++    goto out;
++
++  if (sysctl(mib, std::size(mib), info, &info_size, NULL, 0) < 0)
++    goto out;
++
++  ct = Time::FromTimeT(info->p_ustart_sec);
++
++out:
++  if (info)
++    free(info);
++#endif
++  return ct;
++}
++
++#if BUILDFLAG(IS_BSD)
++Process::Priority Process::GetPriority() const {
++  return Priority::kUserBlocking;
+ }
+ 
++bool Process::SetPriority(Priority priority) {
++  return false;
++}
++
++bool Process::CanSetPriority() {
++  return false;
++}
++#endif
++
+ }  // namespace base
diff --git a/chromium/patches/patch-base_process_process__unittest.cc b/chromium/patches/patch-base_process_process__unittest.cc
index 6615ee5ba3..677d7b420e 100644
--- a/chromium/patches/patch-base_process_process__unittest.cc
+++ b/chromium/patches/patch-base_process_process__unittest.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/process/process_unittest.cc.orig	2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/process/process_unittest.cc.orig	2024-07-24 02:44:22.643426000 +0000
 +++ base/process/process_unittest.cc
-@@ -148,7 +148,7 @@ TEST_F(ProcessTest, CreationTimeOtherPro
+@@ -199,7 +199,7 @@ TEST_F(ProcessTest, CreationTimeOtherPro
    // was spawned and a time recorded after it was spawned. However, since the
    // base::Time and process creation clocks don't match, tolerate some error.
    constexpr base::TimeDelta kTolerance =
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
        // On Linux, process creation time is relative to boot time which has a
        // 1-second resolution. Tolerate 1 second for the imprecise boot time and
        // 100 ms for the imprecise clock.
diff --git a/chromium/patches/patch-base_process_process__util__unittest.cc b/chromium/patches/patch-base_process_process__util__unittest.cc
deleted file mode 100644
index d49114b4e1..0000000000
--- a/chromium/patches/patch-base_process_process__util__unittest.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- base/process/process_util_unittest.cc.orig	2020-07-08 21:41:45.000000000 +0000
-+++ base/process/process_util_unittest.cc
-@@ -1307,7 +1307,7 @@ std::string TestLaunchProcess(const Comm
-   options.fds_to_remap.emplace_back(fds[1], STDOUT_FILENO);
- #endif  // defined(OS_WIN)
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   options.clone_flags = clone_flags;
- #else
-   CHECK_EQ(0, clone_flags);
-@@ -1377,7 +1377,7 @@ TEST_F(ProcessUtilTest, LaunchProcess) {
-   EXPECT_EQ("wibble", TestLaunchProcess(kPrintEnvCommand, env_changes,
-                                         no_clear_environ, no_clone_flags));
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Test a non-trival value for clone_flags.
-   EXPECT_EQ("wibble", TestLaunchProcess(kPrintEnvCommand, env_changes,
-                                         no_clear_environ, CLONE_FS));
-@@ -1391,7 +1391,7 @@ TEST_F(ProcessUtilTest, LaunchProcess) {
-                                   true /* clear_environ */, no_clone_flags));
- }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- MULTIPROCESS_TEST_MAIN(CheckPidProcess) {
-   const pid_t kInitPid = 1;
-   const pid_t pid = syscall(__NR_getpid);
diff --git a/chromium/patches/patch-base_profiler_module__cache.cc b/chromium/patches/patch-base_profiler_module__cache.cc
new file mode 100644
index 0000000000..7b537a1e60
--- /dev/null
+++ b/chromium/patches/patch-base_profiler_module__cache.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/module_cache.cc.orig	2024-07-24 02:44:22.647426400 +0000
++++ base/profiler/module_cache.cc
+@@ -38,7 +38,7 @@ std::string TransformModuleIDToSymbolSer
+   // Android and Linux Chrome builds use the "breakpad" format to index their
+   // build id, so we transform the build id for these platforms. All other
+   // platforms keep their symbols indexed by the original build ID.
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Linux ELF module IDs are 160bit integers, which we need to mangle
+   // down to 128bit integers to match the id that Breakpad outputs.
+   // Example on version '66.0.3359.170' x64:
diff --git a/chromium/patches/patch-base_profiler_register__context.h b/chromium/patches/patch-base_profiler_register__context.h
deleted file mode 100644
index be77ab19f9..0000000000
--- a/chromium/patches/patch-base_profiler_register__context.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/profiler/register_context.h.orig	2020-07-08 21:41:45.000000000 +0000
-+++ base/profiler/register_context.h
-@@ -17,7 +17,7 @@
- #include <windows.h>
- #elif defined(OS_MACOSX)
- #include <mach/machine/thread_status.h>
--#elif defined(OS_ANDROID) || defined(OS_LINUX)
-+#elif defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
- #include <sys/ucontext.h>
- #endif
- 
diff --git a/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.cc b/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.cc
index 3a3fa9ea6d..ada78ce5f7 100644
--- a/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.cc
+++ b/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.cc
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- base/profiler/sampling_profiler_thread_token.cc.orig	2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/sampling_profiler_thread_token.cc.orig	2024-07-24 02:44:22.651426800 +0000
 +++ base/profiler/sampling_profiler_thread_token.cc
-@@ -7,7 +7,7 @@
- namespace base {
+@@ -6,7 +6,7 @@
+ 
+ #include "build/build_config.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include <pthread.h>
  
- SamplingProfilerThreadToken GetSamplingProfilerCurrentThreadToken() {
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
-   return {PlatformThread::CurrentId(), pthread_self()};
- #else
-   return {PlatformThread::CurrentId()};
+ #include "base/profiler/stack_base_address_posix.h"
+@@ -18,7 +18,7 @@ SamplingProfilerThreadToken GetSamplingP
+   PlatformThreadId id = PlatformThread::CurrentId();
+ #if BUILDFLAG(IS_ANDROID)
+   return {id, pthread_self()};
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   std::optional<uintptr_t> maybe_stack_base =
+       GetThreadStackBaseAddress(id, pthread_self());
+   return {id, maybe_stack_base};
diff --git a/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.h b/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.h
index 638939b3b4..91d5a60f42 100644
--- a/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.h
+++ b/chromium/patches/patch-base_profiler_sampling__profiler__thread__token.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- base/profiler/sampling_profiler_thread_token.h.orig	2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/sampling_profiler_thread_token.h.orig	2024-07-24 02:44:22.651426800 +0000
 +++ base/profiler/sampling_profiler_thread_token.h
-@@ -9,7 +9,7 @@
- #include "base/threading/platform_thread.h"
- #include "build/build_config.h"
+@@ -13,7 +13,7 @@
  
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_ANDROID)
  #include <pthread.h>
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include <stdint.h>
  #endif
  
-@@ -21,7 +21,7 @@ namespace base {
- // functions used to obtain the stack base address.
- struct SamplingProfilerThreadToken {
+@@ -27,7 +27,7 @@ struct SamplingProfilerThreadToken {
    PlatformThreadId id;
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_ANDROID)
    pthread_t pthread_id;
- #endif
- };
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Due to the sandbox, we can only retrieve the stack base address for the
+   // current thread. We must grab it during
+   // GetSamplingProfilerCurrentThreadToken() and not try to get it later.
diff --git a/chromium/patches/patch-base_profiler_stack__base__address__posix.cc b/chromium/patches/patch-base_profiler_stack__base__address__posix.cc
new file mode 100644
index 0000000000..2f2f89a1f5
--- /dev/null
+++ b/chromium/patches/patch-base_profiler_stack__base__address__posix.cc
@@ -0,0 +1,69 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/stack_base_address_posix.cc.orig	2024-07-24 02:44:22.651426800 +0000
++++ base/profiler/stack_base_address_posix.cc
+@@ -17,6 +17,14 @@
+ #include "base/files/scoped_file.h"
+ #endif
+ 
++#if BUILDFLAG(IS_BSD)
++#if BUILDFLAG(IS_NETBSD)
++#include <pthread.h>
++#else
++#include <pthread_np.h>
++#endif
++#endif
++
+ #if BUILDFLAG(IS_CHROMEOS)
+ extern "C" void* __libc_stack_end;
+ #endif
+@@ -45,7 +53,21 @@ std::optional<uintptr_t> GetAndroidMainT
+ 
+ #if !BUILDFLAG(IS_LINUX)
+ uintptr_t GetThreadStackBaseAddressImpl(pthread_t pthread_id) {
++#if BUILDFLAG(IS_OPENBSD)
++  stack_t ss;
++  void *address;
++  size_t size;
++  if (pthread_stackseg_np(pthread_id, &ss) != 0)
++    return 0;
++  size = ss.ss_size;
++  address = (void*)((size_t) ss.ss_sp - ss.ss_size);
++#else
+   pthread_attr_t attr;
++#if BUILDFLAG(IS_FREEBSD)
++  int result;
++  pthread_attr_init(&attr);
++  pthread_attr_get_np(pthread_id, &attr);
++#else
+   // pthread_getattr_np will crash on ChromeOS & Linux if we are in the sandbox
+   // and pthread_id refers to a different thread, due to the use of
+   // sched_getaffinity().
+@@ -58,12 +80,14 @@ uintptr_t GetThreadStackBaseAddressImpl(
+                       << logging::SystemErrorCodeToString(result);
+   // See crbug.com/617730 for limitations of this approach on Linux-like
+   // systems.
++#endif
+   void* address;
+   size_t size;
+   result = pthread_attr_getstack(&attr, &address, &size);
+   CHECK_EQ(result, 0) << "pthread_attr_getstack returned "
+                       << logging::SystemErrorCodeToString(result);
+   pthread_attr_destroy(&attr);
++#endif
+   const uintptr_t base_address = reinterpret_cast<uintptr_t>(address) + size;
+   return base_address;
+ }
+@@ -80,7 +104,7 @@ std::optional<uintptr_t> GetThreadStackB
+   // trying to work around the problem.
+   return std::nullopt;
+ #else
+-  const bool is_main_thread = id == GetCurrentProcId();
++  const bool is_main_thread = id == checked_cast<PlatformThreadId>(GetCurrentProcId());
+   if (is_main_thread) {
+ #if BUILDFLAG(IS_ANDROID)
+     // The implementation of pthread_getattr_np() in Bionic reads proc/self/maps
diff --git a/chromium/patches/patch-base_profiler_stack__copier__signal.cc b/chromium/patches/patch-base_profiler_stack__copier__signal.cc
deleted file mode 100644
index e1b4e4d75f..0000000000
--- a/chromium/patches/patch-base_profiler_stack__copier__signal.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- base/profiler/stack_copier_signal.cc.orig	2020-07-15 18:55:48.000000000 +0000
-+++ base/profiler/stack_copier_signal.cc
-@@ -4,10 +4,14 @@
- 
- #include "base/profiler/stack_copier_signal.h"
- 
-+#if defined(OS_NETBSD)
-+#include <sys/futex.h>
-+#else
- #include <linux/futex.h>
-+#include <syscall.h>
-+#endif
- #include <signal.h>
- #include <sys/ucontext.h>
--#include <syscall.h>
- 
- #include <atomic>
- 
diff --git a/chromium/patches/patch-base_profiler_stack__sampling__profiler__test__util.cc b/chromium/patches/patch-base_profiler_stack__sampling__profiler__test__util.cc
new file mode 100644
index 0000000000..ab7277e843
--- /dev/null
+++ b/chromium/patches/patch-base_profiler_stack__sampling__profiler__test__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/stack_sampling_profiler_test_util.cc.orig	2024-07-24 02:44:22.651426800 +0000
++++ base/profiler/stack_sampling_profiler_test_util.cc
+@@ -42,7 +42,7 @@
+ // Fortunately, it provides _alloca, which functions identically.
+ #include <malloc.h>
+ #define alloca _alloca
+-#else
++#elif !BUILDFLAG(IS_BSD)
+ #include <alloca.h>
+ #endif
+ 
diff --git a/chromium/patches/patch-base_profiler_stack__sampling__profiler__unittest.cc b/chromium/patches/patch-base_profiler_stack__sampling__profiler__unittest.cc
index af6ab64c28..1c8ea6f544 100644
--- a/chromium/patches/patch-base_profiler_stack__sampling__profiler__unittest.cc
+++ b/chromium/patches/patch-base_profiler_stack__sampling__profiler__unittest.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/profiler/stack_sampling_profiler_unittest.cc.orig	2020-07-08 21:41:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/stack_sampling_profiler_unittest.cc.orig	2024-07-24 02:44:22.651426800 +0000
 +++ base/profiler/stack_sampling_profiler_unittest.cc
-@@ -41,7 +41,7 @@
+@@ -43,7 +43,7 @@
+ 
  #include <intrin.h>
  #include <malloc.h>
- #include <windows.h>
 -#else
-+#elif defined(OS_LINUX)
++#elif !BUILDFLAG(IS_BSD)
  #include <alloca.h>
  #endif
  
diff --git a/chromium/patches/patch-base_profiler_thread__delegate__posix.cc b/chromium/patches/patch-base_profiler_thread__delegate__posix.cc
new file mode 100644
index 0000000000..c556b52776
--- /dev/null
+++ b/chromium/patches/patch-base_profiler_thread__delegate__posix.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/profiler/thread_delegate_posix.cc.orig	2024-07-24 02:44:22.655427200 +0000
++++ base/profiler/thread_delegate_posix.cc
+@@ -19,7 +19,7 @@
+ #include "base/process/process_handle.h"
+ #include "build/build_config.h"
+ 
+-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ #include "base/profiler/stack_base_address_posix.h"
+ #endif
+ 
+@@ -28,7 +28,7 @@ namespace base {
+ std::unique_ptr<ThreadDelegatePosix> ThreadDelegatePosix::Create(
+     SamplingProfilerThreadToken thread_token) {
+   std::optional<uintptr_t> base_address;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   base_address = thread_token.stack_base_address;
+ #else
+   base_address =
diff --git a/chromium/patches/patch-base_rand__util.h b/chromium/patches/patch-base_rand__util.h
new file mode 100644
index 0000000000..9be28be4ae
--- /dev/null
+++ b/chromium/patches/patch-base_rand__util.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/rand_util.h.orig	2024-07-24 02:44:22.655427200 +0000
++++ base/rand_util.h
+@@ -147,7 +147,7 @@ void RandomShuffle(Itr first, Itr last) 
+   std::shuffle(first, last, RandomBitGenerator());
+ }
+ 
+-#if BUILDFLAG(IS_POSIX)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_BSD)
+ BASE_EXPORT int GetUrandomFD();
+ #endif
+ 
diff --git a/chromium/patches/patch-base_rand__util__posix.cc b/chromium/patches/patch-base_rand__util__posix.cc
new file mode 100644
index 0000000000..780be1f371
--- /dev/null
+++ b/chromium/patches/patch-base_rand__util__posix.cc
@@ -0,0 +1,68 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/rand_util_posix.cc.orig	2024-07-24 02:44:22.655427200 +0000
++++ base/rand_util_posix.cc
+@@ -28,7 +28,7 @@
+ #include "base/time/time.h"
+ #include "build/build_config.h"
+ 
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_NACL)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
+ #include "third_party/lss/linux_syscall_support.h"
+ #elif BUILDFLAG(IS_MAC)
+ // TODO(crbug.com/40641285): Waiting for this header to appear in the iOS SDK.
+@@ -45,6 +45,7 @@ namespace base {
+ 
+ namespace {
+ 
++#if !BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_AIX)
+ // AIX has no 64-bit support for O_CLOEXEC.
+ static constexpr int kOpenFlags = O_RDONLY;
+@@ -69,10 +70,11 @@ class URandomFd {
+  private:
+   const int fd_;
+ };
++#endif
+ 
+ #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+      BUILDFLAG(IS_ANDROID)) &&                        \
+-    !BUILDFLAG(IS_NACL)
++    !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
+ // TODO(pasko): Unify reading kernel version numbers in:
+ // mojo/core/channel_linux.cc
+ // chrome/browser/android/seccomp_support_detector.cc
+@@ -182,6 +184,7 @@ bool UseBoringSSLForRandBytes() {
+ namespace {
+ 
+ void RandBytesInternal(span<uint8_t> output, bool avoid_allocation) {
++#if !BUILDFLAG(IS_BSD)
+ #if !BUILDFLAG(IS_NACL)
+   // The BoringSSL experiment takes priority over everything else.
+   if (!avoid_allocation && internal::UseBoringSSLForRandBytes()) {
+@@ -220,6 +223,9 @@ void RandBytesInternal(span<uint8_t> out
+   const int urandom_fd = GetUrandomFD();
+   const bool success = ReadFromFD(urandom_fd, as_writable_chars(output));
+   CHECK(success);
++#else
++  arc4random_buf(output.data(), output.size());
++#endif
+ }
+ 
+ }  // namespace
+@@ -239,9 +245,11 @@ void RandBytes(span<uint8_t> output) {
+   RandBytesInternal(output, /*avoid_allocation=*/false);
+ }
+ 
++#if !BUILDFLAG(IS_BSD)
+ int GetUrandomFD() {
+   static NoDestructor<URandomFd> urandom_fd;
+   return urandom_fd->fd();
+ }
++#endif
+ 
+ }  // namespace base
diff --git a/chromium/patches/patch-base_sampling__heap__profiler_sampling__heap__profiler.cc b/chromium/patches/patch-base_sampling__heap__profiler_sampling__heap__profiler.cc
deleted file mode 100644
index e21acc0946..0000000000
--- a/chromium/patches/patch-base_sampling__heap__profiler_sampling__heap__profiler.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD$
-
---- base/sampling_heap_profiler/sampling_heap_profiler.cc.orig	2020-07-08 21:41:45.000000000 +0000
-+++ base/sampling_heap_profiler/sampling_heap_profiler.cc
-@@ -21,7 +21,7 @@
- #include "base/trace_event/heap_profiler_allocation_context_tracker.h"
- #include "build/build_config.h"
- 
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
- #include <pthread.h>
- #endif
- 
-@@ -61,6 +61,14 @@ const char* GetAndLeakThreadName() {
-   int err = prctl(PR_GET_NAME, name);
-   if (!err)
-     return strdup(name);
-+#elif defined(OS_FREEBSD)
-+  pthread_get_name_np(pthread_self(), name, kBufferLen);
-+  if (*name != '\0')
-+    return strdup(name);
-+#elif defined(OS_NETBSD)
-+  pthread_getname_np(pthread_self(), name, kBufferLen);
-+  if (*name != '\0')
-+    return strdup(name);
- #elif defined(OS_MACOSX)
-   int err = pthread_getname_np(pthread_self(), name, kBufferLen);
-   if (err == 0 && *name != '\0')
diff --git a/chromium/patches/patch-base_security__unittest.cc b/chromium/patches/patch-base_security__unittest.cc
deleted file mode 100644
index c3cbbf3539..0000000000
--- a/chromium/patches/patch-base_security__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/security_unittest.cc.orig	2020-07-08 21:40:31.000000000 +0000
-+++ base/security_unittest.cc
-@@ -59,7 +59,7 @@ NOINLINE Type HideValueFromCompiler(vola
- // FAILS_ is too clunky.
- void OverflowTestsSoftExpectTrue(bool overflow_detected) {
-   if (!overflow_detected) {
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX)
-     // Sadly, on Linux, Android, and OSX we don't have a good story yet. Don't
-     // fail the test, but report.
-     printf("Platform has overflow: %s\n",
diff --git a/chromium/patches/patch-base_strings_safe__sprintf__unittest.cc b/chromium/patches/patch-base_strings_safe__sprintf__unittest.cc
new file mode 100644
index 0000000000..ea64ff6711
--- /dev/null
+++ b/chromium/patches/patch-base_strings_safe__sprintf__unittest.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/strings/safe_sprintf_unittest.cc.orig	2024-07-24 02:44:22.663427800 +0000
++++ base/strings/safe_sprintf_unittest.cc
+@@ -740,6 +740,7 @@ TEST(SafeSPrintfTest, EmbeddedNul) {
+ #endif
+ }
+ 
++#if !BUILDFLAG(IS_BSD)
+ TEST(SafeSPrintfTest, EmitNULL) {
+   char buf[40];
+ #if defined(__GNUC__)
+@@ -756,6 +757,7 @@ TEST(SafeSPrintfTest, EmitNULL) {
+ #pragma GCC diagnostic pop
+ #endif
+ }
++#endif
+ 
+ TEST(SafeSPrintfTest, PointerSize) {
+   // The internal data representation is a 64bit value, independent of the
diff --git a/chromium/patches/patch-base_synchronization_lock__impl.h b/chromium/patches/patch-base_synchronization_lock__impl.h
index f7ca07e042..5bdf90a9a5 100644
--- a/chromium/patches/patch-base_synchronization_lock__impl.h
+++ b/chromium/patches/patch-base_synchronization_lock__impl.h
@@ -1,17 +1,29 @@
 $NetBSD$
 
---- base/synchronization/lock_impl.h.orig	2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/synchronization/lock_impl.h.orig	2024-07-24 02:44:22.675429000 +0000
 +++ base/synchronization/lock_impl.h
-@@ -69,9 +69,12 @@ void LockImpl::Unlock() {
-   ::ReleaseSRWLockExclusive(reinterpret_cast<PSRWLOCK>(&native_handle_));
+@@ -106,6 +106,10 @@ void LockImpl::Unlock() {
  }
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
-+//#pragma GCC diagnostic push
-+//#pragma GCC diagnostic ignored "-Wthread-safety-analysis"
- void LockImpl::Unlock() {
-   int rv = pthread_mutex_unlock(&native_handle_);
-   DCHECK_EQ(rv, 0) << ". " << strerror(rv);
-+//#pragma GCC diagnostic pop
+ 
+ #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_FREEBSD)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wthread-safety-analysis"
++#endif
+ 
+ #if DCHECK_IS_ON()
+ BASE_EXPORT void dcheck_trylock_result(int rv);
+@@ -126,6 +130,9 @@ void LockImpl::Unlock() {
+   dcheck_unlock_result(rv);
+ #endif
  }
++#if BUILDFLAG(IS_FREEBSD)
++#pragma GCC diagnostic pop
++#endif
  #endif
  
+ // This is an implementation used for AutoLock templated on the lock type.
diff --git a/chromium/patches/patch-base_syslog__logging.cc b/chromium/patches/patch-base_syslog__logging.cc
index e4f950d487..7c64a122c7 100644
--- a/chromium/patches/patch-base_syslog__logging.cc
+++ b/chromium/patches/patch-base_syslog__logging.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- base/syslog_logging.cc.orig	2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/syslog_logging.cc.orig	2024-07-24 02:44:22.675429000 +0000
 +++ base/syslog_logging.cc
-@@ -14,7 +14,7 @@
- #include "base/debug/stack_trace.h"
+@@ -17,7 +17,7 @@
  #include "base/strings/string_util.h"
+ #include "base/win/scoped_handle.h"
  #include "base/win/win_util.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // <syslog.h> defines LOG_INFO, LOG_WARNING macros that could conflict with
  // base::LOG_INFO, base::LOG_WARNING.
  #include <syslog.h>
-@@ -113,7 +113,7 @@ EventLogMessage::~EventLogMessage() {
+@@ -149,7 +149,7 @@ EventLogMessage::~EventLogMessage() {
  
    if (user_sid != nullptr)
      ::LocalFree(user_sid);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    const char kEventSource[] = "chrome";
    openlog(kEventSource, LOG_NOWAIT | LOG_PID, LOG_USER);
    // We can't use the defined names for the logging severity from syslog.h
diff --git a/chromium/patches/patch-base_system_sys__info.cc b/chromium/patches/patch-base_system_sys__info.cc
index 8ccc646f35..09a34a959d 100644
--- a/chromium/patches/patch-base_system_sys__info.cc
+++ b/chromium/patches/patch-base_system_sys__info.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/system/sys_info.cc.orig	2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info.cc.orig	2024-07-24 02:44:22.675429000 +0000
 +++ base/system/sys_info.cc
-@@ -102,7 +102,7 @@ void SysInfo::GetHardwareInfo(base::Once
- #elif defined(OS_ANDROID) || defined(OS_MACOSX)
-   base::ThreadPool::PostTaskAndReplyWithResult(
-       FROM_HERE, {}, base::BindOnce(&GetHardwareInfoSync), std::move(callback));
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   base::ThreadPool::PostTaskAndReplyWithResult(
-       FROM_HERE, {base::MayBlock()}, base::BindOnce(&GetHardwareInfoSync),
-       std::move(callback));
+@@ -225,7 +225,7 @@ std::string SysInfo::HardwareModelName()
+ #endif
+ 
+ void SysInfo::GetHardwareInfo(base::OnceCallback<void(HardwareInfo)> callback) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   constexpr base::TaskTraits kTraits = {base::MayBlock()};
+ #else
+   constexpr base::TaskTraits kTraits = {};
diff --git a/chromium/patches/patch-base_system_sys__info.h b/chromium/patches/patch-base_system_sys__info.h
index cfeba9aec4..51dec926cc 100644
--- a/chromium/patches/patch-base_system_sys__info.h
+++ b/chromium/patches/patch-base_system_sys__info.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- base/system/sys_info.h.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info.h.orig	2024-07-24 02:44:22.675429000 +0000
 +++ base/system/sys_info.h
-@@ -201,6 +201,8 @@ class BASE_EXPORT SysInfo {
-   // On Desktop this returns true when memory <= 512MB.
-   static bool IsLowEndDevice();
+@@ -325,6 +325,8 @@ class BASE_EXPORT SysInfo {
+   static void ResetCpuSecurityMitigationsEnabledForTesting();
+ #endif
  
 +  static uint64_t MaxSharedMemorySize();
 +
   private:
+   friend class test::ScopedAmountOfPhysicalMemoryOverride;
    FRIEND_TEST_ALL_PREFIXES(SysInfoTest, AmountOfAvailablePhysicalMemory);
-   FRIEND_TEST_ALL_PREFIXES(debug::SystemMetricsTest, ParseMeminfo);
-@@ -210,7 +212,7 @@ class BASE_EXPORT SysInfo {
-   static bool IsLowEndDeviceImpl();
+@@ -337,7 +339,7 @@ class BASE_EXPORT SysInfo {
    static HardwareInfo GetHardwareInfoSync();
  
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_BSD)
-   static int64_t AmountOfAvailablePhysicalMemory(
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+   static uint64_t AmountOfAvailablePhysicalMemory(
        const SystemMemoryInfoKB& meminfo);
  #endif
diff --git a/chromium/patches/patch-base_system_sys__info__freebsd.cc b/chromium/patches/patch-base_system_sys__info__freebsd.cc
new file mode 100644
index 0000000000..3cb8ef1d2d
--- /dev/null
+++ b/chromium/patches/patch-base_system_sys__info__freebsd.cc
@@ -0,0 +1,121 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info_freebsd.cc.orig	2024-07-24 02:44:22.679429500 +0000
++++ base/system/sys_info_freebsd.cc
+@@ -9,30 +9,106 @@
+ #include <sys/sysctl.h>
+ 
+ #include "base/notreached.h"
++#include "base/process/process_metrics.h"
++#include "base/strings/string_util.h"
+ 
+ namespace base {
+ 
+-int64_t SysInfo::AmountOfPhysicalMemoryImpl() {
+-  int pages, page_size;
++int SysInfo::NumberOfProcessors() {
++  int mib[] = {CTL_HW, HW_NCPU};
++  int ncpu;
++  size_t size = sizeof(ncpu);
++  if (sysctl(mib, std::size(mib), &ncpu, &size, NULL, 0) < 0) {
++    NOTREACHED();
++    return 1;
++  }
++  return ncpu;
++}
++
++uint64_t SysInfo::AmountOfPhysicalMemoryImpl() {
++  int pages, page_size, r = 0;
+   size_t size = sizeof(pages);
+-  sysctlbyname("vm.stats.vm.v_page_count", &pages, &size, NULL, 0);
+-  sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0);
+-  if (pages == -1 || page_size == -1) {
++
++  if (r == 0)
++    r = sysctlbyname("vm.stats.vm.v_page_count", &pages, &size, NULL, 0);
++  if (r == 0)
++    r = sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0);
++
++  if (r == -1) {
+     NOTREACHED_IN_MIGRATION();
+     return 0;
+   }
+-  return static_cast<int64_t>(pages) * page_size;
++
++  return static_cast<uint64_t>(pages) * page_size;
++}
++
++uint64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() {
++  int page_size, r = 0;
++  unsigned int pgfree, pginact, pgcache;
++  size_t size = sizeof(page_size);
++  size_t szpg = sizeof(pgfree);
++
++  if (r == 0)
++    r = sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0);
++  if (r == 0)
++    r = sysctlbyname("vm.stats.vm.v_free_count", &pgfree, &szpg, NULL, 0);
++  if (r == 0)
++    r = sysctlbyname("vm.stats.vm.v_inactive_count", &pginact, &szpg, NULL, 0);
++  if (r == 0)
++    r = sysctlbyname("vm.stats.vm.v_cache_count", &pgcache, &szpg, NULL, 0);
++
++  if (r == -1) {
++    NOTREACHED();
++    return 0;
++  }
++
++  return static_cast<uint64_t>((pgfree + pginact + pgcache) * page_size);
++}
++
++// static
++uint64_t SysInfo::AmountOfAvailablePhysicalMemory(const SystemMemoryInfoKB& info) {
++  uint64_t res_kb = info.available != 0
++                       ? info.available - info.active_file
++                       : info.free + info.reclaimable + info.inactive_file;
++  return res_kb * 1024;
++}
++
++// static
++std::string SysInfo::CPUModelName() {
++  int mib[] = { CTL_HW, HW_MODEL };
++  char name[256];
++  size_t size = std::size(name);
++
++  if (sysctl(mib, std::size(mib), &name, &size, NULL, 0) == 0) {
++    return name;
++  }
++
++  return std::string();
+ }
+ 
+ // static
+ uint64_t SysInfo::MaxSharedMemorySize() {
+   size_t limit;
+   size_t size = sizeof(limit);
++
+   if (sysctlbyname("kern.ipc.shmmax", &limit, &size, NULL, 0) < 0) {
+     NOTREACHED_IN_MIGRATION();
+     return 0;
+   }
++
+   return static_cast<uint64_t>(limit);
+ }
+ 
++SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() {
++  HardwareInfo info;
++
++  info.manufacturer = "FreeBSD";
++  info.model = HardwareModelName();
++
++  DCHECK(IsStringUTF8(info.manufacturer));
++  DCHECK(IsStringUTF8(info.model));
++
++  return info;
++}
++
+ }  // namespace base
diff --git a/chromium/patches/patch-base_system_sys__info__netbsd.cc b/chromium/patches/patch-base_system_sys__info__netbsd.cc
index f68b9388eb..7bb01b12f5 100644
--- a/chromium/patches/patch-base_system_sys__info__netbsd.cc
+++ b/chromium/patches/patch-base_system_sys__info__netbsd.cc
@@ -1,9 +1,13 @@
 $NetBSD$
 
---- base/system/sys_info_netbsd.cc.orig	2020-07-09 13:28:11.909266556 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info_netbsd.cc.orig	2024-08-01 14:08:56.682947401 +0000
 +++ base/system/sys_info_netbsd.cc
-@@ -0,0 +1,78 @@
-+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+@@ -0,0 +1,91 @@
++// Copyright 2011 The Chromium Authors
 +// Use of this source code is governed by a BSD-style license that can be
 +// found in the LICENSE file.
 +
@@ -16,18 +20,17 @@ $NetBSD$
 +#include <sys/sysctl.h>
 +
 +#include "base/notreached.h"
-+#include "base/stl_util.h"
++#include "base/posix/sysctl.h"
++#include "base/strings/string_util.h"
 +
 +namespace {
 +
-+int64_t AmountOfMemory(int pages_name) {
++uint64_t AmountOfMemory(int pages_name) {
 +  long pages = sysconf(pages_name);
 +  long page_size = sysconf(_SC_PAGESIZE);
-+  if (pages == -1 || page_size == -1) {
-+    NOTREACHED();
++  if (pages < 0 || page_size < 0)
 +    return 0;
-+  }
-+  return static_cast<int64_t>(pages) * page_size;
++  return static_cast<uint64_t>(pages) * static_cast<uint64_t>(page_size);
 +}
 +
 +}  // namespace
@@ -39,20 +42,20 @@ $NetBSD$
 +  int mib[] = {CTL_HW, HW_NCPU};
 +  int ncpu;
 +  size_t size = sizeof(ncpu);
-+  if (sysctl(mib, base::size(mib), &ncpu, &size, NULL, 0) < 0) {
-+    NOTREACHED();
++  if (sysctl(mib, std::size(mib), &ncpu, &size, NULL, 0) < 0) {
++    NOTREACHED_IN_MIGRATION();
 +    return 1;
 +  }
 +  return ncpu;
 +}
 +
 +// static
-+int64_t SysInfo::AmountOfPhysicalMemoryImpl() {
++uint64_t SysInfo::AmountOfPhysicalMemoryImpl() {
 +  return AmountOfMemory(_SC_PHYS_PAGES);
 +}
 +
 +// static
-+int64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() {
++uint64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() {
 +  return AmountOfMemory(_SC_PHYS_PAGES);
 +}
 +
@@ -61,8 +64,9 @@ $NetBSD$
 +  int mib[] = {CTL_KERN, KERN_SYSVIPC, KERN_SYSVIPC_SHMMAX};
 +  size_t limit;
 +  size_t size = sizeof(limit);
-+  if (sysctl(mib, base::size(mib), &limit, &size, NULL, 0) < 0) {
-+    NOTREACHED();
++  // pledge(2)
++  if (sysctl(mib, std::size(mib), &limit, &size, NULL, 0) < 0) {
++    NOTREACHED_IN_MIGRATION();
 +    return 0;
 +  }
 +  return static_cast<uint64_t>(limit);
@@ -70,14 +74,27 @@ $NetBSD$
 +
 +// static
 +std::string SysInfo::CPUModelName() {
-+  int mib[] = {CTL_HW, HW_MODEL};
++  int mib[] = { CTL_HW, HW_MODEL };
 +  char name[256];
-+  size_t len = base::size(name);
-+  if (sysctl(mib, base::size(mib), name, &len, NULL, 0) < 0) {
-+    NOTREACHED();
-+    return std::string();
++  size_t size = std::size(name);
++
++  if (sysctl(mib, std::size(mib), &name, &size, NULL, 0) == 0) {
++    return name;
 +  }
-+  return name;
++
++  return std::string();
++}
++
++// static
++SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() {
++  HardwareInfo info;
++  // Set the manufacturer to "NetBSD" and the model to
++  // an empty string.
++  info.manufacturer = "NetBSD";
++  info.model = HardwareModelName();
++  DCHECK(IsStringUTF8(info.manufacturer));
++  DCHECK(IsStringUTF8(info.model));
++  return info;
 +}
 +
 +}  // namespace base
diff --git a/chromium/patches/patch-base_system_sys__info__openbsd.cc b/chromium/patches/patch-base_system_sys__info__openbsd.cc
new file mode 100644
index 0000000000..bed8feecf7
--- /dev/null
+++ b/chromium/patches/patch-base_system_sys__info__openbsd.cc
@@ -0,0 +1,97 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info_openbsd.cc.orig	2024-07-24 02:44:22.679429500 +0000
++++ base/system/sys_info_openbsd.cc
+@@ -3,7 +3,6 @@
+ // found in the LICENSE file.
+ 
+ #include "base/system/sys_info.h"
+-
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <sys/param.h>
+@@ -12,6 +11,7 @@
+ 
+ #include "base/notreached.h"
+ #include "base/posix/sysctl.h"
++#include "base/strings/string_util.h"
+ 
+ namespace {
+ 
+@@ -27,9 +27,14 @@ uint64_t AmountOfMemory(int pages_name) 
+ 
+ namespace base {
+ 
++// pledge(2)
++uint64_t aofpmem = 0;
++uint64_t shmmax = 0;
++char cpumodel[256];
++
+ // static
+ int SysInfo::NumberOfProcessors() {
+-  int mib[] = {CTL_HW, HW_NCPU};
++  int mib[] = {CTL_HW, HW_NCPUONLINE};
+   int ncpu;
+   size_t size = sizeof(ncpu);
+   if (sysctl(mib, std::size(mib), &ncpu, &size, NULL, 0) < 0) {
+@@ -41,7 +46,23 @@ int SysInfo::NumberOfProcessors() {
+ 
+ // static
+ uint64_t SysInfo::AmountOfPhysicalMemoryImpl() {
+-  return AmountOfMemory(_SC_PHYS_PAGES);
++  // pledge(2)
++  if (!aofpmem)
++    aofpmem = AmountOfMemory(_SC_PHYS_PAGES);
++  return aofpmem;
++}
++
++// static
++std::string SysInfo::CPUModelName() {
++  int mib[] = {CTL_HW, HW_MODEL};
++  size_t len = std::size(cpumodel);
++
++  if (cpumodel[0] == '\0') {
++    if (sysctl(mib, std::size(mib), cpumodel, &len, NULL, 0) < 0)
++      return std::string();
++  }
++
++  return std::string(cpumodel, len - 1);
+ }
+ 
+ // static
+@@ -56,16 +77,28 @@ uint64_t SysInfo::MaxSharedMemorySize() 
+   int mib[] = {CTL_KERN, KERN_SHMINFO, KERN_SHMINFO_SHMMAX};
+   size_t limit;
+   size_t size = sizeof(limit);
++  // pledge(2)
++  if (shmmax)
++    goto out;
+   if (sysctl(mib, std::size(mib), &limit, &size, NULL, 0) < 0) {
+     NOTREACHED_IN_MIGRATION();
+     return 0;
+   }
+-  return static_cast<uint64_t>(limit);
++  shmmax = static_cast<uint64_t>(limit);
++out:
++  return shmmax;
+ }
+ 
+ // static
+-std::string SysInfo::CPUModelName() {
+-  return StringSysctl({CTL_HW, HW_MODEL}).value();
++SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() {
++  HardwareInfo info;
++  // Set the manufacturer to "OpenBSD" and the model to
++  // an empty string.
++  info.manufacturer = "OpenBSD";
++  info.model = HardwareModelName();
++  DCHECK(IsStringUTF8(info.manufacturer));
++  DCHECK(IsStringUTF8(info.model));
++  return info;
+ }
+ 
+ }  // namespace base
diff --git a/chromium/patches/patch-base_system_sys__info__posix.cc b/chromium/patches/patch-base_system_sys__info__posix.cc
index 59bf7e5766..8de7f9044c 100644
--- a/chromium/patches/patch-base_system_sys__info__posix.cc
+++ b/chromium/patches/patch-base_system_sys__info__posix.cc
@@ -1,26 +1,30 @@
 $NetBSD$
 
---- base/system/sys_info_posix.cc.orig	2020-07-15 18:55:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info_posix.cc.orig	2024-07-24 02:44:22.679429500 +0000
 +++ base/system/sys_info_posix.cc
-@@ -35,7 +35,7 @@
- 
- namespace {
- 
--#if !defined(OS_OPENBSD)
-+#if !defined(OS_BSD)
- int NumberOfProcessors() {
-   // sysconf returns the number of "logical" (not "physical") processors on both
-   // Mac and Linux.  So we get the number of max available "logical" processors.
-@@ -127,7 +127,7 @@ bool GetDiskSpaceInfo(const base::FilePa
+@@ -118,7 +118,7 @@ bool GetDiskSpaceInfo(const base::FilePa
  
  namespace base {
  
--#if !defined(OS_OPENBSD)
-+#if !defined(OS_BSD)
+-#if !BUILDFLAG(IS_OPENBSD)
++#if !BUILDFLAG(IS_BSD)
+ // static
  int SysInfo::NumberOfProcessors() {
-   return g_lazy_number_of_processors.Get().value();
+ #if BUILDFLAG(IS_MAC)
+@@ -175,7 +175,7 @@ int SysInfo::NumberOfProcessors() {
+ 
+   return cached_num_cpus;
  }
-@@ -220,6 +220,8 @@ std::string SysInfo::OperatingSystemArch
+-#endif  // !BUILDFLAG(IS_OPENBSD)
++#endif  // !BUILDFLAG(IS_BSD)
+ 
+ // static
+ uint64_t SysInfo::AmountOfVirtualMemory() {
+@@ -265,6 +265,8 @@ std::string SysInfo::OperatingSystemArch
      arch = "x86";
    } else if (arch == "amd64") {
      arch = "x86_64";
diff --git a/chromium/patches/patch-base_system_sys__info__unittest.cc b/chromium/patches/patch-base_system_sys__info__unittest.cc
new file mode 100644
index 0000000000..c239123eaa
--- /dev/null
+++ b/chromium/patches/patch-base_system_sys__info__unittest.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/system/sys_info_unittest.cc.orig	2024-07-24 02:44:22.679429500 +0000
++++ base/system/sys_info_unittest.cc
+@@ -264,12 +264,16 @@ TEST_F(SysInfoTest, GetHardwareInfo) {
+   EXPECT_TRUE(IsStringUTF8(hardware_info->model));
+   bool empty_result_expected =
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || \
++    BUILDFLAG(IS_BSD)
+       false;
+ #else
+       true;
+ #endif
+   EXPECT_EQ(hardware_info->manufacturer.empty(), empty_result_expected);
++#if BUILDFLAG(IS_BSD)
++  empty_result_expected = true;
++#endif
+   EXPECT_EQ(hardware_info->model.empty(), empty_result_expected);
+ }
+ 
diff --git a/chromium/patches/patch-base_task_thread__pool_environment__config__unittest.cc b/chromium/patches/patch-base_task_thread__pool_environment__config__unittest.cc
index 66d3501add..9b259eeabe 100644
--- a/chromium/patches/patch-base_task_thread__pool_environment__config__unittest.cc
+++ b/chromium/patches/patch-base_task_thread__pool_environment__config__unittest.cc
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- base/task/thread_pool/environment_config_unittest.cc.orig	2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/task/thread_pool/environment_config_unittest.cc.orig	2024-07-24 02:44:22.699431400 +0000
 +++ base/task/thread_pool/environment_config_unittest.cc
 @@ -15,7 +15,7 @@ TEST(ThreadPoolEnvironmentConfig, CanUse
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_IOS)
-   EXPECT_TRUE(CanUseBackgroundPriorityForWorkerThread());
- #elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || \
--    defined(OS_CHROMEOS) || defined(OS_NACL)
-+    defined(OS_CHROMEOS) || defined(OS_NACL) || defined(OS_BSD)
-   EXPECT_FALSE(CanUseBackgroundPriorityForWorkerThread());
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE)
+   EXPECT_TRUE(CanUseBackgroundThreadTypeForWorkerThread());
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+   EXPECT_FALSE(CanUseBackgroundThreadTypeForWorkerThread());
+ #else
+ #error Platform doesn't match any block
+@@ -24,7 +24,7 @@ TEST(ThreadPoolEnvironmentConfig, CanUse
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID)
+   EXPECT_TRUE(CanUseUtilityThreadTypeForWorkerThread());
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+   EXPECT_FALSE(CanUseUtilityThreadTypeForWorkerThread());
  #else
  #error Platform doesn't match any block
diff --git a/chromium/patches/patch-base_test_BUILD.gn b/chromium/patches/patch-base_test_BUILD.gn
deleted file mode 100644
index d3fc10f9a2..0000000000
--- a/chromium/patches/patch-base_test_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- base/test/BUILD.gn.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/test/BUILD.gn
-@@ -403,7 +403,7 @@ static_library("run_all_base_unittests")
-   deps = [ ":test_support" ]
- }
- 
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   source_set("fontconfig_util_linux") {
-     sources = [
-       "fontconfig_util_linux.cc",
-@@ -444,7 +444,7 @@ if (is_linux) {
-   }
- }
- 
--if (is_fuchsia || is_linux) {
-+if (is_fuchsia || is_linux || is_bsd) {
-   shared_library("malloc_wrapper") {
-     testonly = true
-     sources = [ "malloc_wrapper.cc" ]
diff --git a/chromium/patches/patch-base_test_launcher_test__launcher.cc b/chromium/patches/patch-base_test_launcher_test__launcher.cc
index 991235f10c..5a95bc9593 100644
--- a/chromium/patches/patch-base_test_launcher_test__launcher.cc
+++ b/chromium/patches/patch-base_test_launcher_test__launcher.cc
@@ -1,32 +1,27 @@
 $NetBSD$
 
---- base/test/launcher/test_launcher.cc.orig	2020-07-08 21:41:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/test/launcher/test_launcher.cc.orig	2024-07-24 02:44:22.735435000 +0000
 +++ base/test/launcher/test_launcher.cc
-@@ -56,6 +56,7 @@
+@@ -74,6 +74,7 @@
  #include "testing/gtest/include/gtest/gtest.h"
  
- #if defined(OS_POSIX)
+ #if BUILDFLAG(IS_POSIX)
 +#include <signal.h>
  #include <fcntl.h>
  
  #include "base/files/file_descriptor_watcher_posix.h"
-@@ -582,7 +583,7 @@ ChildProcessResults DoLaunchChildTestPro
- #if !defined(OS_FUCHSIA)
-   options.new_process_group = true;
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   options.kill_on_parent_death = true;
- #endif
- 
-@@ -1497,6 +1498,10 @@ bool TestLauncher::Init(CommandLine* com
+@@ -1807,6 +1808,10 @@ bool TestLauncher::Init(CommandLine* com
    results_tracker_.AddGlobalTag("OS_OPENBSD");
  #endif
  
-+#if defined(OS_NETBSD)
++#if BUILDFLAG(IS_NETBSD)
 +  results_tracker_.AddGlobalTag("OS_NETBSD");
 +#endif
 +
- #if defined(OS_POSIX)
+ #if BUILDFLAG(IS_POSIX)
    results_tracker_.AddGlobalTag("OS_POSIX");
  #endif
diff --git a/chromium/patches/patch-base_test_test__file__util__linux.cc b/chromium/patches/patch-base_test_test__file__util__linux.cc
new file mode 100644
index 0000000000..ae0c4a5150
--- /dev/null
+++ b/chromium/patches/patch-base_test_test__file__util__linux.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/test/test_file_util_linux.cc.orig	2024-07-24 02:44:22.747436000 +0000
++++ base/test/test_file_util_linux.cc
+@@ -54,8 +54,10 @@ bool EvictFileFromSystemCache(const File
+     return false;
+   if (fdatasync(fd.get()) != 0)
+     return false;
++#if !BUILDFLAG(IS_BSD)
+   if (posix_fadvise(fd.get(), 0, 0, POSIX_FADV_DONTNEED) != 0)
+     return false;
++#endif
+   return true;
+ }
+ 
diff --git a/chromium/patches/patch-base_test_test__file__util__posix.cc b/chromium/patches/patch-base_test_test__file__util__posix.cc
index 0247e7a23f..13bbb35151 100644
--- a/chromium/patches/patch-base_test_test__file__util__posix.cc
+++ b/chromium/patches/patch-base_test_test__file__util__posix.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/test/test_file_util_posix.cc.orig	2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/test/test_file_util_posix.cc.orig	2024-07-24 02:44:22.747436000 +0000
 +++ base/test/test_file_util_posix.cc
-@@ -85,7 +85,7 @@ void SyncPageCacheToDisk() {
-   sync();
+@@ -91,7 +91,7 @@ void SyncPageCacheToDisk() {
  }
  
--#if !defined(OS_LINUX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if !defined(OS_LINUX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) || defined(OS_BSD)
+ #if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_APPLE) && \
+-    !BUILDFLAG(IS_ANDROID)
++    !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD)
  bool EvictFileFromSystemCache(const FilePath& file) {
    // There doesn't seem to be a POSIX way to cool the disk cache.
    NOTIMPLEMENTED();
diff --git a/chromium/patches/patch-base_test_test__suite.cc b/chromium/patches/patch-base_test_test__suite.cc
deleted file mode 100644
index 77ed35d8c9..0000000000
--- a/chromium/patches/patch-base_test_test__suite.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- base/test/test_suite.cc.orig	2020-07-08 21:40:31.000000000 +0000
-+++ base/test/test_suite.cc
-@@ -70,7 +70,7 @@
- #include "base/test/test_support_ios.h"
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "base/test/fontconfig_util_linux.h"
- #endif
- 
-@@ -386,7 +386,7 @@ void TestSuite::PreInitialize() {
-   testing::GTEST_FLAG(catch_exceptions) = false;
- #endif
-   EnableTerminationOnHeapCorruption();
--#if defined(OS_LINUX) && defined(USE_AURA)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && defined(USE_AURA)
-   // When calling native char conversion functions (e.g wrctomb) we need to
-   // have the locale set. In the absence of such a call the "C" locale is the
-   // default. In the gtk code (below) gtk_init() implicitly sets a locale.
-@@ -634,7 +634,7 @@ void TestSuite::Initialize() {
-   // TODO(jshin): Should we set the locale via an OS X locale API here?
-   i18n::SetICUDefaultLocale("en_US");
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   SetUpFontconfig();
- #endif
- 
diff --git a/chromium/patches/patch-base_third__party_libevent_BUILD.gn b/chromium/patches/patch-base_third__party_libevent_BUILD.gn
deleted file mode 100644
index 767dfed2c1..0000000000
--- a/chromium/patches/patch-base_third__party_libevent_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- base/third_party/libevent/BUILD.gn.orig	2020-07-15 18:55:48.000000000 +0000
-+++ base/third_party/libevent/BUILD.gn
-@@ -45,11 +45,25 @@ static_library("libevent") {
-     include_dirs = [ "mac" ]
-   } else if (is_linux) {
-     sources += [
--      "epoll.c",
-+      "kqueue.c",
-       "linux/config.h",
-       "linux/event-config.h",
-     ]
-     include_dirs = [ "linux" ]
-+  } else if (is_freebsd) {
-+    sources += [
-+      "kqueue.c",
-+      "freebsd/config.h",
-+      "freebsd/event-config.h",
-+    ]
-+    include_dirs = [ "freebsd" ]
-+  } else if (is_netbsd) {
-+    sources += [
-+      "kqueue.c",
-+      "netbsd/config.h",
-+      "netbsd/event-config.h",
-+    ]
-+    include_dirs = [ "netbsd" ]
-   } else if (is_android) {
-     sources += [
-       "android/config.h",
diff --git a/chromium/patches/patch-base_third__party_libevent_event-config.h b/chromium/patches/patch-base_third__party_libevent_event-config.h
deleted file mode 100644
index 60dd729bc0..0000000000
--- a/chromium/patches/patch-base_third__party_libevent_event-config.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/third_party/libevent/event-config.h.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/third_party/libevent/event-config.h
-@@ -15,6 +15,8 @@
- #include "base/third_party/libevent/linux/event-config.h"
- #elif defined(__FreeBSD__)
- #include "base/third_party/libevent/freebsd/event-config.h"
-+#elif defined(__NetBSD__)
-+#include "base/third_party/libevent/netbsd/event-config.h"
- #elif defined(__sun)
- #include "base/third_party/libevent/solaris/event-config.h"
- #elif defined(_AIX)
diff --git a/chromium/patches/patch-base_third__party_libevent_netbsd_config.h b/chromium/patches/patch-base_third__party_libevent_netbsd_config.h
deleted file mode 100644
index 26de331d39..0000000000
--- a/chromium/patches/patch-base_third__party_libevent_netbsd_config.h
+++ /dev/null
@@ -1,271 +0,0 @@
-$NetBSD$
-
---- base/third_party/libevent/netbsd/config.h.orig	2016-11-12 05:01:22.790720883 +0000
-+++ base/third_party/libevent/netbsd/config.h
-@@ -0,0 +1,266 @@
-+/* config.h.  Generated from config.h.in by configure.  */
-+/* config.h.in.  Generated from configure.in by autoheader.  */
-+
-+/* Define if clock_gettime is available in libc */
-+#define DNS_USE_CPU_CLOCK_FOR_ID 1
-+
-+/* Define is no secure id variant is available */
-+/* #undef DNS_USE_GETTIMEOFDAY_FOR_ID */
-+
-+/* Define to 1 if you have the `clock_gettime' function. */
-+#define HAVE_CLOCK_GETTIME 1
-+
-+/* Define if /dev/poll is available */
-+/* #undef HAVE_DEVPOLL */
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#define HAVE_DLFCN_H 1
-+
-+/* Define if your system supports the epoll system calls */
-+/* #undef HAVE_EPOLL */
-+
-+/* Define to 1 if you have the `epoll_ctl' function. */
-+/* #undef HAVE_EPOLL_CTL */
-+
-+/* Define if your system supports event ports */
-+/* #undef HAVE_EVENT_PORTS */
-+
-+/* Define to 1 if you have the `fcntl' function. */
-+#define HAVE_FCNTL 1
-+
-+/* Define to 1 if you have the <fcntl.h> header file. */
-+#define HAVE_FCNTL_H 1
-+
-+/* Define to 1 if the system has the type `fd_mask'. */
-+#define HAVE_FD_MASK 1
-+
-+/* Define to 1 if you have the `getaddrinfo' function. */
-+#define HAVE_GETADDRINFO 1
-+
-+/* Define to 1 if you have the `getegid' function. */
-+#define HAVE_GETEGID 1
-+
-+/* Define to 1 if you have the `geteuid' function. */
-+#define HAVE_GETEUID 1
-+
-+/* Define to 1 if you have the `getnameinfo' function. */
-+#define HAVE_GETNAMEINFO 1
-+
-+/* Define to 1 if you have the `gettimeofday' function. */
-+#define HAVE_GETTIMEOFDAY 1
-+
-+/* Define to 1 if you have the `inet_ntop' function. */
-+#define HAVE_INET_NTOP 1
-+
-+/* Define to 1 if you have the <inttypes.h> header file. */
-+#define HAVE_INTTYPES_H 1
-+
-+/* Define to 1 if you have the `issetugid' function. */
-+#define HAVE_ISSETUGID 1
-+
-+/* Define to 1 if you have the `kqueue' function. */
-+#define HAVE_KQUEUE 1
-+
-+/* Define to 1 if you have the `nsl' library (-lnsl). */
-+/* #undef HAVE_LIBNSL */
-+
-+/* Define to 1 if you have the `resolv' library (-lresolv). */
-+/* #undef HAVE_LIBRESOLV */
-+
-+/* Define to 1 if you have the `rt' library (-lrt). */
-+#define HAVE_LIBRT 1
-+
-+/* Define to 1 if you have the `socket' library (-lsocket). */
-+/* #undef HAVE_LIBSOCKET */
-+
-+/* Define to 1 if you have the <memory.h> header file. */
-+#define HAVE_MEMORY_H 1
-+
-+/* Define to 1 if you have the <netinet/in6.h> header file. */
-+/* #undef HAVE_NETINET_IN6_H */
-+
-+/* Define to 1 if you have the `poll' function. */
-+#define HAVE_POLL 1
-+
-+/* Define to 1 if you have the <poll.h> header file. */
-+#define HAVE_POLL_H 1
-+
-+/* Define to 1 if you have the `port_create' function. */
-+/* #undef HAVE_PORT_CREATE */
-+
-+/* Define to 1 if you have the <port.h> header file. */
-+/* #undef HAVE_PORT_H */
-+
-+/* Define to 1 if you have the `select' function. */
-+#define HAVE_SELECT 1
-+
-+/* Define if F_SETFD is defined in <fcntl.h> */
-+#define HAVE_SETFD 1
-+
-+/* Define to 1 if you have the `sigaction' function. */
-+#define HAVE_SIGACTION 1
-+
-+/* Define to 1 if you have the `signal' function. */
-+#define HAVE_SIGNAL 1
-+
-+/* Define to 1 if you have the <signal.h> header file. */
-+#define HAVE_SIGNAL_H 1
-+
-+/* Define to 1 if you have the <stdarg.h> header file. */
-+#define HAVE_STDARG_H 1
-+
-+/* Define to 1 if you have the <stdint.h> header file. */
-+#define HAVE_STDINT_H 1
-+
-+/* Define to 1 if you have the <stdlib.h> header file. */
-+#define HAVE_STDLIB_H 1
-+
-+/* Define to 1 if you have the <strings.h> header file. */
-+#define HAVE_STRINGS_H 1
-+
-+/* Define to 1 if you have the <string.h> header file. */
-+#define HAVE_STRING_H 1
-+
-+/* Define to 1 if you have the `strlcpy' function. */
-+#define HAVE_STRLCPY 1
-+
-+/* Define to 1 if you have the `strsep' function. */
-+#define HAVE_STRSEP 1
-+
-+/* Define to 1 if you have the `strtok_r' function. */
-+#define HAVE_STRTOK_R 1
-+
-+/* Define to 1 if you have the `strtoll' function. */
-+#define HAVE_STRTOLL 1
-+
-+/* Define to 1 if the system has the type `struct in6_addr'. */
-+#define HAVE_STRUCT_IN6_ADDR 1
-+
-+/* Define to 1 if you have the <sys/devpoll.h> header file. */
-+/* #undef HAVE_SYS_DEVPOLL_H */
-+
-+/* Define to 1 if you have the <sys/epoll.h> header file. */
-+/* #undef HAVE_SYS_EPOLL_H */
-+
-+/* Define to 1 if you have the <sys/event.h> header file. */
-+#define HAVE_SYS_EVENT_H 1
-+
-+/* Define to 1 if you have the <sys/ioctl.h> header file. */
-+#define HAVE_SYS_IOCTL_H 1
-+
-+/* Define to 1 if you have the <sys/param.h> header file. */
-+#define HAVE_SYS_PARAM_H 1
-+
-+/* Define to 1 if you have the <sys/queue.h> header file. */
-+#define HAVE_SYS_QUEUE_H 1
-+
-+/* Define to 1 if you have the <sys/select.h> header file. */
-+#define HAVE_SYS_SELECT_H 1
-+
-+/* Define to 1 if you have the <sys/socket.h> header file. */
-+#define HAVE_SYS_SOCKET_H 1
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#define HAVE_SYS_STAT_H 1
-+
-+/* Define to 1 if you have the <sys/time.h> header file. */
-+#define HAVE_SYS_TIME_H 1
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#define HAVE_SYS_TYPES_H 1
-+
-+/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */
-+#define HAVE_TAILQFOREACH 1
-+
-+/* Define if timeradd is defined in <sys/time.h> */
-+#define HAVE_TIMERADD 1
-+
-+/* Define if timerclear is defined in <sys/time.h> */
-+#define HAVE_TIMERCLEAR 1
-+
-+/* Define if timercmp is defined in <sys/time.h> */
-+#define HAVE_TIMERCMP 1
-+
-+/* Define if timerisset is defined in <sys/time.h> */
-+#define HAVE_TIMERISSET 1
-+
-+/* Define to 1 if the system has the type `uint16_t'. */
-+#define HAVE_UINT16_T 1
-+
-+/* Define to 1 if the system has the type `uint32_t'. */
-+#define HAVE_UINT32_T 1
-+
-+/* Define to 1 if the system has the type `uint64_t'. */
-+#define HAVE_UINT64_T 1
-+
-+/* Define to 1 if the system has the type `uint8_t'. */
-+#define HAVE_UINT8_T 1
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#define HAVE_UNISTD_H 1
-+
-+/* Define to 1 if you have the `vasprintf' function. */
-+#define HAVE_VASPRINTF 1
-+
-+/* Define if kqueue works correctly with pipes */
-+#define HAVE_WORKING_KQUEUE 1
-+
-+/* Name of package */
-+#define PACKAGE "libevent"
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#define PACKAGE_BUGREPORT ""
-+
-+/* Define to the full name of this package. */
-+#define PACKAGE_NAME ""
-+
-+/* Define to the full name and version of this package. */
-+#define PACKAGE_STRING ""
-+
-+/* Define to the one symbol short name of this package. */
-+#define PACKAGE_TARNAME ""
-+
-+/* Define to the version of this package. */
-+#define PACKAGE_VERSION ""
-+
-+/* The size of `int', as computed by sizeof. */
-+#define SIZEOF_INT 4
-+
-+/* The size of `long', as computed by sizeof. */
-+#define SIZEOF_LONG 8
-+
-+/* The size of `long long', as computed by sizeof. */
-+#define SIZEOF_LONG_LONG 8
-+
-+/* The size of `short', as computed by sizeof. */
-+#define SIZEOF_SHORT 2
-+
-+/* Define to 1 if you have the ANSI C header files. */
-+#define STDC_HEADERS 1
-+
-+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-+#define TIME_WITH_SYS_TIME 1
-+
-+/* Version number of package */
-+#define VERSION "1.4.13-stable"
-+
-+/* Define to appropriate substitue if compiler doesnt have __func__ */
-+/* #undef __func__ */
-+
-+/* Define to empty if `const' does not conform to ANSI C. */
-+/* #undef const */
-+
-+/* Define to `__inline__' or `__inline' if that's what the C compiler
-+   calls it, or to nothing if 'inline' is not supported under any name.  */
-+#ifndef __cplusplus
-+/* #undef inline */
-+#endif
-+
-+/* Define to `int' if <sys/types.h> does not define. */
-+/* #undef pid_t */
-+
-+/* Define to `unsigned int' if <sys/types.h> does not define. */
-+/* #undef size_t */
-+
-+/* Define to unsigned int if you dont have it */
-+/* #undef socklen_t */
diff --git a/chromium/patches/patch-base_third__party_libevent_netbsd_event-config.h b/chromium/patches/patch-base_third__party_libevent_netbsd_event-config.h
deleted file mode 100644
index d0882dbcf6..0000000000
--- a/chromium/patches/patch-base_third__party_libevent_netbsd_event-config.h
+++ /dev/null
@@ -1,289 +0,0 @@
-$NetBSD$
-
---- base/third_party/libevent/netbsd/event-config.h.orig	2016-11-12 05:01:22.831646497 +0000
-+++ base/third_party/libevent/netbsd/event-config.h
-@@ -0,0 +1,284 @@
-+/* event-config.h
-+ * Generated by autoconf; post-processed by libevent.
-+ * Do not edit this file.
-+ * Do not rely on macros in this file existing in later versions.
-+ */
-+#ifndef _EVENT_CONFIG_H_
-+#define _EVENT_CONFIG_H_
-+/* config.h.  Generated from config.h.in by configure.  */
-+/* config.h.in.  Generated from configure.in by autoheader.  */
-+
-+/* Define if clock_gettime is available in libc */
-+#define _EVENT_DNS_USE_CPU_CLOCK_FOR_ID 1
-+
-+/* Define is no secure id variant is available */
-+/* #undef _EVENT_DNS_USE_GETTIMEOFDAY_FOR_ID */
-+
-+/* Define to 1 if you have the `clock_gettime' function. */
-+#define _EVENT_HAVE_CLOCK_GETTIME 1
-+
-+/* Define if /dev/poll is available */
-+/* #undef _EVENT_HAVE_DEVPOLL */
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#define _EVENT_HAVE_DLFCN_H 1
-+
-+/* Define if your system supports the epoll system calls */
-+/* #undef _EVENT_HAVE_EPOLL */
-+
-+/* Define to 1 if you have the `epoll_ctl' function. */
-+/* #undef _EVENT_HAVE_EPOLL_CTL */
-+
-+/* Define if your system supports event ports */
-+/* #undef _EVENT_HAVE_EVENT_PORTS */
-+
-+/* Define to 1 if you have the `fcntl' function. */
-+#define _EVENT_HAVE_FCNTL 1
-+
-+/* Define to 1 if you have the <fcntl.h> header file. */
-+#define _EVENT_HAVE_FCNTL_H 1
-+
-+/* Define to 1 if the system has the type `fd_mask'. */
-+#define _EVENT_HAVE_FD_MASK 1
-+
-+/* Define to 1 if you have the `getaddrinfo' function. */
-+#define _EVENT_HAVE_GETADDRINFO 1
-+
-+/* Define to 1 if you have the `getegid' function. */
-+#define _EVENT_HAVE_GETEGID 1
-+
-+/* Define to 1 if you have the `geteuid' function. */
-+#define _EVENT_HAVE_GETEUID 1
-+
-+/* Define to 1 if you have the `getnameinfo' function. */
-+#define _EVENT_HAVE_GETNAMEINFO 1
-+
-+/* Define to 1 if you have the `gettimeofday' function. */
-+#define _EVENT_HAVE_GETTIMEOFDAY 1
-+
-+/* Define to 1 if you have the `inet_ntop' function. */
-+#define _EVENT_HAVE_INET_NTOP 1
-+
-+/* Define to 1 if you have the <inttypes.h> header file. */
-+#define _EVENT_HAVE_INTTYPES_H 1
-+
-+/* Define to 1 if you have the `issetugid' function. */
-+#define _EVENT_HAVE_ISSETUGID 1
-+
-+/* Define to 1 if you have the `kqueue' function. */
-+#define _EVENT_HAVE_KQUEUE 1
-+
-+/* Define to 1 if you have the `nsl' library (-lnsl). */
-+/* #undef _EVENT_HAVE_LIBNSL */
-+
-+/* Define to 1 if you have the `resolv' library (-lresolv). */
-+/* #undef _EVENT_HAVE_LIBRESOLV */
-+
-+/* Define to 1 if you have the `rt' library (-lrt). */
-+#define _EVENT_HAVE_LIBRT 1
-+
-+/* Define to 1 if you have the `socket' library (-lsocket). */
-+/* #undef _EVENT_HAVE_LIBSOCKET */
-+
-+/* Define to 1 if you have the <memory.h> header file. */
-+#define _EVENT_HAVE_MEMORY_H 1
-+
-+/* Define to 1 if you have the <netinet/in6.h> header file. */
-+/* #undef _EVENT_HAVE_NETINET_IN6_H */
-+
-+/* Define to 1 if you have the `poll' function. */
-+#define _EVENT_HAVE_POLL 1
-+
-+/* Define to 1 if you have the <poll.h> header file. */
-+#define _EVENT_HAVE_POLL_H 1
-+
-+/* Define to 1 if you have the `port_create' function. */
-+/* #undef _EVENT_HAVE_PORT_CREATE */
-+
-+/* Define to 1 if you have the <port.h> header file. */
-+/* #undef _EVENT_HAVE_PORT_H */
-+
-+/* Define to 1 if you have the `select' function. */
-+#define _EVENT_HAVE_SELECT 1
-+
-+/* Define if F_SETFD is defined in <fcntl.h> */
-+#define _EVENT_HAVE_SETFD 1
-+
-+/* Define to 1 if you have the `sigaction' function. */
-+#define _EVENT_HAVE_SIGACTION 1
-+
-+/* Define to 1 if you have the `signal' function. */
-+#define _EVENT_HAVE_SIGNAL 1
-+
-+/* Define to 1 if you have the <signal.h> header file. */
-+#define _EVENT_HAVE_SIGNAL_H 1
-+
-+/* Define to 1 if you have the <stdarg.h> header file. */
-+#define _EVENT_HAVE_STDARG_H 1
-+
-+/* Define to 1 if you have the <stdint.h> header file. */
-+#define _EVENT_HAVE_STDINT_H 1
-+
-+/* Define to 1 if you have the <stdlib.h> header file. */
-+#define _EVENT_HAVE_STDLIB_H 1
-+
-+/* Define to 1 if you have the <strings.h> header file. */
-+#define _EVENT_HAVE_STRINGS_H 1
-+
-+/* Define to 1 if you have the <string.h> header file. */
-+#define _EVENT_HAVE_STRING_H 1
-+
-+/* Define to 1 if you have the `strlcpy' function. */
-+#define _EVENT_HAVE_STRLCPY 1
-+
-+/* Define to 1 if you have the `strsep' function. */
-+#define _EVENT_HAVE_STRSEP 1
-+
-+/* Define to 1 if you have the `strtok_r' function. */
-+#define _EVENT_HAVE_STRTOK_R 1
-+
-+/* Define to 1 if you have the `strtoll' function. */
-+#define _EVENT_HAVE_STRTOLL 1
-+
-+/* Define to 1 if the system has the type `struct in6_addr'. */
-+#define _EVENT_HAVE_STRUCT_IN6_ADDR 1
-+
-+/* Define to 1 if you have the <sys/devpoll.h> header file. */
-+/* #undef _EVENT_HAVE_SYS_DEVPOLL_H */
-+
-+/* Define to 1 if you have the <sys/epoll.h> header file. */
-+/* #undef _EVENT_HAVE_SYS_EPOLL_H */
-+
-+/* Define to 1 if you have the <sys/event.h> header file. */
-+#define _EVENT_HAVE_SYS_EVENT_H 1
-+
-+/* Define to 1 if you have the <sys/ioctl.h> header file. */
-+#define _EVENT_HAVE_SYS_IOCTL_H 1
-+
-+/* Define to 1 if you have the <sys/param.h> header file. */
-+#define _EVENT_HAVE_SYS_PARAM_H 1
-+
-+/* Define to 1 if you have the <sys/queue.h> header file. */
-+#define _EVENT_HAVE_SYS_QUEUE_H 1
-+
-+/* Define to 1 if you have the <sys/select.h> header file. */
-+#define _EVENT_HAVE_SYS_SELECT_H 1
-+
-+/* Define to 1 if you have the <sys/socket.h> header file. */
-+#define _EVENT_HAVE_SYS_SOCKET_H 1
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#define _EVENT_HAVE_SYS_STAT_H 1
-+
-+/* Define to 1 if you have the <sys/time.h> header file. */
-+#define _EVENT_HAVE_SYS_TIME_H 1
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#define _EVENT_HAVE_SYS_TYPES_H 1
-+
-+/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */
-+#define _EVENT_HAVE_TAILQFOREACH 1
-+
-+/* Define if timeradd is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERADD 1
-+
-+/* Define if timerclear is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERCLEAR 1
-+
-+/* Define if timercmp is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERCMP 1
-+
-+/* Define if timerisset is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERISSET 1
-+
-+/* Define to 1 if the system has the type `uint16_t'. */
-+#define _EVENT_HAVE_UINT16_T 1
-+
-+/* Define to 1 if the system has the type `uint32_t'. */
-+#define _EVENT_HAVE_UINT32_T 1
-+
-+/* Define to 1 if the system has the type `uint64_t'. */
-+#define _EVENT_HAVE_UINT64_T 1
-+
-+/* Define to 1 if the system has the type `uint8_t'. */
-+#define _EVENT_HAVE_UINT8_T 1
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#define _EVENT_HAVE_UNISTD_H 1
-+
-+/* Define to 1 if you have the `vasprintf' function. */
-+#define _EVENT_HAVE_VASPRINTF 1
-+
-+/* Define if kqueue works correctly with pipes */
-+#define _EVENT_HAVE_WORKING_KQUEUE 1
-+
-+/* Define to the sub-directory in which libtool stores uninstalled libraries.
-+   */
-+#define _EVENT_LT_OBJDIR ".libs/"
-+
-+/* Numeric representation of the version */
-+#define _EVENT_NUMERIC_VERSION 0x01040f00
-+
-+/* Name of package */
-+#define _EVENT_PACKAGE "libevent"
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#define _EVENT_PACKAGE_BUGREPORT ""
-+
-+/* Define to the full name of this package. */
-+#define _EVENT_PACKAGE_NAME ""
-+
-+/* Define to the full name and version of this package. */
-+#define _EVENT_PACKAGE_STRING ""
-+
-+/* Define to the one symbol short name of this package. */
-+#define _EVENT_PACKAGE_TARNAME ""
-+
-+/* Define to the home page for this package. */
-+#define _EVENT_PACKAGE_URL ""
-+
-+/* Define to the version of this package. */
-+#define _EVENT_PACKAGE_VERSION ""
-+
-+/* The size of `int', as computed by sizeof. */
-+#define _EVENT_SIZEOF_INT 4
-+
-+/* The size of `long', as computed by sizeof. */
-+#define _EVENT_SIZEOF_LONG 8
-+
-+/* The size of `long long', as computed by sizeof. */
-+#define _EVENT_SIZEOF_LONG_LONG 8
-+
-+/* The size of `short', as computed by sizeof. */
-+#define _EVENT_SIZEOF_SHORT 2
-+
-+/* Define to 1 if you have the ANSI C header files. */
-+#define _EVENT_STDC_HEADERS 1
-+
-+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-+#define _EVENT_TIME_WITH_SYS_TIME 1
-+
-+/* Version number of package */
-+#define _EVENT_VERSION "1.4.15"
-+
-+/* Define to appropriate substitue if compiler doesnt have __func__ */
-+/* #undef _EVENT___func__ */
-+
-+/* Define to empty if `const' does not conform to ANSI C. */
-+/* #undef _EVENT_const */
-+
-+/* Define to `__inline__' or `__inline' if that's what the C compiler
-+   calls it, or to nothing if 'inline' is not supported under any name.  */
-+#ifndef _EVENT___cplusplus
-+/* #undef _EVENT_inline */
-+#endif
-+
-+/* Define to `int' if <sys/types.h> does not define. */
-+/* #undef _EVENT_pid_t */
-+
-+/* Define to `unsigned int' if <sys/types.h> does not define. */
-+/* #undef _EVENT_size_t */
-+
-+/* Define to unsigned int if you dont have it */
-+/* #undef _EVENT_socklen_t */
-+#endif
diff --git a/chromium/patches/patch-base_threading_hang__watcher.cc b/chromium/patches/patch-base_threading_hang__watcher.cc
new file mode 100644
index 0000000000..1a55cba6d9
--- /dev/null
+++ b/chromium/patches/patch-base_threading_hang__watcher.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/threading/hang_watcher.cc.orig	2024-07-24 02:44:22.767438000 +0000
++++ base/threading/hang_watcher.cc
+@@ -354,7 +354,7 @@ void HangWatcher::InitializeOnMainThread
+ 
+   bool enable_hang_watcher = base::FeatureList::IsEnabled(kEnableHangWatcher);
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+   if (is_zygote_child) {
+     enable_hang_watcher =
+         enable_hang_watcher &&
diff --git a/chromium/patches/patch-base_threading_platform__thread.h b/chromium/patches/patch-base_threading_platform__thread.h
index 6f4410050b..7be789deee 100644
--- a/chromium/patches/patch-base_threading_platform__thread.h
+++ b/chromium/patches/patch-base_threading_platform__thread.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- base/threading/platform_thread.h.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/threading/platform_thread.h.orig	2024-07-24 02:44:22.767438000 +0000
 +++ base/threading/platform_thread.h
-@@ -221,7 +221,7 @@ class BASE_EXPORT PlatformThread {
- 
-   static ThreadPriority GetCurrentThreadPriority();
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Toggles a specific thread's priority at runtime. This can be used to
-   // change the priority of a thread in a different process and will fail
-   // if the calling process does not have proper permissions. The
+@@ -49,6 +49,8 @@ typedef DWORD PlatformThreadId;
+ typedef zx_koid_t PlatformThreadId;
+ #elif BUILDFLAG(IS_APPLE)
+ typedef mach_port_t PlatformThreadId;
++#elif BUILDFLAG(IS_BSD)
++typedef uint64_t PlatformThreadId;
+ #elif BUILDFLAG(IS_POSIX)
+ typedef pid_t PlatformThreadId;
+ #endif
diff --git a/chromium/patches/patch-base_threading_platform__thread__bsd.cc b/chromium/patches/patch-base_threading_platform__thread__bsd.cc
new file mode 100644
index 0000000000..f1e9c787c7
--- /dev/null
+++ b/chromium/patches/patch-base_threading_platform__thread__bsd.cc
@@ -0,0 +1,40 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/threading/platform_thread_bsd.cc.orig	2024-08-01 14:08:56.694817081 +0000
++++ base/threading/platform_thread_bsd.cc
+@@ -0,0 +1,31 @@
++// Copyright 2023 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++// Description: These are stubs for *BSD.
++
++#include "base/threading/platform_thread.h"
++
++namespace base {
++namespace internal {
++
++bool CanSetThreadTypeToRealtimeAudio() {
++  return false;
++}
++
++bool SetCurrentThreadTypeForPlatform(ThreadType thread_type,
++                                MessagePumpType pump_type_hint) {
++  return false;
++}
++
++std::optional<ThreadPriorityForTest>
++GetCurrentThreadPriorityForPlatformForTest() {
++  return std::nullopt;
++}
++}  // namespace internal
++
++// static
++void PlatformThreadBase::SetName(const std::string& name) {
++  SetNameCommon(name);
++}
++
++}  // namespace base
diff --git a/chromium/patches/patch-base_threading_platform__thread__internal__posix.cc b/chromium/patches/patch-base_threading_platform__thread__internal__posix.cc
new file mode 100644
index 0000000000..c20e164b87
--- /dev/null
+++ b/chromium/patches/patch-base_threading_platform__thread__internal__posix.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/threading/platform_thread_internal_posix.cc.orig	2024-07-24 02:44:22.767438000 +0000
++++ base/threading/platform_thread_internal_posix.cc
+@@ -42,7 +42,7 @@ ThreadPriorityForTest NiceValueToThreadP
+ }
+ 
+ int GetCurrentThreadNiceValue() {
+-#if BUILDFLAG(IS_NACL)
++#if BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+   NOTIMPLEMENTED();
+   return 0;
+ #else
diff --git a/chromium/patches/patch-base_threading_platform__thread__linux.cc b/chromium/patches/patch-base_threading_platform__thread__linux.cc
deleted file mode 100644
index 3e03699ca0..0000000000
--- a/chromium/patches/patch-base_threading_platform__thread__linux.cc
+++ /dev/null
@@ -1,32 +0,0 @@
-$NetBSD$
-
---- base/threading/platform_thread_linux.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/threading/platform_thread_linux.cc
-@@ -18,7 +18,9 @@
- 
- #if !defined(OS_NACL) && !defined(OS_AIX)
- #include <pthread.h>
-+#if !defined(OS_BSD)
- #include <sys/prctl.h>
-+#endif
- #include <sys/resource.h>
- #include <sys/time.h>
- #include <sys/types.h>
-@@ -99,7 +101,7 @@ const ThreadPriorityToNiceValuePair kThr
- 
- Optional<bool> CanIncreaseCurrentThreadPriorityForPlatform(
-     ThreadPriority priority) {
--#if !defined(OS_NACL)
-+#if !defined(OS_NACL) && !defined(OS_BSD)
-   // A non-zero soft-limit on RLIMIT_RTPRIO is required to be allowed to invoke
-   // pthread_setschedparam in SetCurrentThreadPriorityForPlatform().
-   struct rlimit rlim;
-@@ -141,7 +143,7 @@ Optional<ThreadPriority> GetCurrentThrea
- void PlatformThread::SetName(const std::string& name) {
-   ThreadIdNameManager::GetInstance()->SetName(name);
- 
--#if !defined(OS_NACL) && !defined(OS_AIX)
-+#if !defined(OS_NACL) && !defined(OS_AIX) && !defined(OS_BSD)
-   // On linux we can get the thread names to show up in the debugger by setting
-   // the process name for the LWP.  We don't want to do this for the main
-   // thread because that would rename the process, causing tools like killall
diff --git a/chromium/patches/patch-base_threading_platform__thread__posix.cc b/chromium/patches/patch-base_threading_platform__thread__posix.cc
index 694b1ea267..de0118783a 100644
--- a/chromium/patches/patch-base_threading_platform__thread__posix.cc
+++ b/chromium/patches/patch-base_threading_platform__thread__posix.cc
@@ -1,13 +1,59 @@
 $NetBSD$
 
---- base/threading/platform_thread_posix.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/threading/platform_thread_posix.cc.orig	2024-07-24 02:44:22.767438000 +0000
 +++ base/threading/platform_thread_posix.cc
-@@ -66,7 +66,7 @@ void* ThreadFunc(void* params) {
+@@ -77,11 +77,11 @@ void* ThreadFunc(void* params) {
      if (!thread_params->joinable)
-       base::ThreadRestrictions::SetSingletonAllowed(false);
+       base::DisallowSingleton();
+ 
+-#if PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
++#if PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && !BUILDFLAG(IS_BSD)
+     partition_alloc::internal::StackTopRegistry::Get().NotifyThreadCreated();
+ #endif
+ 
+-#if !BUILDFLAG(IS_NACL)
++#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_APPLE)
+     PlatformThread::SetCurrentThreadRealtimePeriodValue(
+         delegate->GetRealtimePeriod());
+@@ -265,6 +265,8 @@ PlatformThreadId PlatformThreadBase::Cur
+   return reinterpret_cast<int32_t>(pthread_self());
+ #elif BUILDFLAG(IS_POSIX) && BUILDFLAG(IS_AIX)
+   return pthread_self();
++#elif BUILDFLAG(IS_BSD)
++  return reinterpret_cast<uint64_t>(pthread_self());
+ #elif BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_AIX)
+   return reinterpret_cast<int64_t>(pthread_self());
+ #endif
+@@ -355,7 +357,7 @@ void PlatformThreadBase::Detach(Platform
+ 
+ // static
+ bool PlatformThreadBase::CanChangeThreadType(ThreadType from, ThreadType to) {
+-#if BUILDFLAG(IS_NACL)
++#if BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+   return false;
+ #else
+   if (from >= to) {
+@@ -376,6 +378,9 @@ void SetCurrentThreadTypeImpl(ThreadType
+                               MessagePumpType pump_type_hint) {
+ #if BUILDFLAG(IS_NACL)
+   NOTIMPLEMENTED();
++// avoid pledge(2) violation
++#elif BUILDFLAG(IS_BSD)
++   NOTIMPLEMENTED();
+ #else
+   if (internal::SetCurrentThreadTypeForPlatform(thread_type, pump_type_hint))
+     return;
+@@ -398,7 +403,7 @@ void SetCurrentThreadTypeImpl(ThreadType
  
--#if !defined(OS_NACL)
-+#if !defined(OS_NACL) && !defined(OS_BSD)
-     // Threads on linux/android may inherit their priority from the thread
-     // where they were created. This explicitly sets the priority of all new
-     // threads.
+ // static
+ ThreadPriorityForTest PlatformThreadBase::GetCurrentThreadPriorityForTest() {
+-#if BUILDFLAG(IS_NACL)
++#if BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD)
+   NOTIMPLEMENTED();
+   return ThreadPriorityForTest::kNormal;
+ #else
diff --git a/chromium/patches/patch-base_threading_platform__thread__unittest.cc b/chromium/patches/patch-base_threading_platform__thread__unittest.cc
index d3051cfebd..61a2f9f5ac 100644
--- a/chromium/patches/patch-base_threading_platform__thread__unittest.cc
+++ b/chromium/patches/patch-base_threading_platform__thread__unittest.cc
@@ -1,22 +1,44 @@
 $NetBSD$
 
---- base/threading/platform_thread_unittest.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/threading/platform_thread_unittest.cc.orig	2024-07-24 02:44:22.767438000 +0000
 +++ base/threading/platform_thread_unittest.cc
-@@ -302,7 +302,7 @@ TEST(PlatformThreadTest,
+@@ -38,7 +38,7 @@
+ #include "base/time/time.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include <pthread.h>
+ #include <sys/syscall.h>
+ #include <sys/types.h>
+@@ -429,7 +429,7 @@ TEST(PlatformThreadTest,
  // and hardcodes what we know. Please inform scheduler-dev%chromium.org@localhost if this
  // proprerty changes for a given platform.
- TEST(PlatformThreadTest, CanIncreaseThreadPriority) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ TEST(PlatformThreadTest, CanChangeThreadType) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // On Ubuntu, RLIMIT_NICE and RLIMIT_RTPRIO are 0 by default, so we won't be
-   // able to increase priority to any level.
-   constexpr bool kCanIncreasePriority = false;
-@@ -398,7 +398,7 @@ TEST(PlatformThreadTest, SetHugeThreadNa
- TEST(PlatformThreadTest, GetDefaultThreadStackSize) {
-   size_t stack_size = PlatformThread::GetDefaultThreadStackSize();
- #if defined(OS_WIN) || defined(OS_IOS) || defined(OS_FUCHSIA) || \
--    (defined(OS_LINUX) && !defined(THREAD_SANITIZER)) ||         \
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(THREAD_SANITIZER)) ||         \
-     (defined(OS_ANDROID) && !defined(ADDRESS_SANITIZER))
-   EXPECT_EQ(0u, stack_size);
- #else
+   // able to increase priority to any level unless we are root (euid == 0).
+   bool kCanIncreasePriority = false;
+@@ -713,12 +713,16 @@ INSTANTIATE_TEST_SUITE_P(
+ 
+ #endif  // BUILDFLAG(IS_APPLE)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ 
+ namespace {
+ 
+ bool IsTidCacheCorrect() {
++#if BUILDFLAG(IS_BSD)
++  return PlatformThread::CurrentId() == reinterpret_cast<int64_t>(pthread_self());
++#else
+   return PlatformThread::CurrentId() == syscall(__NR_gettid);
++#endif
+ }
+ 
+ void* CheckTidCacheCorrectWrapper(void*) {
diff --git a/chromium/patches/patch-base_trace__event_malloc__dump__dump__provider.cc b/chromium/patches/patch-base_trace__event_malloc__dump__dump__provider.cc
deleted file mode 100644
index 23058f3479..0000000000
--- a/chromium/patches/patch-base_trace__event_malloc__dump__dump__provider.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-$NetBSD$
-
---- base/trace_event/malloc_dump_provider.cc.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/trace_event/malloc_dump_provider.cc
-@@ -17,6 +17,8 @@
- 
- #if defined(OS_MACOSX)
- #include <malloc/malloc.h>
-+#elif defined(OS_FREEBSD) || defined(OS_NETBSD)
-+#include <stdlib.h>
- #else
- #include <malloc.h>
- #endif
-@@ -132,6 +134,9 @@ bool MallocDumpProvider::OnMemoryDump(co
-   }
- #elif defined(OS_FUCHSIA)
- // TODO(fuchsia): Port, see https://crbug.com/706592.
-+#elif defined(OS_BSD)
-+  total_virtual_size = 0;
-+  allocated_objects_size = 0;
- #else
-   struct mallinfo info = mallinfo();
-   // In case of Android's jemalloc |arena| is 0 and the outer pages size is
diff --git a/chromium/patches/patch-base_trace__event_malloc__dump__provider.cc b/chromium/patches/patch-base_trace__event_malloc__dump__provider.cc
new file mode 100644
index 0000000000..0fcf0af840
--- /dev/null
+++ b/chromium/patches/patch-base_trace__event_malloc__dump__provider.cc
@@ -0,0 +1,36 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/trace_event/malloc_dump_provider.cc.orig	2024-07-24 02:44:22.783439600 +0000
++++ base/trace_event/malloc_dump_provider.cc
+@@ -29,6 +29,8 @@
+ 
+ #if BUILDFLAG(IS_APPLE)
+ #include <malloc/malloc.h>
++#elif BUILDFLAG(IS_BSD)
++#include <stdlib.h>
+ #else
+ #include <malloc.h>
+ #endif
+@@ -187,7 +189,7 @@ void ReportAppleAllocStats(size_t* total
+ 
+ #if (PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(IS_ANDROID)) || \
+     (!PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && !BUILDFLAG(IS_WIN) &&    \
+-     !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_FUCHSIA))
++     !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_FUCHSIA) && !BUILDFLAG(IS_BSD))
+ void ReportMallinfoStats(ProcessMemoryDump* pmd,
+                          size_t* total_virtual_size,
+                          size_t* resident_size,
+@@ -391,6 +393,9 @@ bool MallocDumpProvider::OnMemoryDump(co
+                      &allocated_objects_count);
+ #elif BUILDFLAG(IS_FUCHSIA)
+ // TODO(fuchsia): Port, see https://crbug.com/706592.
++#elif BUILDFLAG(IS_BSD)
++  total_virtual_size = 0;
++  allocated_objects_size = 0;
+ #else
+   ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size,
+                       &allocated_objects_size, &allocated_objects_count);
diff --git a/chromium/patches/patch-base_trace__event_memory__dump__manager.cc b/chromium/patches/patch-base_trace__event_memory__dump__manager.cc
new file mode 100644
index 0000000000..3b8b9b3dc4
--- /dev/null
+++ b/chromium/patches/patch-base_trace__event_memory__dump__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/trace_event/memory_dump_manager.cc.orig	2024-07-24 02:44:22.787439800 +0000
++++ base/trace_event/memory_dump_manager.cc
+@@ -87,7 +87,7 @@ const char* const MemoryDumpManager::kSy
+ #if defined(MALLOC_MEMORY_TRACING_SUPPORTED)
+     MallocDumpProvider::kAllocatedObjects;
+ #else
+-    nullptr;
++    "";
+ #endif
+ 
+ // static
diff --git a/chromium/patches/patch-base_trace__event_process__memory__dump.cc b/chromium/patches/patch-base_trace__event_process__memory__dump.cc
index 4f6d997678..eaacfb9cd8 100644
--- a/chromium/patches/patch-base_trace__event_process__memory__dump.cc
+++ b/chromium/patches/patch-base_trace__event_process__memory__dump.cc
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- base/trace_event/process_memory_dump.cc.orig	2020-06-25 09:31:18.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/trace_event/process_memory_dump.cc.orig	2024-07-24 02:44:22.787439800 +0000
 +++ base/trace_event/process_memory_dump.cc
-@@ -95,7 +95,7 @@ size_t ProcessMemoryDump::CountResidentB
- #if defined(OS_WIN)
+@@ -118,7 +118,7 @@ std::optional<size_t> ProcessMemoryDump:
+ #if BUILDFLAG(IS_WIN)
    std::unique_ptr<PSAPI_WORKING_SET_EX_INFORMATION[]> vec(
        new PSAPI_WORKING_SET_EX_INFORMATION[max_vec_size]);
--#elif defined(OS_MACOSX)
-+#elif defined(OS_MACOSX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_APPLE)
++#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
    std::unique_ptr<char[]> vec(new char[max_vec_size]);
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
    std::unique_ptr<unsigned char[]> vec(new unsigned char[max_vec_size]);
+@@ -140,7 +140,7 @@ std::optional<size_t> ProcessMemoryDump:
+ 
+     for (size_t i = 0; i < page_count; i++)
+       resident_page_count += vec[i].VirtualAttributes.Valid;
+-#elif BUILDFLAG(IS_FUCHSIA)
++#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+     // TODO(crbug.com/42050620): Implement counting resident bytes.
+     // For now, log and avoid unused variable warnings.
+     NOTIMPLEMENTED_LOG_ONCE();
diff --git a/chromium/patches/patch-base_trace__event_process__memory__dump.h b/chromium/patches/patch-base_trace__event_process__memory__dump.h
deleted file mode 100644
index 0afaa35aad..0000000000
--- a/chromium/patches/patch-base_trace__event_process__memory__dump.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- base/trace_event/process_memory_dump.h.orig	2020-06-25 09:31:18.000000000 +0000
-+++ base/trace_event/process_memory_dump.h
-@@ -22,7 +22,7 @@
- 
- // Define COUNT_RESIDENT_BYTES_SUPPORTED if platform supports counting of the
- // resident memory.
--#if !defined(OS_NACL)
-+#if !defined(OS_NACL) && !defined(OS_BSD)
- #define COUNT_RESIDENT_BYTES_SUPPORTED
- #endif
- 
diff --git a/chromium/patches/patch-base_tracing_trace__time.cc b/chromium/patches/patch-base_tracing_trace__time.cc
new file mode 100644
index 0000000000..b2b0747dbb
--- /dev/null
+++ b/chromium/patches/patch-base_tracing_trace__time.cc
@@ -0,0 +1,36 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/tracing/trace_time.cc.orig	2024-07-24 02:44:22.803441500 +0000
++++ base/tracing/trace_time.cc
+@@ -8,13 +8,19 @@
+ #include "build/build_config.h"
+ #include "third_party/perfetto/include/perfetto/base/time.h"
+ 
++#if BUILDFLAG(IS_FREEBSD)
++#define CLOCK_BOOTTIME CLOCK_UPTIME
++#elif BUILDFLAG(IS_NETBSD)
++#define CLOCK_BOOTTIME CLOCK_MONOTONIC
++#endif
++
+ namespace base {
+ namespace tracing {
+ 
+ int64_t TraceBootTicksNow() {
+   // On Windows and Mac, TRACE_TIME_TICKS_NOW() behaves like boottime already.
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   struct timespec ts;
+   int res = clock_gettime(CLOCK_BOOTTIME, &ts);
+   if (res != -1)
+@@ -24,4 +30,4 @@ int64_t TraceBootTicksNow() {
+ }
+ 
+ }  // namespace tracing
+-}  // namespace base
+\ No newline at end of file
++}  // namespace base
diff --git a/chromium/patches/patch-base_tracing_trace__time.h b/chromium/patches/patch-base_tracing_trace__time.h
new file mode 100644
index 0000000000..58f1c62536
--- /dev/null
+++ b/chromium/patches/patch-base_tracing_trace__time.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- base/tracing/trace_time.h.orig	2024-07-24 02:44:22.803441500 +0000
++++ base/tracing/trace_time.h
+@@ -12,7 +12,7 @@ namespace base {
+ namespace tracing {
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ // Linux, Android, and Fuchsia all use CLOCK_MONOTONIC. See crbug.com/166153
+ // about efforts to unify base::TimeTicks across all platforms.
+ constexpr perfetto::protos::pbzero::BuiltinClock kTraceClockId =
diff --git a/chromium/patches/patch-build_config_BUILD.gn b/chromium/patches/patch-build_config_BUILD.gn
index 0a06f6111d..061ef0da5c 100644
--- a/chromium/patches/patch-build_config_BUILD.gn
+++ b/chromium/patches/patch-build_config_BUILD.gn
@@ -1,43 +1,19 @@
 $NetBSD$
 
---- build/config/BUILD.gn.orig	2020-06-25 09:31:19.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/config/BUILD.gn.orig	2024-07-24 02:44:22.883449300 +0000
 +++ build/config/BUILD.gn
-@@ -133,7 +133,7 @@ config("debug") {
-       # builds, and we have to tell it to turn it off.
-       defines += [ "_HAS_ITERATOR_DEBUGGING=0" ]
-     }
--  } else if (is_linux && current_cpu == "x64" && enable_iterator_debugging) {
-+  } else if ((is_linux || is_bsd) && current_cpu == "x64" && enable_iterator_debugging) {
-     # Enable libstdc++ debugging facilities to help catch problems early, see
-     # http://crbug.com/65151 .
-     # TODO(phajdan.jr): Should we enable this for all of POSIX?
-@@ -235,6 +235,11 @@ config("default_libs") {
-       "pthread",
-       "rt",
-     ]
+@@ -213,6 +213,10 @@ config("default_libs") {
+     # Targets should choose to explicitly link frameworks they require. Since
+     # linking can have run-time side effects, nothing should be listed here.
+     libs = []
 +  } else if (is_bsd) {
 +    libs = [
 +      "pthread",
-+      "rt",
 +    ]
-   }
- }
- 
-@@ -316,7 +321,7 @@ config("executable_config") {
-       "//build/config/ios:ios_dynamic_flags",
-       "//build/config/ios:ios_executable_flags",
-     ]
--  } else if (is_linux || is_android || current_os == "aix") {
-+  } else if (is_linux || is_android || current_os == "aix" || is_bsd) {
-     configs += [ "//build/config/gcc:executable_config" ]
-     if (is_chromecast) {
-       configs += [ "//build/config/chromecast:executable_config" ]
-@@ -350,7 +355,7 @@ config("shared_library_config") {
-     configs += [ "//build/config/ios:ios_dynamic_flags" ]
-   } else if (is_chromecast) {
-     configs += [ "//build/config/chromecast:shared_library_config" ]
--  } else if (is_linux || current_os == "aix") {
-+  } else if (is_linux || current_os == "aix" || is_bsd) {
-     configs += [ "//build/config/gcc:shared_library_config" ]
-   }
- 
+   } else if (is_linux || is_chromeos) {
+     libs = [
+       "dl",
diff --git a/chromium/patches/patch-build_config_BUILDCONFIG.gn b/chromium/patches/patch-build_config_BUILDCONFIG.gn
index 26dd0b7ccd..c2e4fe6be4 100644
--- a/chromium/patches/patch-build_config_BUILDCONFIG.gn
+++ b/chromium/patches/patch-build_config_BUILDCONFIG.gn
@@ -1,75 +1,54 @@
 $NetBSD$
 
---- build/config/BUILDCONFIG.gn.orig	2020-07-15 18:55:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/config/BUILDCONFIG.gn.orig	2024-07-24 02:44:22.883449300 +0000
 +++ build/config/BUILDCONFIG.gn
-@@ -131,10 +131,10 @@ declare_args() {
+@@ -136,7 +136,8 @@ declare_args() {
    is_official_build = false
  
-   # Whether we're a traditional desktop unix.
--  is_desktop_linux = current_os == "linux"
-+  is_desktop_linux = current_os == "linux" || current_os == "freebsd" || current_os == "netbsd" || current_os == "openbsd"
- 
    # Set to true when compiling with the Clang compiler.
 -  is_clang = current_os != "linux" ||
-+  is_clang = (current_os != "linux" && current_os != "netbsd") ||
++  is_clang = current_os != "linux" || current_os == "openbsd" ||
++             current_os == "freebsd" || current_os == "netbsd" ||
               (current_cpu != "s390x" && current_cpu != "s390" &&
                current_cpu != "ppc64" && current_cpu != "ppc" &&
-               current_cpu != "mips" && current_cpu != "mips64")
-@@ -186,8 +186,8 @@ if (host_toolchain == "") {
-   # TODO(dpranke): Add some sort of assert here that verifies that
-   # no toolchain omitted host_toolchain from its toolchain_args().
- 
--  if (host_os == "linux") {
--    if (target_os != "linux") {
-+  if (host_os == "linux" || host_os == "freebsd" || host_os == "openbsd") {
-+    if (target_os != "linux" && target_os != "freebsd" && target_os != "openbsd") {
-       host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
-     } else if (is_clang) {
-       host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
-@@ -213,6 +213,8 @@ if (host_toolchain == "") {
-     }
-   } else if (host_os == "aix") {
+               current_cpu != "mips" && current_cpu != "mips64" &&
+@@ -231,6 +232,12 @@ if (host_toolchain == "") {
      host_toolchain = "//build/toolchain/aix:$host_cpu"
+   } else if (host_os == "zos") {
+     host_toolchain = "//build/toolchain/zos:$host_cpu"
++  } else if (host_os == "openbsd") {
++    host_toolchain = "//build/toolchain/openbsd:clang_$host_cpu"
++  } else if (host_os == "freebsd") {
++    host_toolchain = "//build/toolchain/freebsd:clang_$host_cpu"
 +  } else if (host_os == "netbsd") {
-+    host_toolchain = "//build/toolchain/netbsd:$host_cpu"
++    host_toolchain = "//build/toolchain/netbsd:clang_$host_cpu"
    } else {
      assert(false, "Unsupported host_os: $host_os")
    }
-@@ -224,7 +226,7 @@ if (target_os == "android") {
-   assert(host_os == "linux" || host_os == "mac",
-          "Android builds are only supported on Linux and Mac hosts.")
-   _default_toolchain = "//build/toolchain/android:android_clang_$target_cpu"
--} else if (target_os == "chromeos" || target_os == "linux") {
-+} else if (target_os == "chromeos" || target_os == "linux" || target_os == "freebsd" || target_os == "netbsd" || target_os == "openbsd") {
-   # See comments in build/toolchain/cros/BUILD.gn about board compiles.
-   if (is_clang) {
-     _default_toolchain = "//build/toolchain/linux:clang_$target_cpu"
-@@ -254,6 +256,8 @@ if (target_os == "android") {
-   _default_toolchain = "//build/toolchain/win:uwp_$target_cpu"
- } else if (target_os == "aix") {
+@@ -274,6 +281,8 @@ if (target_os == "android") {
    _default_toolchain = "//build/toolchain/aix:$target_cpu"
-+} else if (target_os == "netbsd") {
-+  _default_toolchain = "//build/toolchain/netbsd:$target_cpu"
+ } else if (target_os == "zos") {
+   _default_toolchain = "//build/toolchain/zos:$target_cpu"
++} else if (target_os == "openbsd" || target_os == "freebsd" || target_os == "netbsd") {
++  _default_toolchain = host_toolchain
  } else {
    assert(false, "Unsupported target_os: $target_os")
  }
-@@ -292,6 +296,10 @@ is_linux = current_os == "chromeos" || c
+@@ -308,7 +317,12 @@ is_android = current_os == "android"
+ is_chromeos = current_os == "chromeos"
+ is_fuchsia = current_os == "fuchsia"
+ is_ios = current_os == "ios"
+-is_linux = current_os == "linux"
++is_linux = current_os == "linux" || current_os == "openbsd" ||
++           current_os == "freebsd" || current_os == "netbsd"
++is_openbsd = current_os == "openbsd"
++is_freebsd = current_os == "freebsd"
++is_netbsd = current_os == "netbsd"
++is_bsd = current_os == "openbsd" || current_os == "freebsd" || current_os == "netbsd"
  is_mac = current_os == "mac"
  is_nacl = current_os == "nacl"
  is_win = current_os == "win" || current_os == "winuwp"
-+is_bsd = current_os == "freebsd" || current_os == "netbsd" || current_os == "openbsd"
-+is_freebsd = current_os == "freebsd"
-+is_netbsd = current_os == "netbsd"
-+is_openbsd = current_os == "openbsd"
- 
- is_posix = !is_win && !is_fuchsia
- 
-@@ -355,7 +363,7 @@ if (!is_ios) {
- if (!is_mac && !is_ios) {
-   sources_assignment_filter += [ "*.mm" ]
- }
--if (!is_linux) {
-+if (!is_linux && !is_bsd) {
-   sources_assignment_filter += [
-     "*_linux.h",
-     "*_linux.cc",
diff --git a/chromium/patches/patch-build_config_clang_BUILD.gn b/chromium/patches/patch-build_config_clang_BUILD.gn
new file mode 100644
index 0000000000..e7acc7e0e0
--- /dev/null
+++ b/chromium/patches/patch-build_config_clang_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/config/clang/BUILD.gn.orig	2024-07-24 02:44:22.891450000 +0000
++++ build/config/clang/BUILD.gn
+@@ -230,7 +230,7 @@ template("clang_lib") {
+ 
+ # Adds a dependency on the Clang runtime library clang_rt.builtins.
+ clang_lib("compiler_builtins") {
+-  if (!toolchain_has_rust) {
++  if (!toolchain_has_rust || is_bsd) {
+     # Since there's no Rust in the toolchain, there's no concern that we'll use
+     # the Rust stdlib's intrinsics here.
+     #
diff --git a/chromium/patches/patch-build_config_compiler_BUILD.gn b/chromium/patches/patch-build_config_compiler_BUILD.gn
index de1110a0a0..e64046ef4e 100644
--- a/chromium/patches/patch-build_config_compiler_BUILD.gn
+++ b/chromium/patches/patch-build_config_compiler_BUILD.gn
@@ -1,112 +1,138 @@
 $NetBSD$
 
---- build/config/compiler/BUILD.gn.orig	2020-06-25 09:31:19.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/config/compiler/BUILD.gn.orig	2024-07-24 02:44:22.895450400 +0000
 +++ build/config/compiler/BUILD.gn
-@@ -130,7 +130,7 @@ declare_args() {
-   # 'is_android' breaks content_shell_test_apk on android-kitkat-arm-rel.
-   # 'use_xcode_clang' may call old clang.
-   init_stack_vars =
--      !is_android && !use_xcode_clang && (!is_official_build || is_linux)
-+      !is_android && !use_xcode_clang && (!is_official_build || is_linux || is_bsd)
- 
-   # This argument is to control whether enabling text section splitting in the
-   # final binary. When enabled, the separated text sections with prefix
-@@ -237,7 +237,7 @@ config("compiler") {
-     configs += [ "//build/config/win:compiler" ]
-   } else if (is_android) {
-     configs += [ "//build/config/android:compiler" ]
--  } else if (is_linux) {
-+  } else if (is_linux || is_bsd) {
-     configs += [ "//build/config/linux:compiler" ]
-     if (is_chromeos) {
-       configs += [ "//build/config/chromeos:compiler" ]
-@@ -367,7 +367,7 @@ config("compiler") {
+@@ -199,7 +199,7 @@ declare_args() {
+   # This greatly reduces the size of debug builds, at the cost of
+   # debugging information which is required by some specialized
+   # debugging tools.
+-  simple_template_names = is_clang && !is_nacl && !is_win && !is_apple
++  simple_template_names = is_clang && !is_nacl && !is_win && !is_apple && !is_bsd
+ }
  
-   # Linux/Android/Fuchsia common flags setup.
-   # ---------------------------------
--  if (is_linux || is_android || is_fuchsia) {
-+  if (is_linux || is_android || is_fuchsia || is_bsd) {
-     asmflags += [ "-fPIC" ]
-     cflags += [ "-fPIC" ]
-     ldflags += [ "-fPIC" ]
-@@ -389,7 +389,7 @@ config("compiler") {
+ declare_args() {
+@@ -251,13 +251,16 @@ config("default_include_dirs") {
+ # Compiler instrumentation can introduce dependencies in DSOs to symbols in
+ # the executable they are loaded into, so they are unresolved at link-time.
+ config("no_unresolved_symbols") {
+-  if (!using_sanitizer &&
++  if (!using_sanitizer && !is_bsd &&
+       (is_linux || is_chromeos || is_android || is_fuchsia)) {
+     ldflags = [
+       "-Wl,-z,defs",
+       "-Wl,--as-needed",
+     ]
+   }
++  if (current_cpu == "x86" && is_openbsd) {
++    ldflags = [ "-Wl,-z,notext", "-Wl,--strip-all" ]
++  }
+ }
  
-     # Compiler instrumentation can introduce dependencies in DSOs to symbols in
-     # the executable they are loaded into, so they are unresolved at link-time.
--    if (!using_sanitizer) {
-+    if (!using_sanitizer && !is_bsd) {
-       ldflags += [
-         "-Wl,-z,defs",
-         "-Wl,--as-needed",
-@@ -440,7 +440,7 @@ config("compiler") {
-     ldflags += [ "-Wl,--icf=all" ]
+ # compiler ---------------------------------------------------------------------
+@@ -499,6 +502,10 @@ config("compiler") {
+     }
    }
  
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     cflags += [ "-pthread" ]
-     # Do not use the -pthread ldflag here since it becomes a no-op
-     # when using -nodefaultlibs, which would cause an unused argument
-@@ -480,7 +480,7 @@ config("compiler") {
++  if (is_openbsd) {
++    ldflags += [ "-Wl,-z,wxneeded" ]
++  }
++
+   # Linux-specific compiler flags setup.
+   # ------------------------------------
+   if (use_icf && (!is_apple || use_lld)) {
+@@ -552,7 +559,7 @@ config("compiler") {
      ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
    }
  
--  if (is_clang && !is_nacl && !use_xcode_clang) {
-+  if (is_clang && !is_nacl && !use_xcode_clang && !is_bsd) {
-     cflags += [ "-fcrash-diagnostics-dir=" +
-                 rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-  if (is_clang && !is_nacl && current_os != "zos") {
++  if (is_clang && !is_nacl && current_os != "zos" && !is_bsd) {
+     cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+     if (save_reproducers_on_lld_crash && use_lld) {
+       ldflags += [
+@@ -1195,7 +1202,7 @@ config("compiler_cpu_abi") {
+         ]
+       }
+     } else if (current_cpu == "arm") {
+-      if (is_clang && !is_android && !is_nacl &&
++      if (is_clang && !is_android && !is_nacl && !is_bsd &&
+           !(is_chromeos_lacros && is_chromeos_device)) {
+         cflags += [ "--target=arm-linux-gnueabihf" ]
+         ldflags += [ "--target=arm-linux-gnueabihf" ]
+@@ -1210,7 +1217,7 @@ config("compiler_cpu_abi") {
+         cflags += [ "-mtune=$arm_tune" ]
+       }
+     } else if (current_cpu == "arm64") {
+-      if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
++      if (is_clang && !is_android && !is_nacl && !is_fuchsia && !is_bsd &&
+           !(is_chromeos_lacros && is_chromeos_device)) {
+         cflags += [ "--target=aarch64-linux-gnu" ]
+         ldflags += [ "--target=aarch64-linux-gnu" ]
+@@ -1545,7 +1552,7 @@ config("compiler_deterministic") {
+     # different build directory like "out/feature_a" and "out/feature_b" if
+     # we build same files with same compile flag.
+     # Other paths are already given in relative, no need to normalize them.
+-    if (is_nacl) {
++    if (is_nacl || is_bsd) {
+       # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
+       cflags += [
+         "-Xclang",
+@@ -1597,7 +1604,7 @@ config("compiler_deterministic") {
+ }
  
-@@ -496,7 +496,7 @@ config("compiler") {
+ config("clang_revision") {
+-  if (is_clang && clang_base_path == default_clang_base_path) {
++  if (is_clang && !is_bsd && clang_base_path == default_clang_base_path) {
+     update_args = [
+       "--print-revision",
+       "--verify-version=$clang_version",
+@@ -1908,9 +1915,6 @@ config("default_warnings") {
  
-   # C11/C++11 compiler flags setup.
-   # ---------------------------
--  if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
-+  if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix" || is_bsd) {
-     if (target_os == "android") {
-       cxx11_override = use_cxx11_on_android
-     } else {
-@@ -1110,7 +1110,7 @@ config("compiler_deterministic") {
-       "-Xclang",
-       ".",
-     ]
--    if (!is_win) {
-+    if (!is_win && !is_bsd) {
-       # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
-       asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
+         # TODO(crbug.com/40286317): Evaluate and possibly enable.
+         "-Wno-vla-extension",
+-
+-        # TODO(crbug.com/40284799): Fix and re-enable.
+-        "-Wno-thread-safety-reference-return",
+       ]
+ 
+       cflags_cc += [
+@@ -1918,7 +1922,7 @@ config("default_warnings") {
+         "-Wenum-compare-conditional",
+       ]
+ 
+-      if (!is_nacl) {
++      if (!is_nacl && !is_openbsd) {
+         cflags_cc += [
+           # TODO(crbug.com/41486292): Fix and re-enable.
+           "-Wno-c++11-narrowing-const-reference",
+@@ -2640,7 +2644,7 @@ config("afdo_optimize_size") {
+ # There are some targeted places that AFDO regresses, so we provide a separate
+ # config to allow AFDO to be disabled per-target.
+ config("afdo") {
+-  if (is_clang) {
++  if (is_clang && !is_bsd) {
+     cflags = []
+     if (clang_emit_debug_info_for_profiling) {
+       # Add the following flags to generate debug info for profiling.
+@@ -2667,7 +2671,7 @@ config("afdo") {
+       cflags += [ "-Wno-backend-plugin" ]
+       inputs = [ _clang_sample_profile ]
      }
-@@ -1215,7 +1215,7 @@ config("runtime_library") {
-   # smaller.
-   if (is_win) {
-     configs += [ "//build/config/win:runtime_library" ]
--  } else if (is_linux) {
-+  } else if (is_linux || is_bsd) {
-     configs += [ "//build/config/linux:runtime_library" ]
-   } else if (is_ios) {
-     configs += [ "//build/config/ios:runtime_library" ]
-@@ -1493,7 +1493,7 @@ config("default_warnings") {
-         cflags += [ "-Wno-nonportable-include-path" ]
-       }
+-  } else if (auto_profile_path != "" && is_a_target_toolchain) {
++  } else if (auto_profile_path != "" && is_a_target_toolchain && !is_bsd) {
+     cflags = [ "-fauto-profile=${auto_profile_path}" ]
+     inputs = [ auto_profile_path ]
+   }
+@@ -2832,7 +2836,8 @@ config("symbols") {
+     configs += [ "//build/config:compress_debug_sections" ]
+   }
  
--      if (current_toolchain == host_toolchain || !use_xcode_clang) {
-+      if ((current_toolchain == host_toolchain || !use_xcode_clang) && !is_bsd) {
-         # Flags NaCl (Clang 3.7) and Xcode 9.2 (Clang clang-900.0.39.2) do not
-         # recognize.
-         cflags += [
-@@ -1740,7 +1740,7 @@ config("thin_archive") {
-   # Mac and iOS use the mac-specific "libtool" command, not ar, which doesn't
-   # have a "thin archive" mode (it does accept -T, but it means truncating
-   # archive names to 16 characters, which is not what we want).
--  if ((is_posix && !is_nacl && !is_mac && !is_ios) || is_fuchsia) {
-+  if ((is_posix && !is_nacl && !is_mac && !is_ios && !is_bsd) || is_fuchsia) {
-     arflags = [ "-T" ]
-   } else if (is_win && use_lld) {
-     arflags = [ "/llvmlibthin" ]
-@@ -2313,7 +2313,7 @@ config("symbols") {
-     # DWARF info may be corrupt; offsets in a range list entry are in different
-     # sections" there.  Maybe just a bug in nacl_switch_32.S.
-     if (!is_mac && !is_ios && !is_nacl && current_cpu != "x86" &&
--        (use_gold || use_lld)) {
-+        (use_gold || use_lld) && !is_bsd) {
-       if (is_clang) {
-         # This flag enables the GNU-format pubnames and pubtypes sections,
-         # which lld needs in order to generate a correct GDB index.
+-  if (is_clang && (!is_nacl || is_nacl_saigo) && current_os != "zos") {
++  if (is_clang && (!is_nacl || is_nacl_saigo) && current_os != "zos" &&
++      !is_bsd) {
+     if (is_apple) {
+       # TODO(crbug.com/40117949): Investigate missing debug info on mac.
+       # Make sure we don't use constructor homing on mac.
diff --git a/chromium/patches/patch-build_config_compiler_compiler.gni b/chromium/patches/patch-build_config_compiler_compiler.gni
deleted file mode 100644
index 03ab20b35a..0000000000
--- a/chromium/patches/patch-build_config_compiler_compiler.gni
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- build/config/compiler/compiler.gni.orig	2020-06-25 09:31:19.000000000 +0000
-+++ build/config/compiler/compiler.gni
-@@ -116,7 +116,7 @@ if (is_chromeos) {
-   # 32-bit builds (https://bugs.llvm.org/show_bug.cgi?id=18505) so disable them
-   # there to avoid the unnecessary overhead.
-   enable_frame_pointers = current_cpu != "arm"
--} else if (is_mac || is_ios || is_linux) {
-+} else if (is_mac || is_ios || is_linux || is_bsd) {
-   enable_frame_pointers = true
- } else if (is_win) {
-   # 64-bit Windows ABI doesn't support frame pointers.
-@@ -196,7 +196,7 @@ declare_args() {
- # official builders.
- strip_absolute_paths_from_debug_symbols_default =
-     is_android || is_fuchsia || is_nacl || (is_win && use_lld) || is_linux ||
--    (is_mac && !enable_dsyms) || ios_use_goma_rbe
-+    (is_mac && !enable_dsyms) || ios_use_goma_rbe || is_bsd
- 
- # If the platform uses stripped absolute paths by default, then we don't expose
- # it as a configuration option. If this is causing problems, please file a bug.
-@@ -232,7 +232,7 @@ if (symbol_level == -1) {
-     # info or variable info, so we can leave that out to speed up the build.
-     # Sanitizers also require symbols for filename suppressions to work.
-     symbol_level = 1
--  } else if ((!is_nacl && !is_linux && !is_fuchsia && current_os != "aix") ||
-+  } else if ((!is_nacl && !is_linux && !is_fuchsia && !is_bsd && current_os != "aix") ||
-              is_debug || is_official_build || is_chromecast) {
-     # Linux builds slower by having symbols as part of the target binary,
-     # whereas Mac and Windows have them separate, so in Release Linux, default
diff --git a/chromium/patches/patch-build_config_crypto.gni b/chromium/patches/patch-build_config_crypto.gni
deleted file mode 100644
index 2ff5f88c9d..0000000000
--- a/chromium/patches/patch-build_config_crypto.gni
+++ /dev/null
@@ -1,10 +0,0 @@
-$NetBSD$
-
---- build/config/crypto.gni.orig	2020-07-24 10:44:52.474897202 +0000
-+++ build/config/crypto.gni
-@@ -12,4 +12,4 @@
- # to set up feature flags.
- 
- # True if NSS is used for certificate handling.
--use_nss_certs = is_linux
-+use_nss_certs = is_linux || is_bsd
diff --git a/chromium/patches/patch-build_config_features.gni b/chromium/patches/patch-build_config_features.gni
deleted file mode 100644
index 524108eb49..0000000000
--- a/chromium/patches/patch-build_config_features.gni
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- build/config/features.gni.orig	2020-06-25 09:31:19.000000000 +0000
-+++ build/config/features.gni
-@@ -28,9 +28,9 @@ declare_args() {
-   # libudev usage. This currently only affects the content layer.
-   use_udev = is_linux && !is_chromecast
- 
--  use_dbus = is_linux && !is_chromecast
-+  use_dbus = (is_linux || is_bsd) && !is_chromecast
- 
--  use_gio = is_linux && !is_chromeos && !is_chromecast
-+  use_gio = (is_linux || is_bsd) && !is_chromeos && !is_chromecast
- }
- #
- # =============================================
diff --git a/chromium/patches/patch-build_config_linux_BUILD.gn b/chromium/patches/patch-build_config_linux_BUILD.gn
new file mode 100644
index 0000000000..c555e23f91
--- /dev/null
+++ b/chromium/patches/patch-build_config_linux_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/config/linux/BUILD.gn.orig	2024-07-24 02:44:22.899450800 +0000
++++ build/config/linux/BUILD.gn
+@@ -41,7 +41,7 @@ config("runtime_library") {
+   }
+ 
+   if ((!is_chromeos || default_toolchain != "//build/toolchain/cros:target") &&
+-      (!use_custom_libcxx || current_cpu == "mipsel")) {
++      (!use_custom_libcxx || current_cpu == "mipsel") && !is_bsd) {
+     libs = [ "atomic" ]
+   }
+ }
diff --git a/chromium/patches/patch-build_config_linux_dri_BUILD.gn b/chromium/patches/patch-build_config_linux_dri_BUILD.gn
deleted file mode 100644
index 8b408f8583..0000000000
--- a/chromium/patches/patch-build_config_linux_dri_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- build/config/linux/dri/BUILD.gn.orig	2020-06-25 09:31:19.000000000 +0000
-+++ build/config/linux/dri/BUILD.gn
-@@ -4,7 +4,7 @@
- 
- import("//build/config/linux/pkg_config.gni")
- 
--assert(is_linux, "This file should only be referenced on Linux")
-+assert(is_linux || is_bsd, "This file should only be referenced on Linux")
- 
- pkg_config("dri") {
-   packages = [ "dri" ]
diff --git a/chromium/patches/patch-build_config_linux_gtk_BUILD.gn b/chromium/patches/patch-build_config_linux_gtk_BUILD.gn
deleted file mode 100644
index d37103a682..0000000000
--- a/chromium/patches/patch-build_config_linux_gtk_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- build/config/linux/gtk/BUILD.gn.orig	2020-06-25 09:31:19.000000000 +0000
-+++ build/config/linux/gtk/BUILD.gn
-@@ -5,7 +5,7 @@
- import("//build/config/linux/gtk/gtk.gni")
- import("//build/config/linux/pkg_config.gni")
- 
--assert(is_linux, "This file should only be referenced on Linux")
-+assert(is_linux || is_bsd, "This file should only be referenced on Linux")
- 
- # GN doesn't check visibility for configs so we give this an obviously internal
- # name to discourage random targets from accidentally depending on this and
diff --git a/chromium/patches/patch-build_config_linux_libdrm_BUILD.gn b/chromium/patches/patch-build_config_linux_libdrm_BUILD.gn
deleted file mode 100644
index 7cfe267a7e..0000000000
--- a/chromium/patches/patch-build_config_linux_libdrm_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- build/config/linux/libdrm/BUILD.gn.orig	2020-06-25 09:31:19.000000000 +0000
-+++ build/config/linux/libdrm/BUILD.gn
-@@ -5,7 +5,7 @@ import("//build/config/chromecast_build.
- import("//build/config/chromeos/args.gni")
- import("//build/config/linux/pkg_config.gni")
- 
--assert(is_linux)
-+assert(is_linux || is_bsd)
- 
- declare_args() {
-   # Controls whether the build should use the version of libdrm library shipped
diff --git a/chromium/patches/patch-build_config_linux_nss_BUILD.gn b/chromium/patches/patch-build_config_linux_nss_BUILD.gn
deleted file mode 100644
index d4314bd515..0000000000
--- a/chromium/patches/patch-build_config_linux_nss_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- build/config/linux/nss/BUILD.gn.orig	2020-07-15 18:55:48.000000000 +0000
-+++ build/config/linux/nss/BUILD.gn
-@@ -4,7 +4,7 @@
- 
- import("//build/config/linux/pkg_config.gni")
- 
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   # This is a dependency on NSS with no libssl. On Linux we use a built-in SSL
-   # library but the system NSS libraries. Non-Linux platforms using NSS use the
-   # hermetic one in //third_party/nss.
diff --git a/chromium/patches/patch-build_config_linux_pangocairo_pangocairo.gni b/chromium/patches/patch-build_config_linux_pangocairo_pangocairo.gni
deleted file mode 100644
index 364ac4f5c7..0000000000
--- a/chromium/patches/patch-build_config_linux_pangocairo_pangocairo.gni
+++ /dev/null
@@ -1,11 +0,0 @@
-$NetBSD$
-
---- build/config/linux/pangocairo/pangocairo.gni.orig	2020-06-25 09:31:19.000000000 +0000
-+++ build/config/linux/pangocairo/pangocairo.gni
-@@ -5,5 +5,5 @@
- import("//build/config/ui.gni")
- 
- declare_args() {
--  use_pangocairo = is_linux && !is_chromeos && !is_chromecast
-+  use_pangocairo = (is_linux || is_bsd) && !is_chromeos && !is_chromecast
- }
diff --git a/chromium/patches/patch-build_config_linux_pkg-config.py b/chromium/patches/patch-build_config_linux_pkg-config.py
index f5e0d2ddef..cf2fec6a0d 100644
--- a/chromium/patches/patch-build_config_linux_pkg-config.py
+++ b/chromium/patches/patch-build_config_linux_pkg-config.py
@@ -1,31 +1,17 @@
 $NetBSD$
 
---- build/config/linux/pkg-config.py.orig	2020-07-08 16:23:41.835664158 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/config/linux/pkg-config.py.orig	2024-07-24 02:44:22.903451200 +0000
 +++ build/config/linux/pkg-config.py
-@@ -59,8 +59,15 @@ def SetConfigPath(options):
-     print("You must specify an architecture via -a if using a sysroot.")
-     sys.exit(1)
- 
--  libdir = sysroot + '/usr/' + options.system_libdir + '/pkgconfig'
--  libdir += ':' + sysroot + '/usr/share/pkgconfig'
-+  if "linux" in sys.platform:
-+    libdir = sysroot + '/libdata/' + options.system_libdir + '/pkgconfig'
-+    libdir += ':' + sysroot + '/usr/share/pkgconfig'
-+  elif "netbsd" in sys.platform:
-+    libdir = sysroot + '/lib/pkgconfig'
-+    libdir += ':' + '/usr/lib/pkgconfig'
-+  elif "freebsd" in sys.platform:
-+    libdir = sysroot + '/libdata/pkgconfig'
-+    libdir += ':' + '/usr/libdata/pkgconfig'
-   os.environ['PKG_CONFIG_LIBDIR'] = libdir
-   return libdir
- 
-@@ -109,7 +116,7 @@ def main():
+@@ -108,7 +108,7 @@ def main():
    # If this is run on non-Linux platforms, just return nothing and indicate
    # success. This allows us to "kind of emulate" a Linux build from other
    # platforms.
 -  if "linux" not in sys.platform:
-+  if "linux" not in sys.platform and "bsd" not in sys.platform:
++  if not sys.platform.startswith(tuple(['linux', 'openbsd', 'freebsd', 'netbsd'])):
      print("[[],[],[],[],[]]")
      return 0
  
diff --git a/chromium/patches/patch-build_config_ozone.gni b/chromium/patches/patch-build_config_ozone.gni
new file mode 100644
index 0000000000..d8dacaba0f
--- /dev/null
+++ b/chromium/patches/patch-build_config_ozone.gni
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/config/ozone.gni.orig	2024-07-24 02:44:22.903451200 +0000
++++ build/config/ozone.gni
+@@ -84,7 +84,19 @@ declare_args() {
+     } else if (is_chromeos_lacros) {
+       ozone_platform = "wayland"
+       ozone_platform_wayland = true
+-    } else if (is_linux) {
++    } else if (is_linux && !is_bsd) {
++      ozone_platform = "x11"
++      ozone_platform_wayland = true
++      ozone_platform_x11 = true
++    } else if (is_openbsd) {
++      ozone_platform = "x11"
++      ozone_platform_wayland = false
++      ozone_platform_x11 = true
++    } else if (is_netbsd) {
++      ozone_platform = "x11"
++      ozone_platform_wayland = false
++      ozone_platform_x11 = true
++    } else if (is_freebsd) {
+       ozone_platform = "x11"
+       ozone_platform_wayland = true
+       ozone_platform_x11 = true
diff --git a/chromium/patches/patch-build_config_rust.gni b/chromium/patches/patch-build_config_rust.gni
new file mode 100644
index 0000000000..e28eb345cb
--- /dev/null
+++ b/chromium/patches/patch-build_config_rust.gni
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/config/rust.gni.orig	2024-07-24 02:44:22.903451200 +0000
++++ build/config/rust.gni
+@@ -270,6 +270,10 @@ if (is_linux || is_chromeos) {
+   }
+ }
+ 
++if (is_bsd) {
++  rust_abi_target = string_replace(rust_abi_target, "linux-gnu", current_os)
++}
++
+ assert(!toolchain_has_rust || rust_abi_target != "")
+ 
+ # This variable is passed to the Rust libstd build.
diff --git a/chromium/patches/patch-build_config_ui.gni b/chromium/patches/patch-build_config_ui.gni
deleted file mode 100644
index 8e495f3e2d..0000000000
--- a/chromium/patches/patch-build_config_ui.gni
+++ /dev/null
@@ -1,32 +0,0 @@
-$NetBSD$
-
---- build/config/ui.gni.orig	2020-06-25 09:31:19.000000000 +0000
-+++ build/config/ui.gni
-@@ -26,12 +26,12 @@ declare_args() {
- 
-   # Indicates if Aura is enabled. Aura is a low-level windowing library, sort
-   # of a replacement for GDI or GTK.
--  use_aura = is_win || is_linux || is_fuchsia
-+  use_aura = is_win || is_linux || is_fuchsia || is_bsd
- }
- 
- declare_args() {
-   # True means the UI is built using the "views" framework.
--  toolkit_views = is_mac || is_win || is_linux || is_fuchsia
-+  toolkit_views = is_mac || is_win || is_linux || is_fuchsia || is_bsd
- 
-   # Whether we should use glib, a low level C utility library.
-   use_glib = is_desktop_linux && !is_chromecast
-@@ -42,10 +42,10 @@ declare_args() {
- # These variables depend on other variables and can't be set externally.
- 
- # Indicates if the UI toolkit depends on X11.
--use_x11 = is_linux && !use_ozone
-+use_x11 = (is_linux || is_bsd) && !use_ozone
- 
- # Make sure glib is not used if building for ChromeOS/Chromecast
--assert(!use_glib || (is_linux && !is_chromeos && !is_chromecast))
-+assert(!use_glib || ((is_linux || is_bsd) && !is_chromeos && !is_chromecast))
- 
- # Whether to use atk, the Accessibility ToolKit library
- use_atk = is_desktop_linux && !is_chromecast && use_glib
diff --git a/chromium/patches/patch-build_config_v8__target__cpu.gni b/chromium/patches/patch-build_config_v8__target__cpu.gni
new file mode 100644
index 0000000000..8f86716d4d
--- /dev/null
+++ b/chromium/patches/patch-build_config_v8__target__cpu.gni
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/config/v8_target_cpu.gni.orig	2024-07-24 02:44:22.907451600 +0000
++++ build/config/v8_target_cpu.gni
+@@ -36,6 +36,10 @@ declare_args() {
+ if (v8_target_cpu == "") {
+   if (current_toolchain == "//build/toolchain/linux:clang_x64_v8_arm64") {
+     v8_target_cpu = "arm64"
++  } else if (current_toolchain == "//build/toolchain/openbsd:clang_arm64") {
++    v8_target_cpu = "arm64"
++  } else if (current_toolchain == "//build/toolchain/freebsd:clang_arm64") {
++    v8_target_cpu = "arm64"
+   } else if (current_toolchain == "//build/toolchain/linux:clang_x86_v8_arm") {
+     v8_target_cpu = "arm"
+   } else if (current_toolchain ==
diff --git a/chromium/patches/patch-build_detect__host__arch.py b/chromium/patches/patch-build_detect__host__arch.py
new file mode 100644
index 0000000000..f781d4b06a
--- /dev/null
+++ b/chromium/patches/patch-build_detect__host__arch.py
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/detect_host_arch.py.orig	2024-07-24 02:44:22.907451600 +0000
++++ build/detect_host_arch.py
+@@ -20,6 +20,8 @@ def HostArch():
+     host_arch = 'ia32'
+   elif host_arch in ['x86_64', 'amd64']:
+     host_arch = 'x64'
++  elif host_arch.startswith('arm64'):
++    host_arch = 'arm64'
+   elif host_arch.startswith('arm'):
+     host_arch = 'arm'
+   elif host_arch.startswith('aarch64'):
diff --git a/chromium/patches/patch-build_gn__run__binary.py b/chromium/patches/patch-build_gn__run__binary.py
index c301277a25..89baeea6cb 100644
--- a/chromium/patches/patch-build_gn__run__binary.py
+++ b/chromium/patches/patch-build_gn__run__binary.py
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- build/gn_run_binary.py.orig	2020-07-08 21:40:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/gn_run_binary.py.orig	2024-07-24 02:44:22.919452700 +0000
 +++ build/gn_run_binary.py
-@@ -24,7 +24,7 @@ if not os.path.isabs(path):
+@@ -23,7 +23,7 @@ if not os.path.isabs(path):
  # The rest of the arguments are passed directly to the executable.
  args = [path] + sys.argv[2:]
  
 -ret = subprocess.call(args)
-+ret = subprocess.call(args, env={"CHROME_EXE_PATH":"${WRKSRC}/out/Release/chrome"})
++ret = subprocess.call(args, env={"CHROME_EXE_PATH":"${WRKSRC}/out/Release/chrome","LD_LIBRARY_PATH":"${WRKSRC}/out/Release"})
  if ret != 0:
    if ret <= -100:
      # Windows error codes such as 0xC0000005 and 0xC0000409 are much easier to
diff --git a/chromium/patches/patch-build_linux_chrome.map b/chromium/patches/patch-build_linux_chrome.map
new file mode 100644
index 0000000000..f3464040fe
--- /dev/null
+++ b/chromium/patches/patch-build_linux_chrome.map
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/linux/chrome.map.orig	2024-07-24 02:44:22.923453000 +0000
++++ build/linux/chrome.map
+@@ -20,6 +20,10 @@ global:
+   # Program entry point.
+   _start;
+ 
++  # FreeBSD specific variables.
++  __progname;
++  environ;
++
+   # Memory allocation symbols.  We want chrome and any libraries to
+   # share the same heap, so it is correct to export these symbols.
+   aligned_alloc;
diff --git a/chromium/patches/patch-build_linux_libpci_BUILD.gn b/chromium/patches/patch-build_linux_libpci_BUILD.gn
deleted file mode 100644
index 1d910c94c2..0000000000
--- a/chromium/patches/patch-build_linux_libpci_BUILD.gn
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD$
-
---- build/linux/libpci/BUILD.gn.orig	2020-06-25 09:31:19.000000000 +0000
-+++ build/linux/libpci/BUILD.gn
-@@ -3,20 +3,8 @@
- # found in the LICENSE file.
- 
- import("//tools/generate_library_loader/generate_library_loader.gni")
-+import("//build/config/linux/pkg_config.gni")
- 
--# This generates a target named "libpci".
--generate_library_loader("libpci") {
--  name = "LibPciLoader"
--  output_h = "libpci.h"
--  output_cc = "libpci_loader.cc"
--  header = "<pci/pci.h>"
--
--  functions = [
--    "pci_alloc",
--    "pci_init",
--    "pci_cleanup",
--    "pci_scan_bus",
--    "pci_fill_info",
--    "pci_lookup_name",
--  ]
-+declare_args() {
-+  use_system_libpci = is_bsd
- }
diff --git a/chromium/patches/patch-build_linux_strip__binary.py b/chromium/patches/patch-build_linux_strip__binary.py
new file mode 100644
index 0000000000..b3d937b143
--- /dev/null
+++ b/chromium/patches/patch-build_linux_strip__binary.py
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/linux/strip_binary.py.orig	2024-07-24 02:44:22.923453000 +0000
++++ build/linux/strip_binary.py
+@@ -10,6 +10,7 @@ import sys
+ 
+ 
+ def main():
++  return 0
+   argparser = argparse.ArgumentParser(description='eu-strip binary.')
+ 
+   argparser.add_argument('--eu-strip-binary-path', help='eu-strip path.')
diff --git a/chromium/patches/patch-build_linux_unbundle_dav1d.gn b/chromium/patches/patch-build_linux_unbundle_dav1d.gn
new file mode 100644
index 0000000000..2b886398fa
--- /dev/null
+++ b/chromium/patches/patch-build_linux_unbundle_dav1d.gn
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/linux/unbundle/dav1d.gn.orig	2024-07-24 02:44:22.927453500 +0000
++++ build/linux/unbundle/dav1d.gn
+@@ -1,11 +1,11 @@
+ import("//build/config/linux/pkg_config.gni")
+ import("//build/shim_headers.gni")
+ 
+-pkg_config("system_dav1d") {
++pkg_config("dav1d_config") {
+   packages = [ "dav1d" ]
+ }
+ 
+-shim_headers("dav1d_shim") {
++shim_headers("dav1d_headers") {
+   root_path = "libdav1d/include"
+   headers = [
+     "dav1d/common.h",
+@@ -18,6 +18,6 @@ shim_headers("dav1d_shim") {
+ }
+ 
+ source_set("dav1d") {
+-  deps = [ ":dav1d_shim" ]
+-  public_configs = [ ":system_dav1d" ]
++  deps = [ ":dav1d_headers" ]
++  public_configs = [ ":dav1d_config" ]
+ }
diff --git a/chromium/patches/patch-build_linux_unbundle_fontconfig.gn b/chromium/patches/patch-build_linux_unbundle_fontconfig.gn
deleted file mode 100644
index a1d4b57b18..0000000000
--- a/chromium/patches/patch-build_linux_unbundle_fontconfig.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- build/linux/unbundle/fontconfig.gn.orig	2020-06-25 09:31:19.000000000 +0000
-+++ build/linux/unbundle/fontconfig.gn
-@@ -2,7 +2,7 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- 
--assert(is_linux)
-+assert(is_linux || is_bsd)
- 
- config("fontconfig_config") {
-   libs = [ "fontconfig" ]
diff --git a/chromium/patches/patch-build_linux_unbundle_icu.gn b/chromium/patches/patch-build_linux_unbundle_icu.gn
new file mode 100644
index 0000000000..8034bbee5c
--- /dev/null
+++ b/chromium/patches/patch-build_linux_unbundle_icu.gn
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/linux/unbundle/icu.gn.orig	2024-07-24 02:44:22.927453500 +0000
++++ build/linux/unbundle/icu.gn
+@@ -17,6 +17,15 @@ config("icu_config") {
+     "USING_SYSTEM_ICU=1",
+     "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
+ 
++    # As of icu 73 C++ nullptr, char16_t, override, final and noexcept are used
++    # instead of defines. These definitions can be removed when the bundled icu
++    # gets updated to 73. For more details, see:
++    # https://unicode-org.atlassian.net/browse/ICU-21833 and
++    # https://github.com/unicode-org/icu/commit/28643799377ecf654564f6f31854b02788cebe33
++    "U_FINAL=final",
++    "U_NOEXCEPT=noexcept",
++    "U_OVERRIDE=override",
++
+     # U_EXPORT (defined in unicode/platform.h) is used to set public visibility
+     # on classes through the U_COMMON_API and U_I18N_API macros (among others).
+     # When linking against the system ICU library, we want its symbols to have
+@@ -61,6 +70,10 @@ source_set("icuuc") {
+   ]
+ }
+ 
++group("icuuc_public") {
++  public_deps = [ ":icuuc" ]
++}
++
+ shim_headers("icui18n_shim") {
+   root_path = "source/i18n"
+   headers = [
diff --git a/chromium/patches/patch-build_linux_unbundle_libevent.gn b/chromium/patches/patch-build_linux_unbundle_libevent.gn
new file mode 100644
index 0000000000..7dfa1ab438
--- /dev/null
+++ b/chromium/patches/patch-build_linux_unbundle_libevent.gn
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/linux/unbundle/libevent.gn.orig	2024-07-24 02:44:22.927453500 +0000
++++ build/linux/unbundle/libevent.gn
+@@ -9,7 +9,12 @@ shim_headers("libevent_shim") {
+   headers = [ "event.h" ]
+ }
+ 
++config("system_libevent") {
++  defines = [ "USE_SYSTEM_LIBEVENT=1" ]
++}
++
+ source_set("libevent") {
+   deps = [ ":libevent_shim" ]
+   libs = [ "event" ]
++  public_configs = [ ":system_libevent" ]
+ }
diff --git a/chromium/patches/patch-build_linux_unbundle_libusb.gn b/chromium/patches/patch-build_linux_unbundle_libusb.gn
new file mode 100644
index 0000000000..b45f139a5e
--- /dev/null
+++ b/chromium/patches/patch-build_linux_unbundle_libusb.gn
@@ -0,0 +1,36 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/linux/unbundle/libusb.gn.orig	2024-07-24 02:44:22.927453500 +0000
++++ build/linux/unbundle/libusb.gn
+@@ -1,3 +1,27 @@
++# Copyright 2016 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.
++
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++pkg_config("system_libusb") {
++  packages = [ "libusb-1.0" ]
++}
++
++shim_headers("libusb_shim") {
++  root_path = "src/libusb"
++  headers = [
++    "libusb.h",
++  ]
++}
++
++source_set("libusb") {
++  deps = [
++    ":libusb_shim",
++  ]
++  public_configs = [ ":system_libusb" ]
++}
+ import("//build/config/linux/pkg_config.gni")
+ import("//build/shim_headers.gni")
+ 
diff --git a/chromium/patches/patch-build_rust_rust__bindgen.gni b/chromium/patches/patch-build_rust_rust__bindgen.gni
new file mode 100644
index 0000000000..ba3090b716
--- /dev/null
+++ b/chromium/patches/patch-build_rust_rust__bindgen.gni
@@ -0,0 +1,25 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/rust/rust_bindgen.gni.orig	2024-07-24 02:44:22.931454000 +0000
++++ build/rust/rust_bindgen.gni
+@@ -11,14 +11,14 @@ if (is_win) {
+   import("//build/toolchain/win/win_toolchain_data.gni")
+ }
+ 
+-_bindgen_path = "${rust_bindgen_root}/bin/bindgen"
++_bindgen_path = "@PREFIX@/bin/bindgen"
+ if (host_os == "win") {
+   _bindgen_path = "${_bindgen_path}.exe"
+ }
+ 
+ # On Windows, the libclang.dll is beside the bindgen.exe, otherwise it is in
+ # ../lib.
+-_libclang_path = rust_bindgen_root
++_libclang_path = "@PREFIX@"
+ if (host_os == "win") {
+   _libclang_path += "/bin"
+ } else {
diff --git a/chromium/patches/patch-build_rust_std_BUILD.gn b/chromium/patches/patch-build_rust_std_BUILD.gn
new file mode 100644
index 0000000000..3507c87df2
--- /dev/null
+++ b/chromium/patches/patch-build_rust_std_BUILD.gn
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/rust/std/BUILD.gn.orig	2024-07-24 02:44:22.931454000 +0000
++++ build/rust/std/BUILD.gn
+@@ -90,7 +90,6 @@ if (toolchain_has_rust) {
+   # don't need to pass to the C++ linker because they're used for specialized
+   # purposes.
+   skip_stdlib_files = [
+-    "profiler_builtins",
+     "rustc_std_workspace_alloc",
+     "rustc_std_workspace_core",
+     "rustc_std_workspace_std",
diff --git a/chromium/patches/patch-build_toolchain_freebsd_BUILD.gn b/chromium/patches/patch-build_toolchain_freebsd_BUILD.gn
new file mode 100644
index 0000000000..b8eac92925
--- /dev/null
+++ b/chromium/patches/patch-build_toolchain_freebsd_BUILD.gn
@@ -0,0 +1,75 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/toolchain/freebsd/BUILD.gn.orig	2024-08-01 14:08:56.732183608 +0000
++++ build/toolchain/freebsd/BUILD.gn
+@@ -0,0 +1,66 @@
++# 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.
++
++import("//build/config/sysroot.gni")
++import("//build/toolchain/gcc_toolchain.gni")
++
++clang_toolchain("clang_x86") {
++  toolchain_args = {
++    current_cpu = "x86"
++    current_os = "freebsd"
++  }
++}
++
++gcc_toolchain("x86") {
++  cc = "gcc"
++  cxx = "g++"
++
++  readelf = "readelf"
++  nm = "nm"
++  ar = "ar"
++  ld = cxx
++
++  toolchain_args = {
++    current_cpu = "x86"
++    current_os = "freebsd"
++    is_clang = false
++  }
++}
++
++clang_toolchain("clang_x64") {
++  toolchain_args = {
++    current_cpu = "x64"
++    current_os = "freebsd"
++  }
++}
++
++gcc_toolchain("x64") {
++  cc = "gcc"
++  cxx = "g++"
++
++  readelf = "readelf"
++  nm = "nm"
++  ar = "ar"
++  ld = cxx
++
++  toolchain_args = {
++    current_cpu = "x64"
++    current_os = "freebsd"
++    is_clang = false
++  }
++}
++
++clang_toolchain("clang_arm") {
++  toolchain_args = {
++    current_cpu = "arm64"
++    current_os = "freebsd"
++  }
++}
++
++clang_toolchain("clang_arm64") {
++  toolchain_args = {
++    current_cpu = "arm64"
++    current_os = "freebsd"
++  }
++}
diff --git a/chromium/patches/patch-build_toolchain_gcc__solink__wrapper.py b/chromium/patches/patch-build_toolchain_gcc__solink__wrapper.py
new file mode 100644
index 0000000000..d040806f8d
--- /dev/null
+++ b/chromium/patches/patch-build_toolchain_gcc__solink__wrapper.py
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/toolchain/gcc_solink_wrapper.py.orig	2024-07-24 02:44:22.943455000 +0000
++++ build/toolchain/gcc_solink_wrapper.py
+@@ -39,7 +39,7 @@ def CollectDynSym(args):
+   """Replaces: nm --format=posix -g -D -p $sofile | cut -f1-2 -d' '"""
+   toc = ''
+   nm = subprocess.Popen(wrapper_utils.CommandToRun(
+-      [args.nm, '--format=posix', '-g', '-D', '-p', args.sofile]),
++      [args.nm, '-g', '-D', '-p', args.sofile]),
+                         stdout=subprocess.PIPE,
+                         bufsize=-1,
+                         universal_newlines=True)
diff --git a/chromium/patches/patch-build_toolchain_gcc__toolchain.gni b/chromium/patches/patch-build_toolchain_gcc__toolchain.gni
index 6110c4cb63..f217f7f4f3 100644
--- a/chromium/patches/patch-build_toolchain_gcc__toolchain.gni
+++ b/chromium/patches/patch-build_toolchain_gcc__toolchain.gni
@@ -1,31 +1,59 @@
 $NetBSD$
 
---- build/toolchain/gcc_toolchain.gni.orig	2020-07-15 18:55:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/toolchain/gcc_toolchain.gni.orig	2024-07-24 02:44:22.947455400 +0000
 +++ build/toolchain/gcc_toolchain.gni
-@@ -28,6 +28,9 @@ declare_args() {
-       # Don't enable for Android-on-Chrome OS so that they can build with
-       # symbol_level=0 without this failing (crbug.com/891164).
-       (target_os == "android" || target_os == "win")
-+
-+  extra_cxxflags = ""
-+  extra_ldflags = ""
+@@ -56,6 +56,13 @@ if (enable_resource_allowlist_generation
+       "enable_resource_allowlist_generation=true does not work for target_os=$target_os")
  }
  
- # When the arg is set via args.gn, it applies to all toolchains. In order to not
-@@ -589,12 +592,12 @@ template("clang_toolchain") {
-   }
++declare_args() {
++  extra_cflags = ""
++  extra_cppflags = ""
++  extra_cxxflags = ""
++  extra_ldflags = ""
++}
++
+ # This template defines a toolchain for something that works like gcc
+ # (including clang).
+ #
+@@ -615,7 +622,7 @@ template("single_gcc_toolchain") {
+       # We need to specify link groups, at least, for single pass linkers. I.e.
+       # Rust libraries are alpha-sorted instead of by dependencies so they fail
+       # to link if not properly ordered or grouped.
+-      link_command = "$ld {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" $start_group_flag @\"$rspfile\" $end_group_flag {{solibs}} {{libs}} $start_group_flag {{rlibs}} $end_group_flag"
++      link_command = "$ld $start_group_flag {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" @\"$rspfile\" {{solibs}} {{libs}} {{rlibs}} $end_group_flag"
  
+       # Generate a map file to be used for binary size analysis.
+       # Map file adds ~10% to the link time on a z620.
+@@ -864,22 +871,12 @@ template("gcc_toolchain") {
+ # actually just be doing a native compile.
+ template("clang_toolchain") {
    gcc_toolchain(target_name) {
--    prefix = rebase_path("$clang_base_path/bin", root_build_dir)
--    cc = "$prefix/clang"
--    cxx = "$prefix/clang++"
-+    #prefix = rebase_path("$clang_base_path/bin", root_build_dir)
-+    cc = "clang"
-+    cxx = "clang++"
+-    _path = "$clang_base_path/bin"
+-    _is_path_absolute = get_path_info(_path, "abspath") == _path
+-
+-    # Preserve absolute paths for tools like distcc.
+-    if (_is_path_absolute && filter_include([ _path ], [ "//*" ]) == []) {
+-      prefix = _path
+-    } else {
+-      prefix = rebase_path(_path, root_build_dir)
+-    }
+-
+-    cc = "${prefix}/clang"
+-    cxx = "${prefix}/clang++"
++    cc = "cc"
++    cxx = "c++"
      ld = cxx
-     readelf = "${toolprefix}readelf"
+-    readelf = "${prefix}/llvm-readelf"
 -    ar = "${prefix}/llvm-ar"
-+    ar = "llvm-ar"
-     nm = "${toolprefix}nm"
+-    nm = "${prefix}/llvm-nm"
++    readelf = "readelf"
++    ar = "ar"
++    nm = "nm"
+ 
+     forward_variables_from(invoker, "*", [ "toolchain_args" ])
  
-     forward_variables_from(invoker,
diff --git a/chromium/patches/patch-build_toolchain_netbsd_BUILD.gn b/chromium/patches/patch-build_toolchain_netbsd_BUILD.gn
index 6948bc8ac1..f2e3f096a7 100644
--- a/chromium/patches/patch-build_toolchain_netbsd_BUILD.gn
+++ b/chromium/patches/patch-build_toolchain_netbsd_BUILD.gn
@@ -1,8 +1,12 @@
 $NetBSD$
 
---- build/toolchain/netbsd/BUILD.gn.orig	2020-07-20 16:25:34.425819926 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/toolchain/netbsd/BUILD.gn.orig	2024-08-01 14:08:56.735313619 +0000
 +++ build/toolchain/netbsd/BUILD.gn
-@@ -0,0 +1,300 @@
+@@ -0,0 +1,66 @@
 +# 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.
@@ -10,112 +14,22 @@ $NetBSD$
 +import("//build/config/sysroot.gni")
 +import("//build/toolchain/gcc_toolchain.gni")
 +
-+clang_toolchain("clang_ppc64") {
-+  enable_linker_map = true
-+  toolchain_args = {
-+    current_cpu = "ppc64"
-+    current_os = "netbsd"
-+  }
-+}
-+
-+clang_toolchain("clang_arm") {
-+  toolprefix = "arm-linux-gnueabihf-"
-+  toolchain_args = {
-+    current_cpu = "arm"
-+    current_os = "netbsd"
-+  }
-+}
-+
-+clang_toolchain("clang_arm64") {
-+  toolprefix = "aarch64-linux-gnu-"
-+  toolchain_args = {
-+    current_cpu = "arm64"
-+    current_os = "netbsd"
-+  }
-+}
-+
-+gcc_toolchain("arm64") {
-+  toolprefix = "aarch64-linux-gnu-"
-+
-+  cc = "${toolprefix}gcc"
-+  cxx = "${toolprefix}g++"
-+
-+  ar = "${toolprefix}ar"
-+  ld = cxx
-+  readelf = "${toolprefix}readelf"
-+  nm = "${toolprefix}nm"
-+
-+  toolchain_args = {
-+    current_cpu = "arm64"
-+    current_os = "netbsd"
-+    is_clang = false
-+  }
-+}
-+
-+gcc_toolchain("arm") {
-+  toolprefix = "arm-linux-gnueabihf-"
-+
-+  cc = "${toolprefix}gcc"
-+  cxx = "${toolprefix}g++"
-+
-+  ar = "${toolprefix}ar"
-+  ld = cxx
-+  readelf = "${toolprefix}readelf"
-+  nm = "${toolprefix}nm"
-+
-+  toolchain_args = {
-+    current_cpu = "arm"
-+    current_os = "netbsd"
-+    is_clang = false
-+  }
-+}
-+
 +clang_toolchain("clang_x86") {
-+  # Output linker map files for binary size analysis.
-+  enable_linker_map = true
-+
-+  toolchain_args = {
-+    current_cpu = "x86"
-+    current_os = "netbsd"
-+  }
-+}
-+
-+clang_toolchain("clang_x86_v8_arm") {
-+  toolchain_args = {
-+    current_cpu = "x86"
-+    v8_current_cpu = "arm"
-+    current_os = "netbsd"
-+  }
-+}
-+
-+clang_toolchain("clang_x86_v8_mipsel") {
-+  toolchain_args = {
-+    current_cpu = "x86"
-+    v8_current_cpu = "mipsel"
-+    current_os = "netbsd"
-+  }
-+}
-+
-+clang_toolchain("clang_x86_v8_mips") {
 +  toolchain_args = {
 +    current_cpu = "x86"
-+    v8_current_cpu = "mips"
 +    current_os = "netbsd"
 +  }
 +}
 +
 +gcc_toolchain("x86") {
-+  cc = "cc"
-+  cxx = "c++"
++  cc = "gcc"
++  cxx = "g++"
 +
 +  readelf = "readelf"
 +  nm = "nm"
 +  ar = "ar"
 +  ld = cxx
 +
-+  # Output linker map files for binary size analysis.
-+  enable_linker_map = true
-+
 +  toolchain_args = {
 +    current_cpu = "x86"
 +    current_os = "netbsd"
@@ -124,35 +38,8 @@ $NetBSD$
 +}
 +
 +clang_toolchain("clang_x64") {
-+  # Output linker map files for binary size analysis.
-+  enable_linker_map = true
-+
-+  toolchain_args = {
-+    current_cpu = "x64"
-+    current_os = "netbsd"
-+  }
-+}
-+
-+clang_toolchain("clang_x64_v8_arm64") {
 +  toolchain_args = {
 +    current_cpu = "x64"
-+    v8_current_cpu = "arm64"
-+    current_os = "netbsd"
-+  }
-+}
-+
-+clang_toolchain("clang_x64_v8_mips64el") {
-+  toolchain_args = {
-+    current_cpu = "x64"
-+    v8_current_cpu = "mips64el"
-+    current_os = "netbsd"
-+  }
-+}
-+
-+clang_toolchain("clang_x64_v8_mips64") {
-+  toolchain_args = {
-+    current_cpu = "x64"
-+    v8_current_cpu = "mips64"
 +    current_os = "netbsd"
 +  }
 +}
@@ -166,9 +53,6 @@ $NetBSD$
 +  ar = "ar"
 +  ld = cxx
 +
-+  # Output linker map files for binary size analysis.
-+  enable_linker_map = true
-+
 +  toolchain_args = {
 +    current_cpu = "x64"
 +    current_os = "netbsd"
@@ -176,130 +60,16 @@ $NetBSD$
 +  }
 +}
 +
-+clang_toolchain("clang_mipsel") {
-+  toolchain_args = {
-+    current_cpu = "mipsel"
-+    current_os = "netbsd"
-+  }
-+}
-+
-+clang_toolchain("clang_mips64el") {
-+  toolchain_args = {
-+    current_cpu = "mips64el"
-+    current_os = "netbsd"
-+  }
-+}
-+
-+gcc_toolchain("mipsel") {
-+  toolprefix = "mipsel-linux-gnu-"
-+
-+  cc = "${toolprefix}gcc"
-+  cxx = " ${toolprefix}g++"
-+  ar = "${toolprefix}ar"
-+  ld = cxx
-+  readelf = "${toolprefix}readelf"
-+  nm = "${toolprefix}nm"
-+
-+  toolchain_args = {
-+    cc_wrapper = ""
-+    current_cpu = "mipsel"
-+    current_os = "netbsd"
-+    is_clang = false
-+    use_goma = false
-+  }
-+}
-+
-+gcc_toolchain("mips64el") {
-+  toolprefix = "mips64el-linux-gnuabi64-"
-+
-+  cc = "${toolprefix}gcc"
-+  cxx = "${toolprefix}g++"
-+  ar = "${toolprefix}ar"
-+  ld = cxx
-+  readelf = "${toolprefix}readelf"
-+  nm = "${toolprefix}nm"
-+
-+  toolchain_args = {
-+    cc_wrapper = ""
-+    current_cpu = "mips64el"
-+    current_os = "netbsd"
-+    is_clang = false
-+    use_goma = false
-+  }
-+}
-+
-+clang_toolchain("clang_s390x") {
-+  toolchain_args = {
-+    current_cpu = "s390x"
-+    current_os = "netbsd"
-+    is_clang = true
-+  }
-+}
-+
-+gcc_toolchain("s390x") {
-+  cc = "gcc"
-+  cxx = "g++"
-+
-+  readelf = "readelf"
-+  nm = "nm"
-+  ar = "ar"
-+  ld = cxx
-+
-+  toolchain_args = {
-+    current_cpu = "s390x"
-+    current_os = "netbsd"
-+    is_clang = false
-+  }
-+}
-+
-+gcc_toolchain("ppc64") {
-+  cc = "gcc"
-+  cxx = "g++"
-+
-+  readelf = "readelf"
-+  nm = "nm"
-+  ar = "ar"
-+  ld = cxx
-+
-+  toolchain_args = {
-+    current_cpu = "ppc64"
-+    current_os = "netbsd"
-+    is_clang = false
-+  }
-+}
-+
-+gcc_toolchain("mips") {
-+  toolprefix = "mips-linux-gnu-"
-+
-+  cc = "${toolprefix}gcc"
-+  cxx = "${toolprefix}g++"
-+
-+  readelf = "${toolprefix}readelf"
-+  nm = "${toolprefix}nm"
-+  ar = "${toolprefix}ar"
-+  ld = cxx
-+
++clang_toolchain("clang_arm") {
 +  toolchain_args = {
-+    current_cpu = "mips"
++    current_cpu = "arm64"
 +    current_os = "netbsd"
-+    is_clang = false
 +  }
 +}
 +
-+gcc_toolchain("mips64") {
-+  toolprefix = "mips64-linux-gnuabi64-"
-+
-+  cc = "${toolprefix}gcc"
-+  cxx = "${toolprefix}g++"
-+
-+  readelf = "${toolprefix}readelf"
-+  nm = "${toolprefix}nm"
-+  ar = "${toolprefix}ar"
-+  ld = cxx
-+
++clang_toolchain("clang_arm64") {
 +  toolchain_args = {
-+    current_cpu = "mips64"
++    current_cpu = "arm64"
 +    current_os = "netbsd"
-+    is_clang = false
 +  }
 +}
diff --git a/chromium/patches/patch-build_toolchain_openbsd_BUILD.gn b/chromium/patches/patch-build_toolchain_openbsd_BUILD.gn
new file mode 100644
index 0000000000..04d60f89c8
--- /dev/null
+++ b/chromium/patches/patch-build_toolchain_openbsd_BUILD.gn
@@ -0,0 +1,75 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/toolchain/openbsd/BUILD.gn.orig	2024-08-01 14:08:56.736384706 +0000
++++ build/toolchain/openbsd/BUILD.gn
+@@ -0,0 +1,66 @@
++# 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.
++
++import("//build/config/sysroot.gni")
++import("//build/toolchain/gcc_toolchain.gni")
++
++clang_toolchain("clang_x86") {
++  toolchain_args = {
++    current_cpu = "x86"
++    current_os = "openbsd"
++  }
++}
++
++gcc_toolchain("x86") {
++  cc = "gcc"
++  cxx = "g++"
++
++  readelf = "readelf"
++  nm = "nm"
++  ar = "ar"
++  ld = cxx
++
++  toolchain_args = {
++    current_cpu = "x86"
++    current_os = "openbsd"
++    is_clang = false
++  }
++}
++
++clang_toolchain("clang_x64") {
++  toolchain_args = {
++    current_cpu = "x64"
++    current_os = "openbsd"
++  }
++}
++
++gcc_toolchain("x64") {
++  cc = "gcc"
++  cxx = "g++"
++
++  readelf = "readelf"
++  nm = "nm"
++  ar = "ar"
++  ld = cxx
++
++  toolchain_args = {
++    current_cpu = "x64"
++    current_os = "openbsd"
++    is_clang = false
++  }
++}
++
++clang_toolchain("clang_arm") {
++  toolchain_args = {
++    current_cpu = "arm64"
++    current_os = "openbsd"
++  }
++}
++
++clang_toolchain("clang_arm64") {
++  toolchain_args = {
++    current_cpu = "arm64"
++    current_os = "openbsd"
++  }
++}
diff --git a/chromium/patches/patch-build_toolchain_toolchain.gni b/chromium/patches/patch-build_toolchain_toolchain.gni
new file mode 100644
index 0000000000..b117f19bd3
--- /dev/null
+++ b/chromium/patches/patch-build_toolchain_toolchain.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- build/toolchain/toolchain.gni.orig	2024-07-24 02:44:22.947455400 +0000
++++ build/toolchain/toolchain.gni
+@@ -68,7 +68,7 @@ if (host_os == "mac") {
+   host_shlib_extension = ".dylib"
+ } else if (host_os == "win") {
+   host_shlib_extension = ".dll"
+-} else if (host_os == "linux" || host_os == "aix") {
++} else if (is_posix) {
+   host_shlib_extension = ".so"
+ } else {
+   assert(false, "Host platform not supported")
diff --git a/chromium/patches/patch-cc_BUILD.gn b/chromium/patches/patch-cc_BUILD.gn
new file mode 100644
index 0000000000..46e7bde968
--- /dev/null
+++ b/chromium/patches/patch-cc_BUILD.gn
@@ -0,0 +1,25 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- cc/BUILD.gn.orig	2024-07-24 02:44:22.963457000 +0000
++++ cc/BUILD.gn
+@@ -686,7 +686,7 @@ cc_test_static_library("test_support") {
+   if (enable_vulkan) {
+     deps += [ "//gpu/vulkan/init" ]
+   }
+-  if (!is_android) {
++  if (!is_android && !is_bsd) {
+     data_deps = [ "//third_party/mesa_headers" ]
+   }
+   if (skia_use_dawn) {
+@@ -945,7 +945,6 @@ cc_test("cc_unittests") {
+   data = [ "//components/test/data/viz/" ]
+   data_deps = [
+     "//testing/buildbot/filters:cc_unittests_filters",
+-    "//third_party/mesa_headers",
+   ]
+ 
+   if (is_android && enable_chrome_android_internal) {
diff --git a/chromium/patches/patch-cc_base_features.cc b/chromium/patches/patch-cc_base_features.cc
new file mode 100644
index 0000000000..9e69888fa6
--- /dev/null
+++ b/chromium/patches/patch-cc_base_features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- cc/base/features.cc.orig	2024-07-24 02:44:22.975458100 +0000
++++ cc/base/features.cc
+@@ -86,7 +86,7 @@ BASE_FEATURE(kNormalPriorityImageDecodin
+ // be using a separate flag to control the launch on GL.
+ BASE_FEATURE(kUseDMSAAForTiles,
+              "UseDMSAAForTiles",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-chrome_BUILD.gn b/chromium/patches/patch-chrome_BUILD.gn
deleted file mode 100644
index 7ea2b59269..0000000000
--- a/chromium/patches/patch-chrome_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- chrome/BUILD.gn.orig	2020-07-15 18:56:44.000000000 +0000
-+++ chrome/BUILD.gn
-@@ -28,7 +28,7 @@ import("//v8/gni/v8.gni")
- 
- if (is_android) {
-   import("//build/config/android/rules.gni")
--} else if (is_linux) {
-+} else if (is_linux || is_bsd) {
-   import("//build/linux/extract_symbols.gni")
- } else if (is_mac) {
-   import("//build/compiled_action.gni")
-@@ -131,7 +131,7 @@ if (!is_android && !is_mac) {
-     deps = [ "//printing/buildflags" ]
- 
-     data = [ "$root_out_dir/resources.pak" ]
--    if (is_linux || is_win) {
-+    if (is_linux || is_win || is_bsd) {
-       data_deps = [ "//chrome:packed_resources" ]
-     }
- 
-@@ -211,7 +211,7 @@ if (!is_android && !is_mac) {
-       sources += [ "app/chrome_exe_main_aura.cc" ]
-     }
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources += [
-         "app/chrome_dll_resource.h",
-         "app/chrome_main.cc",
-@@ -1536,7 +1536,7 @@ if (enable_resource_whitelist_generation
-   }
- }
- 
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   if (is_official_build) {
-     group("linux_symbols") {
-       deps = [
diff --git a/chromium/patches/patch-chrome_app_BUILD.gn b/chromium/patches/patch-chrome_app_BUILD.gn
deleted file mode 100644
index 6566e9b7fa..0000000000
--- a/chromium/patches/patch-chrome_app_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/app/BUILD.gn.orig	2020-06-25 09:31:20.000000000 +0000
-+++ chrome/app/BUILD.gn
-@@ -139,7 +139,7 @@ static_library("test_support") {
-     "//v8:v8_headers",
-   ]
- 
--  if (!is_fuchsia) {
-+  if (!is_fuchsia && !is_bsd) {
-     # TODO(crbug.com/753619): Enable crash reporting on Fuchsia.
-     deps += [
-       "//components/crash/core/app",
diff --git a/chromium/patches/patch-chrome_app_chrome__command__ids.h b/chromium/patches/patch-chrome_app_chrome__command__ids.h
index cc3d5ba7dc..31d907d117 100644
--- a/chromium/patches/patch-chrome_app_chrome__command__ids.h
+++ b/chromium/patches/patch-chrome_app_chrome__command__ids.h
@@ -1,13 +1,23 @@
 $NetBSD$
 
---- chrome/app/chrome_command_ids.h.orig	2020-07-24 02:37:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/app/chrome_command_ids.h.orig	2024-07-24 02:44:23.755533700 +0000
 +++ chrome/app/chrome_command_ids.h
-@@ -60,7 +60,7 @@
- #define IDC_MAXIMIZE_WINDOW             34047
- #define IDC_ALL_WINDOWS_FRONT           34048
+@@ -68,12 +68,12 @@
+ #define IDC_TOGGLE_MULTITASK_MENU       34050
+ #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
  #define IDC_USE_SYSTEM_TITLE_BAR        34051
+ #endif
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  #define IDC_RESTORE_WINDOW              34052
  #endif
+ 
diff --git a/chromium/patches/patch-chrome_app_chrome__main.cc b/chromium/patches/patch-chrome_app_chrome__main.cc
index b7e64aeacf..8181a85d5a 100644
--- a/chromium/patches/patch-chrome_app_chrome__main.cc
+++ b/chromium/patches/patch-chrome_app_chrome__main.cc
@@ -1,13 +1,49 @@
 $NetBSD$
 
---- chrome/app/chrome_main.cc.orig	2020-06-25 09:31:20.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/app/chrome_main.cc.orig	2024-07-24 02:44:23.755533700 +0000
 +++ chrome/app/chrome_main.cc
-@@ -109,7 +109,7 @@ int ChromeMain(int argc, const char** ar
-   MainThreadStackSamplingProfiler scoped_sampling_profiler;
- 
-   // Chrome-specific process modes.
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
-   if (command_line->HasSwitch(switches::kHeadless)) {
-     return headless::HeadlessShellMain(params);
-   }
+@@ -28,11 +28,11 @@
+ #include "chrome/app/chrome_main_mac.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/base_switches.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/app/chrome_main_linux.h"
+ #endif
+ 
+@@ -80,7 +80,7 @@ int ChromeMain(int argc, const char** ar
+ #error Unknown platform.
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   PossiblyDetermineFallbackChromeChannel(argv[0]);
+ #endif
+ 
+@@ -141,7 +141,7 @@ int ChromeMain(int argc, const char** ar
+   SetUpBundleOverrides();
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   AppendExtraArgumentsToCommandLine(command_line);
+ #endif
+ 
+@@ -170,7 +170,7 @@ int ChromeMain(int argc, const char** ar
+     headless_mode_handle = headless::InitHeadlessMode();
+   } else {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+     if (headless::IsOldHeadlessMode()) {
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+       command_line->AppendSwitch(::headless::switches::kEnableCrashReporter);
diff --git a/chromium/patches/patch-chrome_app_chrome__main__delegate.cc b/chromium/patches/patch-chrome_app_chrome__main__delegate.cc
index 4ada983e25..b61563f57f 100644
--- a/chromium/patches/patch-chrome_app_chrome__main__delegate.cc
+++ b/chromium/patches/patch-chrome_app_chrome__main__delegate.cc
@@ -1,100 +1,160 @@
 $NetBSD$
 
---- chrome/app/chrome_main_delegate.cc.orig	2020-06-25 09:31:20.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/app/chrome_main_delegate.cc.orig	2024-07-24 02:44:23.755533700 +0000
 +++ chrome/app/chrome_main_delegate.cc
-@@ -145,12 +145,12 @@
+@@ -138,7 +138,7 @@
+ #include "components/about_ui/credit_utils.h"
+ #endif
+ 
+-#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+ #include "components/nacl/common/nacl_paths.h"
+ #include "components/nacl/zygote/nacl_fork_delegate_linux.h"
+ #endif
+@@ -182,21 +182,21 @@
  #include "v8/include/v8.h"
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "base/environment.h"
  #endif
  
- #if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_ANDROID) || \
--    defined(OS_LINUX)
-+    defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/nix/scoped_xdg_activation_token_injector.h"
+ #include "ui/linux/display_server_utils.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "base/message_loop/message_pump_libevent.h"
+ #endif
+ 
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/policy/policy_path_parser.h"
  #include "components/crash/core/app/crashpad.h"
  #endif
-@@ -313,7 +313,7 @@ void AdjustLinuxOOMScore(const std::stri
+@@ -243,7 +243,7 @@
+ #include "base/scoped_add_feature_flags.h"
+ #include "ui/base/ui_base_features.h"
+ #include "ui/ozone/public/ozone_platform.h"
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/chrome_browser_main_extra_parts_linux.h"
+ #endif
+ #endif  // BUILDFLAG(IS_OZONE)
+@@ -343,7 +343,7 @@ void AdjustLinuxOOMScore(const std::stri
  // and resources loaded.
  bool SubprocessNeedsResourceBundle(const std::string& process_type) {
    return
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
        // The zygote process opens the resources for the renderers.
-       process_type == service_manager::switches::kZygoteProcess ||
+       process_type == switches::kZygoteProcess ||
  #endif
-@@ -352,7 +352,7 @@ bool HandleVersionSwitches(const base::C
-   return false;
- }
+@@ -428,7 +428,7 @@ bool HandleVersionSwitches(const base::C
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  // Show the man page if --help or -h is on the command line.
  void HandleHelpSwitches(const base::CommandLine& command_line) {
    if (command_line.HasSwitch(switches::kHelp) ||
-@@ -416,7 +416,7 @@ void InitializeUserDataDir(base::Command
+@@ -474,7 +474,7 @@ void SetCrashpadUploadConsentPostLogin()
+ }
+ #endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+-#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID)
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD)
+ void SIGTERMProfilingShutdown(int signal) {
+   content::Profiling::Stop();
+   struct sigaction sigact;
+@@ -556,7 +556,7 @@ std::optional<int> AcquireProcessSinglet
+   // process can be exited.
+   ChromeProcessSingleton::CreateInstance(user_data_dir);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Read the xdg-activation token and set it in the command line for the
+   // duration of the notification in order to ensure this is propagated to an
+   // already running browser process if it exists.
+@@ -640,7 +640,7 @@ void InitializeUserDataDir(base::Command
    std::string process_type =
        command_line->GetSwitchValueASCII(switches::kProcessType);
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // On Linux, Chrome does not support running multiple copies under different
    // DISPLAYs, so the profile directory can be specified in the environment to
    // support the virtual desktop use-case.
-@@ -499,7 +499,7 @@ void RecordMainStartupMetrics(base::Time
-   startup_metric_utils::RecordApplicationStartTime(now);
+@@ -767,7 +767,7 @@ void RecordMainStartupMetrics(base::Time
  #endif
  
--#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
-   // Record the startup process creation time on supported platforms.
-   startup_metric_utils::RecordStartupProcessCreationTime(
-       base::Process::Current().CreationTime());
-@@ -704,7 +704,7 @@ bool ChromeMainDelegate::BasicStartupCom
-     *exit_code = 0;
-     return true;  // Got a --version switch; exit with a success error code.
-   }
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Record the startup process creation time on supported platforms. On Android
+   // this is recorded in ChromeMainDelegateAndroid.
+   startup_metric_utils::GetCommon().RecordStartupProcessCreationTime(
+@@ -959,7 +959,7 @@ std::optional<int> ChromeMainDelegate::P
+ #if BUILDFLAG(IS_OZONE)
+   // Initialize Ozone platform and add required feature flags as per platform's
+   // properties.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   ui::SetOzonePlatformForLinuxIfNeeded(*base::CommandLine::ForCurrentProcess());
+ #endif
+   ui::OzonePlatform::PreEarlyInitialization();
+@@ -1154,7 +1154,7 @@ void ChromeMainDelegate::CommonEarlyInit
+   const bool is_canary_dev = IsCanaryDev();
+   const bool emit_crashes =
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+       is_canary_dev;
+ #else
+       false;
+@@ -1309,7 +1309,7 @@ std::optional<int> ChromeMainDelegate::B
+ 
+   // TODO(crbug.com/40118868): Revisit the macro expression once build flag
+   // switch of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    // This will directly exit if the user asked for help.
    HandleHelpSwitches(command_line);
  #endif
-@@ -908,7 +908,7 @@ void ChromeMainDelegate::PreSandboxStart
- 
-   crash_reporter::InitializeCrashKeys();
- 
--#if defined(OS_POSIX)
-+#if defined(OS_POSIX) && !defined(OS_BSD)
-   ChromeCrashReporterClient::Create();
+@@ -1339,7 +1339,7 @@ std::optional<int> ChromeMainDelegate::B
+ #if BUILDFLAG(IS_CHROMEOS)
+   chromeos::dbus_paths::RegisterPathProvider();
  #endif
- 
-@@ -920,7 +920,7 @@ void ChromeMainDelegate::PreSandboxStart
- #if defined(OS_WIN)
-   child_process_logging::Init();
+-#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+   nacl::RegisterPathProvider();
  #endif
--#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX))
-+#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD))
-   // Create an instance of the CPU class to parse /proc/cpuinfo and cache
-   // cpu_brand info.
-   base::CPU cpu_info;
-@@ -1039,7 +1039,7 @@ void ChromeMainDelegate::PreSandboxStart
-         locale;
+ 
+@@ -1726,7 +1726,7 @@ void ChromeMainDelegate::PreSandboxStart
+     CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale;
    }
  
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
    // Zygote needs to call InitCrashReporter() in RunZygote().
-   if (process_type != service_manager::switches::kZygoteProcess) {
- #if defined(OS_ANDROID)
-@@ -1122,7 +1122,7 @@ int ChromeMainDelegate::RunProcess(
- 
-     // This entry is not needed on Linux, where the NaCl loader
-     // process is launched via nacl_helper instead.
--#if BUILDFLAG(ENABLE_NACL) && !defined(OS_LINUX)
-+#if BUILDFLAG(ENABLE_NACL) && !defined(OS_LINUX) && !defined(OS_BSD)
-     {switches::kNaClLoaderProcess, NaClMain},
- #else
-     {"<invalid>", nullptr},  // To avoid constant array of size 0
+   if (process_type != switches::kZygoteProcess) {
+     if (command_line.HasSwitch(switches::kPreCrashpadCrashTest)) {
+@@ -1827,7 +1827,7 @@ absl::variant<int, content::MainFunction
+       {switches::kRelauncherProcess, mac_relauncher::internal::RelauncherMain},
+       {switches::kCodeSignCloneCleanupProcess,
+        code_sign_clone_manager::internal::ChromeCodeSignCloneCleanupMain},
+-#elif BUILDFLAG(ENABLE_NACL) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(ENABLE_NACL) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+       // This entry is not needed on Linux, where the NaCl loader
+       // process is launched via nacl_helper instead.
+       {switches::kNaClLoaderProcess, NaClMain},
diff --git a/chromium/patches/patch-chrome_app_chromium__strings.grd b/chromium/patches/patch-chrome_app_chromium__strings.grd
deleted file mode 100644
index 6fda7a1be2..0000000000
--- a/chromium/patches/patch-chrome_app_chromium__strings.grd
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/app/chromium_strings.grd.orig	2020-07-08 21:41:46.000000000 +0000
-+++ chrome/app/chromium_strings.grd
-@@ -681,7 +681,7 @@ Chromium is unable to recover your setti
-       </if>
- 
-       <!-- about:browser-switch strings -->
--      <if expr="is_win or is_macosx or (is_linux and not chromeos)">
-+      <if expr="is_win or is_macosx or (is_posix and not chromeos)">
-         <message name="IDS_ABOUT_BROWSER_SWITCH_DESCRIPTION_UNKNOWN_BROWSER" desc="Description shown while waiting for an alternative browser to open, when the browser name is not auto-detected">
-           Your system administrator has configured Chromium to open an alternative browser to access <ph name="TARGET_URL_HOSTNAME">$1<ex>example.com</ex></ph>.
-         </message>
-@@ -782,7 +782,7 @@ Chromium is unable to recover your setti
-       </message>
- 
-       <!-- ProcessSingleton -->
--      <if expr="is_linux or is_macosx">
-+      <if expr="is_posix or is_macosx">
-         <message name="IDS_PROFILE_IN_USE_POSIX" desc="Message shown when the browser cannot start because the profile is in use on a different host.">
-           The profile appears to be in use by another Chromium process (<ph name="PROCESS_ID">$1<ex>12345</ex></ph>) on another computer (<ph name="HOST_NAME">$2<ex>example.com</ex></ph>). Chromium has locked the profile so that it doesn't get corrupted. If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chromium.
-         </message>
-@@ -1004,7 +1004,7 @@ Chromium is unable to recover your setti
-       </message>
- 
-       <!-- Plugin Placeholders -->
--      <if expr="is_linux">
-+      <if expr="is_posix">
-         <message name="IDS_PLUGIN_RESTART_REQUIRED" desc="The placeholder text for a plugin that can't be loaded until the browser is restarted.">
-           Restart Chromium to enable <ph name="PLUGIN_NAME">$1<ex>Flash</ex></ph>
-         </message>
diff --git a/chromium/patches/patch-chrome_app_generated__resources.grd b/chromium/patches/patch-chrome_app_generated__resources.grd
deleted file mode 100644
index d9b4de246f..0000000000
--- a/chromium/patches/patch-chrome_app_generated__resources.grd
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/app/generated_resources.grd.orig	2020-07-15 18:56:44.000000000 +0000
-+++ chrome/app/generated_resources.grd
-@@ -5215,7 +5215,7 @@ Keep your key file in a safe place. You 
-       </if>
- 
-       <!-- chrome://browser-switch strings -->
--      <if expr="is_win or is_macosx or (is_linux and not chromeos)">
-+      <if expr="is_win or is_macosx or (is_linux and not chromeos) or is_bsd">
-         <message name="IDS_ABOUT_BROWSER_SWITCH_TITLE" desc="about:browser-switch page title">
-           Legacy Browser Support
-         </message>
-@@ -6993,7 +6993,7 @@ the Bookmarks menu.">
-         Google Pay
-       </message>
- 
--      <if expr="is_linux and not chromeos">
-+      <if expr="(is_linux and not chromeos) or is_bsd">
-         <message name="IDS_SHOW_WINDOW_DECORATIONS" desc="The label of a radio button in the options dialog for using the system title bar and borders.">
-           Use system title bar and borders
-         </message>
-@@ -7942,7 +7942,7 @@ Please help our engineers fix this probl
-         Set as default
-       </message>
- 
--      <if expr="is_linux and not chromeos">
-+      <if expr="(is_linux and not chromeos) or is_bsd">
-         <message name="IDS_MINIMIZE_WINDOW_MENU" desc="The Linux browser window menu item text for minimizing the window.">
-           Minimize
-         </message>
diff --git a/chromium/patches/patch-chrome_app_google__chrome__strings.grd b/chromium/patches/patch-chrome_app_google__chrome__strings.grd
deleted file mode 100644
index 3de7b5a76c..0000000000
--- a/chromium/patches/patch-chrome_app_google__chrome__strings.grd
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/app/google_chrome_strings.grd.orig	2020-07-08 21:41:46.000000000 +0000
-+++ chrome/app/google_chrome_strings.grd
-@@ -688,7 +688,7 @@ Google Chrome is unable to recover your 
-       </if>
- 
-       <!-- about:browser-switch strings -->
--      <if expr="is_win or is_macosx or (is_linux and not chromeos)">
-+      <if expr="is_win or is_macosx or (is_posix and not chromeos)">
-         <message name="IDS_ABOUT_BROWSER_SWITCH_DESCRIPTION_UNKNOWN_BROWSER" desc="Description shown while waiting for an alternative browser to open, when the browser name is not auto-detected">
-           Your system administrator has configured Google Chrome to open an alternative browser to access <ph name="TARGET_URL_HOSTNAME">$1<ex>example.com</ex></ph>.
-         </message>
-@@ -789,7 +789,7 @@ Google Chrome is unable to recover your 
-       </message>
- 
-       <!-- ProcessSingleton -->
--      <if expr="is_linux or is_macosx">
-+      <if expr="is_posix or is_macosx">
-         <message name="IDS_PROFILE_IN_USE_POSIX" desc="Message shown when the browser cannot start because the profile is in use on a different host.">
-           The profile appears to be in use by another Google Chrome process (<ph name="PROCESS_ID">$1<ex>12345</ex></ph>) on another computer (<ph name="HOST_NAME">$2<ex>example.com</ex></ph>).  Chrome has locked the profile so that it doesn't get corrupted.  If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chrome.
-         </message>
-@@ -1018,7 +1018,7 @@ Google Chrome is unable to recover your 
-       </message>
- 
-       <!-- Plugin Placeholders -->
--      <if expr="is_linux">
-+      <if expr="is_posix">
-         <message name="IDS_PLUGIN_RESTART_REQUIRED" desc="The placeholder text for a plugin that can't be loaded until the browser is restarted.">
-           Restart Chrome to enable <ph name="PLUGIN_NAME">$1<ex>Flash</ex></ph>
-         </message>
diff --git a/chromium/patches/patch-chrome_app_settings__strings.grdp b/chromium/patches/patch-chrome_app_settings__strings.grdp
deleted file mode 100644
index e422441555..0000000000
--- a/chromium/patches/patch-chrome_app_settings__strings.grdp
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/app/settings_strings.grdp.orig	2020-07-08 21:41:46.000000000 +0000
-+++ chrome/app/settings_strings.grdp
-@@ -88,7 +88,7 @@
-       Themes
-     </message>
-   </if>
--  <if expr="is_linux and not chromeos">
-+  <if expr="is_posix and not chromeos">
-     <message name="IDS_SETTINGS_SYSTEM_THEME" desc="Text of the label describing the system (GTK+) browser theme on Linux">
-       GTK+
-     </message>
-@@ -102,7 +102,7 @@
-       Use Classic
-     </message>
-   </if>
--  <if expr="not is_linux or chromeos">
-+  <if expr="not is_posix or chromeos">
-     <message name="IDS_SETTINGS_RESET_TO_DEFAULT_THEME" desc="Name of the control which resets the browser theme back to the default theme.">
-       Reset to default
-     </message>
diff --git a/chromium/patches/patch-chrome_app_shutdown__signal__handlers__posix.cc b/chromium/patches/patch-chrome_app_shutdown__signal__handlers__posix.cc
deleted file mode 100644
index 23a9e7041d..0000000000
--- a/chromium/patches/patch-chrome_app_shutdown__signal__handlers__posix.cc
+++ /dev/null
@@ -1,24 +0,0 @@
-$NetBSD$
-
---- chrome/app/shutdown_signal_handlers_posix.cc.orig	2020-07-15 18:55:49.000000000 +0000
-+++ chrome/app/shutdown_signal_handlers_posix.cc
-@@ -186,6 +186,11 @@ void InstallShutdownSignalHandlers(
-   g_pipe_pid = getpid();
-   g_shutdown_pipe_read_fd = pipefd[0];
-   g_shutdown_pipe_write_fd = pipefd[1];
-+#if defined(OS_BSD)
-+  // PTHREAD_STACK_MIN causes chromium to crash under FreeBSD,
-+  // we request the default pthread stack size by specifying 0 here.
-+  const size_t kShutdownDetectorThreadStackSize = 0;
-+#else
- #if !defined(ADDRESS_SANITIZER)
-   const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 2;
- #else
-@@ -193,6 +198,7 @@ void InstallShutdownSignalHandlers(
-   // stack size to avoid hitting the guard page.
-   const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 4;
- #endif
-+#endif
-   ShutdownDetector* detector = new ShutdownDetector(
-       g_shutdown_pipe_read_fd, std::move(shutdown_callback), task_runner);
-   // PlatformThread does not delete its delegate.
diff --git a/chromium/patches/patch-chrome_app_theme_chrome__unscaled__resources.grd b/chromium/patches/patch-chrome_app_theme_chrome__unscaled__resources.grd
deleted file mode 100644
index dc6148374b..0000000000
--- a/chromium/patches/patch-chrome_app_theme_chrome__unscaled__resources.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/app/theme/chrome_unscaled_resources.grd.orig	2020-07-08 21:40:33.000000000 +0000
-+++ chrome/app/theme/chrome_unscaled_resources.grd
-@@ -18,7 +18,7 @@
-         <include name="IDR_PRODUCT_LOGO_64" file="google_chrome/product_logo_64.png" type="BINDATA" />
-         <include name="IDR_PRODUCT_LOGO_128" file="google_chrome/product_logo_128.png" type="BINDATA" />
-         <include name="IDR_PRODUCT_LOGO_256" file="google_chrome/product_logo_256.png" type="BINDATA" />
--        <if expr="is_linux">
-+        <if expr="is_posix">
-           <include name="IDR_PRODUCT_LOGO_128_BETA" file="google_chrome/product_logo_128_beta.png" type="BINDATA" />
-           <include name="IDR_PRODUCT_LOGO_128_DEV" file="google_chrome/product_logo_128_dev.png" type="BINDATA" />
-         </if>
diff --git a/chromium/patches/patch-chrome_app_theme_theme__resources.grd b/chromium/patches/patch-chrome_app_theme_theme__resources.grd
deleted file mode 100644
index 31ebd0752a..0000000000
--- a/chromium/patches/patch-chrome_app_theme_theme__resources.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/app/theme/theme_resources.grd.orig	2020-07-08 21:41:46.000000000 +0000
-+++ chrome/app/theme/theme_resources.grd
-@@ -25,7 +25,7 @@
-       <!-- KEEP THESE IN ALPHABETICAL ORDER!  DO NOT ADD TO RANDOM PLACES JUST
-            BECAUSE YOUR RESOURCES ARE FUNCTIONALLY RELATED OR FALL UNDER THE
-            SAME CONDITIONALS. -->
--      <if expr="is_linux or is_win or chromeos">
-+      <if expr="is_posix or is_win or chromeos">
-         <structure type="chrome_scaled_image" name="IDR_ACCESSIBILITY_CAPTIONS_PREVIEW_BACKGROUND" file="common/captions-preview-bg.png" />
-       </if>
-       <if expr="toolkit_views and not is_macosx">
diff --git a/chromium/patches/patch-chrome_browser_BUILD.gn b/chromium/patches/patch-chrome_browser_BUILD.gn
index dfc9c27624..2aaa6fc128 100644
--- a/chromium/patches/patch-chrome_browser_BUILD.gn
+++ b/chromium/patches/patch-chrome_browser_BUILD.gn
@@ -1,66 +1,22 @@
 $NetBSD$
 
---- chrome/browser/BUILD.gn.orig	2020-07-15 18:56:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/BUILD.gn.orig	2024-07-24 02:44:25.787730500 +0000
 +++ chrome/browser/BUILD.gn
-@@ -4342,7 +4342,7 @@ static_library("browser") {
-     ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "chrome_browser_main_linux.cc",
-       "chrome_browser_main_linux.h",
-@@ -4437,7 +4437,7 @@ static_library("browser") {
-     sources += [ "hang_monitor/hang_crash_dump.cc" ]
-   }
- 
--  if (is_win || is_linux) {
-+  if (is_win || is_linux || is_bsd) {
-     sources += [
-       "renderer_context_menu/spelling_options_submenu_observer.cc",
-       "renderer_context_menu/spelling_options_submenu_observer.h",
-@@ -4574,7 +4574,7 @@ static_library("browser") {
-     ]
-   }
- 
--  if (is_posix && !is_mac) {
-+  if (is_posix && !is_mac && !is_bsd) {
-     # TODO(crbug.com/753619): Enable crash reporting on Fuchsia.
-     sources += [
-       "//chrome/app/chrome_crash_reporter_client.cc",
-@@ -4587,14 +4587,14 @@ static_library("browser") {
-     ]
-   }
- 
--  if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+  if (is_win || is_mac || ((is_linux || is_bsd) && !is_chromeos)) {
-     sources += [
-       "password_manager/password_store_signin_notifier_impl.cc",
-       "password_manager/password_store_signin_notifier_impl.h",
-     ]
+@@ -6672,6 +6672,13 @@ static_library("browser") {
+     }
    }
  
--  if (is_win || is_mac || is_linux) {
-+  if (is_win || is_mac || is_linux || is_bsd) {
++  if (is_bsd) {
++    sources -= [
++      "metrics/bluetooth_metrics_provider.cc",
++      "metrics/bluetooth_metrics_provider.h",
++    ]
++  }
++
+   if (is_linux && use_dbus) {
      sources += [
-       "crash_upload_list/crash_upload_list_crashpad.cc",
-       "crash_upload_list/crash_upload_list_crashpad.h",
-@@ -4732,7 +4732,7 @@ static_library("browser") {
-     if (is_mac) {
-       sources += [ "printing/printer_manager_dialog_mac.mm" ]
-     }
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources += [ "printing/printer_manager_dialog_linux.cc" ]
-     }
-     if (is_win || enable_print_preview) {
-@@ -5824,7 +5824,7 @@ grit("resources") {
-     if (is_chromeos) {
-       inputs = [ "resources/plugin_metadata/plugins_chromeos.json" ]
-     }
--    if (is_linux && !is_chromeos) {
-+    if ((is_linux || is_bsd) && !is_chromeos) {
-       inputs = [ "resources/plugin_metadata/plugins_linux.json" ]
-     }
-     if (is_mac) {
+       "dbus_memory_pressure_evaluator_linux.cc",
diff --git a/chromium/patches/patch-chrome_browser_about__flags.cc b/chromium/patches/patch-chrome_browser_about__flags.cc
index 7299fde473..199ae693ee 100644
--- a/chromium/patches/patch-chrome_browser_about__flags.cc
+++ b/chromium/patches/patch-chrome_browser_about__flags.cc
@@ -1,94 +1,272 @@
 $NetBSD$
 
---- chrome/browser/about_flags.cc.orig	2020-07-08 21:41:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/about_flags.cc.orig	2024-07-24 02:44:25.791730900 +0000
 +++ chrome/browser/about_flags.cc
-@@ -181,7 +181,7 @@
- #include "ui/gl/gl_switches.h"
- #include "ui/native_theme/native_theme_features.h"
+@@ -238,7 +238,7 @@
+ #include "ui/ui_features.h"
+ #include "url/url_features.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)  
  #include "base/allocator/buildflags.h"
  #endif
  
-@@ -837,7 +837,7 @@ const FeatureEntry::Choice kMemlogSampli
-      heap_profiling::kMemlogSamplingRate5MB},
+@@ -332,7 +332,7 @@
+ #include "device/vr/public/cpp/features.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "ui/ozone/public/ozone_switches.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+@@ -341,7 +341,7 @@
+ #include "chrome/browser/win/mica_titlebar.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/profile_management/profile_management_features.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
+ 
+@@ -476,7 +476,7 @@ const FeatureEntry::FeatureVariation kDX
+     {"Max 3 Frames", &kDXGIWaitableSwapChain3Frames, 1, nullptr}};
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const FeatureEntry::Choice kOzonePlatformHintRuntimeChoices[] = {
+     {flag_descriptions::kOzonePlatformHintChoiceDefault, "", ""},
+     {flag_descriptions::kOzonePlatformHintChoiceAuto,
+@@ -847,6 +847,26 @@ const FeatureEntry::FeatureVariation
+          std::size(kWebIdentityDigitalIdentityCredentialHighRiskDialogParam),
+          nullptr}};
+ 
++#if BUILDFLAG(IS_BSD)
++const FeatureEntry::FeatureParam kAudioBackendPulseAudio[] = {
++        { "audio-backend", "pulseaudio" }};
++const FeatureEntry::FeatureParam kAudioBackendSndio[] = {
++        { "audio-backend", "sndio" }};
++const FeatureEntry::FeatureParam kAudioBackendAlsa[] = {
++        { "audio-backend", "alsa" }};
++const FeatureEntry::FeatureVariation
++    kAudioBackendVariations[] = {
++        {"using PulseAudio by default if available", kAudioBackendPulseAudio,
++         std::size(kAudioBackendPulseAudio),
++         nullptr},
++        {"using sndio by default if available", kAudioBackendSndio,
++         std::size(kAudioBackendSndio),
++         nullptr},
++        {"using ALSA by default if available", kAudioBackendAlsa,
++         std::size(kAudioBackendAlsa),
++         nullptr}};
++#endif
++
+ const FeatureEntry::FeatureParam kClipboardMaximumAge60Seconds[] = {
+     {"UIClipboardMaximumAge", "60"}};
+ const FeatureEntry::FeatureParam kClipboardMaximumAge90Seconds[] = {
+@@ -1260,7 +1280,7 @@ const FeatureEntry::FeatureVariation kPa
+ };
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ const FeatureEntry::FeatureParam kHistoryEmbeddingsAtKeywordAcceleration[]{
+     {"AtKeywordAcceleration", "true"},
+ };
+@@ -1323,7 +1343,7 @@ const FeatureEntry::FeatureVariation
  };
  
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
- const FeatureEntry::FeatureParam kOmniboxDocumentProviderServerScoring[] = {
-     {"DocumentUseServerScore", "true"},
-     {"DocumentUseClientScore", "false"},
-@@ -2488,7 +2488,7 @@ const FeatureEntry kFeatureEntries[] = {
-      flag_descriptions::kCloudPrintXpsDescription, kOsWin,
-      SINGLE_VALUE_TYPE(switches::kEnableCloudPrintXps)},
- #endif  // OS_WIN
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
-     {"enable-webgl2-compute-context",
-      flag_descriptions::kWebGL2ComputeContextName,
-      flag_descriptions::kWebGL2ComputeContextDescription,
-@@ -2682,7 +2682,7 @@ const FeatureEntry kFeatureEntries[] = {
-      flag_descriptions::kEnableOfflinePreviewsDescription, kOsAndroid,
-      FEATURE_VALUE_TYPE(previews::features::kOfflinePreviews)},
- #endif  // OS_ANDROID
--#if defined(OS_CHROMEOS) || defined(OS_LINUX)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_BSD)
-     {"enable-save-data", flag_descriptions::kEnableSaveDataName,
-      flag_descriptions::kEnableSaveDataDescription, kOsCrOS | kOsLinux,
-      SINGLE_VALUE_TYPE(
-@@ -3426,7 +3426,7 @@ const FeatureEntry kFeatureEntries[] = {
-      FEATURE_VALUE_TYPE(
-          omnibox::kHistoryQuickProviderAllowMidwordContinuations)},
- 
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
-     {"omnibox-experimental-keyword-mode",
-      flag_descriptions::kOmniboxExperimentalKeywordModeName,
-      flag_descriptions::kOmniboxExperimentalKeywordModeDescription, kOsDesktop,
-@@ -3720,7 +3720,7 @@ const FeatureEntry kFeatureEntries[] = {
-      flag_descriptions::kClickToOpenPDFDescription, kOsAll,
-      FEATURE_VALUE_TYPE(features::kClickToOpenPDFPlaceholder)},
- 
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-     {"direct-manipulation-stylus",
-      flag_descriptions::kDirectManipulationStylusName,
-      flag_descriptions::kDirectManipulationStylusDescription,
-@@ -4408,7 +4408,7 @@ const FeatureEntry kFeatureEntries[] = {
- #endif  // BUILDFLAG(ENABLE_CLICK_TO_CALL)
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
-     {"remote-copy-receiver", flag_descriptions::kRemoteCopyReceiverName,
-      flag_descriptions::kRemoteCopyReceiverDescription, kOsDesktop,
-      FEATURE_VALUE_TYPE(kRemoteCopyReceiver)},
-@@ -4451,7 +4451,7 @@ const FeatureEntry kFeatureEntries[] = {
-          send_tab_to_self::kSendTabToSelfOmniboxSendingAnimation)},
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
-     {"sharing-peer-connection-receiver",
-      flag_descriptions::kSharingPeerConnectionReceiverName,
-      flag_descriptions::kSharingPeerConnectionReceiverDescription, kOsDesktop,
-@@ -4537,7 +4537,7 @@ const FeatureEntry kFeatureEntries[] = {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ const FeatureEntry::FeatureParam kShortcutBoostSingleUrl[] = {
+     {"ShortcutBoostSearchScore", "0"},
+     {"ShortcutBoostNonTopHitThreshold", "0"},
+@@ -3811,7 +3831,7 @@ const flags_ui::FeatureEntry::FeatureVar
+          std::size(kParcelTrackingTestDataOutForDelivery), nullptr},
+ };
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ const flags_ui::FeatureEntry::FeatureParam
+     kDesktopPWAsLinkCapturingDefaultOn[] = {{"on_by_default", "true"}};
+ const flags_ui::FeatureEntry::FeatureParam
+@@ -4784,7 +4804,7 @@ const FeatureEntry kFeatureEntries[] = {
+     },
+ #endif  // BUILDFLAG(IS_ANDROID)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     {
+         "fluent-overlay-scrollbars",
+         flag_descriptions::kFluentOverlayScrollbarsName,
+@@ -5200,7 +5220,7 @@ const FeatureEntry kFeatureEntries[] = {
+      flag_descriptions::kWebAppUniversalInstallDescription, kOsDesktop,
+      FEATURE_VALUE_TYPE(features::kWebAppUniversalInstall)},
+ #endif  // !BUILDFLAG(IS_ANDROID)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     {"shortcuts-not-apps", flag_descriptions::kShortcutsNotAppsName,
+      flag_descriptions::kShortcutsNotAppsDescription,
+      kOsMac | kOsWin | kOsLinux,
+@@ -5332,7 +5352,7 @@ const FeatureEntry kFeatureEntries[] = {
+      FEATURE_VALUE_TYPE(features::kWebShare)},
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     {"pulseaudio-loopback-for-cast",
+      flag_descriptions::kPulseaudioLoopbackForCastName,
+      flag_descriptions::kPulseaudioLoopbackForCastDescription, kOsLinux,
+@@ -5346,9 +5366,19 @@ const FeatureEntry kFeatureEntries[] = {
+     {"ozone-platform-hint", flag_descriptions::kOzonePlatformHintName,
+      flag_descriptions::kOzonePlatformHintDescription, kOsLinux,
+      MULTI_VALUE_TYPE(kOzonePlatformHintRuntimeChoices)},
++
++#if BUILDFLAG(IS_BSD)
++    {"audio-backend",
++     flag_descriptions::kAudioBackendName,
++     flag_descriptions::kAudioBackendDescription, kOsLinux,
++     FEATURE_WITH_PARAMS_VALUE_TYPE(
++         media::kAudioBackend,
++         kAudioBackendVariations,
++         "AudioBackend")},
++#endif
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+     {"skip-undecryptable-passwords",
+      flag_descriptions::kSkipUndecryptablePasswordsName,
+      flag_descriptions::kSkipUndecryptablePasswordsDescription,
+@@ -6286,7 +6316,7 @@ const FeatureEntry kFeatureEntries[] = {
+      FEATURE_VALUE_TYPE(omnibox::kZeroSuggestInMemoryCaching)},
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+     {"omnibox-domain-suggestions",
+      flag_descriptions::kOmniboxDomainSuggestionsName,
+      flag_descriptions::kOmniboxDomainSuggestionsDescription, kOsDesktop,
+@@ -6620,7 +6650,7 @@ const FeatureEntry kFeatureEntries[] = {
+                                     "OrganicRepeatableQueries")},
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+     {"history-embeddings", flag_descriptions::kHistoryEmbeddingsName,
+      flag_descriptions::kHistoryEmbeddingsDescription, kOsDesktop,
+      FEATURE_WITH_PARAMS_VALUE_TYPE(history_embeddings::kHistoryEmbeddings,
+@@ -7310,7 +7340,7 @@ const FeatureEntry kFeatureEntries[] = {
+      FEATURE_VALUE_TYPE(printing::features::kAddPrinterViaPrintscanmgr)},
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+     {"cups-ipp-printing-backend",
+      flag_descriptions::kCupsIppPrintingBackendName,
+      flag_descriptions::kCupsIppPrintingBackendDescription, kOsDesktop,
+@@ -8309,7 +8339,7 @@ const FeatureEntry kFeatureEntries[] = {
+      flag_descriptions::kCooperativeSchedulingDescription, kOsAll,
+      FEATURE_VALUE_TYPE(features::kCooperativeScheduling)},
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     {"enable-network-service-sandbox",
+      flag_descriptions::kEnableNetworkServiceSandboxName,
+      flag_descriptions::kEnableNetworkServiceSandboxDescription,
+@@ -8333,7 +8363,7 @@ const FeatureEntry kFeatureEntries[] = {
+      FEATURE_VALUE_TYPE(media::kV4L2FlatStatefulVideoDecoder)},
+ #endif
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+     {"enable-family-link-extensions-permissions",
+      flag_descriptions::
+          kEnableExtensionsPermissionsForSupervisedUsersOnDesktopName,
+@@ -9195,7 +9225,7 @@ const FeatureEntry kFeatureEntries[] = {
+      FEATURE_VALUE_TYPE(ash::features::kWallpaperPerDesk)},
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     {"enable-get-all-screens-media", flag_descriptions::kGetAllScreensMediaName,
+      flag_descriptions::kGetAllScreensMediaDescription,
+      kOsCrOS | kOsLacros | kOsLinux,
+@@ -9234,7 +9264,7 @@ const FeatureEntry kFeatureEntries[] = {
+ 
+ #if BUILDFLAG(IS_WIN) ||                                      \
+     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+     {
+         "ui-debug-tools",
+         flag_descriptions::kUIDebugToolsName,
+@@ -9476,7 +9506,7 @@ const FeatureEntry kFeatureEntries[] = {
  #endif
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
-     {"enable-reopen-tab-in-product-help",
-      flag_descriptions::kReopenTabInProductHelpName,
-      flag_descriptions::kReopenTabInProductHelpDescription, kOsDesktop,
-@@ -5004,7 +5004,7 @@ const FeatureEntry kFeatureEntries[] = {
-      flag_descriptions::kEnableSyncTrustedVaultDescription, kOsAll,
-      FEATURE_VALUE_TYPE(switches::kSyncSupportTrustedVaultPassphrase)},
- 
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-     {"global-media-controls", flag_descriptions::kGlobalMediaControlsName,
-      flag_descriptions::kGlobalMediaControlsDescription,
-      kOsWin | kOsMac | kOsLinux,
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+     {"policy-indication-for-managed-default-search",
+      flag_descriptions::kPolicyIndicationForManagedDefaultSearchName,
+      flag_descriptions::kPolicyIndicationForManagedDefaultSearchDescription,
+@@ -9789,7 +9819,7 @@ const FeatureEntry kFeatureEntries[] = {
+ #endif
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     {"media-session-enter-picture-in-picture",
+      flag_descriptions::kMediaSessionEnterPictureInPictureName,
+      flag_descriptions::kMediaSessionEnterPictureInPictureDescription,
+@@ -10684,7 +10714,7 @@ const FeatureEntry kFeatureEntries[] = {
+      kOsDesktop | kOsAndroid,
+      FEATURE_VALUE_TYPE(features::kProcessPerSiteUpToMainFrameThreshold)},
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     {"camera-mic-effects", flag_descriptions::kCameraMicEffectsName,
+      flag_descriptions::kCameraMicEffectsDescription,
+      static_cast<unsigned short>(kOsMac | kOsWin | kOsLinux),
+@@ -10722,7 +10752,7 @@ const FeatureEntry kFeatureEntries[] = {
+      FEATURE_VALUE_TYPE(features::kSiteInstanceGroupsForDataUrls)},
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     {"site-search-settings-policy",
+      flag_descriptions::kSiteSearchSettingsPolicyName,
+      flag_descriptions::kSiteSearchSettingsPolicyDescription, kOsAll,
+@@ -10846,7 +10876,7 @@ const FeatureEntry kFeatureEntries[] = {
+      flag_descriptions::kHideIncognitoMediaMetadataDescription, kOsAll,
+      FEATURE_VALUE_TYPE(media::kHideIncognitoMediaMetadata)},
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+     {"third-party-profile-management",
+      flag_descriptions::kThirdPartyProfileManagementName,
+      flag_descriptions::kThirdPartyProfileManagementDescription,
+@@ -11182,7 +11212,7 @@ const FeatureEntry kFeatureEntries[] = {
+          trusted_vault::kTrustedVaultFrequentDegradedRecoverabilityPolling)},
+ #endif
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     {"restart-to-gain-access-to-keychain",
+      flag_descriptions::kRestartToGainAccessToKeychainName,
+      flag_descriptions::kRestartToGainAccessToKeychainDescription,
+@@ -11469,7 +11499,7 @@ const FeatureEntry kFeatureEntries[] = {
+ 
+ // Controls the view mode for (history) sync screen.
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+     {"minor-mode-restrictions-for-history-sync-opt-in",
+      flag_descriptions::kMinorModeRestrictionsForHistorySyncOptInName,
+      flag_descriptions::kMinorModeRestrictionsForHistorySyncOptInDescription,
diff --git a/chromium/patches/patch-chrome_browser_after__startup__task__utils.cc b/chromium/patches/patch-chrome_browser_after__startup__task__utils.cc
index 418bb61bdd..8b792c1741 100644
--- a/chromium/patches/patch-chrome_browser_after__startup__task__utils.cc
+++ b/chromium/patches/patch-chrome_browser_after__startup__task__utils.cc
@@ -1,31 +1,17 @@
 $NetBSD$
 
---- chrome/browser/after_startup_task_utils.cc.orig	2020-07-08 21:40:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/after_startup_task_utils.cc.orig	2024-07-24 02:44:25.799731700 +0000
 +++ chrome/browser/after_startup_task_utils.cc
-@@ -32,7 +32,7 @@
- #include "chrome/browser/ui/tabs/tab_strip_model.h"
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/views/linux_ui/linux_ui.h"
- #endif
- 
-@@ -119,7 +119,7 @@ void QueueTask(std::unique_ptr<AfterStar
- 
- void SetBrowserStartupIsComplete() {
-   DCHECK_CURRENTLY_ON(BrowserThread::UI);
--#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+@@ -117,7 +117,7 @@ void SetBrowserStartupIsComplete() {
+                        TRACE_EVENT_SCOPE_GLOBAL, "BrowserCount", browser_count);
+   GetStartupCompleteFlag().Set();
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Process::Current().CreationTime() is not available on all platforms.
    const base::Time process_creation_time =
        base::Process::Current().CreationTime();
-@@ -136,7 +136,7 @@ void SetBrowserStartupIsComplete() {
-   g_after_startup_tasks.Get().clear();
-   g_after_startup_tasks.Get().shrink_to_fit();
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   // Make sure we complete the startup notification sequence, or launchers will
-   // get confused by not receiving the expected message from the main process.
-   views::LinuxUI* linux_ui = views::LinuxUI::instance();
diff --git a/chromium/patches/patch-chrome_browser_apps_app__service_publishers_extension__apps.cc b/chromium/patches/patch-chrome_browser_apps_app__service_publishers_extension__apps.cc
new file mode 100644
index 0000000000..3696b55e21
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_apps_app__service_publishers_extension__apps.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/apps/app_service/publishers/extension_apps.cc.orig	2024-07-24 02:44:25.955747000 +0000
++++ chrome/browser/apps/app_service/publishers/extension_apps.cc
+@@ -23,7 +23,7 @@ ExtensionApps::ExtensionApps(AppServiceP
+ ExtensionApps::~ExtensionApps() = default;
+ 
+ bool ExtensionApps::Accepts(const extensions::Extension* extension) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (extensions::IsExtensionUnsupportedDeprecatedApp(profile(),
+                                                       extension->id())) {
+     return false;
diff --git a/chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc b/chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc
new file mode 100644
index 0000000000..688042741d
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc
@@ -0,0 +1,71 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/apps/platform_apps/platform_app_launch.cc.orig	2024-07-24 02:44:25.983749600 +0000
++++ chrome/browser/apps/platform_apps/platform_app_launch.cc
+@@ -19,7 +19,7 @@
+ #include "extensions/common/constants.h"
+ #include "extensions/common/extension.h"
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/browser.h"
+ #include "chrome/browser/ui/browser_navigator.h"
+ #include "chrome/browser/ui/browser_window.h"
+@@ -86,7 +86,7 @@ bool OpenExtensionApplicationWindow(Prof
+   if (launch_container == LaunchContainer::kLaunchContainerTab)
+     return false;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (OpenDeprecatedApplicationPrompt(profile, app_id)) {
+     return false;
+   }
+@@ -118,7 +118,7 @@ content::WebContents* OpenExtensionAppli
+   if (launch_container != apps::LaunchContainer::kLaunchContainerTab)
+     return nullptr;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (OpenDeprecatedApplicationPrompt(profile, app_id)) {
+     return nullptr;
+   }
+@@ -134,7 +134,7 @@ content::WebContents* OpenExtensionAppli
+   return app_tab;
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool OpenDeprecatedApplicationPrompt(Profile* profile,
+                                      const std::string& app_id) {
+   if (!extensions::IsExtensionUnsupportedDeprecatedApp(profile, app_id))
+@@ -170,7 +170,7 @@ bool OpenExtensionApplicationWithReenabl
+   if (!GetPlatformApp(profile, app_id))
+     return false;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (OpenDeprecatedApplicationPrompt(profile, app_id)) {
+     return false;
+   }
+@@ -192,7 +192,7 @@ content::WebContents* OpenExtensionAppSh
+                                          ->enabled_extensions()
+                                          .GetAppByURL(url);
+   if (app) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     if (OpenDeprecatedApplicationPrompt(profile, app->id())) {
+       return nullptr;
+     }
+@@ -215,7 +215,7 @@ void RecordExtensionAppLaunchOnTabRestor
+   if (!extension)
+     return;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (OpenDeprecatedApplicationPrompt(profile, extension->id())) {
+     return;
+   }
diff --git a/chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.h b/chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.h
new file mode 100644
index 0000000000..8ea6c2042b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_apps_platform__apps_platform__app__launch.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/apps/platform_apps/platform_app_launch.h.orig	2024-07-24 02:44:25.983749600 +0000
++++ chrome/browser/apps/platform_apps/platform_app_launch.h
+@@ -38,7 +38,7 @@ bool OpenExtensionApplicationWindow(Prof
+ content::WebContents* OpenExtensionApplicationTab(Profile* profile,
+                                                   const std::string& app_id);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Opens the deprecated Chrome Apps flow if |app_id| refers to a Chrome App and
+ // Chrome Apps are deprecated on the |profile|. Returns true if that was the
+ // case, or false otherwise.
diff --git a/chromium/patches/patch-chrome_browser_apps_platform_apps_api_music__manager__private_device__id__linux.cc b/chromium/patches/patch-chrome_browser_apps_platform_apps_api_music__manager__private_device__id__linux.cc
deleted file mode 100644
index 03f687dcad..0000000000
--- a/chromium/patches/patch-chrome_browser_apps_platform_apps_api_music__manager__private_device__id__linux.cc
+++ /dev/null
@@ -1,72 +0,0 @@
-$NetBSD$
-
---- chrome/browser/apps/platform_apps/api/music_manager_private/device_id_linux.cc.orig	2020-07-15 18:56:45.000000000 +0000
-+++ chrome/browser/apps/platform_apps/api/music_manager_private/device_id_linux.cc
-@@ -4,6 +4,11 @@
- 
- #include "chrome/browser/apps/platform_apps/api/music_manager_private/device_id.h"
- 
-+#if defined(OS_BSD)
-+#include <sys/types.h>
-+#include <net/if_dl.h>
-+#endif
-+
- #include <ifaddrs.h>
- #include <net/if.h>
- #include <stddef.h>
-@@ -106,9 +111,36 @@ class MacAddressProcessor {
-                         const char* const prefixes[],
-                         size_t prefixes_count) {
-     const int MAC_LENGTH = 6;
-+#if defined(OS_BSD)
-+    struct ifaddrs *ifap, *ifinfo;
-+#else
-     struct ifreq ifinfo;
-+#endif
- 
-     memset(&ifinfo, 0, sizeof(ifinfo));
-+
-+#if defined(OS_BSD)
-+    int result = getifaddrs(&ifap);
-+
-+    if (result != 0)
-+      return true;
-+
-+    result = 1; // no MAC found yet
-+
-+    for (ifinfo = ifap; ifinfo != NULL; ifinfo = ifinfo->ifa_next) {
-+      struct sockaddr* sa = ifinfo->ifa_addr;
-+      if (sa->sa_family == AF_LINK &&
-+        !strncmp(ifinfo->ifa_name, ifaddr->ifa_name,
-+        sizeof(ifinfo->ifa_name) - 1)) { 
-+          result = 0;
-+	  break;
-+      }
-+    }
-+
-+    char mac_address[6];
-+
-+    strncpy(mac_address, (const char*)LLADDR((struct sockaddr_dl*)ifinfo->ifa_addr), sizeof(mac_address));
-+#else
-     strncpy(ifinfo.ifr_name, ifaddr->ifa_name, sizeof(ifinfo.ifr_name) - 1);
- 
-     int sd = socket(AF_INET, SOCK_DGRAM, 0);
-@@ -120,11 +152,18 @@ class MacAddressProcessor {
- 
-     const char* mac_address =
-         static_cast<const char*>(ifinfo.ifr_hwaddr.sa_data);
-+#endif
-+
-     if (!is_valid_mac_address_.Run(mac_address, MAC_LENGTH))
-       return true;
- 
-+#if defined(OS_BSD)
-+    if (!IsValidPrefix(ifinfo->ifa_name, prefixes, prefixes_count))
-+      return true;
-+#else
-     if (!IsValidPrefix(ifinfo.ifr_name, prefixes, prefixes_count))
-       return true;
-+#endif
- 
-     // Got one!
-     found_mac_address_ =
diff --git a/chromium/patches/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc b/chromium/patches/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc
index 9ca810ee83..7f75361ff4 100644
--- a/chromium/patches/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc
+++ b/chromium/patches/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc.orig	2020-07-08 21:40:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc.orig	2024-07-24 02:44:26.783827000 +0000
 +++ chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
-@@ -86,7 +86,7 @@ ChromeAutocompleteSchemeClassifier::GetI
+@@ -88,7 +88,7 @@ ChromeAutocompleteSchemeClassifier::GetI
        return metrics::OmniboxInputType::QUERY;
  
      case ExternalProtocolHandler::UNKNOWN: {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-       // Linux impl of GetApplicationNameForProtocol doesn't distinguish
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+       // Linux impl of GetApplicationNameForScheme doesn't distinguish
        // between URL schemes with handers and those without. This will
        // make the default behaviour be search on Linux.
diff --git a/chromium/patches/patch-chrome_browser_background_background__mode__manager.cc b/chromium/patches/patch-chrome_browser_background_background__mode__manager.cc
index e0eb1f72d1..ce1975fd51 100644
--- a/chromium/patches/patch-chrome_browser_background_background__mode__manager.cc
+++ b/chromium/patches/patch-chrome_browser_background_background__mode__manager.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/background/background_mode_manager.cc.orig	2020-07-08 21:40:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/background/background_mode_manager.cc.orig	2024-07-24 02:44:26.811829800 +0000
 +++ chrome/browser/background/background_mode_manager.cc
-@@ -849,7 +849,7 @@ gfx::ImageSkia GetStatusTrayIcon() {
+@@ -872,7 +872,7 @@ gfx::ImageSkia GetStatusTrayIcon() {
      return gfx::ImageSkia();
  
    return family->CreateExact(size).AsImageSkia();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    return *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
        IDR_PRODUCT_LOGO_128);
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-chrome_browser_background_background__mode__optimizer.cc b/chromium/patches/patch-chrome_browser_background_background__mode__optimizer.cc
index 2e451959f9..b19ac4e264 100644
--- a/chromium/patches/patch-chrome_browser_background_background__mode__optimizer.cc
+++ b/chromium/patches/patch-chrome_browser_background_background__mode__optimizer.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/background/background_mode_optimizer.cc.orig	2020-07-08 21:40:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/background/background_mode_optimizer.cc.orig	2024-07-24 02:44:26.815830200 +0000
 +++ chrome/browser/background/background_mode_optimizer.cc
-@@ -30,7 +30,7 @@ std::unique_ptr<BackgroundModeOptimizer>
-           switches::kKeepAliveForTest))
+@@ -31,7 +31,7 @@ std::unique_ptr<BackgroundModeOptimizer>
      return nullptr;
+   }
  
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
-   if (base::FeatureList::IsEnabled(features::kBackgroundModeAllowRestart))
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (base::FeatureList::IsEnabled(features::kBackgroundModeAllowRestart)) {
+     // Private ctor.
      return base::WrapUnique(new BackgroundModeOptimizer());
- #endif  // defined(OS_WIN) || defined(OS_LINUX)
diff --git a/chromium/patches/patch-chrome_browser_browser__features.cc b/chromium/patches/patch-chrome_browser_browser__features.cc
new file mode 100644
index 0000000000..85f1628b65
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_browser__features.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/browser_features.cc.orig	2024-07-24 02:44:26.831831700 +0000
++++ chrome/browser/browser_features.cc
+@@ -61,7 +61,7 @@ BASE_FEATURE(kClosedTabCache,
+ BASE_FEATURE(kDestroyProfileOnBrowserClose,
+              "DestroyProfileOnBrowserClose",
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT);
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -330,7 +330,7 @@ BASE_FEATURE(kSandboxExternalProtocolBlo
+ BASE_FEATURE(kSupportSearchSuggestionForPrerender2,
+              "SupportSearchSuggestionForPrerender2",
+ #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+-    BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT);
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-chrome_browser_browser__process__impl.cc b/chromium/patches/patch-chrome_browser_browser__process__impl.cc
new file mode 100644
index 0000000000..244a977465
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_browser__process__impl.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/browser_process_impl.cc.orig	2024-07-24 02:44:26.831831700 +0000
++++ chrome/browser/browser_process_impl.cc
+@@ -228,7 +228,7 @@
+ #include "chrome/browser/ui/profiles/profile_picker.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/error_reporting/chrome_js_error_report_processor.h"  // nogncheck
+ #endif
+ 
+@@ -1282,7 +1282,7 @@ void BrowserProcessImpl::PreMainMessageL
+ 
+   ApplyMetricsReportingPolicy();
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   ChromeJsErrorReportProcessor::Create();
+ #endif
+ 
+@@ -1615,7 +1615,7 @@ void BrowserProcessImpl::Unpin() {
+ // Mac is currently not supported.
+ // TODO(crbug.com/40118868): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
+ 
+ bool BrowserProcessImpl::IsRunningInBackground() const {
+   // Check if browser is in the background.
diff --git a/chromium/patches/patch-chrome_browser_browser__process__impl.h b/chromium/patches/patch-chrome_browser_browser__process__impl.h
new file mode 100644
index 0000000000..25b1f4de06
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_browser__process__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/browser_process_impl.h.orig	2024-07-24 02:44:26.831831700 +0000
++++ chrome/browser/browser_process_impl.h
+@@ -404,7 +404,7 @@ class BrowserProcessImpl : public Browse
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
+   base::RepeatingTimer autoupdate_timer_;
+ 
+   // Gets called by autoupdate timer to see if browser needs restart and can be
diff --git a/chromium/patches/patch-chrome_browser_browser__resources.grd b/chromium/patches/patch-chrome_browser_browser__resources.grd
deleted file mode 100644
index 9753330047..0000000000
--- a/chromium/patches/patch-chrome_browser_browser__resources.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/browser_resources.grd.orig	2020-07-08 21:41:46.000000000 +0000
-+++ chrome/browser/browser_resources.grd
-@@ -64,7 +64,7 @@
-         <include name="IDR_DISCARDS_SITE_DATA_MOJOM_LITE_JS" file="${root_gen_dir}\chrome\browser\ui\webui\discards\site_data.mojom-lite.js" use_base_dir="false" type="BINDATA" />
-         <include name="IDR_DISCARDS_SORTED_TABLE_BEHAVIOR_JS" file="resources\discards\sorted_table_behavior.js" type="BINDATA" />
-       </if>
--      <if expr="is_win or is_macosx or (is_linux and not chromeos)">
-+      <if expr="is_win or is_macosx or (is_posix and not chromeos)">
-         <include name="IDR_BROWSER_SWITCH_APP_JS" file="${root_gen_dir}\chrome\browser\resources\browser_switch\app.js" use_base_dir="false" type="BINDATA" />
-         <include name="IDR_BROWSER_SWITCH_PROXY_JS" file="resources\browser_switch\browser_switch_proxy.js" type="BINDATA" />
-         <include name="IDR_BROWSER_SWITCH_HTML" file="resources\browser_switch\browser_switch.html" allowexternalscript="true" type="BINDATA" />
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__interface__binders.cc b/chromium/patches/patch-chrome_browser_chrome__browser__interface__binders.cc
index d87932b397..4156337bad 100644
--- a/chromium/patches/patch-chrome_browser_chrome__browser__interface__binders.cc
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__interface__binders.cc
@@ -1,22 +1,95 @@
 $NetBSD$
 
---- chrome/browser/chrome_browser_interface_binders.cc.orig	2020-07-08 21:41:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_interface_binders.cc.orig	2024-07-24 02:44:26.863834900 +0000
 +++ chrome/browser/chrome_browser_interface_binders.cc
-@@ -119,7 +119,7 @@
+@@ -134,12 +134,12 @@
+ #endif  // BUILDFLAG(FULL_SAFE_BROWSING)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/connectors_internals/connectors_internals.mojom.h"
+ #include "chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/app_settings/web_app_settings_ui.h"
+ #include "ui/webui/resources/cr_components/app_management/app_management.mojom.h"
  #endif
+@@ -230,7 +230,7 @@
+ #endif  // BUILDFLAG(IS_ANDROID)
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/companion/visual_query/visual_query_suggestions_service_factory.h"
+ #include "chrome/browser/ui/web_applications/sub_apps_service_impl.h"
  #include "chrome/browser/ui/webui/discards/discards.mojom.h"
- #include "chrome/browser/ui/webui/discards/discards_ui.h"
- #include "chrome/browser/ui/webui/discards/site_data.mojom.h"
-@@ -573,7 +573,7 @@ void PopulateChromeWebUIFrameBinders(
+@@ -241,7 +241,7 @@
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+         // BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/whats_new/whats_new_ui.h"
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ 
+@@ -865,7 +865,7 @@ void BindScreen2xMainContentExtractor(
  #endif
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ void BindVisualSuggestionsModelProvider(
+     content::RenderFrameHost* frame_host,
+     mojo::PendingReceiver<
+@@ -1061,7 +1061,7 @@ void PopulateChromeFrameBinders(
+ #endif  // BUILDFLAG(ENABLE_SPEECH_SERVICE)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (base::FeatureList::IsEnabled(blink::features::kDesktopPWAsSubApps) &&
+       !render_frame_host->GetParentOrOuterDocument()) {
+     // The service binder will reject non-primary main frames, but we still need
+@@ -1152,7 +1152,7 @@ void PopulateChromeWebUIFrameBinders(
+       DataSharingInternalsUI>(map);
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   RegisterWebUIControllerInterfaceBinder<
+       connectors_internals::mojom::PageHandler,
+       enterprise_connectors::ConnectorsInternalsUI>(map);
+@@ -1163,7 +1163,7 @@ void PopulateChromeWebUIFrameBinders(
+                                          policy::DlpInternalsUI>(map);
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   RegisterWebUIControllerInterfaceBinder<
+       app_management::mojom::PageHandlerFactory, WebAppSettingsUI>(map);
+ #endif
+@@ -1256,7 +1256,7 @@ void PopulateChromeWebUIFrameBinders(
+ 
+   RegisterWebUIControllerInterfaceBinder<
+       browser_command::mojom::CommandHandlerFactory,
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       WhatsNewUI,
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+       NewTabPageUI>(map);
+@@ -1797,7 +1797,7 @@ void PopulateChromeWebUIFrameBinders(
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    RegisterWebUIControllerInterfaceBinder<discards::mojom::DetailsProvider,
                                           DiscardsUI>(map);
  
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__main.cc b/chromium/patches/patch-chrome_browser_chrome__browser__main.cc
index 3cc475a17f..9280b6cda1 100644
--- a/chromium/patches/patch-chrome_browser_chrome__browser__main.cc
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__main.cc
@@ -1,56 +1,124 @@
 $NetBSD$
 
---- chrome/browser/chrome_browser_main.cc.orig	2020-07-24 02:37:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_main.cc.orig	2024-07-24 02:44:26.863834900 +0000
 +++ chrome/browser/chrome_browser_main.cc
-@@ -207,7 +207,7 @@
- #include "components/arc/metrics/stability_metrics_manager.h"
- #endif  // defined(OS_CHROMEOS)
+@@ -247,15 +247,15 @@
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/first_run/upgrade_util_linux.h"
- #endif  // defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/crash/core/app/crashpad.h"
+ #endif
  
-@@ -245,7 +245,7 @@
- #endif  // defined(OS_WIN)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/nix/xdg_util.h"
+ #endif
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+@@ -288,14 +288,14 @@
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.h"
  #include "chrome/browser/metrics/desktop_session_duration/touch_mode_stats_tracker.h"
  #include "chrome/browser/profiles/profile_activity_metrics_recorder.h"
-@@ -924,7 +924,7 @@ int ChromeBrowserMainParts::PreCreateThr
-       AddFirstRunNewTabs(browser_creator_.get(), master_prefs_->new_tabs);
+ #include "ui/base/pointer/touch_ui_controller.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/headless/headless_mode_metrics.h"  // nogncheck
+ #include "chrome/browser/headless/headless_mode_util.h"     // nogncheck
+ #include "components/headless/select_file_dialog/headless_select_file_dialog.h"
+@@ -367,14 +367,14 @@
+ #endif  // BUILDFLAG(IS_WIN) && BUILDFLAG(USE_BROWSER_SPELLCHECKER)
+ 
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "sql/database.h"
+ #endif  // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
+         // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
+ 
+ namespace {
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ constexpr base::FilePath::CharType kMediaHistoryDatabaseName[] =
+     FILE_PATH_LITERAL("Media History");
+ 
+@@ -539,7 +539,7 @@ void ProcessSingletonNotificationCallbac
+   }
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Set the global activation token sent as a command line switch by another
+   // browser process. This also removes the switch after use to prevent any side
+   // effects of leaving it in the command line after this point.
+@@ -1101,7 +1101,7 @@ int ChromeBrowserMainParts::PreCreateThr
+       browser_creator_->AddFirstRunTabs(master_prefs_->new_tabs);
      }
  
--#if defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      // Create directory for user-level Native Messaging manifest files. This
      // makes it less likely that the directory will be created by third-party
      // software with incorrect owner or permission. See crbug.com/725513 .
-@@ -955,7 +955,7 @@ int ChromeBrowserMainParts::PreCreateThr
- #endif  // defined(OS_MACOSX)
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+@@ -1149,7 +1149,7 @@ int ChromeBrowserMainParts::PreCreateThr
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    metrics::DesktopSessionDurationTracker::Initialize();
    ProfileActivityMetricsRecorder::Initialize();
    TouchModeStatsTracker::Initialize(
-@@ -1111,6 +1111,7 @@ void ChromeBrowserMainParts::PostBrowser
-       base::TimeDelta::FromMinutes(1));
- 
- #if !defined(OS_ANDROID)
-+#if !defined(OS_BSD)
-   if (base::FeatureList::IsEnabled(features::kWebUsb)) {
-     web_usb_detector_.reset(new WebUsbDetector());
-     content::GetUIThreadTaskRunner({base::TaskPriority::BEST_EFFORT})
-@@ -1118,6 +1119,7 @@ void ChromeBrowserMainParts::PostBrowser
-                    base::BindOnce(&WebUsbDetector::Initialize,
-                                   base::Unretained(web_usb_detector_.get())));
+@@ -1336,7 +1336,7 @@ void ChromeBrowserMainParts::PostProfile
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   // Delete the media history database if it still exists.
+   // TODO(crbug.com/40177301): Remove this.
+   base::ThreadPool::PostTask(
+@@ -1385,7 +1385,7 @@ void ChromeBrowserMainParts::PostProfile
+       *UrlLanguageHistogramFactory::GetForBrowserContext(profile));
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   if (headless::IsHeadlessMode()) {
+     headless::ReportHeadlessActionMetrics();
+   }
+@@ -1495,7 +1495,7 @@ int ChromeBrowserMainParts::PreMainMessa
+   // In headless mode provide alternate SelectFileDialog factory overriding
+   // any platform specific SelectFileDialog implementation that may have been
+   // set.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   if (headless::IsHeadlessMode()) {
+     headless::HeadlessSelectFileDialogFactory::SetUp();
    }
-+#endif
-   if (base::FeatureList::IsEnabled(features::kTabMetricsLogging)) {
-     // Initialize the TabActivityWatcher to begin logging tab activity events.
-     resource_coordinator::TabActivityWatcher::GetInstance();
+@@ -2046,7 +2046,7 @@ bool ChromeBrowserMainParts::ProcessSing
+ 
+   // Drop the request if headless mode is in effect or the request is from
+   // a headless Chrome process.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   if (headless::IsHeadlessMode() ||
+       command_line.HasSwitch(switches::kHeadless)) {
+     return false;
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc b/chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc
new file mode 100644
index 0000000000..90a68e4fe4
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_main_extra_parts_linux.cc.orig	2024-07-24 02:44:26.863834900 +0000
++++ chrome/browser/chrome_browser_main_extra_parts_linux.cc
+@@ -58,7 +58,7 @@ void ChromeBrowserMainExtraPartsLinux::P
+ 
+ // static
+ void ChromeBrowserMainExtraPartsLinux::InitOzonePlatformHint() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   auto* const command_line = base::CommandLine::ForCurrentProcess();
+   auto env = base::Environment::Create();
+   std::string desktop_startup_id;
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc b/chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc
new file mode 100644
index 0000000000..8dd15bd186
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__main__extra__parts__ozone.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_main_extra_parts_ozone.cc.orig	2024-07-24 02:44:26.863834900 +0000
++++ chrome/browser/chrome_browser_main_extra_parts_ozone.cc
+@@ -27,7 +27,7 @@ void ChromeBrowserMainExtraPartsOzone::P
+ }
+ 
+ void ChromeBrowserMainExtraPartsOzone::PostMainMessageLoopRun() {
+-#if !BUILDFLAG(IS_CHROMEOS_LACROS) && !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_CHROMEOS_LACROS) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+   // Lacros's `PostMainMessageLoopRun` must be called at the very end of
+   // `PostMainMessageLoopRun` in
+   // `ChromeBrowserMainPartsLacros::PostMainMessageLoopRun`.
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.cc b/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.cc
index 8dbb56c4dd..3d4efebaea 100644
--- a/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.cc
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.cc
@@ -1,34 +1,45 @@
 $NetBSD$
 
---- chrome/browser/chrome_browser_main_linux.cc.orig	2020-07-08 21:40:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_main_linux.cc.orig	2024-07-24 02:44:26.863834900 +0000
 +++ chrome/browser/chrome_browser_main_linux.cc
-@@ -81,6 +81,7 @@ void ChromeBrowserMainPartsLinux::PrePro
- void ChromeBrowserMainPartsLinux::PostProfileInit() {
-   ChromeBrowserMainPartsPosix::PostProfileInit();
+@@ -25,7 +25,7 @@
+ #include "device/bluetooth/dbus/bluez_dbus_thread_manager.h"
+ #include "ui/base/l10n/l10n_util.h"
  
-+#if !defined(OS_BSD)
-   bool breakpad_registered;
-   if (crash_reporter::IsCrashpadEnabled()) {
-     // If we're using crashpad, there's no breakpad and crashpad is always
-@@ -98,10 +99,11 @@ void ChromeBrowserMainPartsLinux::PostPr
-   }
-   g_browser_process->metrics_service()->RecordBreakpadRegistration(
-       breakpad_registered);
-+#endif
- }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/ozone/public/ozone_platform.h"
+ #endif
+ 
+@@ -72,7 +72,9 @@ void ChromeBrowserMainPartsLinux::PostCr
+ #endif  // BUILDFLAG(IS_CHROMEOS)
  
- void ChromeBrowserMainPartsLinux::PostMainMessageLoopStart() {
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
+ #if !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_BSD)
    bluez::BluezDBusManager::Initialize(nullptr /* system_bus */);
- #endif
++#endif
  
-@@ -109,7 +111,7 @@ void ChromeBrowserMainPartsLinux::PostMa
+   // Set up crypt config. This needs to be done before anything starts the
+   // network service, as the raw encryption key needs to be shared with the
+@@ -98,7 +100,7 @@ void ChromeBrowserMainPartsLinux::PostCr
+   ChromeBrowserMainPartsPosix::PostCreateMainMessageLoop();
  }
  
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ChromeBrowserMainPartsLinux::PostMainMessageLoopRun() {
+   ChromeBrowserMainPartsPosix::PostMainMessageLoopRun();
+   ui::OzonePlatform::GetInstance()->PostMainMessageLoopRun();
+@@ -137,7 +139,7 @@ void ChromeBrowserMainPartsLinux::PostBr
+ #endif  // defined(USE_DBUS) && !BUILDFLAG(IS_CHROMEOS)
+ 
  void ChromeBrowserMainPartsLinux::PostDestroyThreads() {
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
+-#if BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // No-op; per PostBrowserStart() comment, this is done elsewhere.
+ #else
    bluez::BluezDBusManager::Shutdown();
-   bluez::BluezDBusThreadManager::Shutdown();
- #endif
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.h b/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.h
new file mode 100644
index 0000000000..ed84f6e9fd
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__main__linux.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_main_linux.h.orig	2024-07-24 02:44:26.863834900 +0000
++++ chrome/browser/chrome_browser_main_linux.h
+@@ -30,7 +30,7 @@ class ChromeBrowserMainPartsLinux : publ
+ 
+   // ChromeBrowserMainPartsPosix overrides.
+   void PostCreateMainMessageLoop() override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   void PostMainMessageLoopRun() override;
+ #endif
+   void PreProfileInit() override;
diff --git a/chromium/patches/patch-chrome_browser_chrome__browser__main__posix.cc b/chromium/patches/patch-chrome_browser_chrome__browser__main__posix.cc
index c1e0852fe8..20fda6d9bf 100644
--- a/chromium/patches/patch-chrome_browser_chrome__browser__main__posix.cc
+++ b/chromium/patches/patch-chrome_browser_chrome__browser__main__posix.cc
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- chrome/browser/chrome_browser_main_posix.cc.orig	2020-07-08 21:40:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_browser_main_posix.cc.orig	2024-07-24 02:44:26.863834900 +0000
 +++ chrome/browser/chrome_browser_main_posix.cc
-@@ -70,7 +70,7 @@ void ExitHandler::ExitWhenPossibleOnUITh
-     // ExitHandler takes care of deleting itself.
-     new ExitHandler();
+@@ -79,7 +79,7 @@ void ExitHandler::ExitWhenPossibleOnUITh
    } else {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
      switch (signal) {
        case SIGINT:
        case SIGHUP:
-@@ -166,7 +166,7 @@ void ChromeBrowserMainPartsPosix::PostMa
- void ChromeBrowserMainPartsPosix::ShowMissingLocaleMessageBox() {
- #if defined(OS_CHROMEOS)
-   NOTREACHED();  // Should not ever happen on ChromeOS.
--#elif defined(OS_MACOSX)
-+#elif defined(OS_MACOSX) || defined(OS_BSD)
-   // Not called on Mac because we load the locale files differently.
-   NOTREACHED();
- #elif defined(USE_AURA)
diff --git a/chromium/patches/patch-chrome_browser_chrome__content__browser__client.cc b/chromium/patches/patch-chrome_browser_chrome__content__browser__client.cc
index e2c06acf0c..1d84598c22 100644
--- a/chromium/patches/patch-chrome_browser_chrome__content__browser__client.cc
+++ b/chromium/patches/patch-chrome_browser_chrome__content__browser__client.cc
@@ -1,117 +1,167 @@
 $NetBSD$
 
---- chrome/browser/chrome_content_browser_client.cc.orig	2020-07-24 02:37:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_content_browser_client.cc.orig	2024-07-24 02:44:26.871835500 +0000
 +++ chrome/browser/chrome_content_browser_client.cc
-@@ -410,7 +410,7 @@
- #include "components/user_manager/user.h"
- #include "components/user_manager/user_manager.h"
- #include "services/service_manager/public/mojom/interface_provider_spec.mojom.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+@@ -469,7 +469,7 @@
+ #include "storage/browser/file_system/external_mount_points.h"
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/chrome_browser_main_linux.h"
- #elif defined(OS_ANDROID)
- #include "base/android/application_status_listener.h"
-@@ -471,7 +471,7 @@
- #endif  //  !defined(OS_ANDROID)
+ #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h"
+ #elif BUILDFLAG(IS_ANDROID)
+@@ -585,12 +585,12 @@
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
  #include "chrome/browser/browser_switcher/browser_switcher_navigation_throttle.h"
- #include "services/service_manager/sandbox/features.h"
- #endif
-@@ -504,7 +504,7 @@
- #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views.h"
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h"
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/crash/core/app/crash_switches.h"
+ #include "components/crash/core/app/crashpad.h"
+ #endif
+@@ -601,7 +601,7 @@
+ #include "chrome/browser/apps/link_capturing/web_app_link_capturing_delegate.h"
  #endif
  
-@@ -819,11 +819,13 @@ breakpad::CrashHandlerHostLinux* CreateC
- }
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/chrome_browser_main_extra_parts_enterprise.h"
+ #include "chrome/browser/enterprise/profile_management/oidc_auth_response_capture_navigation_throttle.h"
+ #include "chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.h"
+@@ -609,7 +609,7 @@
+ #endif
  
- int GetCrashSignalFD(const base::CommandLine& command_line) {
-+#if !defined(OS_BSD)
-   if (crash_reporter::IsCrashpadEnabled()) {
-     int fd;
-     pid_t pid;
-     return crash_reporter::GetHandlerSocket(&fd, &pid) ? fd : -1;
-   }
-+#endif
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/device_trust/navigation_throttle.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ||
+         // BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -624,7 +624,7 @@
+ #include "chrome/browser/ui/views/lens/lens_side_panel_navigation_helper.h"
+ #endif
  
-   // Extensions have the same process type as renderers.
-   if (command_line.HasSwitch(extensions::switches::kExtensionProcess)) {
-@@ -1330,7 +1332,7 @@ ChromeContentBrowserClient::CreateBrowse
- #elif defined(OS_CHROMEOS)
-   main_parts = std::make_unique<chromeos::ChromeBrowserMainPartsChromeos>(
-       parameters, startup_data_);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   main_parts =
-       std::make_unique<ChromeBrowserMainPartsLinux>(parameters, startup_data_);
- #elif defined(OS_ANDROID)
-@@ -1356,7 +1358,7 @@ ChromeContentBrowserClient::CreateBrowse
-     // Construct additional browser parts. Stages are called in the order in
-     // which they are added.
- #if defined(TOOLKIT_VIEWS)
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   main_parts->AddParts(new ChromeBrowserMainExtraPartsViewsLinux());
- #else
-   main_parts->AddParts(new ChromeBrowserMainExtraPartsViews());
-@@ -2117,6 +2119,8 @@ void ChromeContentBrowserClient::AppendE
- #elif defined(OS_POSIX)
- #if defined(OS_ANDROID)
-   bool enable_crash_reporter = true;
-+#elif defined(OS_BSD)
-+  bool enable_crash_reporter = false;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/chrome_browser_main_extra_parts_linux.h"
+ #elif BUILDFLAG(IS_OZONE)
+ #include "chrome/browser/chrome_browser_main_extra_parts_ozone.h"
+@@ -1538,7 +1538,7 @@ void ChromeContentBrowserClient::Registe
+ #if BUILDFLAG(IS_CHROMEOS)
+   registry->RegisterBooleanPref(prefs::kNativeClientForceAllowed, false);
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   registry->RegisterBooleanPref(prefs::kOutOfProcessSystemDnsResolutionEnabled,
+                                 true);
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
+@@ -1669,7 +1669,7 @@ ChromeContentBrowserClient::CreateBrowse
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+   main_parts = std::make_unique<ChromeBrowserMainPartsLacros>(
+       is_integration_test, &startup_data_);
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   main_parts = std::make_unique<ChromeBrowserMainPartsLinux>(
+       is_integration_test, &startup_data_);
+ #elif BUILDFLAG(IS_ANDROID)
+@@ -1703,7 +1703,7 @@ ChromeContentBrowserClient::CreateBrowse
+       std::make_unique<ChromeBrowserMainExtraPartsViewsLacros>());
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   main_parts->AddParts(
+       std::make_unique<ChromeBrowserMainExtraPartsViewsLinux>());
  #else
-   bool enable_crash_reporter = false;
-   if (crash_reporter::IsCrashpadEnabled()) {
-@@ -2414,7 +2418,7 @@ void ChromeContentBrowserClient::AppendE
-   StackSamplingConfiguration::Get()->AppendCommandLineSwitchForChildProcess(
-       process_type, command_line);
+@@ -1724,7 +1724,7 @@ ChromeContentBrowserClient::CreateBrowse
+   main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsLacros>());
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsLinux>());
+ #elif BUILDFLAG(IS_OZONE)
+   main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsOzone>());
+@@ -1743,7 +1743,7 @@ ChromeContentBrowserClient::CreateBrowse
+ 
+   chrome::AddMetricsExtraParts(main_parts.get());
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Processes may only query perf_event_open with the BPF sandbox disabled.
-   if (browser_command_line.HasSwitch(switches::kEnableThreadInstructionCount) &&
-       command_line->HasSwitch(service_manager::switches::kNoSandbox)) {
-@@ -3686,7 +3690,7 @@ void ChromeContentBrowserClient::GetAddi
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   main_parts->AddParts(
+       std::make_unique<
+           chrome::enterprise_util::ChromeBrowserMainExtraPartsEnterprise>());
+@@ -2577,7 +2577,7 @@ void ChromeContentBrowserClient::AppendE
+                                     client_info->client_id);
+   }
+ #elif BUILDFLAG(IS_POSIX)
+-#if !BUILDFLAG(IS_ANDROID)
++#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD)
+   pid_t pid;
+   if (crash_reporter::GetHandlerSocket(nullptr, &pid)) {
+     command_line->AppendSwitchASCII(
+@@ -2923,7 +2923,7 @@ void ChromeContentBrowserClient::AppendE
+     }
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) && !BUILDFLAG(IS_BSD)
+   // Opt into a hardened stack canary mitigation if it hasn't already been
+   // force-disabled.
+   if (!browser_command_line.HasSwitch(switches::kChangeStackGuardOnFork)) {
+@@ -4698,7 +4698,7 @@ void ChromeContentBrowserClient::GetAddi
    }
  }
  
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
  void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess(
      const base::CommandLine& command_line,
      int child_process_id,
-@@ -3807,7 +3811,7 @@ bool ChromeContentBrowserClient::IsRende
- #endif  // defined(OS_WIN)
+@@ -5266,7 +5266,7 @@ ChromeContentBrowserClient::CreateThrott
+         &throttles);
+   }
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- bool ShouldEnableAudioSandbox(const policy::PolicyMap& policies) {
-   const base::Value* audio_sandbox_enabled_policy_value =
-       policies.GetValue(policy::key::kAudioSandboxEnabled);
-@@ -3825,7 +3829,7 @@ bool ShouldEnableAudioSandbox(const poli
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   MaybeAddThrottle(
+       WebAppSettingsNavigationThrottle::MaybeCreateThrottleFor(handle),
+       &throttles);
+@@ -5280,7 +5280,7 @@ ChromeContentBrowserClient::CreateThrott
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
  
- void ChromeContentBrowserClient::WillStartServiceManager() {
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
-   if (startup_data_) {
-     auto* chrome_feature_list_creator =
-         startup_data_->chrome_feature_list_creator();
-@@ -4071,7 +4075,7 @@ ChromeContentBrowserClient::CreateThrott
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   MaybeAddThrottle(enterprise_connectors::DeviceTrustNavigationThrottle::
+                        MaybeCreateThrottleFor(handle),
+                    &throttles);
+@@ -5319,7 +5319,7 @@ ChromeContentBrowserClient::CreateThrott
+             handle));
    }
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    MaybeAddThrottle(browser_switcher::BrowserSwitcherNavigationThrottle::
                         MaybeCreateThrottleFor(handle),
                     &throttles);
+@@ -7292,7 +7292,7 @@ bool ChromeContentBrowserClient::ShouldS
+ bool ChromeContentBrowserClient::ShouldRunOutOfProcessSystemDnsResolution() {
+ // This enterprise policy is supported on Android, but the feature will not be
+ // launched there.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   // This is possibly called before `g_browser_process` is initialized.
+   PrefService* local_state;
+   if (g_browser_process) {
diff --git a/chromium/patches/patch-chrome_browser_chrome__content__browser__client.h b/chromium/patches/patch-chrome_browser_chrome__content__browser__client.h
index 87270616c0..4013753f79 100644
--- a/chromium/patches/patch-chrome_browser_chrome__content__browser__client.h
+++ b/chromium/patches/patch-chrome_browser_chrome__content__browser__client.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/chrome_content_browser_client.h.orig	2020-07-08 21:41:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/chrome_content_browser_client.h.orig	2024-07-24 02:44:26.871835500 +0000
 +++ chrome/browser/chrome_content_browser_client.h
-@@ -381,7 +381,7 @@ class ChromeContentBrowserClient : publi
-   void OverridePageVisibilityState(
-       content::RenderFrameHost* render_frame_host,
-       content::PageVisibilityState* visibility_state) override;
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+@@ -513,7 +513,7 @@ class ChromeContentBrowserClient : publi
+   bool IsPluginAllowedToUseDevChannelAPIs(
+       content::BrowserContext* browser_context,
+       const GURL& url) override;
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
    void GetAdditionalMappedFilesForChildProcess(
        const base::CommandLine& command_line,
        int child_process_id,
diff --git a/chromium/patches/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc b/chromium/patches/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc
new file mode 100644
index 0000000000..c99d646938
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/component_updater/widevine_cdm_component_installer.cc.orig	2024-07-24 02:44:26.967845000 +0000
++++ chrome/browser/component_updater/widevine_cdm_component_installer.cc
+@@ -41,7 +41,7 @@
+ #include "third_party/widevine/cdm/buildflags.h"
+ #include "third_party/widevine/cdm/widevine_cdm_common.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/path_service.h"
+ #include "chrome/common/chrome_paths.h"
+ #include "chrome/common/media/component_widevine_cdm_hint_file_linux.h"
+@@ -74,7 +74,7 @@ static_assert(std::size(kWidevineSha2Has
+ const char ImageLoaderComponentName[] = "WidevineCdm";
+ #endif
+ 
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+ // On Linux and ChromeOS the Widevine CDM is loaded at startup before the
+ // zygote is locked down. As a result there is no need to register the CDM
+ // with Chrome as it can't be used until Chrome is restarted.
+@@ -102,7 +102,7 @@ void RegisterWidevineCdmWithChrome(const
+ }
+ #endif  // !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // On Linux and ChromeOS the Widevine CDM is loaded at startup before the
+ // zygote is locked down. To locate the Widevine CDM at startup, a hint file
+ // is used. Update the hint file with the new Widevine CDM path.
+@@ -398,7 +398,7 @@ void WidevineCdmComponentInstallerPolicy
+     return;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   VLOG(1) << "Updating hint file with Widevine CDM " << cdm_version;
+ 
+   // This is running on a thread that allows IO, so simply update the hint file.
diff --git a/chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list.cc b/chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list.cc
deleted file mode 100644
index af0be6e7cf..0000000000
--- a/chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/crash_upload_list/crash_upload_list.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/crash_upload_list/crash_upload_list.cc
-@@ -38,7 +38,7 @@ scoped_refptr<UploadList> CreateCrashUpl
- // ChromeOS uses crash_sender as its uploader even when Crashpad is enabled,
- // which isn't compatible with CrashUploadListCrashpad. crash_sender continues
- // to log uploads in CrashUploadList::kReporterLogFilename.
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
-   if (crash_reporter::IsCrashpadEnabled()) {
-     return new CrashUploadListCrashpad();
-   }
diff --git a/chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc b/chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc
deleted file mode 100644
index 8e520fbc36..0000000000
--- a/chromium/patches/patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-$NetBSD$
-
---- chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc
-@@ -42,6 +42,9 @@ CrashUploadListCrashpad::CrashUploadList
- CrashUploadListCrashpad::~CrashUploadListCrashpad() = default;
- 
- std::vector<UploadList::UploadInfo> CrashUploadListCrashpad::LoadUploadList() {
-+#if defined(OS_BSD)
-+  return std::vector<UploadInfo>();
-+#else
-   std::vector<crash_reporter::Report> reports;
-   crash_reporter::GetReports(&reports);
- 
-@@ -53,13 +56,18 @@ std::vector<UploadList::UploadInfo> Cras
-                    ReportUploadStateToUploadInfoState(report.state)));
-   }
-   return uploads;
-+#endif
- }
- 
- void CrashUploadListCrashpad::ClearUploadList(const base::Time& begin,
-                                               const base::Time& end) {
-+#if !defined(OS_BSD)
-   crash_reporter::ClearReportsBetween(begin, end);
-+#endif
- }
- 
- void CrashUploadListCrashpad::RequestSingleUpload(const std::string& local_id) {
-+#if !defined(OS_BSD)
-   crash_reporter::RequestSingleCrashUpload(local_id);
-+#endif
- }
diff --git a/chromium/patches/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc b/chromium/patches/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc
new file mode 100644
index 0000000000..8883ef7ba7
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/custom_handlers/chrome_protocol_handler_registry_delegate.cc.orig	2024-07-24 02:44:26.987846900 +0000
++++ chrome/browser/custom_handlers/chrome_protocol_handler_registry_delegate.cc
+@@ -68,7 +68,7 @@ void ChromeProtocolHandlerRegistryDelega
+ // If true default protocol handlers will be removed if the OS level
+ // registration for a protocol is no longer Chrome.
+ bool ChromeProtocolHandlerRegistryDelegate::ShouldRemoveHandlersNotInOS() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // We don't do this on Linux as the OS registration there is not reliable,
+   // and Chrome OS doesn't have any notion of OS registration.
+   // TODO(benwells): When Linux support is more reliable remove this
diff --git a/chromium/patches/patch-chrome_browser_custom__handlers_protocol__handler__registry.cc b/chromium/patches/patch-chrome_browser_custom__handlers_protocol__handler__registry.cc
deleted file mode 100644
index 0afdf997b1..0000000000
--- a/chromium/patches/patch-chrome_browser_custom__handlers_protocol__handler__registry.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/custom_handlers/protocol_handler_registry.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/custom_handlers/protocol_handler_registry.cc
-@@ -43,7 +43,7 @@ const ProtocolHandler& LookupHandler(
- // If true default protocol handlers will be removed if the OS level
- // registration for a protocol is no longer Chrome.
- bool ShouldRemoveHandlersNotInOS() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // We don't do this on Linux as the OS registration there is not reliable,
-   // and Chrome OS doesn't have any notion of OS registration.
-   // TODO(benwells): When Linux support is more reliable remove this
diff --git a/chromium/patches/patch-chrome_browser_defaults.cc b/chromium/patches/patch-chrome_browser_defaults.cc
index f9bd5bb750..b60d07af43 100644
--- a/chromium/patches/patch-chrome_browser_defaults.cc
+++ b/chromium/patches/patch-chrome_browser_defaults.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/defaults.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/defaults.cc.orig	2024-07-24 02:44:26.991847300 +0000
 +++ chrome/browser/defaults.cc
-@@ -43,7 +43,7 @@ const bool kSyncAutoStarts = true;
- const bool kSyncAutoStarts = false;
+@@ -44,7 +44,7 @@ const bool kShowHelpMenuItemIcon = true;
+ const bool kShowHelpMenuItemIcon = false;
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
  const bool kScrollEventChangesTab = true;
  #else
  const bool kScrollEventChangesTab = false;
diff --git a/chromium/patches/patch-chrome_browser_dev__ui__browser__resources.grd b/chromium/patches/patch-chrome_browser_dev__ui__browser__resources.grd
deleted file mode 100644
index 911176aef2..0000000000
--- a/chromium/patches/patch-chrome_browser_dev__ui__browser__resources.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/dev_ui_browser_resources.grd.orig	2020-07-08 21:41:46.000000000 +0000
-+++ chrome/browser/dev_ui_browser_resources.grd
-@@ -61,7 +61,7 @@ This file specifies browser resources fo
-       <include name="IDR_MEDIA_SESSION_MOJOM_LITE_JS" file="${root_gen_dir}\services\media_session\public\mojom\media_session.mojom-lite.js" use_base_dir="false" type="BINDATA" />
-       <include name="IDR_UI_GEOMETRY_MOJOM_LITE_JS" file="${root_gen_dir}\ui\gfx\geometry\mojom\geometry.mojom-lite.js" use_base_dir="false" type="BINDATA" />
- 
--      <if expr="is_android or is_linux">
-+      <if expr="is_android or is_posix">
-         <include name="IDR_SANDBOX_INTERNALS_HTML" file="resources\sandbox_internals\sandbox_internals.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
-         <include name="IDR_SANDBOX_INTERNALS_JS" file="resources\sandbox_internals\sandbox_internals.js" type="BINDATA" />
-       </if>
diff --git a/chromium/patches/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc b/chromium/patches/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc
index cd7dcabe4f..e48a218099 100644
--- a/chromium/patches/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc
+++ b/chromium/patches/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/device_identity/device_oauth2_token_service_factory.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/device_identity/device_oauth2_token_service_factory.cc.orig	2024-07-24 02:44:26.995847500 +0000
 +++ chrome/browser/device_identity/device_oauth2_token_service_factory.cc
 @@ -28,7 +28,7 @@ std::unique_ptr<DeviceOAuth2TokenStore> 
- #if defined(OS_CHROMEOS)
    return std::make_unique<chromeos::DeviceOAuth2TokenStoreChromeOS>(
        local_state);
--#elif defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#elif defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-   DCHECK(
-       base::FeatureList::IsEnabled(policy::features::kCBCMPolicyInvalidations));
+ #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
    return std::make_unique<DeviceOAuth2TokenStoreDesktop>(local_state);
+ #else
+   NOTREACHED_IN_MIGRATION();
diff --git a/chromium/patches/patch-chrome_browser_devtools_devtools__eye__dropper.cc b/chromium/patches/patch-chrome_browser_devtools_devtools__eye__dropper.cc
deleted file mode 100644
index 5063a3a86c..0000000000
--- a/chromium/patches/patch-chrome_browser_devtools_devtools__eye__dropper.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/devtools/devtools_eye_dropper.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/devtools/devtools_eye_dropper.cc
-@@ -164,7 +164,7 @@ void DevToolsEyeDropper::UpdateCursor() 
- // magnified projection only with centered hotspot.
- // Mac Retina requires cursor to be > 120px in order to render smoothly.
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   const float kCursorSize = 63;
-   const float kDiameter = 63;
-   const float kHotspotOffset = 32;
diff --git a/chromium/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h b/chromium/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h
index b1fb2623ce..e6a9ae1780 100644
--- a/chromium/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h
+++ b/chromium/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h
@@ -1,14 +1,16 @@
 $NetBSD$
 
---- chrome/browser/diagnostics/diagnostics_writer.h.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/diagnostics/diagnostics_writer.h.orig	2024-07-24 02:44:27.019850000 +0000
 +++ chrome/browser/diagnostics/diagnostics_writer.h
-@@ -15,6 +15,10 @@ namespace diagnostics {
+@@ -14,6 +14,8 @@ namespace diagnostics {
  // Console base class used internally.
  class SimpleConsole;
  
-+#if defined(MACHINE)
 +#undef MACHINE
-+#endif
 +
  class DiagnosticsWriter : public DiagnosticsModel::Observer {
   public:
diff --git a/chromium/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc b/chromium/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc
index 682bd8dc4c..1d14bbc565 100644
--- a/chromium/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc
+++ b/chromium/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc
@@ -1,22 +1,35 @@
 $NetBSD$
 
---- chrome/browser/download/chrome_download_manager_delegate.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/chrome_download_manager_delegate.cc.orig	2024-07-24 02:44:27.047852500 +0000
 +++ chrome/browser/download/chrome_download_manager_delegate.cc
-@@ -1309,7 +1309,7 @@ void ChromeDownloadManagerDelegate::OnDo
-         target_info->is_filetype_handled_safely)
-       DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     if (item->GetOriginalMimeType() == "application/x-x509-user-cert")
-       DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
- #endif
-@@ -1358,7 +1358,7 @@ void ChromeDownloadManagerDelegate::OnDo
- 
- bool ChromeDownloadManagerDelegate::IsOpenInBrowserPreferreredForFile(
+@@ -1729,7 +1729,7 @@ void ChromeDownloadManagerDelegate::OnDo
+ bool ChromeDownloadManagerDelegate::IsOpenInBrowserPreferredForFile(
      const base::FilePath& path) {
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    if (path.MatchesExtension(FILE_PATH_LITERAL(".pdf"))) {
      return !download_prefs_->ShouldOpenPdfInSystemReader();
    }
+@@ -1875,7 +1875,7 @@ void ChromeDownloadManagerDelegate::Chec
+     content::CheckDownloadAllowedCallback check_download_allowed_cb) {
+   DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   // Don't download pdf if it is a file URL, as that might cause an infinite
+   // download loop if Chrome is not the system pdf viewer.
+   if (url.SchemeIsFile() && download_prefs_->ShouldOpenPdfInSystemReader()) {
+@@ -1939,7 +1939,7 @@ void ChromeDownloadManagerDelegate::Chec
+   DCHECK(download_item->IsSavePackageDownload());
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   std::optional<enterprise_connectors::AnalysisSettings> settings =
+       safe_browsing::DeepScanningRequest::ShouldUploadBinary(download_item);
+ 
diff --git a/chromium/patches/patch-chrome_browser_download_download__commands.cc b/chromium/patches/patch-chrome_browser_download_download__commands.cc
index f6e78343e4..3044cd4503 100644
--- a/chromium/patches/patch-chrome_browser_download_download__commands.cc
+++ b/chromium/patches/patch-chrome_browser_download_download__commands.cc
@@ -1,31 +1,26 @@
 $NetBSD$
 
---- chrome/browser/download/download_commands.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/download_commands.cc.orig	2024-07-24 02:44:27.051853000 +0000
 +++ chrome/browser/download/download_commands.cc
-@@ -27,7 +27,7 @@
- #include "net/base/url_util.h"
+@@ -26,7 +26,7 @@
  #include "ui/base/clipboard/scoped_clipboard_writer.h"
  
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/ui/browser.h"
  #include "chrome/browser/ui/browser_finder.h"
  #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
-@@ -154,7 +154,7 @@ void DownloadCommands::ExecuteCommand(Co
-   model_->ExecuteCommand(this, command);
+@@ -167,7 +167,7 @@ void DownloadCommands::ExecuteCommand(Co
  }
  
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  
  Browser* DownloadCommands::GetBrowser() const {
-   chrome::ScopedTabbedBrowserDisplayer browser_displayer(model_->profile());
-@@ -177,7 +177,7 @@ bool DownloadCommands::CanOpenPdfInSyste
-   return IsDownloadPdf() &&
-          (IsAdobeReaderDefaultPDFViewer() ? is_adobe_pdf_reader_up_to_date
-                                           : true);
--#elif defined(OS_MACOSX) || defined(OS_LINUX)
-+#elif defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-   return IsDownloadPdf();
- #endif
- }
+   if (!model_)
diff --git a/chromium/patches/patch-chrome_browser_download_download__commands.h b/chromium/patches/patch-chrome_browser_download_download__commands.h
index bd931ce697..f1b86b5bfa 100644
--- a/chromium/patches/patch-chrome_browser_download_download__commands.h
+++ b/chromium/patches/patch-chrome_browser_download_download__commands.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/download/download_commands.h.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/download_commands.h.orig	2024-07-24 02:44:27.051853000 +0000
 +++ chrome/browser/download/download_commands.h
-@@ -48,7 +48,7 @@ class DownloadCommands {
-   bool IsCommandVisible(Command command) const;
+@@ -66,7 +66,7 @@ class DownloadCommands {
    void ExecuteCommand(Command command);
  
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    bool IsDownloadPdf() const;
    bool CanOpenPdfInSystemViewer() const;
    Browser* GetBrowser() const;
diff --git a/chromium/patches/patch-chrome_browser_download_download__file__picker.cc b/chromium/patches/patch-chrome_browser_download_download__file__picker.cc
new file mode 100644
index 0000000000..d79660c911
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_download_download__file__picker.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/download_file_picker.cc.orig	2024-07-24 02:44:27.051853000 +0000
++++ chrome/browser/download/download_file_picker.cc
+@@ -18,7 +18,7 @@
+ #include "content/public/browser/web_contents.h"
+ #include "ui/shell_dialogs/selected_file_info.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/browser_list.h"
+ #include "chrome/browser/ui/browser_window.h"
+ #include "ui/aura/window.h"
+@@ -83,7 +83,7 @@ DownloadFilePicker::DownloadFilePicker(d
+   // dialog in Linux (See SelectFileImpl() in select_file_dialog_linux_gtk.cc).
+   // and windows.Here we make owning_window host to browser current active
+   // window if it is null. https://crbug.com/1301898
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   if (!owning_window || !owning_window->GetHost()) {
+     owning_window = BrowserList::GetInstance()
+                         ->GetLastActive()
diff --git a/chromium/patches/patch-chrome_browser_download_download__item__model.cc b/chromium/patches/patch-chrome_browser_download_download__item__model.cc
index 4b8cb17589..4e9407c5ad 100644
--- a/chromium/patches/patch-chrome_browser_download_download__item__model.cc
+++ b/chromium/patches/patch-chrome_browser_download_download__item__model.cc
@@ -1,22 +1,35 @@
 $NetBSD$
 
---- chrome/browser/download/download_item_model.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/download_item_model.cc.orig	2024-07-24 02:44:27.055853400 +0000
 +++ chrome/browser/download/download_item_model.cc
-@@ -601,7 +601,7 @@ bool DownloadItemModel::IsCommandChecked
-       return download_->GetOpenWhenComplete() ||
+@@ -799,7 +799,7 @@ bool DownloadItemModel::IsCommandChecked
               download_crx_util::IsExtensionDownload(*download_);
      case DownloadCommands::ALWAYS_OPEN_TYPE:
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
        if (download_commands->CanOpenPdfInSystemViewer()) {
          DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(profile());
          return prefs->ShouldOpenPdfInSystemReader();
-@@ -641,7 +641,7 @@ void DownloadItemModel::ExecuteCommand(D
-       bool is_checked = IsCommandChecked(download_commands,
+@@ -847,7 +847,7 @@ void DownloadItemModel::ExecuteCommand(D
                                           DownloadCommands::ALWAYS_OPEN_TYPE);
        DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(profile());
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
        if (download_commands->CanOpenPdfInSystemViewer()) {
          prefs->SetShouldOpenPdfInSystemReader(!is_checked);
          SetShouldPreferOpeningInBrowser(is_checked);
+@@ -1245,7 +1245,7 @@ void DownloadItemModel::DetermineAndSetS
+     return;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (download_->GetOriginalMimeType() == "application/x-x509-user-cert") {
+     SetShouldPreferOpeningInBrowser(true);
+     return;
diff --git a/chromium/patches/patch-chrome_browser_download_download__prefs.cc b/chromium/patches/patch-chrome_browser_download_download__prefs.cc
index f463396e91..f0182c3b4b 100644
--- a/chromium/patches/patch-chrome_browser_download_download__prefs.cc
+++ b/chromium/patches/patch-chrome_browser_download_download__prefs.cc
@@ -1,67 +1,96 @@
 $NetBSD$
 
---- chrome/browser/download/download_prefs.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/download_prefs.cc.orig	2024-07-24 02:44:27.055853400 +0000
 +++ chrome/browser/download/download_prefs.cc
-@@ -67,7 +67,7 @@ namespace {
+@@ -11,6 +11,7 @@
+ #include <vector>
+ 
+ #include "base/check.h"
++#include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/files/file_util.h"
+ #include "base/functional/bind.h"
+@@ -64,6 +65,10 @@
+ #include "chrome/browser/flags/android/chrome_feature_list.h"
+ #endif
+ 
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#endif
++
+ using content::BrowserContext;
+ using content::BrowserThread;
+ using content::DownloadManager;
+@@ -74,7 +79,7 @@ namespace {
  // Consider downloads 'dangerous' if they go to the home directory on Linux and
  // to the desktop on any platform.
  bool DownloadPathIsDangerous(const base::FilePath& download_path) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    base::FilePath home_dir = base::GetHomeDir();
    if (download_path == home_dir) {
      return true;
-@@ -172,7 +172,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr
-                                 GetDefaultDownloadDirectoryForProfile()));
- #endif  // defined(OS_CHROMEOS)
+@@ -180,7 +185,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    should_open_pdf_in_system_reader_ =
        prefs->GetBoolean(prefs::kOpenPdfDownloadInSystemReader);
  #endif
-@@ -292,7 +292,7 @@ void DownloadPrefs::RegisterProfilePrefs
-                                  default_download_path);
+@@ -304,7 +309,7 @@ void DownloadPrefs::RegisterProfilePrefs
    registry->RegisterFilePathPref(prefs::kSaveFileDefaultDirectory,
                                   default_download_path);
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    registry->RegisterBooleanPref(prefs::kOpenPdfDownloadInSystemReader, false);
  #endif
- #if defined(OS_ANDROID)
-@@ -400,7 +400,7 @@ bool DownloadPrefs::IsDownloadPathManage
+ #if BUILDFLAG(IS_ANDROID)
+@@ -469,7 +474,7 @@ void DownloadPrefs::DisableAutoOpenByUse
  }
  
- bool DownloadPrefs::IsAutoOpenByUserUsed() const {
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
-   if (ShouldOpenPdfInSystemReader())
-     return true;
- #endif
-@@ -414,7 +414,7 @@ bool DownloadPrefs::IsAutoOpenEnabled(co
-     return false;
-   DCHECK(extension[0] == base::FilePath::kExtensionSeparator);
-   extension.erase(0, 1);
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
-   if (base::FilePath::CompareEqualIgnoreCase(extension,
-                                              FILE_PATH_LITERAL("pdf")) &&
-       ShouldOpenPdfInSystemReader())
-@@ -464,7 +464,7 @@ void DownloadPrefs::DisableAutoOpenByUse
-   SaveAutoOpenState();
- }
- 
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
  void DownloadPrefs::SetShouldOpenPdfInSystemReader(bool should_open) {
    if (should_open_pdf_in_system_reader_ == should_open)
      return;
-@@ -485,7 +485,7 @@ bool DownloadPrefs::ShouldOpenPdfInSyste
- #endif
+@@ -501,7 +506,7 @@ bool DownloadPrefs::ShouldOpenPdfInSyste
  
  void DownloadPrefs::ResetAutoOpenByUser() {
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    SetShouldOpenPdfInSystemReader(false);
  #endif
    auto_open_by_user_.clear();
+@@ -538,7 +543,7 @@ void DownloadPrefs::SaveAutoOpenState() 
+ bool DownloadPrefs::CanPlatformEnableAutoOpenForPdf() const {
+ #if BUILDFLAG(IS_CHROMEOS)
+   return false;  // There is no UI for auto-open on ChromeOS.
+-#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   return ShouldOpenPdfInSystemReader();
+ #else
+   return false;
+@@ -690,7 +695,14 @@ base::FilePath DownloadPrefs::SanitizeDo
+ #else
+   // If the stored download directory is an absolute path, we presume it's
+   // correct; there's not really much more validation we can do here.
++#if BUILDFLAG(IS_OPENBSD)
++  // If unveil(2) is used, force the file dialog directory to something we
++  // know is available.
++  auto* sandbox = sandbox::policy::SandboxLinux::GetInstance();
++  if (!sandbox->unveil_initialized() && path.IsAbsolute())
++#else
+   if (path.IsAbsolute())
++#endif
+     return path;
+ 
+   // When the default download directory is *not* an absolute path, we use the
diff --git a/chromium/patches/patch-chrome_browser_download_download__prefs.h b/chromium/patches/patch-chrome_browser_download_download__prefs.h
index 8d1a2452e4..e80098bef3 100644
--- a/chromium/patches/patch-chrome_browser_download_download__prefs.h
+++ b/chromium/patches/patch-chrome_browser_download_download__prefs.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- chrome/browser/download/download_prefs.h.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/download/download_prefs.h.orig	2024-07-24 02:44:27.055853400 +0000
 +++ chrome/browser/download/download_prefs.h
-@@ -110,7 +110,7 @@ class DownloadPrefs {
-   // Disables auto-open based on file extension.
+@@ -115,7 +115,7 @@ class DownloadPrefs {
    void DisableAutoOpenByUserBasedOnExtension(const base::FilePath& file_name);
  
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    // Store the user preference to disk. If |should_open| is true, also disable
    // the built-in PDF plugin. If |should_open| is false, enable the PDF plugin.
    void SetShouldOpenPdfInSystemReader(bool should_open);
-@@ -167,7 +167,7 @@ class DownloadPrefs {
- 
-   std::unique_ptr<policy::URLBlacklist> auto_open_allowed_by_urls_;
+@@ -179,7 +179,7 @@ class DownloadPrefs {
+   std::unique_ptr<policy::URLBlocklist> auto_open_allowed_by_urls_;
  
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    bool should_open_pdf_in_system_reader_;
  #endif
  
diff --git a/chromium/patches/patch-chrome_browser_download_download__query.cc b/chromium/patches/patch-chrome_browser_download_download__query.cc
deleted file mode 100644
index 39468192b4..0000000000
--- a/chromium/patches/patch-chrome_browser_download_download__query.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/download/download_query.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/download/download_query.cc
-@@ -28,7 +28,7 @@
- #include "components/download/public/common/download_item.h"
- #include "components/url_formatter/url_formatter.h"
- #include "content/public/browser/content_browser_client.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- #include "url/gurl.h"
- 
- using download::DownloadDangerType;
diff --git a/chromium/patches/patch-chrome_browser_download_download__shelf__context__menu.cc b/chromium/patches/patch-chrome_browser_download_download__shelf__context__menu.cc
deleted file mode 100644
index 90ffb40ecc..0000000000
--- a/chromium/patches/patch-chrome_browser_download_download__shelf__context__menu.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/download/download_shelf_context_menu.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/download/download_shelf_context_menu.cc
-@@ -146,7 +146,7 @@ base::string16 DownloadShelfContextMenu:
-                    : IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS;
-           break;
-         }
--#elif defined(OS_MACOSX) || defined(OS_LINUX)
-+#elif defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-         if (can_open_pdf_in_system_viewer) {
-           id = IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS;
-           break;
diff --git a/chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.cc b/chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.cc
new file mode 100644
index 0000000000..d84f359dfd
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/browser_management/browser_management_service.cc.orig	2024-07-24 02:44:27.087856500 +0000
++++ chrome/browser/enterprise/browser_management/browser_management_service.cc
+@@ -21,7 +21,7 @@ namespace policy {
+ 
+ namespace {
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void UpdateEnterpriseLogo(
+     Profile* profile,
+     base::OnceCallback<void(const gfx::Image&,
+@@ -98,7 +98,7 @@ GetManagementStatusProviders(Profile* pr
+ }  // namespace
+ 
+ BrowserManagementMetadata::BrowserManagementMetadata(Profile* profile) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   UpdateManagementLogo(profile);
+   pref_change_registrar_.Init(profile->GetPrefs());
+   pref_change_registrar_.Add(
+@@ -114,7 +114,7 @@ const gfx::Image& BrowserManagementMetad
+   return management_logo_;
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void BrowserManagementMetadata::UpdateManagementLogo(Profile* profile) {
+   UpdateEnterpriseLogo(
+       profile, base::BindOnce(&BrowserManagementMetadata::SetManagementLogo,
diff --git a/chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.h b/chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.h
new file mode 100644
index 0000000000..59d20523b4
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_browser__management_browser__management__service.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/browser_management/browser_management_service.h.orig	2024-07-24 02:44:27.087856500 +0000
++++ chrome/browser/enterprise/browser_management/browser_management_service.h
+@@ -28,7 +28,7 @@ class BrowserManagementMetadata {
+ 
+   const gfx::Image& GetManagementLogo() const;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+  private:
+   void UpdateManagementLogo(Profile* profile);
+   void SetManagementLogo(
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc
new file mode 100644
index 0000000000..af5586a874
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_analysis_analysis__service__settings.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/analysis/analysis_service_settings.cc.orig	2024-07-24 02:44:27.087856500 +0000
++++ chrome/browser/enterprise/connectors/analysis/analysis_service_settings.cc
+@@ -151,7 +151,7 @@ AnalysisServiceSettings::AnalysisService
+   const char* verification_key = kKeyWindowsVerification;
+ #elif BUILDFLAG(IS_MAC)
+   const char* verification_key = kKeyMacVerification;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   const char* verification_key = kKeyLinuxVerification;
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_connectors__service.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_connectors__service.cc
new file mode 100644
index 0000000000..65f0d70b6f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_connectors__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/connectors_service.cc.orig	2024-07-24 02:44:27.095857400 +0000
++++ chrome/browser/enterprise/connectors/connectors_service.cc
+@@ -568,7 +568,7 @@ bool ConnectorsService::ConnectorsEnable
+ 
+   Profile* profile = Profile::FromBrowserContext(context_);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // On desktop, the guest profile is actually the primary OTR profile of
+   // the "regular" guest profile.  The regular guest profile is never used
+   // directly by users.  Also, user are not able to create child OTR profiles
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc
new file mode 100644
index 0000000000..5408ae7f38
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/device_trust/device_trust_connector_service_factory.cc.orig	2024-07-24 02:44:27.103858000 +0000
++++ chrome/browser/enterprise/connectors/device_trust/device_trust_connector_service_factory.cc
+@@ -10,7 +10,7 @@
+ #include "chrome/browser/profiles/profile.h"
+ #include "components/keyed_service/core/keyed_service.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/browser/signing_key_policy_observer.h"
+ #include "chrome/browser/policy/chrome_browser_policy_connector.h"
+@@ -40,7 +40,7 @@ DeviceTrustConnectorService* DeviceTrust
+ 
+ bool DeviceTrustConnectorServiceFactory::ServiceIsCreatedWithBrowserContext()
+     const {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   return true;
+ #else
+   return false;
+@@ -79,7 +79,7 @@ DeviceTrustConnectorServiceFactory::Buil
+   std::unique_ptr<DeviceTrustConnectorService> service =
+       std::make_unique<DeviceTrustConnectorService>(profile->GetPrefs());
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   auto* key_manager = g_browser_process->browser_policy_connector()
+                           ->chrome_browser_cloud_management_controller()
+                           ->GetDeviceTrustKeyManager();
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc
new file mode 100644
index 0000000000..d1855dd061
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/device_trust/device_trust_service_factory.cc.orig	2024-07-24 02:44:27.103858000 +0000
++++ chrome/browser/enterprise/connectors/device_trust/device_trust_service_factory.cc
+@@ -23,7 +23,7 @@
+ #include "components/policy/core/common/management/management_service.h"
+ #include "content/public/browser/browser_context.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/attestation/browser/browser_attestation_service.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/attestation/browser/device_attester.h"
+@@ -54,7 +54,7 @@ bool IsProfileManaged(Profile* profile) 
+   return management_service && management_service->IsManaged();
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ policy::CloudPolicyStore* GetUserCloudPolicyStore(Profile* profile) {
+   policy::CloudPolicyManager* user_policy_manager =
+       profile->GetCloudPolicyManager();
+@@ -101,7 +101,7 @@ DeviceTrustServiceFactory::DeviceTrustSe
+   DependsOn(DeviceTrustConnectorServiceFactory::GetInstance());
+   DependsOn(policy::ManagementServiceFactory::GetInstance());
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Depends on this service via the SignalsService having a dependency on it.
+   DependsOn(enterprise_signals::SignalsAggregatorFactory::GetInstance());
+   // Depends on this service via the ProfileAttester having a dependency on it
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc
new file mode 100644
index 0000000000..2299ff82ce
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_browser_commands_key__rotation__command__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/key_rotation_command_factory.cc.orig	2024-07-24 02:44:27.103858000 +0000
++++ chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/key_rotation_command_factory.cc
+@@ -14,7 +14,7 @@
+ 
+ #if BUILDFLAG(IS_WIN)
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/win_key_rotation_command.h"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/linux_key_rotation_command.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/mac_key_rotation_command.h"
+@@ -47,7 +47,7 @@ std::unique_ptr<KeyRotationCommand> KeyR
+     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory) {
+ #if BUILDFLAG(IS_WIN)
+   return std::make_unique<WinKeyRotationCommand>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return std::make_unique<LinuxKeyRotationCommand>(url_loader_factory);
+ #elif BUILDFLAG(IS_MAC)
+   return std::make_unique<MacKeyRotationCommand>(url_loader_factory);
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc
new file mode 100644
index 0000000000..a71dc249c9
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/key_persistence_delegate_factory.cc.orig	2024-07-24 02:44:27.111858800 +0000
++++ chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/key_persistence_delegate_factory.cc
+@@ -13,7 +13,7 @@
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/win_key_persistence_delegate.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/mac_key_persistence_delegate.h"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/linux_key_persistence_delegate.h"
+ #endif
+ 
+@@ -45,7 +45,7 @@ KeyPersistenceDelegateFactory::CreateKey
+   return std::make_unique<WinKeyPersistenceDelegate>();
+ #elif BUILDFLAG(IS_MAC)
+   return std::make_unique<MacKeyPersistenceDelegate>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return std::make_unique<LinuxKeyPersistenceDelegate>();
+ #else
+   NOTREACHED_IN_MIGRATION();
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc
new file mode 100644
index 0000000000..77dfb53cc2
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/device_trust/signals/signals_service_factory.cc.orig	2024-07-24 02:44:27.115859300 +0000
++++ chrome/browser/enterprise/connectors/device_trust/signals/signals_service_factory.cc
+@@ -21,7 +21,7 @@
+ #include "chrome/browser/profiles/profile.h"
+ #include "components/policy/core/common/management/management_service.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "base/check.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/signals/decorators/browser/browser_signals_decorator.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/signals/dependency_factory.h"
+@@ -58,7 +58,7 @@ std::unique_ptr<SignalsService> CreateSi
+       enterprise_signals::ContextInfoFetcher::CreateInstance(
+           profile, ConnectorsServiceFactory::GetForBrowserContext(profile))));
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ 
+   policy::CloudPolicyManager* browser_policy_manager = nullptr;
+   if (management_service->HasManagementAuthority(
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc
new file mode 100644
index 0000000000..136049afab
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_browser__crash__event__router.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/reporting/browser_crash_event_router.cc.orig	2024-07-24 02:44:27.119859700 +0000
++++ chrome/browser/enterprise/connectors/reporting/browser_crash_event_router.cc
+@@ -11,7 +11,7 @@ namespace enterprise_connectors {
+ 
+ BrowserCrashEventRouter::BrowserCrashEventRouter(
+     content::BrowserContext* context) {
+-#if !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+   CrashReportingContext* crash_reporting_context =
+       CrashReportingContext::GetInstance();
+   Profile* profile = Profile::FromBrowserContext(context);
+@@ -21,7 +21,7 @@ BrowserCrashEventRouter::BrowserCrashEve
+ }
+ 
+ BrowserCrashEventRouter::~BrowserCrashEventRouter() {
+-#if !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+   CrashReportingContext* crash_reporting_context =
+       CrashReportingContext::GetInstance();
+   crash_reporting_context->RemoveProfile(this);
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc
new file mode 100644
index 0000000000..0c0f5715a7
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_crash__reporting__context.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/reporting/crash_reporting_context.cc.orig	2024-07-24 02:44:27.119859700 +0000
++++ chrome/browser/enterprise/connectors/reporting/crash_reporting_context.cc
+@@ -18,7 +18,7 @@
+ 
+ namespace enterprise_connectors {
+ 
+-#if !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+ 
+ namespace {
+ 
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc
new file mode 100644
index 0000000000..e3c2f99a5f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.cc
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc.orig	2024-07-24 02:44:27.119859700 +0000
++++ chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc
+@@ -58,7 +58,7 @@
+ #include "base/strings/utf_string_conversions.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/signals/signals_aggregator_factory.h"
+ #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
+ #include "components/device_signals/core/browser/signals_aggregator.h"
+@@ -133,7 +133,7 @@ void UploadSecurityEventReport(base::Val
+       std::move(upload_callback));
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void PopulateSignals(base::Value::Dict event,
+                      policy::CloudPolicyClient* client,
+                      std::string name,
+@@ -421,7 +421,7 @@ void RealtimeReportingClient::ReportPast
+                            /*include_profile_user_name=*/false);
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ 
+ void AddCrowdstrikeSignalsToEvent(
+     base::Value::Dict& event,
+@@ -480,7 +480,7 @@ void RealtimeReportingClient::ReportEven
+   if (include_profile_user_name) {
+     event.Set(kKeyProfileUserName, GetProfileUserName());
+   }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   Profile* profile = Profile::FromBrowserContext(context_);
+   device_signals::SignalsAggregator* signals_aggregator =
+       enterprise_signals::SignalsAggregatorFactory::GetForProfile(profile);
+@@ -505,7 +505,7 @@ std::string RealtimeReportingClient::Get
+                              ? safe_browsing::GetProfileEmail(identity_manager_)
+                              : std::string();
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (username.empty()) {
+     username = Profile::FromBrowserContext(context_)->GetPrefs()->GetString(
+         enterprise_signin::prefs::kProfileUserEmail);
diff --git a/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h
new file mode 100644
index 0000000000..aa83ae4640
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_connectors_reporting_realtime__reporting__client.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.h.orig	2024-07-24 02:44:27.119859700 +0000
++++ chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.h
+@@ -16,7 +16,7 @@
+ #include "components/keyed_service/core/keyed_service.h"
+ #include "components/policy/core/common/cloud/cloud_policy_client.h"
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "components/device_signals/core/browser/signals_types.h"
+ #endif
+ 
+@@ -184,7 +184,7 @@ class RealtimeReportingClient : public K
+   base::WeakPtrFactory<RealtimeReportingClient> weak_ptr_factory_{this};
+ };
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Populate event dict with CrowdStrike signal values. If those signals are
+ // available in `response`, this function returns a Dict with the following
+ // fields added:
diff --git a/chromium/patches/patch-chrome_browser_enterprise_identifiers_profile__id__delegate__impl.cc b/chromium/patches/patch-chrome_browser_enterprise_identifiers_profile__id__delegate__impl.cc
new file mode 100644
index 0000000000..e23e75250d
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_identifiers_profile__id__delegate__impl.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/identifiers/profile_id_delegate_impl.cc.orig	2024-07-24 02:44:27.127860300 +0000
++++ chrome/browser/enterprise/identifiers/profile_id_delegate_impl.cc
+@@ -13,7 +13,7 @@
+ #include "components/enterprise/browser/identifiers/identifiers_prefs.h"
+ #include "components/prefs/pref_service.h"
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "components/enterprise/browser/controller/browser_dm_token_storage.h"
+ #if BUILDFLAG(IS_WIN)
+ #include "base/strings/utf_string_conversions.h"
+@@ -94,7 +94,7 @@ std::string ProfileIdDelegateImpl::GetDe
+ }
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ // Gets the device ID from the BrowserDMTokenStorage.
+ std::string ProfileIdDelegateImpl::GetId() {
+   std::string device_id =
diff --git a/chromium/patches/patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc b/chromium/patches/patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc
new file mode 100644
index 0000000000..39460b77af
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_profile__management_profile__management__navigation__throttle.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.orig	2024-07-24 02:44:27.131860700 +0000
++++ chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
+@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileA
+   // TODO(crbug.com/40267996): Add actual domains with attribute names.
+   profile_attributes->insert(std::make_pair(
+       "supported.test",
+-      SAMLProfileAttributes("placeholderName", "placeholderDomain",
+-                            "placeholderToken")));
++      SAMLProfileAttributes(SAMLProfileAttributes{"placeholderName", "placeholderDomain",
++                            "placeholderToken"})));
+ 
+   // Extract domains and attributes from the command line switch.
+   const base::CommandLine& command_line =
diff --git a/chromium/patches/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc b/chromium/patches/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc
new file mode 100644
index 0000000000..474d233c6b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.cc.orig	2024-07-24 02:44:27.131860700 +0000
++++ chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.cc
+@@ -11,7 +11,7 @@
+ #include "chrome/browser/profiles/profile_manager.h"
+ #include "components/policy/core/common/remote_commands/remote_command_job.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/remote_commands/rotate_attestation_credential_job.h"
+ #include "chrome/browser/policy/chrome_browser_policy_connector.h"
+ #include "components/enterprise/browser/controller/chrome_browser_cloud_management_controller.h"
+@@ -30,7 +30,7 @@ CBCMRemoteCommandsFactory::BuildJobForTy
+         g_browser_process->profile_manager());
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   if (type == enterprise_management::
+                   RemoteCommand_Type_BROWSER_ROTATE_ATTESTATION_CREDENTIAL) {
+     return std::make_unique<RotateAttestationCredentialJob>(
diff --git a/chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc b/chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc
new file mode 100644
index 0000000000..5d033a8daa
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/signals/device_info_fetcher.cc.orig	2024-07-24 02:44:27.139861600 +0000
++++ chrome/browser/enterprise/signals/device_info_fetcher.cc
+@@ -10,7 +10,7 @@
+ #include "chrome/browser/enterprise/signals/device_info_fetcher_mac.h"
+ #elif BUILDFLAG(IS_WIN)
+ #include "chrome/browser/enterprise/signals/device_info_fetcher_win.h"
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/signals/device_info_fetcher_linux.h"
+ #endif
+ 
+@@ -67,7 +67,7 @@ std::unique_ptr<DeviceInfoFetcher> Devic
+   return CreateInstanceInternal();
+ }
+ 
+-#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN) && \
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD) && \
+     !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
+ // static
+ std::unique_ptr<DeviceInfoFetcher> DeviceInfoFetcher::CreateInstanceInternal() {
diff --git a/chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc b/chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc
new file mode 100644
index 0000000000..f3d4a8a3cc
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc
@@ -0,0 +1,83 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/enterprise/signals/device_info_fetcher_linux.cc.orig	2024-07-24 02:44:27.139861600 +0000
++++ chrome/browser/enterprise/signals/device_info_fetcher_linux.cc
+@@ -4,11 +4,22 @@
+ 
+ #include "chrome/browser/enterprise/signals/device_info_fetcher_linux.h"
+ 
++#include "build/build_config.h"
++
+ #if defined(USE_GIO)
+ #include <gio/gio.h>
+ #endif  // defined(USE_GIO)
+ #include <sys/stat.h>
++#if !BUILDFLAG(IS_BSD)
+ #include <sys/sysmacros.h>
++#endif
++
++#if BUILDFLAG(IS_BSD)
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <ifaddrs.h>
++#include <net/if_dl.h>
++#endif
+ 
+ #include <string>
+ 
+@@ -117,6 +128,7 @@ SettingValue GetScreenlockSecured() {
+ // Implements the logic from the native host installation script. First find the
+ // root device identifier, then locate its parent and get its type.
+ SettingValue GetDiskEncrypted() {
++#if !BUILDFLAG(IS_BSD)
+   struct stat info;
+   // First figure out the device identifier. Fail fast if this fails.
+   if (stat("/", &info) != 0)
+@@ -138,11 +150,35 @@ SettingValue GetDiskEncrypted() {
+     }
+     return SettingValue::UNKNOWN;
+   }
++#endif
+   return SettingValue::DISABLED;
+ }
+ 
+ std::vector<std::string> GetMacAddresses() {
+   std::vector<std::string> result;
++#if BUILDFLAG(IS_BSD)
++  struct ifaddrs* ifa = nullptr;
++
++  if (getifaddrs(&ifa) != 0)
++    return result;
++
++  struct ifaddrs* interface = ifa;
++  for (; interface != nullptr; interface = interface->ifa_next) {
++    if (interface->ifa_addr == nullptr ||
++        interface->ifa_addr->sa_family != AF_LINK) {
++      continue;
++    }
++    struct sockaddr_dl* sdl =
++        reinterpret_cast<struct sockaddr_dl*>(interface->ifa_addr);
++    if (!sdl || sdl->sdl_alen != 6)
++      continue;
++    char* link_address = static_cast<char*>(LLADDR(sdl));
++    result.push_back(base::StringPrintf(
++        "%02x:%02x:%02x:%02x:%02x:%02x", link_address[0] & 0xff,
++        link_address[1] & 0xff, link_address[2] & 0xff, link_address[3] & 0xff,
++        link_address[4] & 0xff, link_address[5] & 0xff));
++  }
++#else
+   base::DirReaderPosix reader("/sys/class/net");
+   if (!reader.IsValid())
+     return result;
+@@ -165,6 +201,7 @@ std::vector<std::string> GetMacAddresses
+                               &address);
+     result.push_back(address);
+   }
++#endif
+   return result;
+ }
+ 
diff --git a/chromium/patches/patch-chrome_browser_extensions_BUILD.gn b/chromium/patches/patch-chrome_browser_extensions_BUILD.gn
index eb78d751c1..cb3dd91721 100644
--- a/chromium/patches/patch-chrome_browser_extensions_BUILD.gn
+++ b/chromium/patches/patch-chrome_browser_extensions_BUILD.gn
@@ -1,19 +1,19 @@
 $NetBSD$
 
---- chrome/browser/extensions/BUILD.gn.orig	2020-07-08 21:41:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/BUILD.gn.orig	2024-07-24 02:44:27.151862600 +0000
 +++ chrome/browser/extensions/BUILD.gn
-@@ -1110,7 +1110,13 @@ static_library("extensions") {
-     ]
+@@ -1415,6 +1415,10 @@ source_set("extensions") {
+     deps += [ "//chrome/services/printing/public/mojom" ]
    }
  
--  if (is_linux) {
-+  #if (is_bsd) {
-+  #  deps -= [
-+  #    "api/image_writer_private/removable_storage_provider_linux.cc",
-+  #  ]
-+  #}
++  if (is_bsd) {
++    sources -= [ "api/image_writer_private/removable_storage_provider_linux.cc" ]
++  }
 +
-+  if (is_linux || is_bsd) {
-     deps += [ "//third_party/fontconfig" ]
- 
-     if (use_dbus) {
+   if (enable_service_discovery) {
+     sources += [
+       "api/mdns/mdns_api.cc",
diff --git a/chromium/patches/patch-chrome_browser_extensions_activity__log_activity__log.cc b/chromium/patches/patch-chrome_browser_extensions_activity__log_activity__log.cc
deleted file mode 100644
index 7b57d09ac5..0000000000
--- a/chromium/patches/patch-chrome_browser_extensions_activity__log_activity__log.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/extensions/activity_log/activity_log.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/extensions/activity_log/activity_log.cc
-@@ -47,7 +47,7 @@
- #include "extensions/browser/extensions_browser_client.h"
- #include "extensions/common/extension.h"
- #include "extensions/common/extension_messages.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- #include "url/gurl.h"
- 
- namespace constants = activity_log_constants;
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc b/chromium/patches/patch-chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc
new file mode 100644
index 0000000000..2def259046
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_api__browser__context__keyed__service__factories.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc.orig	2024-07-24 02:44:27.159863500 +0000
++++ chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc
+@@ -44,7 +44,7 @@
+ #include "pdf/buildflags.h"
+ #include "printing/buildflags/buildflags.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/extensions/api/system_indicator/system_indicator_manager_factory.h"
+ #endif
+ 
+@@ -120,7 +120,7 @@ void EnsureApiBrowserContextKeyedService
+   extensions::SettingsPrivateEventRouterFactory::GetInstance();
+   extensions::SettingsOverridesAPI::GetFactoryInstance();
+   extensions::SidePanelService::GetFactoryInstance();
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   extensions::SystemIndicatorManagerFactory::GetInstance();
+ #endif
+   extensions::TabGroupsEventRouterFactory::GetInstance();
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc
index b3ff233e38..e5c41e5247 100644
--- a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc
+++ b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc.orig	2020-07-08 21:41:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc.orig	2024-07-24 02:44:27.195867000 +0000
 +++ chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc
-@@ -40,7 +40,7 @@
+@@ -24,7 +24,7 @@
  #include "base/win/registry.h"
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "base/environment.h"
  #include "base/nix/xdg_util.h"
  #endif
-@@ -386,7 +386,7 @@ base::FilePath GetEndpointVerificationDi
-     return *GetEndpointVerificationDirOverride();
- #if defined(OS_WIN)
-   if (!base::PathService::Get(base::DIR_LOCAL_APP_DATA, &path))
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+@@ -255,7 +255,7 @@ base::FilePath GetEndpointVerificationDi
+   bool got_path = false;
+ #if BUILDFLAG(IS_WIN)
+   got_path = base::PathService::Get(base::DIR_LOCAL_APP_DATA, &path);
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    std::unique_ptr<base::Environment> env(base::Environment::Create());
    path = base::nix::GetXDGDirectory(env.get(), base::nix::kXdgConfigHomeEnvVar,
                                      base::nix::kDotConfigDir);
-@@ -397,7 +397,7 @@ base::FilePath GetEndpointVerificationDi
-   if (true)
- #endif
+@@ -266,7 +266,7 @@ base::FilePath GetEndpointVerificationDi
+   if (!got_path)
      return path;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    path = path.AppendASCII("google");
  #else
    path = path.AppendASCII("Google");
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc
new file mode 100644
index 0000000000..f4313d22dd
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.cc.orig	2024-07-24 02:44:27.195867000 +0000
++++ chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.cc
+@@ -8,7 +8,7 @@
+ 
+ #include "build/build_config.h"
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ 
+ #include <memory>
+ #include <utility>
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h
new file mode 100644
index 0000000000..d4be7492f9
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_conversion__utils.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.h.orig	2024-07-24 02:44:27.195867000 +0000
++++ chrome/browser/extensions/api/enterprise_reporting_private/conversion_utils.h
+@@ -7,7 +7,7 @@
+ 
+ #include "build/build_config.h"
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ 
+ #include <optional>
+ #include <vector>
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc
deleted file mode 100644
index e6799785b5..0000000000
--- a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher.cc.orig	2020-07-08 21:41:46.000000000 +0000
-+++ chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher.cc
-@@ -10,7 +10,7 @@
- #include "chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_mac.h"
- #elif defined(OS_WIN)
- #include "chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #include "chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_linux.h"
- #endif
- 
-@@ -57,7 +57,7 @@ std::unique_ptr<DeviceInfoFetcher> Devic
-   return std::make_unique<DeviceInfoFetcherMac>();
- #elif defined(OS_WIN)
-   return std::make_unique<DeviceInfoFetcherWin>();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   return std::make_unique<DeviceInfoFetcherLinux>();
- #else
-   return std::make_unique<StubDeviceFetcher>();
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc
deleted file mode 100644
index 7b51d4b9f2..0000000000
--- a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc
+++ /dev/null
@@ -1,42 +0,0 @@
-$NetBSD$
-
---- chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_linux.cc.orig	2020-07-24 02:37:46.000000000 +0000
-+++ chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_linux.cc
-@@ -8,7 +8,9 @@
- #include <gio/gio.h>
- #endif  // defined(USE_GIO)
- #include <sys/stat.h>
-+#if defined(OS_LINUX)
- #include <sys/sysmacros.h>
-+#endif
- 
- #include <string>
- 
-@@ -91,6 +93,7 @@ enterprise_reporting_private::SettingVal
- // Implements the logic from the native host installation script. First find the
- // root device identifier, then locate its parent and get its type.
- enterprise_reporting_private::SettingValue GetDiskEncrypted() {
-+#if !defined(OS_BSD)
-   struct stat info;
-   // First figure out the device identifier.
-   stat("/", &info);
-@@ -110,6 +113,7 @@ enterprise_reporting_private::SettingVal
-     return is_encrypted ? enterprise_reporting_private::SETTING_VALUE_ENABLED
-                         : enterprise_reporting_private::SETTING_VALUE_DISABLED;
-   }
-+#endif
-   return enterprise_reporting_private::SETTING_VALUE_UNKNOWN;
- }
- 
-@@ -121,7 +125,11 @@ DeviceInfoFetcherLinux::~DeviceInfoFetch
- 
- DeviceInfo DeviceInfoFetcherLinux::Fetch() {
-   DeviceInfo device_info;
-+#if defined(OS_NETBSD)
-+  device_info.os_name = "netbsd";
-+#else
-   device_info.os_name = "linux";
-+#endif
-   device_info.os_version = GetOsVersion();
-   device_info.device_host_name = GetDeviceHostName();
-   device_info.device_model = GetDeviceModel();
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc
new file mode 100644
index 0000000000..23fc9e8748
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc.orig	2024-07-24 02:44:27.195867000 +0000
++++ chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc
+@@ -33,7 +33,7 @@
+ #include "components/reporting/util/statusor.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include <optional>
+ 
+ #include "base/strings/string_util.h"
+@@ -150,7 +150,7 @@ api::enterprise_reporting_private::Conte
+   return info;
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ 
+ device_signals::SignalsAggregationRequest CreateAggregationRequest(
+     device_signals::SignalName signal_name) {
+@@ -211,7 +211,7 @@ EnterpriseReportingPrivateGetDeviceIdFun
+ 
+ // getPersistentSecret
+ 
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ 
+ EnterpriseReportingPrivateGetPersistentSecretFunction::
+     EnterpriseReportingPrivateGetPersistentSecretFunction() = default;
+@@ -637,7 +637,7 @@ void EnterpriseReportingPrivateEnqueueRe
+ }
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ 
+ // getFileSystemInfo
+ 
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h
new file mode 100644
index 0000000000..e9f7e57c58
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.h.orig	2024-07-24 02:44:27.195867000 +0000
++++ chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.h
+@@ -20,7 +20,7 @@
+ #include "components/reporting/proto/synced/record.pb.h"
+ #include "components/reporting/proto/synced/record_constants.pb.h"
+ #include "components/reporting/util/statusor.h"
+-#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/time/time.h"
+ #include "components/device_signals/core/browser/signals_types.h"
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+@@ -56,7 +56,7 @@ class EnterpriseReportingPrivateGetDevic
+   ~EnterpriseReportingPrivateGetDeviceIdFunction() override;
+ };
+ 
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+ 
+ class EnterpriseReportingPrivateGetPersistentSecretFunction
+     : public ExtensionFunction {
+@@ -266,7 +266,7 @@ class EnterpriseReportingPrivateEnqueueR
+ 
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ 
+ class EnterpriseReportingPrivateGetFileSystemInfoFunction
+     : public ExtensionFunction {
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc b/chromium/patches/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc
index 54f9209b8c..36124e09d0 100644
--- a/chromium/patches/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc
+++ b/chromium/patches/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc
@@ -1,16 +1,20 @@
 $NetBSD$
 
---- chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc.orig	2024-07-24 02:44:27.215869000 +0000
 +++ chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc
-@@ -22,6 +22,7 @@ static base::LazyInstance<scoped_refptr<
+@@ -20,6 +20,7 @@ static base::LazyInstance<scoped_refptr<
  
  void RemovableStorageProvider::GetAllDevices(DeviceListReadyCallback callback) {
    DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
    if (g_test_device_list.Get().get() != nullptr) {
-     base::ThreadTaskRunnerHandle::Get()->PostTask(
+     base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
          FROM_HERE,
-@@ -35,6 +36,9 @@ void RemovableStorageProvider::GetAllDev
+@@ -33,6 +34,9 @@ void RemovableStorageProvider::GetAllDev
         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
        base::BindOnce(&RemovableStorageProvider::PopulateDeviceList),
        std::move(callback));
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc b/chromium/patches/patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc
new file mode 100644
index 0000000000..acfbceb3b5
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_management_chrome__management__api__delegate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/management/chrome_management_api_delegate.cc.orig	2024-07-24 02:44:27.219869400 +0000
++++ chrome/browser/extensions/api/management/chrome_management_api_delegate.cc
+@@ -414,7 +414,7 @@ bool ChromeManagementAPIDelegate::Launch
+   apps::LaunchContainer launch_container =
+       GetLaunchContainer(extensions::ExtensionPrefs::Get(context), extension);
+   Profile* profile = Profile::FromBrowserContext(context);
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (extensions::IsExtensionUnsupportedDeprecatedApp(profile,
+                                                       extension->id())) {
+     return false;
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc b/chromium/patches/patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc
new file mode 100644
index 0000000000..8d68576912
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc.orig	2024-07-24 02:44:27.227870000 +0000
++++ chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc
+@@ -84,7 +84,7 @@ bool NativeProcessLauncher::LaunchNative
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   // Don't use no_new_privs mode, e.g. in case the host needs to use sudo.
+   options.allow_new_privs = true;
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc b/chromium/patches/patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc
new file mode 100644
index 0000000000..bba7b436d1
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_passwords__private_passwords__private__delegate__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc.orig	2024-07-24 02:44:27.235870800 +0000
++++ chrome/browser/extensions/api/passwords_private/passwords_private_delegate_impl.cc
+@@ -611,7 +611,7 @@ void PasswordsPrivateDelegateImpl::OnFet
+ }
+ 
+ void PasswordsPrivateDelegateImpl::OsReauthTimeoutCall() {
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+   PasswordsPrivateEventRouter* router =
+       PasswordsPrivateEventRouterFactory::GetForProfile(profile_);
+   if (router) {
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc b/chromium/patches/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc
index f4f9246683..496dbb5f8f 100644
--- a/chromium/patches/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc
+++ b/chromium/patches/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc
@@ -1,13 +1,21 @@
 $NetBSD$
 
---- chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc.orig	2024-07-24 02:44:27.251872300 +0000
 +++ chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
-@@ -294,6 +294,8 @@ bool ChromeRuntimeAPIDelegate::GetPlatfo
-     info->os = extensions::api::runtime::PLATFORM_OS_LINUX;
+@@ -284,7 +284,11 @@ bool ChromeRuntimeAPIDelegate::GetPlatfo
+   } else if (strcmp(os, "linux") == 0) {
+     info->os = extensions::api::runtime::PlatformOs::kLinux;
    } else if (strcmp(os, "openbsd") == 0) {
-     info->os = extensions::api::runtime::PLATFORM_OS_OPENBSD;
+-    info->os = extensions::api::runtime::PlatformOs::kOpenbsd;
++    info->os = extensions::api::runtime::PlatformOs::kLinux;
++  } else if (strcmp(os, "freebsd") == 0) {
++    info->os = extensions::api::runtime::PlatformOs::kLinux;
 +  } else if (strcmp(os, "netbsd") == 0) {
-+    info->os = extensions::api::runtime::PLATFORM_OS_NETBSD;
++    info->os = extensions::api::runtime::PlatformOs::kLinux;
    } else {
-     NOTREACHED();
+     NOTREACHED_IN_MIGRATION() << "Platform not supported: " << os;
      return false;
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc b/chromium/patches/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc
index e8fb1e268b..8244a50b40 100644
--- a/chromium/patches/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc
+++ b/chromium/patches/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- chrome/browser/extensions/api/settings_private/prefs_util.cc.orig	2020-07-08 21:41:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/settings_private/prefs_util.cc.orig	2024-07-24 02:44:27.255872700 +0000
 +++ chrome/browser/extensions/api/settings_private/prefs_util.cc
-@@ -163,7 +163,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil
-   (*s_whitelist)[bookmarks::prefs::kShowBookmarkBar] =
-       settings_api::PrefType::PREF_TYPE_BOOLEAN;
+@@ -202,7 +202,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil
+   (*s_allowlist)[tab_groups::prefs::kAutoPinNewTabGroups] =
+       settings_api::PrefType::kBoolean;
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   (*s_whitelist)[::prefs::kUseCustomChromeFrame] =
-       settings_api::PrefType::PREF_TYPE_BOOLEAN;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   (*s_allowlist)[::prefs::kUseCustomChromeFrame] =
+       settings_api::PrefType::kBoolean;
  #endif
-@@ -173,7 +173,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil
+@@ -213,7 +213,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil
    // Appearance settings.
-   (*s_whitelist)[::prefs::kCurrentThemeID] =
-       settings_api::PrefType::PREF_TYPE_STRING;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   (*s_whitelist)[::prefs::kUsesSystemTheme] =
-       settings_api::PrefType::PREF_TYPE_BOOLEAN;
+   (*s_allowlist)[::prefs::kCurrentThemeID] = settings_api::PrefType::kString;
+   (*s_allowlist)[::prefs::kPolicyThemeColor] = settings_api::PrefType::kNumber;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   (*s_allowlist)[::prefs::kSystemTheme] = settings_api::PrefType::kNumber;
  #endif
+   (*s_allowlist)[::prefs::kHomePage] = settings_api::PrefType::kUrl;
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_tabs_tabs__api.cc b/chromium/patches/patch-chrome_browser_extensions_api_tabs_tabs__api.cc
new file mode 100644
index 0000000000..afa297f87b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_tabs_tabs__api.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/tabs/tabs_api.cc.orig	2024-07-24 02:44:27.267874000 +0000
++++ chrome/browser/extensions/api/tabs/tabs_api.cc
+@@ -892,7 +892,7 @@ ExtensionFunction::ResponseAction Window
+ // minimized.
+ // TODO(crbug.com/40254339): Remove this workaround when linux is fixed.
+ // TODO(crbug.com/40254339): Find a fix for wayland as well.
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
+   if (new_window->initial_show_state() == ui::SHOW_STATE_MINIMIZED) {
+     new_window->window()->Minimize();
+   }
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc b/chromium/patches/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc
index 3df6ff0d41..4e6b76ef3b 100644
--- a/chromium/patches/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc
+++ b/chromium/patches/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc.orig	2024-07-24 02:44:27.283875500 +0000
 +++ chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc
-@@ -30,7 +30,7 @@
+@@ -29,7 +29,7 @@
  #include "extensions/browser/process_manager.h"
  #include "extensions/common/error_utils.h"
  
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "extensions/common/permissions/permissions_data.h"
  #endif
  
-@@ -39,7 +39,7 @@ namespace {
+@@ -38,7 +38,7 @@ namespace {
  bool CanEnableAudioDebugRecordingsFromExtension(
      const extensions::Extension* extension) {
    bool enabled_by_permissions = false;
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (extension) {
      enabled_by_permissions =
          extension->permissions_data()->active_permissions().HasAPIPermission(
-@@ -570,7 +570,7 @@ void WebrtcLoggingPrivateStartEventLoggi
+@@ -576,7 +576,7 @@ void WebrtcLoggingPrivateStartEventLoggi
  
  ExtensionFunction::ResponseAction
  WebrtcLoggingPrivateGetLogsDirectoryFunction::Run() {
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Unlike other WebrtcLoggingPrivate functions that take a RequestInfo object,
    // this function shouldn't be called by a component extension on behalf of
    // some web code. It returns a DirectoryEntry for use directly in the calling
diff --git a/chromium/patches/patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc b/chromium/patches/patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc
new file mode 100644
index 0000000000..ac3fb9964f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_extensions_api_webstore__private_webstore__private__api.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/api/webstore_private/webstore_private_api.cc.orig	2024-07-24 02:44:27.283875500 +0000
++++ chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
+@@ -907,7 +907,7 @@ void WebstorePrivateBeginInstallWithMani
+ #if BUILDFLAG(IS_CHROMEOS)
+       RequestExtensionApproval(contents);
+       return;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+       // Shows a parental permission dialog directly bypassing the extension
+       // install dialog view. The parental permission dialog contains a superset
+       // of data from the extension install dialog: requested extension
diff --git a/chromium/patches/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc b/chromium/patches/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc
deleted file mode 100644
index 28d303ffb2..0000000000
--- a/chromium/patches/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/extensions/browser_context_keyed_service_factories.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/extensions/browser_context_keyed_service_factories.cc
-@@ -53,7 +53,7 @@
- #include "extensions/browser/api/networking_private/networking_private_delegate_factory.h"
- #include "ppapi/buildflags/buildflags.h"
- 
--#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
- #include "chrome/browser/extensions/api/input_ime/input_ime_api.h"
- #endif
- 
-@@ -103,7 +103,7 @@ void EnsureBrowserContextKeyedServiceFac
-   extensions::IdentityAPI::GetFactoryInstance();
-   extensions::InstallTrackerFactory::GetInstance();
-   extensions::InstallVerifierFactory::GetInstance();
--#if defined(OS_CHROMEOS)
-+#if defined(OS_CHROMEOS) || defined(OS_BSD)
-   extensions::InputImeAPI::GetFactoryInstance();
- #endif
-   extensions::LanguageSettingsPrivateDelegateFactory::GetInstance();
diff --git a/chromium/patches/patch-chrome_browser_extensions_external__provider__impl.cc b/chromium/patches/patch-chrome_browser_extensions_external__provider__impl.cc
index 0bf64acd9d..f241112bfb 100644
--- a/chromium/patches/patch-chrome_browser_extensions_external__provider__impl.cc
+++ b/chromium/patches/patch-chrome_browser_extensions_external__provider__impl.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- chrome/browser/extensions/external_provider_impl.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/extensions/external_provider_impl.cc.orig	2024-07-24 02:44:27.339881000 +0000
 +++ chrome/browser/extensions/external_provider_impl.cc
-@@ -760,7 +760,7 @@ void ExternalProviderImpl::CreateExterna
-   }
- #endif
+@@ -834,7 +834,7 @@ void ExternalProviderImpl::CreateExterna
    if (!profile->GetPrefs()->GetBoolean(pref_names::kBlockExternalExtensions)) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
      provider_list->push_back(std::make_unique<ExternalProviderImpl>(
          service,
          base::MakeRefCounted<ExternalPrefLoader>(
-@@ -787,7 +787,7 @@ void ExternalProviderImpl::CreateExterna
-           bundled_extension_creation_flags));
+@@ -862,7 +862,7 @@ void ExternalProviderImpl::CreateExterna
+         bundled_extension_creation_flags));
  
-       // Define a per-user source of external extensions.
--#if defined(OS_MACOSX) || (defined(OS_LINUX) && BUILDFLAG(CHROMIUM_BRANDING))
-+#if defined(OS_MACOSX) || ((defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(CHROMIUM_BRANDING))
-       provider_list->push_back(std::make_unique<ExternalProviderImpl>(
-           service,
-           base::MakeRefCounted<ExternalPrefLoader>(
+     // Define a per-user source of external extensions.
+-#if BUILDFLAG(IS_MAC) || ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if BUILDFLAG(IS_MAC) || ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+                           BUILDFLAG(CHROMIUM_BRANDING))
+     provider_list->push_back(std::make_unique<ExternalProviderImpl>(
+         service,
diff --git a/chromium/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc b/chromium/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc
new file mode 100644
index 0000000000..023c2934bb
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.orig	2024-07-24 02:44:27.415888300 +0000
++++ chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+@@ -318,7 +318,7 @@ const struct {
+      FILE_PATH_LITERAL("Library/Mobile Documents/com~apple~CloudDocs"),
+      kDontBlockChildren},
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     // On Linux also block access to devices via /dev.
+     {kNoBasePathKey, FILE_PATH_LITERAL("/dev"), kBlockAllChildren},
+     // And security sensitive data in /proc and /sys.
diff --git a/chromium/patches/patch-chrome_browser_first__run_first__run__dialog.h b/chromium/patches/patch-chrome_browser_first__run_first__run__dialog.h
index 0c7f1459ad..c198e592b4 100644
--- a/chromium/patches/patch-chrome_browser_first__run_first__run__dialog.h
+++ b/chromium/patches/patch-chrome_browser_first__run_first__run__dialog.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/first_run/first_run_dialog.h.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/first_run/first_run_dialog.h.orig	2024-07-24 02:44:27.423889000 +0000
 +++ chrome/browser/first_run/first_run_dialog.h
-@@ -9,7 +9,7 @@
- #include "build/build_config.h"
- 
+@@ -12,7 +12,7 @@
  // Hide this function on platforms where the dialog does not exist.
--#if defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if defined(OS_MACOSX) || ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
  
- class Profile;
+ namespace first_run {
  
diff --git a/chromium/patches/patch-chrome_browser_first__run_first__run__internal.h b/chromium/patches/patch-chrome_browser_first__run_first__run__internal.h
index 4d5c3f5ada..aa6ddb0e18 100644
--- a/chromium/patches/patch-chrome_browser_first__run_first__run__internal.h
+++ b/chromium/patches/patch-chrome_browser_first__run_first__run__internal.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/first_run/first_run_internal.h.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/first_run/first_run_internal.h.orig	2024-07-24 02:44:27.423889000 +0000
 +++ chrome/browser/first_run/first_run_internal.h
-@@ -64,7 +64,7 @@ FirstRunState DetermineFirstRunState(boo
+@@ -54,7 +54,7 @@ FirstRunState DetermineFirstRunState(boo
                                       bool force_first_run,
                                       bool no_first_run);
  
--#if defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if defined(OS_MACOSX) || ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
  // For testing, forces the first run dialog to either be shown or not. If not
  // called, the decision to show the dialog or not will be made by Chrome based
  // on a number of factors (such as install type, whether it's a Chrome-branded
diff --git a/chromium/patches/patch-chrome_browser_first__run_first__run__internal__posix.cc b/chromium/patches/patch-chrome_browser_first__run_first__run__internal__posix.cc
deleted file mode 100644
index 3e0856dee2..0000000000
--- a/chromium/patches/patch-chrome_browser_first__run_first__run__internal__posix.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/first_run/first_run_internal_posix.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/first_run/first_run_internal_posix.cc
-@@ -45,7 +45,7 @@ enum class ForcedShowDialogState {
- ForcedShowDialogState g_forced_show_dialog_state =
-     ForcedShowDialogState::kNotForced;
- 
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
- // Returns whether the first run dialog should be shown. This is only true for
- // certain builds, and only if the user has not already set preferences. In a
- // real, official-build first run, initializes the default metrics reporting if
-@@ -96,7 +96,7 @@ void ForceFirstRunDialogShownForTesting(
- }
- 
- void DoPostImportPlatformSpecificTasks(Profile* profile) {
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
-   if (!ShouldShowFirstRunDialog())
-     return;
- 
diff --git a/chromium/patches/patch-chrome_browser_flag__descriptions.cc b/chromium/patches/patch-chrome_browser_flag__descriptions.cc
index 987b4f3643..d3b74bb2e6 100644
--- a/chromium/patches/patch-chrome_browser_flag__descriptions.cc
+++ b/chromium/patches/patch-chrome_browser_flag__descriptions.cc
@@ -1,31 +1,115 @@
 $NetBSD$
 
---- chrome/browser/flag_descriptions.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/flag_descriptions.cc.orig	2024-07-24 02:44:27.427889300 +0000
 +++ chrome/browser/flag_descriptions.cc
-@@ -4080,7 +4080,7 @@ const char kEnableNewBadgeOnMenuItemsDes
+@@ -2963,7 +2963,7 @@ const char kCbdTimeframeRequiredDescript
+     "value to the list.";
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ const char kPolicyIndicationForManagedDefaultSearchName[] =
+     "Enable policy indication for managed Default Search provider";
+ const char kPolicyIndicationForManagedDefaultSearchDescription[] =
+@@ -3281,7 +3281,7 @@ const char kShowAutofillTypePredictionsD
+     "text.";
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kShowFeaturedEnterpriseSiteSearchName[] =
+     "Show featured Enterprise site search engines in Omnibox";
+ const char kShowFeaturedEnterpriseSiteSearchDescription[] =
+@@ -3318,7 +3318,7 @@ const char kSiteInstanceGroupsForDataUrl
+     "but in the same SiteInstanceGroup, and thus the same process.";
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kSiteSearchSettingsPolicyName[] = "Enable SiteSearchSettings policy";
+ const char kSiteSearchSettingsPolicyDescription[] =
+     "Allow site search engines to be defined by the SiteSearchSettings policy.";
+@@ -7719,7 +7719,7 @@ const char kLacrosMergeIcuDataFileDescri
+     "Enables sharing common areas of icudtl.dat between Ash and Lacros.";
+ #endif  // #if BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kGetAllScreensMediaName[] = "GetAllScreensMedia API";
+ const char kGetAllScreensMediaDescription[] =
+     "When enabled, the getAllScreensMedia API for capturing multiple screens "
+@@ -7970,7 +7970,7 @@ const char kV4L2FlatStatefulVideoDecoder
+ 
+ // Linux -----------------------------------------------------------------------
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kOzonePlatformHintChoiceDefault[] = "Default";
+ const char kOzonePlatformHintChoiceAuto[] = "Auto";
+ const char kOzonePlatformHintChoiceX11[] = "X11";
+@@ -7992,6 +7992,17 @@ const char kPulseaudioLoopbackForScreenS
+ const char kPulseaudioLoopbackForScreenShareDescription[] =
+     "Enable system audio sharing when screen sharing on Linux with pulseaudio.";
  
- // Random platform combinations -----------------------------------------------
++#if BUILDFLAG(IS_BSD)
++const char kAudioBackendName[] =
++    "Audio Backend";
++const char kAudioBackendDescription[] =
++#if BUILDFLAG(IS_OPENBSD)
++    "Select the desired audio backend to use. The default is sndio.";
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
++    "Select the desired audio backend to use. The default will automatically "
++    "enumerate through the supported backends.";
++#endif
++#endif
+ #endif  // BUILDFLAG(IS_LINUX)
  
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+ // All views-based platforms --------------------------------------------------
+@@ -8018,14 +8029,14 @@ const char kZeroCopyVideoCaptureDescript
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
  
- const char kWebGL2ComputeContextName[] = "WebGL 2.0 Compute";
- const char kWebGL2ComputeContextDescription[] =
-@@ -4123,7 +4123,7 @@ const char kRemoteCopyProgressNotificati
- #endif  // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
-         // defined(OS_CHROMEOS)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kFollowingFeedSidepanelName[] = "Following feed in the sidepanel";
+ const char kFollowingFeedSidepanelDescription[] =
+     "Enables the following feed in the sidepanel.";
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+         //  BUILDFLAG(IS_CHROMEOS)
  
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kEnableNetworkServiceSandboxName[] =
+     "Enable the network service sandbox.";
+ const char kEnableNetworkServiceSandboxDescription[] =
+@@ -8057,7 +8068,7 @@ const char kWebBluetoothConfirmPairingSu
+     "Bluetooth";
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
  
- const char kDirectManipulationStylusName[] = "Direct Manipulation Stylus";
- const char kDirectManipulationStylusDescription[] =
-@@ -4140,7 +4140,7 @@ const char kWebContentsOcclusionDescript
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ const char kSkipUndecryptablePasswordsName[] =
+     "Skip undecryptable passwords to use the available decryptable "
+     "passwords.";
+@@ -8207,7 +8218,7 @@ const char kElementCaptureDescription[] 
  
- #endif  // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
+ #if BUILDFLAG(IS_WIN) ||                                      \
+     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ const char kUIDebugToolsName[] = "Debugging tools for UI";
+ const char kUIDebugToolsDescription[] =
+     "Enables additional keyboard shortcuts to help debugging.";
+@@ -8274,7 +8285,7 @@ const char kComposePoliteNudgeDescriptio
+     "available to interact with.";
+ #endif  // BUILDFLAG(ENABLE_COMPOSE)
  
--#if defined(OS_CHROMEOS) || defined(OS_LINUX)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_BSD)
- #if BUILDFLAG(USE_TCMALLOC)
- const char kDynamicTcmallocName[] = "Dynamic Tcmalloc Tuning";
- const char kDynamicTcmallocDescription[] =
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ const char kThirdPartyProfileManagementName[] =
+     "Third party profile management";
+ const char kThirdPartyProfileManagementDescription[] =
diff --git a/chromium/patches/patch-chrome_browser_flag__descriptions.h b/chromium/patches/patch-chrome_browser_flag__descriptions.h
index cdac0268bb..431cfeea24 100644
--- a/chromium/patches/patch-chrome_browser_flag__descriptions.h
+++ b/chromium/patches/patch-chrome_browser_flag__descriptions.h
@@ -1,40 +1,106 @@
 $NetBSD$
 
---- chrome/browser/flag_descriptions.h.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/flag_descriptions.h.orig	2024-07-24 02:44:27.427889300 +0000
 +++ chrome/browser/flag_descriptions.h
-@@ -19,7 +19,7 @@
- #include "ppapi/buildflags/buildflags.h"
- #include "printing/buildflags/buildflags.h"
+@@ -1722,7 +1722,7 @@ extern const char kCbdTimeframeRequiredN
+ extern const char kCbdTimeframeRequiredDescription[];
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ extern const char kPolicyIndicationForManagedDefaultSearchName[];
+ extern const char kPolicyIndicationForManagedDefaultSearchDescription[];
+ #endif
+@@ -1906,7 +1906,7 @@ extern const char kShowAutofillTypePredi
+ extern const char kShowAutofillTypePredictionsDescription[];
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ extern const char kShowFeaturedEnterpriseSiteSearchName[];
+ extern const char kShowFeaturedEnterpriseSiteSearchDescription[];
+ 
+@@ -1928,7 +1928,7 @@ extern const char kSiteInstanceGroupsFor
+ extern const char kSiteInstanceGroupsForDataUrlsDescription[];
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ extern const char kSiteSearchSettingsPolicyName[];
+ extern const char kSiteSearchSettingsPolicyDescription[];
+ #endif
+@@ -4484,7 +4484,7 @@ extern const char kLacrosMergeIcuDataFil
+ extern const char kLacrosMergeIcuDataFileDescription[];
+ #endif  // #if BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ extern const char kGetAllScreensMediaName[];
+ extern const char kGetAllScreensMediaDescription[];
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+@@ -4630,7 +4630,7 @@ extern const char kV4L2FlatStatefulVideo
+ 
+ // Linux ---------------------------------------------------------------------
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ extern const char kOzonePlatformHintChoiceDefault[];
+ extern const char kOzonePlatformHintChoiceAuto[];
+ extern const char kOzonePlatformHintChoiceX11[];
+@@ -4643,6 +4643,9 @@ extern const char kPulseaudioLoopbackFor
+ extern const char kPulseaudioLoopbackForCastDescription[];
+ extern const char kPulseaudioLoopbackForScreenShareName[];
+ extern const char kPulseaudioLoopbackForScreenShareDescription[];
++
++extern const char kAudioBackendName[];
++extern const char kAudioBackendDescription[];
+ #endif  // BUILDFLAG(IS_LINUX)
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "base/allocator/buildflags.h"
- #endif  // defined(OS_LINUX)
+ // All views-based platforms --------------------------------------------------
+@@ -4672,7 +4675,7 @@ extern const char kWebBluetoothConfirmPa
+ extern const char kWebBluetoothConfirmPairingSupportDescription[];
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
  
-@@ -2390,7 +2390,7 @@ extern const char kEnableNewBadgeOnMenuI
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ extern const char kSkipUndecryptablePasswordsName[];
+ extern const char kSkipUndecryptablePasswordsDescription[];
  
- // Random platform combinations -----------------------------------------------
+@@ -4691,13 +4694,13 @@ extern const char kScreenlockReauthPromo
+ #endif  // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
  
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ extern const char kFollowingFeedSidepanelName[];
+ extern const char kFollowingFeedSidepanelDescription[];
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+         //  BUILDFLAG(IS_CHROMEOS)
  
- extern const char kWebGL2ComputeContextName[];
- extern const char kWebGL2ComputeContextDescription[];
-@@ -2398,7 +2398,7 @@ extern const char kWebGL2ComputeContextD
- #endif  // defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ extern const char kEnableNetworkServiceSandboxName[];
+ extern const char kEnableNetworkServiceSandboxDescription[];
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
+@@ -4793,7 +4796,7 @@ extern const char kElementCaptureDescrip
  
- extern const char kEnableMediaFeedsName[];
- extern const char kEnableMediaFeedsDescription[];
-@@ -2418,7 +2418,7 @@ extern const char kRemoteCopyProgressNot
- #endif  // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
-         // defined(OS_CHROMEOS)
+ #if BUILDFLAG(IS_WIN) ||                                      \
+     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ extern const char kUIDebugToolsName[];
+ extern const char kUIDebugToolsDescription[];
+ #endif
+@@ -4841,7 +4844,7 @@ extern const char kComposePoliteNudgeNam
+ extern const char kComposePoliteNudgeDescription[];
+ #endif  // BUILDFLAG(ENABLE_COMPOSE)
  
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ extern const char kThirdPartyProfileManagementName[];
+ extern const char kThirdPartyProfileManagementDescription[];
  
- extern const char kDirectManipulationStylusName[];
- extern const char kDirectManipulationStylusDescription[];
diff --git a/chromium/patches/patch-chrome_browser_gcm_gcm__profile__service__factory.cc b/chromium/patches/patch-chrome_browser_gcm_gcm__profile__service__factory.cc
new file mode 100644
index 0000000000..c6783761e3
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_gcm_gcm__profile__service__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/gcm/gcm_profile_service_factory.cc.orig	2024-07-24 02:44:27.435890200 +0000
++++ chrome/browser/gcm/gcm_profile_service_factory.cc
+@@ -89,7 +89,7 @@ GCMProfileServiceFactory::ScopedTestingF
+ // static
+ GCMProfileService* GCMProfileServiceFactory::GetForProfile(
+     content::BrowserContext* profile) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // On desktop, incognito profiles are checked with IsIncognitoProfile().
+   // It's possible for non-incognito profiles to also be off-the-record.
+   bool is_profile_supported =
+@@ -129,7 +129,7 @@ GCMProfileServiceFactory::~GCMProfileSer
+ KeyedService* GCMProfileServiceFactory::BuildServiceInstanceFor(
+     content::BrowserContext* context) const {
+   Profile* profile = Profile::FromBrowserContext(context);
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   DCHECK(!profile->IsIncognitoProfile());
+ #else
+   DCHECK(!profile->IsOffTheRecord());
diff --git a/chromium/patches/patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc b/chromium/patches/patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc
new file mode 100644
index 0000000000..5bd1c85136
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_gcm_instance__id_instance__id__profile__service__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/gcm/instance_id/instance_id_profile_service_factory.cc.orig	2024-07-24 02:44:27.435890200 +0000
++++ chrome/browser/gcm/instance_id/instance_id_profile_service_factory.cc
+@@ -16,7 +16,7 @@ namespace instance_id {
+ // static
+ InstanceIDProfileService* InstanceIDProfileServiceFactory::GetForProfile(
+     content::BrowserContext* profile) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // On desktop, the guest profile is actually the primary OTR profile of
+   // the "regular" guest profile.  The regular guest profile is never used
+   // directly by users.  Also, user are not able to create child OTR profiles
+@@ -61,7 +61,7 @@ InstanceIDProfileServiceFactory::~Instan
+ KeyedService* InstanceIDProfileServiceFactory::BuildServiceInstanceFor(
+     content::BrowserContext* context) const {
+   Profile* profile = Profile::FromBrowserContext(context);
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // On desktop, incognito profiles are checked with IsIncognitoProfile().
+   // It's possible for non-incognito profiles to also be off-the-record.
+   bool is_incognito = profile->IsIncognitoProfile();
diff --git a/chromium/patches/patch-chrome_browser_headless_headless__mode__util.cc b/chromium/patches/patch-chrome_browser_headless_headless__mode__util.cc
new file mode 100644
index 0000000000..a7cac65c98
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_headless_headless__mode__util.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/headless/headless_mode_util.cc.orig	2024-07-24 02:44:27.443891000 +0000
++++ chrome/browser/headless/headless_mode_util.cc
+@@ -19,7 +19,7 @@
+ #include "chrome/common/chrome_switches.h"
+ #include "content/public/common/content_switches.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/gl/gl_switches.h"               // nogncheck
+ #include "ui/ozone/public/ozone_switches.h"  // nogncheck
+ #endif  // BUILDFLAG(IS_LINUX)
+@@ -87,7 +87,7 @@ class HeadlessModeHandleImpl : public He
+       command_line->AppendSwitchPath(switches::kUserDataDir, GetUserDataDir());
+     }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Headless mode on Linux relies on ozone/headless platform.
+   command_line->AppendSwitchASCII(::switches::kOzonePlatform,
+                                   switches::kHeadless);
diff --git a/chromium/patches/patch-chrome_browser_intranet__redirect__detector.h b/chromium/patches/patch-chrome_browser_intranet__redirect__detector.h
new file mode 100644
index 0000000000..ced61809d4
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_intranet__redirect__detector.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/intranet_redirect_detector.h.orig	2024-07-24 02:44:27.479894400 +0000
++++ chrome/browser/intranet_redirect_detector.h
+@@ -25,7 +25,7 @@ class SimpleURLLoader;
+ class PrefRegistrySimple;
+ 
+ #if !(BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
+-      BUILDFLAG(IS_CHROMEOS))
++      BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ #error "IntranetRedirectDetector should only be built on Desktop platforms."
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc b/chromium/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc
index 518668cb4e..18aa151ca1 100644
--- a/chromium/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc
+++ b/chromium/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc
@@ -1,16 +1,20 @@
 $NetBSD$
 
---- chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc.orig	2024-07-24 02:44:27.607906800 +0000
 +++ chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc
 @@ -39,10 +39,12 @@ void MTPDeviceMapService::RegisterMTPFil
      // Note that this initializes the delegate asynchronously, but since
      // the delegate will only be used from the IO thread, it is guaranteed
      // to be created before use of it expects it to be there.
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD) 
      CreateMTPDeviceAsyncDelegate(
          device_location, read_only,
-         base::Bind(&MTPDeviceMapService::AddAsyncDelegate,
-                    base::Unretained(this), device_location, read_only));
+         base::BindOnce(&MTPDeviceMapService::AddAsyncDelegate,
+                        base::Unretained(this), device_location, read_only));
 +#endif
      mtp_device_usage_map_[key] = 0;
    }
diff --git a/chromium/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc b/chromium/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc
index bb926284ef..49d4bc8852 100644
--- a/chromium/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc
+++ b/chromium/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc
@@ -1,14 +1,20 @@
 $NetBSD$
 
---- chrome/browser/media_galleries/media_file_system_registry.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media_galleries/media_file_system_registry.cc.orig	2024-07-24 02:44:27.611907200 +0000
 +++ chrome/browser/media_galleries/media_file_system_registry.cc
-@@ -735,7 +735,10 @@ class MediaFileSystemRegistry::MediaFile
+@@ -584,7 +584,12 @@ class MediaFileSystemRegistry::MediaFile
  // Constructor in 'private' section because depends on private class definition.
  MediaFileSystemRegistry::MediaFileSystemRegistry()
      : file_system_context_(new MediaFileSystemContextImpl) {
 -  StorageMonitor::GetInstance()->AddObserver(this);
-+  // This conditional is needed for shutdown.  Destructors
-+  // try to get the media file system registry.
++  /*
++   * This conditional is needed for shutdown.  Destructors
++   * try to get the media file system registry.
++   */
 +  if (StorageMonitor::GetInstance())
 +    StorageMonitor::GetInstance()->AddObserver(this);
  }
diff --git a/chromium/patches/patch-chrome_browser_media_audio__service__util.cc b/chromium/patches/patch-chrome_browser_media_audio__service__util.cc
new file mode 100644
index 0000000000..1831aec416
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_media_audio__service__util.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/audio_service_util.cc.orig	2024-07-24 02:44:27.543900700 +0000
++++ chrome/browser/media/audio_service_util.cc
+@@ -21,7 +21,7 @@
+ 
+ namespace {
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+     (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS))
+ const base::Value* GetPolicy(const char* policy_name) {
+   const policy::PolicyMap& policies =
+@@ -43,7 +43,7 @@ bool GetPolicyOrFeature(const char* poli
+ bool IsAudioServiceSandboxEnabled() {
+ // TODO(crbug.com/40118868): Remove !IS_CHROMEOS_LACROS once lacros starts being
+ // built with OS_CHROMEOS instead of OS_LINUX.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+     (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS))
+   return GetPolicyOrFeature(policy::key::kAudioSandboxEnabled,
+                             features::kAudioServiceSandbox);
diff --git a/chromium/patches/patch-chrome_browser_media_router_discovery_BUILD.gn b/chromium/patches/patch-chrome_browser_media_router_discovery_BUILD.gn
new file mode 100644
index 0000000000..8c64b16fa7
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_media_router_discovery_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/router/discovery/BUILD.gn.orig	2024-07-24 02:44:27.555901800 +0000
++++ chrome/browser/media/router/discovery/BUILD.gn
+@@ -82,7 +82,7 @@ static_library("discovery") {
+   ]
+   configs += [ "//build/config/compiler:wexit_time_destructors" ]
+ 
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
+     sources += [ "discovery_network_list_wifi_linux.cc" ]
+   }
+ 
diff --git a/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc b/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc
index ee30310eaf..240a6f5dd8 100644
--- a/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc
+++ b/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc
@@ -1,12 +1,23 @@
 $NetBSD$
 
---- chrome/browser/media/router/discovery/discovery_network_list_posix.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/router/discovery/discovery_network_list_posix.cc.orig	2024-07-24 02:44:27.563902600 +0000
 +++ chrome/browser/media/router/discovery/discovery_network_list_posix.cc
-@@ -10,6 +10,7 @@
- #include <netinet/in.h>
- #include <sys/socket.h>
- #include <sys/types.h>
+@@ -5,11 +5,12 @@
+ #include "chrome/browser/media/router/discovery/discovery_network_list.h"
+ 
+ #include <ifaddrs.h>
++#include <sys/socket.h>
++#include <sys/types.h>
 +#include <sys/time.h>
+ #include <net/if.h>
+ #include <net/if_arp.h>
+ #include <netinet/in.h>
+-#include <sys/socket.h>
+-#include <sys/types.h>
  
  #include <algorithm>
  
@@ -14,8 +25,8 @@ $NetBSD$
  #include "chrome/browser/media/router/discovery/discovery_network_list_wifi.h"
  #include "net/base/net_errors.h"
  
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_MAC)
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
  #include <netpacket/packet.h>
  #else
  #include <net/if_dl.h>
@@ -23,8 +34,21 @@ $NetBSD$
  namespace media_router {
  namespace {
  
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_MAC)
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
  using sll = struct sockaddr_ll;
  #define SOCKET_ARP_TYPE(s) ((s)->sll_hatype)
  #define SOCKET_ADDRESS_LEN(s) ((s)->sll_halen)
+@@ -40,6 +41,12 @@ using sll = struct sockaddr_dl;
+ #define SOCKET_ADDRESS(s) (LLADDR(s))
+ #endif
+ 
++#if BUILDFLAG(IS_BSD)
++bool MaybeGetWifiSSID(const std::string& if_name, std::string* ssid_out) {
++  return false;
++}
++#endif
++
+ void GetDiscoveryNetworkInfoListImpl(
+     const struct ifaddrs* if_list,
+     std::vector<DiscoveryNetworkInfo>* network_info_list) {
diff --git a/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc b/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc
index c653b811a9..ecab4f9f6c 100644
--- a/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc
+++ b/chromium/patches/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc
@@ -1,26 +1,32 @@
 $NetBSD$
 
---- chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc.orig	2024-07-24 02:44:27.563902600 +0000
 +++ chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc
-@@ -9,7 +9,9 @@
+@@ -9,7 +9,11 @@
  #include <sys/socket.h>
  #include <sys/types.h>
  
-+#if defined(OS_LINUX)
++#include "build/build_config.h"
++
++#if !BUILDFLAG(IS_BSD)
  #include <linux/wireless.h>
 +#endif
  
  #include "base/check.h"
  #include "base/files/scoped_file.h"
-@@ -20,6 +22,7 @@ namespace media_router {
+@@ -20,6 +24,7 @@ namespace media_router {
  bool MaybeGetWifiSSID(const std::string& if_name, std::string* ssid_out) {
    DCHECK(ssid_out);
  
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
    base::ScopedFD ioctl_socket(socket(AF_INET, SOCK_DGRAM, 0));
    if (!ioctl_socket.is_valid()) {
      // AF_INET is for IPv4, so it may fail for IPv6-only hosts even when there
-@@ -41,6 +44,7 @@ bool MaybeGetWifiSSID(const std::string&
+@@ -41,6 +46,7 @@ bool MaybeGetWifiSSID(const std::string&
      ssid_out->assign(ssid);
      return true;
    }
diff --git a/chromium/patches/patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc b/chromium/patches/patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc
deleted file mode 100644
index e6422794fb..0000000000
--- a/chromium/patches/patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-$NetBSD$
-
---- chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.cc
-@@ -112,6 +112,12 @@ void WiredDisplayMediaRouteProvider::Cre
-     bool off_the_record,
-     CreateRouteCallback callback) {
-   DCHECK(!base::Contains(presentations_, presentation_id));
-+#if defined(OS_BSD)
-+  std::move(callback).Run(base::nullopt, nullptr,
-+                         std::string("Not implemented"),
-+                         RouteRequestResult::UNKNOWN_ERROR);
-+  return;
-+#else
-   base::Optional<Display> display = GetDisplayBySinkId(sink_id);
-   if (!display) {
-     std::move(callback).Run(base::nullopt, nullptr,
-@@ -138,6 +144,7 @@ void WiredDisplayMediaRouteProvider::Cre
-   std::move(callback).Run(route, nullptr, base::nullopt,
-                           RouteRequestResult::OK);
-   NotifyRouteObservers();
-+#endif
- }
- 
- void WiredDisplayMediaRouteProvider::JoinRoute(
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc b/chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc
new file mode 100644
index 0000000000..19a460278a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.cc
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/webrtc/chrome_screen_enumerator.cc.orig	2024-07-24 02:44:27.583904500 +0000
++++ chrome/browser/media/webrtc/chrome_screen_enumerator.cc
+@@ -21,7 +21,7 @@
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ #include "ash/shell.h"
+ #include "ui/aura/window.h"
+-#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/functional/callback.h"
+ #include "content/public/browser/desktop_capture.h"
+ #endif
+@@ -32,7 +32,7 @@ base::LazyInstance<std::vector<raw_ptr<a
+     DestructorAtExit root_windows_for_testing_ = LAZY_INSTANCE_INITIALIZER;
+ }  // namespace
+ 
+-#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ namespace {
+ base::LazyInstance<std::unique_ptr<webrtc::DesktopCapturer>>::DestructorAtExit
+     g_desktop_capturer_for_testing = LAZY_INSTANCE_INITIALIZER;
+@@ -79,7 +79,7 @@ blink::mojom::StreamDevicesSetPtr Enumer
+   return stream_devices_set;
+ }
+ 
+-#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ blink::mojom::StreamDevicesSetPtr EnumerateScreens(
+     blink::mojom::MediaStreamType stream_type) {
+   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+@@ -130,7 +130,7 @@ void ChromeScreenEnumerator::SetRootWind
+   root_windows_for_testing_.Get() = std::move(root_windows);
+ }
+ 
+-#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ChromeScreenEnumerator::SetDesktopCapturerForTesting(
+     std::unique_ptr<webrtc::DesktopCapturer> capturer) {
+   g_desktop_capturer_for_testing.Get() = std::move(capturer);
+@@ -143,7 +143,7 @@ void ChromeScreenEnumerator::EnumerateSc
+     ScreensCallback screens_callback) const {
+   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   content::GetUIThreadTaskRunner({})->PostTaskAndReplyWithResult(
+       FROM_HERE, base::BindOnce(::EnumerateScreens, stream_type),
+       base::BindOnce(
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h b/chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h
new file mode 100644
index 0000000000..a0d502acf0
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_media_webrtc_chrome__screen__enumerator.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/webrtc/chrome_screen_enumerator.h.orig	2024-07-24 02:44:27.583904500 +0000
++++ chrome/browser/media/webrtc/chrome_screen_enumerator.h
+@@ -20,7 +20,7 @@ namespace aura {
+ class Window;
+ }
+ 
+-#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ namespace webrtc {
+ class DesktopCapturer;
+ }
+@@ -42,7 +42,7 @@ class ChromeScreenEnumerator : public me
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+   static void SetRootWindowsForTesting(
+       std::vector<raw_ptr<aura::Window, VectorExperimental>> root_windows);
+-#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   static void SetDesktopCapturerForTesting(
+       std::unique_ptr<webrtc::DesktopCapturer> capturer);
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc b/chromium/patches/patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc
new file mode 100644
index 0000000000..ba0c76b666
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_media_webrtc_desktop__media__picker__controller.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/webrtc/desktop_media_picker_controller.cc.orig	2024-07-24 02:44:27.587905000 +0000
++++ chrome/browser/media/webrtc/desktop_media_picker_controller.cc
+@@ -89,7 +89,7 @@ bool DesktopMediaPickerController::IsSys
+ #if BUILDFLAG(IS_MAC)
+  return request_source == Params::RequestSource::kCast ||
+      base::FeatureList::IsEnabled(media::kMacLoopbackAudioForScreenShare);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (request_source == Params::RequestSource::kCast) {
+     return base::FeatureList::IsEnabled(media::kPulseaudioLoopbackForCast);
+   } else {
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc
deleted file mode 100644
index 0e3d28c1b1..0000000000
--- a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/media/webrtc/webrtc_event_log_uploader.cc.orig	2020-07-08 21:41:47.000000000 +0000
-+++ chrome/browser/media/webrtc/webrtc_event_log_uploader.cc
-@@ -36,7 +36,7 @@ constexpr size_t kExpectedMimeOverheadBy
- const char kProduct[] = "Chrome";
- #elif defined(OS_MACOSX)
- const char kProduct[] = "Chrome_Mac";
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- const char kProduct[] = "Chrome_Linux";
- #elif defined(OS_ANDROID)
- const char kProduct[] = "Chrome_Android";
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc
index 610308b972..bf693466ef 100644
--- a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc
+++ b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/media/webrtc/webrtc_log_uploader.cc.orig	2020-07-24 02:37:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/webrtc/webrtc_log_uploader.cc.orig	2024-07-24 02:44:27.599906200 +0000
 +++ chrome/browser/media/webrtc/webrtc_log_uploader.cc
-@@ -354,6 +354,8 @@ void WebRtcLogUploader::SetupMultipart(
+@@ -101,7 +101,7 @@ std::string GetLogUploadProduct() {
+   const char product[] = "Chrome_Mac";
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ #if !defined(ADDRESS_SANITIZER)
+   const char product[] = "Chrome_Linux";
  #else
-   const char product[] = "Chrome_Linux_ASan";
- #endif
-+#elif defined(OS_NETBSD)
-+  const char product[] = "Chrome_NetBSD";
- #elif defined(OS_ANDROID)
-   const char product[] = "Chrome_Android";
- #elif defined(OS_CHROMEOS)
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc
index 5051f8cf62..8455b55e59 100644
--- a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc
+++ b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc
@@ -1,22 +1,39 @@
 $NetBSD$
 
---- chrome/browser/media/webrtc/webrtc_logging_controller.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/webrtc/webrtc_logging_controller.cc.orig	2024-07-24 02:44:27.599906200 +0000
 +++ chrome/browser/media/webrtc/webrtc_logging_controller.cc
-@@ -23,7 +23,7 @@
- #include "content/public/browser/browser_context.h"
+@@ -25,10 +25,10 @@
+ #include "components/webrtc_logging/browser/text_log_list.h"
  #include "content/public/browser/render_process_host.h"
  
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "content/public/browser/child_process_security_policy.h"
  #include "storage/browser/file_system/isolated_context.h"
- #endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
-@@ -272,7 +272,7 @@ void WebRtcLoggingController::StartEvent
+-#endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ 
+ using webrtc_event_logging::WebRtcEventLogManager;
+ 
+@@ -288,7 +288,7 @@ void WebRtcLoggingController::StartEvent
        web_app_id, callback);
  }
  
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  void WebRtcLoggingController::GetLogsDirectory(
-     const LogsDirectoryCallback& callback,
-     const LogsDirectoryErrorCallback& error_callback) {
+     LogsDirectoryCallback callback,
+     LogsDirectoryErrorCallback error_callback) {
+@@ -334,7 +334,7 @@ void WebRtcLoggingController::GrantLogsD
+       FROM_HERE,
+       base::BindOnce(std::move(callback), file_system.id(), registered_name));
+ }
+-#endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ 
+ void WebRtcLoggingController::OnRtpPacket(
+     base::HeapArray<uint8_t> packet_header,
diff --git a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h
index d86e01caaa..a81263f613 100644
--- a/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h
+++ b/chromium/patches/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- chrome/browser/media/webrtc/webrtc_logging_controller.h.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/media/webrtc/webrtc_logging_controller.h.orig	2024-07-24 02:44:27.603906400 +0000
 +++ chrome/browser/media/webrtc/webrtc_logging_controller.h
-@@ -129,7 +129,7 @@ class WebRtcLoggingController
+@@ -133,7 +133,7 @@ class WebRtcLoggingController
                           size_t web_app_id,
                           const StartEventLoggingCallback& callback);
  
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Ensures that the WebRTC Logs directory exists and then grants render
    // process access to the 'WebRTC Logs' directory, and invokes |callback| with
    // the ids necessary to create a DirectoryEntry object.
-@@ -188,7 +188,7 @@ class WebRtcLoggingController
-       bool success,
-       const std::string& error_message);
+@@ -197,7 +197,7 @@ class WebRtcLoggingController
+ 
+   content::BrowserContext* GetBrowserContext() const;
  
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Grants the render process access to the 'WebRTC Logs' directory, and
    // invokes |callback| with the ids necessary to create a DirectoryEntry
    // object. If the |logs_path| couldn't be created or found, |error_callback|
diff --git a/chromium/patches/patch-chrome_browser_memory__details.cc b/chromium/patches/patch-chrome_browser_memory__details.cc
index 53e2b31447..4cca0fcad3 100644
--- a/chromium/patches/patch-chrome_browser_memory__details.cc
+++ b/chromium/patches/patch-chrome_browser_memory__details.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- chrome/browser/memory_details.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/memory_details.cc.orig	2024-07-24 02:44:27.615907700 +0000
 +++ chrome/browser/memory_details.cc
 @@ -38,7 +38,7 @@
  #include "services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h"
  #include "ui/base/l10n/l10n_util.h"
  
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD)
  #include "content/public/browser/zygote_host/zygote_host_linux.h"
  #endif
  
-@@ -339,7 +339,7 @@ void MemoryDetails::CollectChildInfoOnUI
-       process.titles.push_back(title);
+@@ -334,7 +334,7 @@ void MemoryDetails::CollectChildInfoOnUI
+           });
      }
  
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD)
      if (content::ZygoteHost::GetInstance()->IsZygotePid(process.pid)) {
        process.process_type = content::PROCESS_TYPE_ZYGOTE;
      }
diff --git a/chromium/patches/patch-chrome_browser_memory__details__linux.cc b/chromium/patches/patch-chrome_browser_memory__details__linux.cc
deleted file mode 100644
index 369234e9b5..0000000000
--- a/chromium/patches/patch-chrome_browser_memory__details__linux.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- chrome/browser/memory_details_linux.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/memory_details_linux.cc
-@@ -69,8 +69,10 @@ ProcessData GetProcessDataMemoryInformat
- 
-     std::unique_ptr<base::ProcessMetrics> metrics(
-         base::ProcessMetrics::CreateProcessMetrics(pid));
-+#if !defined(OS_BSD)
-     pmi.num_open_fds = metrics->GetOpenFdCount();
-     pmi.open_fds_soft_limit = metrics->GetOpenFdSoftLimit();
-+#endif
- 
-     process_data.processes.push_back(pmi);
-   }
diff --git a/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc b/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
index cce0ef34d3..d42429b790 100644
--- a/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
+++ b/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
@@ -1,14 +1,61 @@
 $NetBSD$
 
---- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig	2020-07-15 18:56:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig	2024-07-24 02:44:27.619908000 +0000
 +++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
-@@ -50,7 +50,9 @@
+@@ -83,8 +83,10 @@
  
- #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if defined(__GLIBC__) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if defined(__GLIBC__) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
++#if !BUILDFLAG(IS_BSD)
  #include <gnu/libc-version.h>
 +#endif
  
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
  #include "base/linux_util.h"
  #include "base/strings/string_split.h"
- #include "base/strings/string_util.h"
+@@ -108,7 +110,7 @@
+ #include "chromeos/crosapi/cpp/crosapi_constants.h"
+ #endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/metrics/pressure/pressure_metrics_reporter.h"
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+@@ -117,7 +119,7 @@
+ #include "components/user_manager/user_manager.h"
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/power_metrics/system_power_monitor.h"
+ #endif
+ 
+@@ -864,7 +866,7 @@ void RecordStartupMetrics() {
+ 
+   // Record whether Chrome is the default browser or not.
+   // Disabled on Linux due to hanging browser tests, see crbug.com/1216328.
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+   shell_integration::DefaultWebClientState default_state =
+       shell_integration::GetDefaultBrowser();
+   base::UmaHistogramEnumeration("DefaultBrowser.State", default_state,
+@@ -1163,11 +1165,11 @@ void ChromeBrowserMainExtraPartsMetrics:
+   }
+ #endif  // !BUILDFLAG(IS_ANDROID)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   pressure_metrics_reporter_ = std::make_unique<PressureMetricsReporter>();
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   base::trace_event::TraceLog::GetInstance()->AddEnabledStateObserver(
+       power_metrics::SystemPowerMonitor::GetInstance());
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h b/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h
new file mode 100644
index 0000000000..7cbfd9135f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h.orig	2024-07-24 02:44:27.619908000 +0000
++++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h
+@@ -29,7 +29,7 @@ class PowerMetricsReporter;
+ class ProcessMonitor;
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ class PressureMetricsReporter;
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+@@ -119,7 +119,7 @@ class ChromeBrowserMainExtraPartsMetrics
+       performance_intervention_metrics_reporter_;
+ #endif  // !BUILDFLAG(IS_ANDROID)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Reports pressure metrics.
+   std::unique_ptr<PressureMetricsReporter> pressure_metrics_reporter_;
+ #endif  // BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-chrome_browser_metrics_chrome__metrics__service__client.cc b/chromium/patches/patch-chrome_browser_metrics_chrome__metrics__service__client.cc
index 48c370dd15..e6f0806e45 100644
--- a/chromium/patches/patch-chrome_browser_metrics_chrome__metrics__service__client.cc
+++ b/chromium/patches/patch-chrome_browser_metrics_chrome__metrics__service__client.cc
@@ -1,22 +1,94 @@
 $NetBSD$
 
---- chrome/browser/metrics/chrome_metrics_service_client.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/chrome_metrics_service_client.cc.orig	2024-07-24 02:44:27.623908500 +0000
 +++ chrome/browser/metrics/chrome_metrics_service_client.cc
-@@ -685,7 +685,7 @@ void ChromeMetricsServiceClient::Registe
- #endif  // defined(OS_WIN)
+@@ -195,11 +195,11 @@
+ #include "chrome/notification_helper/notification_helper_constants.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "components/metrics/motherboard_metrics_provider.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
+ #include "chrome/browser/metrics/chrome_metrics_service_crash_reporter.h"
+ #endif
+ 
+@@ -212,7 +212,7 @@
+ #include "chrome/browser/metrics/power/power_metrics_provider_mac.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/metrics/bluetooth_metrics_provider.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+@@ -534,7 +534,7 @@ void ChromeMetricsServiceClient::Registe
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   metrics::structured::StructuredMetricsService::RegisterPrefs(registry);
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ #if !BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -706,7 +706,7 @@ void ChromeMetricsServiceClient::Initial
+     RegisterUKMProviders();
+   }
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   metrics::structured::Recorder::GetInstance()->SetUiTaskRunner(
+       base::SequencedTaskRunner::GetCurrentDefault());
+ #endif
+@@ -757,7 +757,7 @@ void ChromeMetricsServiceClient::Registe
+   metrics_service_->RegisterMetricsProvider(
+       std::make_unique<metrics::CPUMetricsProvider>());
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   metrics_service_->RegisterMetricsProvider(
+       std::make_unique<metrics::MotherboardMetricsProvider>());
+ #endif
+@@ -842,7 +842,7 @@ void ChromeMetricsServiceClient::Registe
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
    metrics_service_->RegisterMetricsProvider(
        std::make_unique<DesktopPlatformFeaturesMetricsProvider>());
- #endif  //  defined(OS_WIN) || defined(OS_MACOSX) || \
-@@ -951,7 +951,7 @@ bool ChromeMetricsServiceClient::Registe
-   }
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) ||
+@@ -944,7 +944,7 @@ void ChromeMetricsServiceClient::Registe
+       std::make_unique<PowerMetricsProvider>());
  #endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   metrics_service_->RegisterMetricsProvider(
+       metrics::CreateDesktopSessionMetricsProvider());
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX)
+@@ -1131,7 +1131,7 @@ bool ChromeMetricsServiceClient::Registe
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD)
    // This creates the DesktopProfileSessionDurationsServices if it didn't exist
    // already.
    metrics::DesktopProfileSessionDurationsServiceFactory::GetForBrowserContext(
+@@ -1465,7 +1465,7 @@ void ChromeMetricsServiceClient::CreateS
+   recorder =
+       std::make_unique<metrics::structured::AshStructuredMetricsRecorder>(
+           cros_system_profile_provider_.get());
+-#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ 
+   // Make sure that Structured Metrics recording delegates have been created
+   // before the service is created. This is handled in other places for ChromeOS
diff --git a/chromium/patches/patch-chrome_browser_metrics_perf_cpu__identity.cc b/chromium/patches/patch-chrome_browser_metrics_perf_cpu__identity.cc
new file mode 100644
index 0000000000..5abb9e5275
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_metrics_perf_cpu__identity.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/perf/cpu_identity.cc.orig	2024-07-24 02:44:27.631909100 +0000
++++ chrome/browser/metrics/perf/cpu_identity.cc
+@@ -147,7 +147,7 @@ CPUIdentity GetCPUIdentity() {
+   result.release =
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+       base::SysInfo::KernelVersion();
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+       base::SysInfo::OperatingSystemVersion();
+ #else
+ #error "Unsupported configuration"
diff --git a/chromium/patches/patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc b/chromium/patches/patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc
new file mode 100644
index 0000000000..d65e6d85ef
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_metrics_power_process__metrics__recorder__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/power/process_metrics_recorder_util.cc.orig	2024-07-24 02:44:27.635909600 +0000
++++ chrome/browser/metrics/power/process_metrics_recorder_util.cc
+@@ -65,7 +65,7 @@ void RecordProcessHistograms(const char*
+                              const ProcessMonitor::Metrics& metrics) {
+   RecordAverageCPUUsage(histogram_suffix, metrics.cpu_usage);
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+   base::UmaHistogramCounts10000(
+       base::StrCat({"PerformanceMonitor.IdleWakeups2.", histogram_suffix}),
+       metrics.idle_wakeups);
diff --git a/chromium/patches/patch-chrome_browser_metrics_power_process__monitor.cc b/chromium/patches/patch-chrome_browser_metrics_power_process__monitor.cc
new file mode 100644
index 0000000000..be83c3b8a8
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_metrics_power_process__monitor.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/power/process_monitor.cc.orig	2024-07-24 02:44:27.635909600 +0000
++++ chrome/browser/metrics/power/process_monitor.cc
+@@ -64,7 +64,7 @@ ProcessMonitor::Metrics SampleMetrics(ba
+       process_metrics.GetPlatformIndependentCPUUsage());
+ 
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+   metrics.idle_wakeups = process_metrics.GetIdleWakeupsPerSecond();
+ #endif
+ #if BUILDFLAG(IS_MAC)
+@@ -82,7 +82,7 @@ void ScaleMetrics(ProcessMonitor::Metric
+   }
+ 
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+   metrics->idle_wakeups *= factor;
+ #endif
+ 
+@@ -157,7 +157,7 @@ ProcessMonitor::Metrics& operator+=(Proc
+   }
+ 
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+   lhs.idle_wakeups += rhs.idle_wakeups;
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_browser_metrics_power_process__monitor.h b/chromium/patches/patch-chrome_browser_metrics_power_process__monitor.h
new file mode 100644
index 0000000000..12aebc4922
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_metrics_power_process__monitor.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/metrics/power/process_monitor.h.orig	2024-07-24 02:44:27.635909600 +0000
++++ chrome/browser/metrics/power/process_monitor.h
+@@ -76,7 +76,7 @@ class ProcessMonitor : public content::B
+     std::optional<double> cpu_usage;
+ 
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_AIX)
++    BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD)
+     // Returns the number of average idle cpu wakeups per second since the last
+     // time the metric was sampled.
+     int idle_wakeups = 0;
diff --git a/chromium/patches/patch-chrome_browser_metrics_process__memory__metrics__emitter.cc b/chromium/patches/patch-chrome_browser_metrics_process__memory__metrics__emitter.cc
deleted file mode 100644
index 55aba4390d..0000000000
--- a/chromium/patches/patch-chrome_browser_metrics_process__memory__metrics__emitter.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/metrics/process_memory_metrics_emitter.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/metrics/process_memory_metrics_emitter.cc
-@@ -492,7 +492,7 @@ void EmitProcessUmaAndUkm(const GlobalMe
- 
-   builder->SetPrivateMemoryFootprint(pmd.os_dump().private_footprint_kb / kKiB);
-   builder->SetSharedMemoryFootprint(pmd.os_dump().shared_footprint_kb / kKiB);
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
-   builder->SetPrivateSwapFootprint(pmd.os_dump().private_footprint_swap_kb /
-                                    kKiB);
- #endif
-@@ -515,7 +515,7 @@ void EmitProcessUmaAndUkm(const GlobalMe
-   MEMORY_METRICS_HISTOGRAM_MB(std::string(kMemoryHistogramPrefix) +
-                                   process_name + ".SharedMemoryFootprint",
-                               pmd.os_dump().shared_footprint_kb / kKiB);
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
-   MEMORY_METRICS_HISTOGRAM_MB(std::string(kMemoryHistogramPrefix) +
-                                   process_name + ".PrivateSwapFootprint",
-                               pmd.os_dump().private_footprint_swap_kb / kKiB);
diff --git a/chromium/patches/patch-chrome_browser_native__file__system_chrome__native__file__system__permission__context.cc b/chromium/patches/patch-chrome_browser_native__file__system_chrome__native__file__system__permission__context.cc
deleted file mode 100644
index ae8a660a01..0000000000
--- a/chromium/patches/patch-chrome_browser_native__file__system_chrome__native__file__system__permission__context.cc
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD$
-
---- chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc.orig	2020-07-08 21:41:47.000000000 +0000
-+++ chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc
-@@ -120,12 +120,13 @@ const struct {
-     {base::DIR_APP_DATA, nullptr, true},
-     {base::DIR_HOME, FILE_PATH_LITERAL("Library"), true},
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     // On Linux also block access to devices via /dev, as well as security
-     // sensitive data in /sys and /proc.
-     {kNoBasePathKey, FILE_PATH_LITERAL("/dev"), true},
-     {kNoBasePathKey, FILE_PATH_LITERAL("/sys"), true},
-     {kNoBasePathKey, FILE_PATH_LITERAL("/proc"), true},
-+    {kNoBasePathKey, FILE_PATH_LITERAL("/kern"), true},
-     // And block all of ~/.config, matching the similar restrictions on mac
-     // and windows.
-     {base::DIR_HOME, FILE_PATH_LITERAL(".config"), true},
diff --git a/chromium/patches/patch-chrome_browser_net_system__network__context__manager.cc b/chromium/patches/patch-chrome_browser_net_system__network__context__manager.cc
index 65f7f7eba3..a085f7e901 100644
--- a/chromium/patches/patch-chrome_browser_net_system__network__context__manager.cc
+++ b/chromium/patches/patch-chrome_browser_net_system__network__context__manager.cc
@@ -1,49 +1,180 @@
 $NetBSD$
 
---- chrome/browser/net/system_network_context_manager.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/net/system_network_context_manager.cc.orig	2024-07-24 02:44:27.695915500 +0000
 +++ chrome/browser/net/system_network_context_manager.cc
-@@ -77,7 +77,7 @@
- #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
- #endif  // defined(OS_CHROMEOS)
+@@ -97,7 +97,7 @@
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  #include "chrome/common/chrome_paths_internal.h"
- #include "chrome/grit/chromium_strings.h"
+ #include "chrome/grit/branded_strings.h"
  #include "ui/base/l10n/l10n_util.h"
-@@ -140,7 +140,7 @@ network::mojom::HttpAuthDynamicParamsPtr
-   auth_dynamic_params->enable_negotiate_port =
-       local_state->GetBoolean(prefs::kEnableAuthNegotiatePort);
+@@ -141,7 +141,7 @@ SystemNetworkContextManager* g_system_ne
+ // received a failed launch for a sandboxed network service.
+ bool g_previously_failed_to_launch_sandboxed_service = false;
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Whether kerberos library loading will work in the network service due to the
+ // sandbox.
+ bool g_network_service_will_allow_gssapi_library_load = false;
+@@ -149,7 +149,7 @@ bool g_network_service_will_allow_gssapi
+ const char* kGssapiDesiredPref =
+ #if BUILDFLAG(IS_CHROMEOS)
+     prefs::kKerberosEnabled;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     prefs::kReceivedHttpAuthNegotiateHeader;
+ #endif
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+@@ -195,7 +195,7 @@ network::mojom::HttpAuthDynamicParamsPtr
+   auth_dynamic_params->basic_over_http_enabled =
+       local_state->GetBoolean(prefs::kBasicAuthOverHttpEnabled);
  
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    auth_dynamic_params->delegate_by_kdc_policy =
        local_state->GetBoolean(prefs::kAuthNegotiateDelegateByKdcPolicy);
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-@@ -355,7 +355,7 @@ SystemNetworkContextManager::SystemNetwo
-   pref_change_registrar_.Add(prefs::kEnableAuthNegotiatePort,
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
+@@ -210,7 +210,7 @@ network::mojom::HttpAuthDynamicParamsPtr
+       local_state->GetString(prefs::kAuthAndroidNegotiateAccountType);
+ #endif  // BUILDFLAG(IS_ANDROID)
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   auth_dynamic_params->allow_gssapi_library_load =
+       local_state->GetBoolean(kGssapiDesiredPref);
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+@@ -220,7 +220,7 @@ network::mojom::HttpAuthDynamicParamsPtr
+ 
+ void OnNewHttpAuthDynamicParams(
+     network::mojom::HttpAuthDynamicParamsPtr& params) {
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // The kerberos library is incompatible with the network service sandbox, so
+   // if library loading is now enabled, the network service needs to be
+   // restarted. It will be restarted unsandboxed because is
+@@ -262,11 +262,11 @@ NetworkSandboxState IsNetworkSandboxEnab
+   if (g_previously_failed_to_launch_sandboxed_service) {
+     return NetworkSandboxState::kDisabledBecauseOfFailedLaunch;
+   }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   auto* local_state = g_browser_process->local_state();
+ #endif
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // The network service sandbox and the kerberos library are incompatible.
+   // If kerberos is enabled by policy, disable the network service sandbox.
+   if (g_network_service_will_allow_gssapi_library_load ||
+@@ -282,7 +282,7 @@ NetworkSandboxState IsNetworkSandboxEnab
+   }
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (local_state &&
+       local_state->HasPrefPath(prefs::kNetworkServiceSandboxEnabled)) {
+     return local_state->GetBoolean(prefs::kNetworkServiceSandboxEnabled)
+@@ -512,7 +512,7 @@ void SystemNetworkContextManager::Delete
+   g_system_network_context_manager = nullptr;
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ SystemNetworkContextManager::GssapiLibraryLoadObserver::
+     GssapiLibraryLoadObserver(SystemNetworkContextManager* owner)
+     : owner_(owner) {}
+@@ -570,7 +570,7 @@ SystemNetworkContextManager::SystemNetwo
+   pref_change_registrar_.Add(prefs::kAllHttpAuthSchemesAllowedForOrigins,
                               auth_pref_callback);
  
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    pref_change_registrar_.Add(prefs::kAuthNegotiateDelegateByKdcPolicy,
                               auth_pref_callback);
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-@@ -405,7 +405,7 @@ void SystemNetworkContextManager::Regist
-   registry->RegisterStringPref(prefs::kAuthServerWhitelist, std::string());
-   registry->RegisterStringPref(prefs::kAuthNegotiateDelegateWhitelist,
-                                std::string());
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
+@@ -584,7 +584,7 @@ SystemNetworkContextManager::SystemNetwo
+                              auth_pref_callback);
+ #endif  // BUILDFLAG(IS_ANDROID)
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   pref_change_registrar_.Add(kGssapiDesiredPref, auth_pref_callback);
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ 
+@@ -610,7 +610,7 @@ SystemNetworkContextManager::SystemNetwo
+ #endif
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   pref_change_registrar_.Add(
+       prefs::kEnforceLocalAnchorConstraintsEnabled,
+       base::BindRepeating(&SystemNetworkContextManager::
+@@ -665,7 +665,7 @@ void SystemNetworkContextManager::Regist
+   registry->RegisterBooleanPref(prefs::kKerberosEnabled, false);
+ #endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    registry->RegisterBooleanPref(prefs::kAuthNegotiateDelegateByKdcPolicy,
                                  false);
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-@@ -491,7 +491,7 @@ void SystemNetworkContextManager::OnNetw
-   // NetworkContext is created, but before anything has the chance to use it.
-   stub_resolver_config_reader_.UpdateNetworkService(true /* record_metrics */);
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
+@@ -689,7 +689,7 @@ void SystemNetworkContextManager::Regist
+   registry->RegisterIntegerPref(prefs::kMaxConnectionsPerProxy, -1);
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   // Note that the default value is not relevant because the pref is only
+   // evaluated when it is managed.
+   registry->RegisterBooleanPref(prefs::kEnforceLocalAnchorConstraintsEnabled,
+@@ -698,11 +698,11 @@ void SystemNetworkContextManager::Regist
+ 
+   registry->RegisterListPref(prefs::kExplicitlyAllowedNetworkPorts);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   registry->RegisterBooleanPref(prefs::kNetworkServiceSandboxEnabled, true);
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   registry->RegisterBooleanPref(prefs::kReceivedHttpAuthNegotiateHeader, false);
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+@@ -755,7 +755,7 @@ void SystemNetworkContextManager::OnNetw
+   OnNewHttpAuthDynamicParams(http_auth_dynamic_params);
+   network_service->ConfigureHttpAuthPrefs(std::move(http_auth_dynamic_params));
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   gssapi_library_loader_observer_.Install(network_service);
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+@@ -970,7 +970,7 @@ bool SystemNetworkContextManager::IsNetw
+       break;
+   }
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   const base::CommandLine& command_line =
-       *base::CommandLine::ForCurrentProcess();
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (!enabled) {
+     g_network_service_will_allow_gssapi_library_load = true;
+   }
+@@ -1057,7 +1057,7 @@ void SystemNetworkContextManager::Update
+ }
  
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ void SystemNetworkContextManager::UpdateEnforceLocalAnchorConstraintsEnabled() {
+   const PrefService::Preference* enforce_local_anchor_constraints_enabled_pref =
+       local_state_->FindPreference(
diff --git a/chromium/patches/patch-chrome_browser_net_system__network__context__manager.h b/chromium/patches/patch-chrome_browser_net_system__network__context__manager.h
new file mode 100644
index 0000000000..03ba4d751b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_net_system__network__context__manager.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/net/system_network_context_manager.h.orig	2024-07-24 02:44:27.695915500 +0000
++++ chrome/browser/net/system_network_context_manager.h
+@@ -197,7 +197,7 @@ class SystemNetworkContextManager {
+   class URLLoaderFactoryForSystem;
+   class NetworkProcessLaunchWatcher;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   class GssapiLibraryLoadObserver
+       : public network::mojom::GssapiLibraryLoadObserver {
+    public:
+@@ -233,7 +233,7 @@ class SystemNetworkContextManager {
+   void UpdateExplicitlyAllowedNetworkPorts();
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   // Applies the current value of the kEnforceLocalAnchorConstraintsEnabled
+   // pref to the enforcement state.
+   void UpdateEnforceLocalAnchorConstraintsEnabled();
+@@ -285,7 +285,7 @@ class SystemNetworkContextManager {
+   std::unique_ptr<NetworkAnnotationMonitor> network_annotation_monitor_;
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   GssapiLibraryLoadObserver gssapi_library_loader_observer_{this};
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
diff --git a/chromium/patches/patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc b/chromium/patches/patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc
new file mode 100644
index 0000000000..2b5b6d3018
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_new__tab__page_modules_file__suggestion_drive__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/new_tab_page/modules/file_suggestion/drive_service.cc.orig	2024-07-24 02:44:27.699916000 +0000
++++ chrome/browser/new_tab_page/modules/file_suggestion/drive_service.cc
+@@ -32,7 +32,7 @@
+ #include "services/network/public/cpp/resource_request.h"
+ 
+ namespace {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr char kPlatform[] = "LINUX";
+ #elif BUILDFLAG(IS_WIN)
+ constexpr char kPlatform[] = "WINDOWS";
diff --git a/chromium/patches/patch-chrome_browser_new__tab__page_new__tab__page__util.cc b/chromium/patches/patch-chrome_browser_new__tab__page_new__tab__page__util.cc
new file mode 100644
index 0000000000..68a8abc445
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_new__tab__page_new__tab__page__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/new_tab_page/new_tab_page_util.cc.orig	2024-07-24 02:44:27.707916500 +0000
++++ chrome/browser/new_tab_page/new_tab_page_util.cc
+@@ -20,7 +20,7 @@ bool IsOsSupportedForCart() {
+ }
+ 
+ bool IsOsSupportedForDrive() {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return true;
+ #else
+   return false;
diff --git a/chromium/patches/patch-chrome_browser_notifications_notification__display__service__impl.cc b/chromium/patches/patch-chrome_browser_notifications_notification__display__service__impl.cc
index b52730c46f..0433c30534 100644
--- a/chromium/patches/patch-chrome_browser_notifications_notification__display__service__impl.cc
+++ b/chromium/patches/patch-chrome_browser_notifications_notification__display__service__impl.cc
@@ -1,40 +1,44 @@
 $NetBSD$
 
---- chrome/browser/notifications/notification_display_service_impl.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/notifications/notification_display_service_impl.cc.orig	2024-07-24 02:44:27.723918200 +0000
 +++ chrome/browser/notifications/notification_display_service_impl.cc
-@@ -36,7 +36,7 @@
- #include "chrome/browser/notifications/notification_platform_bridge_message_center.h"
+@@ -32,7 +32,7 @@
  #endif
  
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/send_tab_to_self/desktop_notification_handler.h"
+ #include "chrome/browser/sharing/sharing_notification_handler.h"
  #endif
- 
-@@ -49,7 +49,7 @@ namespace {
- 
- #if !defined(OS_CHROMEOS)
- bool NativeNotificationsEnabled(Profile* profile) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   if (profile) {
-     PrefService* prefs = profile->GetPrefs();
-     if (!prefs->GetBoolean(prefs::kAllowNativeNotifications))
-@@ -131,7 +131,7 @@ NotificationDisplayServiceImpl* Notifica
+@@ -65,7 +65,7 @@ NotificationDisplayServiceImpl* Notifica
  // static
  void NotificationDisplayServiceImpl::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   registry->RegisterBooleanPref(prefs::kAllowNativeNotifications, true);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   registry->RegisterBooleanPref(prefs::kAllowSystemNotifications, true);
  #endif
  }
-@@ -148,7 +148,7 @@ NotificationDisplayServiceImpl::Notifica
-     AddNotificationHandler(NotificationHandler::Type::WEB_PERSISTENT,
+@@ -81,7 +81,7 @@ NotificationDisplayServiceImpl::Notifica
                             std::make_unique<PersistentNotificationHandler>());
  
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
      AddNotificationHandler(
          NotificationHandler::Type::SEND_TAB_TO_SELF,
          std::make_unique<send_tab_to_self::DesktopNotificationHandler>(
+@@ -89,7 +89,7 @@ NotificationDisplayServiceImpl::Notifica
+ #endif
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+     AddNotificationHandler(
+         NotificationHandler::Type::TAILORED_SECURITY,
+         std::make_unique<safe_browsing::TailoredSecurityNotificationHandler>());
diff --git a/chromium/patches/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc b/chromium/patches/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc
new file mode 100644
index 0000000000..834d09c2c0
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/notifications/notification_platform_bridge_delegator.cc.orig	2024-07-24 02:44:27.727918400 +0000
++++ chrome/browser/notifications/notification_platform_bridge_delegator.cc
+@@ -57,7 +57,7 @@ bool SystemNotificationsEnabled(Profile*
+ #elif BUILDFLAG(IS_WIN)
+   return NotificationPlatformBridgeWin::SystemNotificationEnabled();
+ #else
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (profile) {
+     // Prefs take precedence over flags.
+     PrefService* prefs = profile->GetPrefs();
diff --git a/chromium/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc b/chromium/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc
index b979aaa943..5e52287abf 100644
--- a/chromium/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc
+++ b/chromium/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- chrome/browser/password_manager/chrome_password_manager_client.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/password_manager/chrome_password_manager_client.cc.orig	2024-07-24 02:44:27.871932500 +0000
 +++ chrome/browser/password_manager/chrome_password_manager_client.cc
-@@ -95,7 +95,7 @@
- #include "net/base/url_util.h"
- #include "net/cert/cert_status_flags.h"
- #include "services/metrics/public/cpp/ukm_recorder.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- #include "url/url_constants.h"
+@@ -560,7 +560,7 @@ void ChromePasswordManagerClient::
+ 
+ bool ChromePasswordManagerClient::CanUseBiometricAuthForFilling(
+     device_reauth::DeviceAuthenticator* authenticator) {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (!GetLocalStatePrefs() || !GetPrefs() || !authenticator) {
+     return false;
+   }
+@@ -786,7 +786,7 @@ void ChromePasswordManagerClient::Notify
+ }
  
- #if BUILDFLAG(FULL_SAFE_BROWSING)
+ void ChromePasswordManagerClient::NotifyKeychainError() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   PasswordsClientUIDelegate* manage_passwords_ui_controller =
+       PasswordsClientUIDelegateFromWebContents(web_contents());
+   manage_passwords_ui_controller->OnKeychainError();
diff --git a/chromium/patches/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc b/chromium/patches/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc
new file mode 100644
index 0000000000..b5c99d8fd6
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/password_manager/password_reuse_manager_factory.cc.orig	2024-07-24 02:44:27.879933000 +0000
++++ chrome/browser/password_manager/password_reuse_manager_factory.cc
+@@ -138,7 +138,7 @@ PasswordReuseManagerFactory::BuildServic
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   std::unique_ptr<password_manager::PasswordReuseManagerSigninNotifier>
+       notifier = std::make_unique<
+           password_manager::PasswordReuseManagerSigninNotifierImpl>(
diff --git a/chromium/patches/patch-chrome_browser_password__manager_password__store__factory.cc b/chromium/patches/patch-chrome_browser_password__manager_password__store__factory.cc
deleted file mode 100644
index 35f58bfcef..0000000000
--- a/chromium/patches/patch-chrome_browser_password__manager_password__store__factory.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/password_manager/password_store_factory.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/password_manager/password_store_factory.cc
-@@ -193,7 +193,7 @@ PasswordStoreFactory::BuildServiceInstan
-                         base::TimeDelta::FromSeconds(20));
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
-   std::unique_ptr<password_manager::PasswordStoreSigninNotifier> notifier =
-       std::make_unique<password_manager::PasswordStoreSigninNotifierImpl>(
-           IdentityManagerFactory::GetForProfile(profile));
diff --git a/chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.cc b/chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.cc
deleted file mode 100644
index 83ea9c4e94..0000000000
--- a/chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.cc
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- chrome/browser/performance_monitor/process_metrics_history.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/performance_monitor/process_metrics_history.cc
-@@ -47,7 +47,7 @@ void ProcessMetricsHistory::SampleMetric
- #if defined(OS_WIN)
-   disk_usage_ = process_metrics_->GetDiskUsageBytesPerSecond();
- #endif
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
-   idle_wakeups_ = process_metrics_->GetIdleWakeupsPerSecond();
- #endif
- #if defined(OS_MACOSX)
-@@ -90,7 +90,7 @@ void ProcessMetricsHistory::UpdateHistog
-           kDiskUsageHistogramMin, kDiskUsageHistogramMax,
-           kDiskUsageHistogramBucketCount);
- #endif
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
-       UMA_HISTOGRAM_COUNTS_10000(
-           "PerformanceMonitor.IdleWakeups.BrowserProcess", idle_wakeups_);
- #endif
-@@ -111,7 +111,7 @@ void ProcessMetricsHistory::UpdateHistog
-         UMA_HISTOGRAM_BOOLEAN("PerformanceMonitor.HighCPU.RendererProcess",
-                               true);
-       }
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
-       UMA_HISTOGRAM_COUNTS_10000(
-           "PerformanceMonitor.IdleWakeups.RendererProcess", idle_wakeups_);
- #endif
-@@ -131,7 +131,7 @@ void ProcessMetricsHistory::UpdateHistog
-                                   kHistogramBucketCount);
-       if (cpu_usage_ > kHighCPUUtilizationThreshold)
-         UMA_HISTOGRAM_BOOLEAN("PerformanceMonitor.HighCPU.GPUProcess", true);
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
-       UMA_HISTOGRAM_COUNTS_10000("PerformanceMonitor.IdleWakeups.GPUProcess",
-                                  idle_wakeups_);
- #endif
diff --git a/chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.h b/chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.h
deleted file mode 100644
index afed0e71db..0000000000
--- a/chromium/patches/patch-chrome_browser_performance__monitor_process__metrics__history.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/performance_monitor/process_metrics_history.h.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/performance_monitor/process_metrics_history.h
-@@ -71,7 +71,7 @@ class ProcessMetricsHistory {
-   uint64_t disk_usage_ = 0;
- #endif
- 
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
-   int idle_wakeups_ = 0;
- #endif
- #if defined(OS_MACOSX)
diff --git a/chromium/patches/patch-chrome_browser_platform__util__linux.cc b/chromium/patches/patch-chrome_browser_platform__util__linux.cc
new file mode 100644
index 0000000000..15d2485342
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_platform__util__linux.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/platform_util_linux.cc.orig	2024-07-24 02:44:27.919937100 +0000
++++ chrome/browser/platform_util_linux.cc
+@@ -300,7 +300,9 @@ void OnLaunchOptionsCreated(const std::s
+   argv.push_back(command);
+   argv.push_back(arg);
+   options.current_directory = working_directory;
++#if !BUILDFLAG(IS_BSD)
+   options.allow_new_privs = true;
++#endif
+   // xdg-open can fall back on mailcap which eventually might plumb through
+   // to a command that needs a terminal.  Set the environment variable telling
+   // it that we definitely don't have a terminal available and that it should
diff --git a/chromium/patches/patch-chrome_browser_plugins_plugin__info__host__impl.cc b/chromium/patches/patch-chrome_browser_plugins_plugin__info__host__impl.cc
deleted file mode 100644
index 33387fb35f..0000000000
--- a/chromium/patches/patch-chrome_browser_plugins_plugin__info__host__impl.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/plugins/plugin_info_host_impl.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/plugins/plugin_info_host_impl.cc
-@@ -382,7 +382,7 @@ void PluginInfoHostImpl::ComponentPlugin
-     std::unique_ptr<component_updater::ComponentInfo> cus_plugin_info) {
-   if (cus_plugin_info) {
-     output->status = chrome::mojom::PluginStatus::kComponentUpdateRequired;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     if (cus_plugin_info->version != base::Version("0")) {
-       output->status = chrome::mojom::PluginStatus::kRestartRequired;
-     }
diff --git a/chromium/patches/patch-chrome_browser_plugins_plugins__resource__service.cc b/chromium/patches/patch-chrome_browser_plugins_plugins__resource__service.cc
deleted file mode 100644
index ddf8ed5a7b..0000000000
--- a/chromium/patches/patch-chrome_browser_plugins_plugins__resource__service.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/plugins/plugins_resource_service.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/plugins/plugins_resource_service.cc
-@@ -62,7 +62,7 @@ GURL GetPluginsServerURL() {
-   filename = "plugins_win.json";
- #elif defined(OS_CHROMEOS)
-   filename = "plugins_chromeos.json";
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   filename = "plugins_linux.json";
- #elif defined(OS_MACOSX)
-   filename = "plugins_mac.json";
diff --git a/chromium/patches/patch-chrome_browser_policy_browser__signin__policy__handler.cc b/chromium/patches/patch-chrome_browser_policy_browser__signin__policy__handler.cc
index 0544a0c857..a42cab2e10 100644
--- a/chromium/patches/patch-chrome_browser_policy_browser__signin__policy__handler.cc
+++ b/chromium/patches/patch-chrome_browser_policy_browser__signin__policy__handler.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/policy/browser_signin_policy_handler.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/policy/browser_signin_policy_handler.cc.orig	2024-07-24 02:44:27.927937700 +0000
 +++ chrome/browser/policy/browser_signin_policy_handler.cc
-@@ -52,7 +52,7 @@ void BrowserSigninPolicyHandler::ApplyPo
-     }
-     switch (static_cast<BrowserSigninMode>(int_value)) {
-       case BrowserSigninMode::kForced:
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
-         prefs->SetValue(prefs::kForceBrowserSignin, base::Value(true));
+@@ -45,7 +45,7 @@ void BrowserSigninPolicyHandler::ApplyPo
+       policies.GetValue(policy_name(), base::Value::Type::INTEGER);
+   switch (static_cast<BrowserSigninMode>(value->GetInt())) {
+     case BrowserSigninMode::kForced:
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+       prefs->SetValue(prefs::kForceBrowserSignin, base::Value(true));
  #endif
-         FALLTHROUGH;
+       [[fallthrough]];
diff --git a/chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller.cc b/chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller.cc
deleted file mode 100644
index 6ceec86c23..0000000000
--- a/chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/policy/chrome_browser_cloud_management_controller.cc.orig	2020-07-24 02:37:47.000000000 +0000
-+++ chrome/browser/policy/chrome_browser_cloud_management_controller.cc
-@@ -228,7 +228,7 @@ ChromeBrowserCloudManagementController::
-   storage_delegate = std::make_unique<BrowserDMTokenStorageWin>();
- #elif defined(OS_MACOSX)
-   storage_delegate = std::make_unique<BrowserDMTokenStorageMac>();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   storage_delegate = std::make_unique<BrowserDMTokenStorageLinux>();
- #else
-   NOT_REACHED();
diff --git a/chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc b/chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc
new file mode 100644
index 0000000000..0c84fea733
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc.orig	2024-07-24 02:44:27.931938200 +0000
++++ chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc
+@@ -50,7 +50,7 @@
+ #include "chrome/browser/policy/browser_dm_token_storage_mac.h"
+ #endif  // BUILDFLAG(IS_MAC)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/policy/browser_dm_token_storage_linux.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+@@ -59,7 +59,7 @@
+ #include "chrome/install_static/install_util.h"
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/key_rotation_launcher.h"
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+@@ -87,7 +87,7 @@ void ChromeBrowserCloudManagementControl
+ 
+ #if BUILDFLAG(IS_MAC)
+   storage_delegate = std::make_unique<BrowserDMTokenStorageMac>();
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   storage_delegate = std::make_unique<BrowserDMTokenStorageLinux>();
+ #elif BUILDFLAG(IS_WIN)
+   storage_delegate = std::make_unique<BrowserDMTokenStorageWin>();
+@@ -255,7 +255,7 @@ ChromeBrowserCloudManagementControllerDe
+ 
+ std::unique_ptr<enterprise_connectors::DeviceTrustKeyManager>
+ ChromeBrowserCloudManagementControllerDesktop::CreateDeviceTrustKeyManager() {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   auto* browser_dm_token_storage = BrowserDMTokenStorage::Get();
+   auto* device_management_service = GetDeviceManagementService();
+   auto shared_url_loader_factory = GetSharedURLLoaderFactory();
diff --git a/chromium/patches/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc b/chromium/patches/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc
new file mode 100644
index 0000000000..e328a19feb
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc
@@ -0,0 +1,260 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/policy/configuration_policy_handler_list_factory.cc.orig	2024-07-24 02:44:27.935938600 +0000
++++ chrome/browser/policy/configuration_policy_handler_list_factory.cc
+@@ -235,19 +235,19 @@
+ #include "components/spellcheck/browser/pref_names.h"
+ #endif  // BUILDFLAG(ENABLE_SPELLCHECK)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/idle/action.h"
+ #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
+ #include "components/device_signals/core/browser/pref_names.h"  // nogncheck due to crbug.com/1125897
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "components/enterprise/idle/idle_timeout_policy_handler.h"
+ #endif
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/privacy_sandbox/privacy_sandbox_policy_handler.h"
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+         // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+@@ -261,13 +261,13 @@
+ #endif  // BUILDFLAG(ENTERPRISE_CLIENT_CERTIFICATES)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/policy/battery_saver_policy_handler.h"
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+         // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/search_engines/site_search_policy_handler.h"
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+         // BUILDFLAG(IS_CHROMEOS)
+@@ -872,7 +872,7 @@ const PolicyToPreferenceMapEntry kSimple
+     prefs::kManagedDefaultGeolocationSetting,
+     base::Value::Type::INTEGER },
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) \
+-     || BUILDFLAG(IS_MAC)
++     || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   { key::kRequireOnlineRevocationChecksForLocalAnchors,
+     prefs::kCertRevocationCheckingRequiredLocalAnchors,
+     base::Value::Type::BOOLEAN },
+@@ -881,7 +881,7 @@ const PolicyToPreferenceMapEntry kSimple
+     base::Value::Type::BOOLEAN },
+ #endif  // #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+         // || BUILDFLAG(IS_WIN)  || BUILDFLAG(IS_MAC)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   { key::kFullscreenAllowed,
+     prefs::kFullscreenAllowed,
+     base::Value::Type::BOOLEAN },
+@@ -1692,7 +1692,7 @@ const PolicyToPreferenceMapEntry kSimple
+     base::Value::Type::STRING },
+ #endif // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   { key::kGSSAPILibraryName,
+     prefs::kGSSAPILibraryName,
+     base::Value::Type::STRING },
+@@ -1746,7 +1746,7 @@ const PolicyToPreferenceMapEntry kSimple
+     base::Value::Type::BOOLEAN },
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   { key::kNetworkServiceSandboxEnabled,
+     prefs::kNetworkServiceSandboxEnabled,
+     base::Value::Type::BOOLEAN },
+@@ -1772,12 +1772,12 @@ const PolicyToPreferenceMapEntry kSimple
+     prefs::kTotalMemoryLimitMb,
+     base::Value::Type::INTEGER },
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   { key::kBackgroundModeEnabled,
+     prefs::kBackgroundModeEnabled,
+     base::Value::Type::BOOLEAN },
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   { key::kUnmanagedDeviceSignalsConsentFlowEnabled,
+     device_signals::prefs::kUnmanagedDeviceSignalsConsentFlowEnabled,
+     base::Value::Type::BOOLEAN },
+@@ -1785,7 +1785,7 @@ const PolicyToPreferenceMapEntry kSimple
+     prefs::kProfileSeparationDomainExceptionList,
+     base::Value::Type::LIST },
+ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   { key::kDefaultBrowserSettingEnabled,
+     prefs::kDefaultBrowserSettingEnabled,
+     base::Value::Type::BOOLEAN },
+@@ -1797,7 +1797,7 @@ const PolicyToPreferenceMapEntry kSimple
+     base::Value::Type::BOOLEAN },
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) \
+-    || BUILDFLAG(IS_CHROMEOS)
++    || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   { key::kAutoplayAllowed,
+     prefs::kAutoplayAllowed,
+     base::Value::Type::BOOLEAN },
+@@ -1898,7 +1898,7 @@ const PolicyToPreferenceMapEntry kSimple
+     base::Value::Type::BOOLEAN },
+ #endif // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   { key::kAlternativeBrowserPath,
+     browser_switcher::prefs::kAlternativeBrowserPath,
+     base::Value::Type::STRING },
+@@ -2003,7 +2003,7 @@ const PolicyToPreferenceMapEntry kSimple
+     base::Value::Type::LIST },
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   { key::kAuthNegotiateDelegateByKdcPolicy,
+     prefs::kAuthNegotiateDelegateByKdcPolicy,
+     base::Value::Type::BOOLEAN },
+@@ -2028,7 +2028,7 @@ const PolicyToPreferenceMapEntry kSimple
+ #endif // BUILDFLAG(ENABLE_EXTENSIONS)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   { key::kEnforceLocalAnchorConstraintsEnabled,
+     prefs::kEnforceLocalAnchorConstraintsEnabled,
+     base::Value::Type::BOOLEAN },
+@@ -2086,7 +2086,7 @@ const PolicyToPreferenceMapEntry kSimple
+     ash::prefs::kUrlParameterToAutofillSAMLUsername,
+     base::Value::Type::STRING },
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   { key::kTabDiscardingExceptions,
+     performance_manager::user_tuning::prefs::kManagedTabDiscardingExceptions,
+     base::Value::Type::LIST },
+@@ -2115,7 +2115,7 @@ const PolicyToPreferenceMapEntry kSimple
+     prefs::kUiAutomationProviderEnabled,
+     base::Value::Type::BOOLEAN },
+ #endif  // BUILDFLAG(IS_WIN)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   { key::kOutOfProcessSystemDnsResolutionEnabled,
+     prefs::kOutOfProcessSystemDnsResolutionEnabled,
+     base::Value::Type::BOOLEAN },
+@@ -2155,7 +2155,7 @@ const PolicyToPreferenceMapEntry kSimple
+     base::Value::Type::INTEGER },
+ #endif
+ #if BUILDFLAG(ENABLE_EXTENSIONS)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   { key::kExtensionInstallTypeBlocklist,
+     extensions::pref_names::kExtensionInstallTypeBlocklist,
+     base::Value::Type::LIST},
+@@ -2176,7 +2176,7 @@ const PolicyToPreferenceMapEntry kSimple
+     optimization_guide::model_execution::prefs::kWallpaperSearchEnterprisePolicyAllowed,
+     base::Value::Type::INTEGER},
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   { key::kChromeForTestingAllowed,
+     prefs::kChromeForTestingAllowed,
+     base::Value::Type::BOOLEAN },
+@@ -2304,7 +2304,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+   // Policies for all platforms - End
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   handlers->AddHandler(std::make_unique<IntRangePolicyHandler>(
+       key::kMemorySaverModeSavings,
+       performance_manager::user_tuning::prefs::kMemorySaverModeAggressiveness,
+@@ -2320,7 +2320,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+         // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   handlers->AddHandler(
+       std::make_unique<SiteSearchPolicyHandler>(chrome_schema));
+ 
+@@ -2526,7 +2526,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+ #endif  // BUILDFLAG(IS_ANDROID)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   handlers->AddHandler(
+       std::make_unique<enterprise_idle::IdleTimeoutPolicyHandler>());
+   handlers->AddHandler(
+@@ -2584,7 +2584,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+       key::kBrowsingDataLifetime, browsing_data::prefs::kBrowsingDataLifetime,
+       chrome_schema));
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   handlers->AddHandler(std::make_unique<LocalSyncPolicyHandler>());
+   handlers->AddHandler(std::make_unique<ThemeColorPolicyHandler>());
+   handlers->AddHandler(
+@@ -2698,7 +2698,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+   std::vector<std::unique_ptr<ConfigurationPolicyHandler>>
+       signin_legacy_policies;
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_LINUX)
++    BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   signin_legacy_policies.push_back(std::make_unique<SimplePolicyHandler>(
+       key::kForceBrowserSignin, prefs::kForceBrowserSignin,
+       base::Value::Type::BOOLEAN));
+@@ -3055,7 +3055,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+ #endif
+ 
+ #if BUILDFLAG(ENABLE_SPELLCHECK)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   handlers->AddHandler(std::make_unique<SpellcheckLanguagePolicyHandler>());
+   handlers->AddHandler(
+       std::make_unique<SpellcheckLanguageBlocklistPolicyHandler>(
+@@ -3063,7 +3063,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
+ #endif  // BUILDFLAG(ENABLE_SPELLCHECK)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   handlers->AddHandler(std::make_unique<SimplePolicyHandler>(
+       key::kAllowSystemNotifications, prefs::kAllowSystemNotifications,
+       base::Value::Type::BOOLEAN));
+@@ -3081,7 +3081,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+           first_party_sets::FirstPartySetsOverridesPolicyHandler>(
+           key::kRelatedWebsiteSetsOverrides, chrome_schema)));
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   handlers->AddHandler(std::make_unique<PrivacySandboxPolicyHandler>());
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+         // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+@@ -3104,7 +3104,7 @@ std::unique_ptr<ConfigurationPolicyHandl
+           base::Value::Type::BOOLEAN)));
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   handlers->AddHandler(std::make_unique<BatterySaverPolicyHandler>());
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+         // BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chromium/patches/patch-chrome_browser_policy_device__management__service__configuration.cc b/chromium/patches/patch-chrome_browser_policy_device__management__service__configuration.cc
new file mode 100644
index 0000000000..7bf8287d14
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_policy_device__management__service__configuration.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/policy/device_management_service_configuration.cc.orig	2024-07-24 02:44:27.939939000 +0000
++++ chrome/browser/policy/device_management_service_configuration.cc
+@@ -24,7 +24,7 @@
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ||           \
+     ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
+-     !BUILDFLAG(IS_ANDROID))
++     !BUILDFLAG(IS_ANDROID)) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/common.h"
+ #include "chrome/browser/enterprise/connectors/connectors_service.h"
+ #endif
+@@ -102,7 +102,7 @@ DeviceManagementServiceConfiguration::Ge
+     content::BrowserContext* context) const {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ||           \
+     ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
+-     !BUILDFLAG(IS_ANDROID))
++     !BUILDFLAG(IS_ANDROID)) || BUILDFLAG(IS_BSD)
+   auto* service =
+       enterprise_connectors::ConnectorsServiceFactory::GetForBrowserContext(
+           context);
diff --git a/chromium/patches/patch-chrome_browser_policy_policy__value__and__status__aggregator.cc b/chromium/patches/patch-chrome_browser_policy_policy__value__and__status__aggregator.cc
new file mode 100644
index 0000000000..89fafdaea0
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_policy_policy__value__and__status__aggregator.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/policy/policy_value_and_status_aggregator.cc.orig	2024-07-24 02:44:27.955940500 +0000
++++ chrome/browser/policy/policy_value_and_status_aggregator.cc
+@@ -53,7 +53,7 @@
+ #include "chrome/browser/policy/value_provider/extension_policies_value_provider.h"
+ #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "components/policy/core/common/cloud/profile_cloud_policy_manager.h"
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ 
diff --git a/chromium/patches/patch-chrome_browser_prefs_browser__prefs.cc b/chromium/patches/patch-chrome_browser_prefs_browser__prefs.cc
index aaac2b0fc6..8b5fcba04b 100644
--- a/chromium/patches/patch-chrome_browser_prefs_browser__prefs.cc
+++ b/chromium/patches/patch-chrome_browser_prefs_browser__prefs.cc
@@ -1,22 +1,63 @@
 $NetBSD$
 
---- chrome/browser/prefs/browser_prefs.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/prefs/browser_prefs.cc.orig	2024-07-24 02:44:27.983943200 +0000
 +++ chrome/browser/prefs/browser_prefs.cc
-@@ -385,7 +385,7 @@
+@@ -489,18 +489,18 @@
+ #endif
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "components/device_signals/core/browser/pref_names.h"  // nogncheck due to crbug.com/1125897
  #endif
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
  #include "chrome/browser/browser_switcher/browser_switcher_prefs.h"
  #endif
  
-@@ -1100,7 +1100,7 @@ void RegisterProfilePrefs(user_prefs::Pr
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) 
+ #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
  #endif
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
-   browser_switcher::BrowserSwitcherPrefs::RegisterProfilePrefs(registry);
+@@ -535,7 +535,7 @@
+ #include "chrome/browser/sessions/session_service_log.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/color/system_theme.h"
+ #endif
+ 
+@@ -1953,7 +1953,7 @@ void RegisterLocalState(PrefRegistrySimp
+                                 true);
+ #endif  // BUILDFLAG(ENABLE_PDF)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   registry->RegisterBooleanPref(prefs::kChromeForTestingAllowed, true);
+ #endif
+ 
+@@ -2309,12 +2309,12 @@ void RegisterProfilePrefs(user_prefs::Pr
  #endif
  
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   device_signals::RegisterProfilePrefs(registry);
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+         // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   browser_switcher::BrowserSwitcherPrefs::RegisterProfilePrefs(registry);
+   enterprise_signin::RegisterProfilePrefs(registry);
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc b/chromium/patches/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc
index 3eb052b487..08416cee07 100644
--- a/chromium/patches/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc
+++ b/chromium/patches/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/prefs/pref_service_incognito_allowlist.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/prefs/pref_service_incognito_allowlist.cc.orig	2024-07-24 02:44:27.987943600 +0000
 +++ chrome/browser/prefs/pref_service_incognito_allowlist.cc
-@@ -135,7 +135,7 @@ const char* const kPersistentPrefNames[]
+@@ -186,7 +186,7 @@ const char* const kPersistentPrefNames[]
      prefs::kShowFullscreenToolbar,
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
      // Toggleing custom frames affects all open windows in the profile, hence
      // should be written to the regular profile when changed in incognito mode.
      prefs::kUseCustomChromeFrame,
diff --git a/chromium/patches/patch-chrome_browser_printing_print__backend__service__manager.cc b/chromium/patches/patch-chrome_browser_printing_print__backend__service__manager.cc
new file mode 100644
index 0000000000..5ccf82fd52
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_printing_print__backend__service__manager.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/printing/print_backend_service_manager.cc.orig	2024-07-24 02:44:27.999945000 +0000
++++ chrome/browser/printing/print_backend_service_manager.cc
+@@ -35,7 +35,7 @@
+ #include "printing/printing_context.h"
+ #include "printing/printing_features.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "content/public/common/content_switches.h"
+ #endif
+ 
+@@ -862,7 +862,7 @@ PrintBackendServiceManager::GetServiceFr
+         host.BindNewPipeAndPassReceiver(),
+         content::ServiceProcessHost::Options()
+             .WithDisplayName(IDS_UTILITY_PROCESS_PRINT_BACKEND_SERVICE_NAME)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+             .WithExtraCommandLineSwitches({switches::kMessageLoopTypeUi})
+ #endif
+             .Pass());
+@@ -1039,7 +1039,7 @@ PrintBackendServiceManager::DetermineIdl
+       return kNoClientsRegisteredResetOnIdleTimeout;
+ 
+     case ClientType::kQueryWithUi:
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       // No need to update if there were other query with UI clients.
+       if (HasQueryWithUiClientForRemoteId(remote_id)) {
+         return std::nullopt;
diff --git a/chromium/patches/patch-chrome_browser_printing_printer__query.cc b/chromium/patches/patch-chrome_browser_printing_printer__query.cc
new file mode 100644
index 0000000000..6f91be16a0
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_printing_printer__query.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/printing/printer_query.cc.orig	2024-07-24 02:44:28.007945500 +0000
++++ chrome/browser/printing/printer_query.cc
+@@ -341,7 +341,7 @@ void PrinterQuery::UpdatePrintSettings(b
+     crash_key = std::make_unique<crash_keys::ScopedPrinterInfo>(
+         printer_name, print_backend->GetPrinterDriverInfo(printer_name));
+ 
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_CUPS)
++#if (BUILDFLAG(IS_BSD) || BUILDFLAG(IS_LINUX)) && BUILDFLAG(USE_CUPS)
+     PrinterBasicInfo basic_info;
+     if (print_backend->GetPrinterBasicInfo(printer_name, &basic_info) ==
+         mojom::ResultCode::kSuccess) {
diff --git a/chromium/patches/patch-chrome_browser_process__singleton__posix.cc b/chromium/patches/patch-chrome_browser_process__singleton__posix.cc
index 09c74265d4..5e2c15bc96 100644
--- a/chromium/patches/patch-chrome_browser_process__singleton__posix.cc
+++ b/chromium/patches/patch-chrome_browser_process__singleton__posix.cc
@@ -1,36 +1,26 @@
 $NetBSD$
 
---- chrome/browser/process_singleton_posix.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/process_singleton_posix.cc.orig	2024-07-24 02:44:28.043949100 +0000
 +++ chrome/browser/process_singleton_posix.cc
-@@ -94,11 +94,11 @@
- #include "net/base/network_interfaces.h"
+@@ -97,7 +97,7 @@
  #include "ui/base/l10n/l10n_util.h"
+ #include "ui/base/resource/scoped_startup_resource_bundle.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/ui/process_singleton_dialog_linux.h"
  #endif
  
--#if defined(TOOLKIT_VIEWS) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(TOOLKIT_VIEWS) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/views/linux_ui/linux_ui.h"
- #endif
- 
-@@ -295,7 +295,7 @@ bool DisplayProfileInUseError(const base
+@@ -355,7 +355,7 @@ bool DisplayProfileInUseError(const base
    if (g_disable_prompt)
      return g_user_opted_unlock_in_use_profile;
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   base::string16 relaunch_button_text = l10n_util::GetStringUTF16(
-       IDS_PROFILE_IN_USE_LINUX_RELAUNCH);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   std::u16string relaunch_button_text =
+       l10n_util::GetStringUTF16(IDS_PROFILE_IN_USE_LINUX_RELAUNCH);
    return ShowProcessSingletonDialog(error, relaunch_button_text);
-@@ -871,7 +871,7 @@ ProcessSingleton::NotifyResult ProcessSi
-     SendRemoteProcessInteractionResultHistogram(REMOTE_PROCESS_SHUTTING_DOWN);
-     return PROCESS_NONE;
-   } else if (strncmp(buf, kACKToken, base::size(kACKToken) - 1) == 0) {
--#if defined(TOOLKIT_VIEWS) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(TOOLKIT_VIEWS) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-     // Likely NULL in unit tests.
-     views::LinuxUI* linux_ui = views::LinuxUI::instance();
-     if (linux_ui)
diff --git a/chromium/patches/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc b/chromium/patches/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc
index cbde705b00..f417b92a37 100644
--- a/chromium/patches/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc
+++ b/chromium/patches/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc
@@ -1,13 +1,123 @@
 $NetBSD$
 
---- chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc.orig	2024-07-24 02:44:28.051950000 +0000
 +++ chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -310,7 +310,7 @@ void ChromeBrowserMainExtraPartsProfiles
-   media_router::MediaRouterUIServiceFactory::GetInstance();
+@@ -335,7 +335,7 @@
+ #include "chromeos/constants/chromeos_features.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/policy/messaging_layer/util/manual_test_heartbeat_event_factory.h"
+ #endif
+ 
+@@ -420,18 +420,18 @@
+ #endif
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/device_trust/device_trust_connector_service_factory.h"
+ #include "chrome/browser/enterprise/connectors/device_trust/device_trust_service_factory.h"
+ #include "chrome/browser/enterprise/signals/user_permission_service_factory.h"
+ #endif
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/idle/idle_service_factory.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/browser_switcher/browser_switcher_service_factory.h"
+ #include "chrome/browser/enterprise/client_certificates/certificate_provisioning_service_factory.h"
+ #include "chrome/browser/enterprise/client_certificates/certificate_store_factory.h"
+@@ -671,7 +671,7 @@ void ChromeBrowserMainExtraPartsProfiles
+   DiceBoundSessionCookieServiceFactory::GetInstance();
+ #endif  // BUILDFLAG(ENABLE_DICE_SUPPORT)
+ #endif  // BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   browser_switcher::BrowserSwitcherServiceFactory::GetInstance();
+ #endif
+   browser_sync::UserEventServiceFactory::GetInstance();
+@@ -799,32 +799,32 @@ void ChromeBrowserMainExtraPartsProfiles
+   enterprise_connectors::ConnectorsServiceFactory::GetInstance();
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   enterprise_connectors::DeviceTrustConnectorServiceFactory::GetInstance();
+   enterprise_connectors::DeviceTrustServiceFactory::GetInstance();
+ #endif
+ #if BUILDFLAG(ENTERPRISE_CONTENT_ANALYSIS)
+   enterprise_connectors::ExtensionInstallEventRouterFactory::GetInstance();
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   enterprise_connectors::LocalBinaryUploadServiceFactory::GetInstance();
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   enterprise_idle::IdleServiceFactory::GetInstance();
  #endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ #if !BUILDFLAG(IS_CHROMEOS_ASH)
+   enterprise_reporting::CloudProfileReportingServiceFactory::GetInstance();
+ #endif
+   enterprise_reporting::LegacyTechServiceFactory::GetInstance();
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   enterprise_signals::SignalsAggregatorFactory::GetInstance();
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   enterprise_signals::UserPermissionServiceFactory::GetInstance();
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   enterprise_signin::EnterpriseSigninServiceFactory::GetInstance();
+ #endif
+ #if BUILDFLAG(ENABLE_SESSION_SERVICE)
+@@ -952,7 +952,7 @@ void ChromeBrowserMainExtraPartsProfiles
+ #endif
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
    metrics::DesktopProfileSessionDurationsServiceFactory::GetInstance();
  #endif
-   ModelTypeStoreServiceFactory::GetInstance();
+@@ -1058,7 +1058,7 @@ void ChromeBrowserMainExtraPartsProfiles
+ #if BUILDFLAG(IS_CHROMEOS)
+   policy::PolicyCertServiceFactory::GetInstance();
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   policy::ProfileTokenPolicyWebSigninServiceFactory::GetInstance();
+   policy::UserPolicyOidcSigninServiceFactory::GetInstance();
+ #endif
+@@ -1101,7 +1101,7 @@ void ChromeBrowserMainExtraPartsProfiles
+ #if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_ANDROID)
+   ProfileStatisticsFactory::GetInstance();
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   ProfileTokenWebSigninInterceptorFactory::GetInstance();
+   OidcAuthenticationSigninInterceptorFactory::GetInstance();
+ #endif
+@@ -1120,7 +1120,7 @@ void ChromeBrowserMainExtraPartsProfiles
+ #endif
+   ReduceAcceptLanguageFactory::GetInstance();
+   RendererUpdaterFactory::GetInstance();
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   reporting::ManualTestHeartbeatEventFactory::GetInstance();
+ #endif
+ #if BUILDFLAG(IS_CHROMEOS_LACROS)
diff --git a/chromium/patches/patch-chrome_browser_profiles_profile__attributes__entry.cc b/chromium/patches/patch-chrome_browser_profiles_profile__attributes__entry.cc
deleted file mode 100644
index 4d751208da..0000000000
--- a/chromium/patches/patch-chrome_browser_profiles_profile__attributes__entry.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/profiles/profile_attributes_entry.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/profiles/profile_attributes_entry.cc
-@@ -137,7 +137,7 @@ void ProfileAttributesEntry::Initialize(
-   if (is_force_signin_enabled_) {
-     if (!IsAuthenticated())
-       is_force_signin_profile_locked_ = true;
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
-   } else if (IsSigninRequired()) {
-     // Profiles that require signin in the absence of an enterprise policy are
-     // left-overs from legacy supervised users. Just unlock them, so users can
diff --git a/chromium/patches/patch-chrome_browser_profiles_profile__impl.cc b/chromium/patches/patch-chrome_browser_profiles_profile__impl.cc
new file mode 100644
index 0000000000..b9a00cf5b3
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_profiles_profile__impl.cc
@@ -0,0 +1,46 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/profiles/profile_impl.cc.orig	2024-07-24 02:44:28.059950600 +0000
++++ chrome/browser/profiles/profile_impl.cc
+@@ -265,6 +265,10 @@
+ #include "chrome/browser/spellchecker/spellcheck_service.h"
+ #endif
+ 
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#endif
++
+ using bookmarks::BookmarkModel;
+ using content::BrowserThread;
+ using content::DownloadManagerDelegate;
+@@ -600,7 +604,7 @@ void ProfileImpl::LoadPrefsForNormalStar
+ #else
+   {
+ #endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     ProfileManager* profile_manager = g_browser_process->profile_manager();
+     ProfileAttributesEntry* entry =
+         profile_manager->GetProfileAttributesStorage()
+@@ -901,7 +905,17 @@ void ProfileImpl::DoFinalInit(CreateMode
+ }
+ 
+ base::FilePath ProfileImpl::last_selected_directory() {
++#if BUILDFLAG(IS_OPENBSD)
++  // If unveil(2) is used, force the file dialog directory to something we
++  // know is available.
++  auto* sandbox = sandbox::policy::SandboxLinux::GetInstance();
++  if (sandbox->unveil_initialized())
++    return GetPrefs()->GetFilePath(prefs::kDownloadDefaultDirectory);
++  else
++    return GetPrefs()->GetFilePath(prefs::kSelectFileLastDirectory);
++#else
+   return GetPrefs()->GetFilePath(prefs::kSelectFileLastDirectory);
++#endif
+ }
+ 
+ void ProfileImpl::set_last_selected_directory(const base::FilePath& path) {
diff --git a/chromium/patches/patch-chrome_browser_profiles_profiles__state.cc b/chromium/patches/patch-chrome_browser_profiles_profiles__state.cc
new file mode 100644
index 0000000000..ee02b5c285
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_profiles_profiles__state.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/profiles/profiles_state.cc.orig	2024-07-24 02:44:28.067951400 +0000
++++ chrome/browser/profiles/profiles_state.cc
+@@ -196,7 +196,7 @@ bool IsGuestModeRequested(const base::Co
+                           PrefService* local_state,
+                           bool show_warning) {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   DCHECK(local_state);
+ 
+   // Check if guest mode enforcement commandline switch or policy are provided.
+@@ -243,7 +243,7 @@ bool IsGuestModeEnabled() {
+     return false;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   // If there are any supervised profiles, disable guest mode.
+   if (base::FeatureList::IsEnabled(
+           supervised_user::kHideGuestModeForSupervisedUsers) &&
+@@ -259,7 +259,7 @@ bool IsGuestModeEnabled() {
+ }
+ 
+ bool IsGuestModeEnabled(const Profile& profile) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   if (base::FeatureList::IsEnabled(
+           supervised_user::kHideGuestModeForSupervisedUsers)) {
+     ProfileAttributesEntry* profile_attributes =
diff --git a/chromium/patches/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc b/chromium/patches/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc
deleted file mode 100644
index 44fffda7ea..0000000000
--- a/chromium/patches/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/browser/renderer_context_menu/render_view_context_menu.cc.orig	2020-07-08 21:40:34.000000000 +0000
-+++ chrome/browser/renderer_context_menu/render_view_context_menu.cc
-@@ -1655,7 +1655,7 @@ void RenderViewContextMenu::AppendEditab
- // 'Undo' and 'Redo' for text input with no suggestions and no text selected.
- // We make an exception for OS X as context clicking will select the closest
- // word. In this case both items are always shown.
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
-   menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_UNDO,
-                                   IDS_CONTENT_CONTEXT_UNDO);
-   menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_REDO,
-@@ -1697,7 +1697,7 @@ void RenderViewContextMenu::AppendLangua
-   if (!use_spelling)
-     return;
- 
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
-   menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_LANGUAGE_SETTINGS,
-                                   IDS_CONTENT_CONTEXT_LANGUAGE_SETTINGS);
- #else
-@@ -2038,7 +2038,7 @@ bool RenderViewContextMenu::IsCommandIdE
-     case IDC_CHECK_SPELLING_WHILE_TYPING:
-       return prefs->GetBoolean(spellcheck::prefs::kSpellCheckEnable);
- 
--#if !defined(OS_MACOSX) && defined(OS_POSIX)
-+#if !defined(OS_MACOSX) && defined(OS_POSIX) && !defined(OS_BSD)
-     // TODO(suzhe): this should not be enabled for password fields.
-     case IDC_INPUT_METHODS_MENU:
-       return true;
diff --git a/chromium/patches/patch-chrome_browser_renderer__preferences__util.cc b/chromium/patches/patch-chrome_browser_renderer__preferences__util.cc
index 73bb1426f9..765fe267b3 100644
--- a/chromium/patches/patch-chrome_browser_renderer__preferences__util.cc
+++ b/chromium/patches/patch-chrome_browser_renderer__preferences__util.cc
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- chrome/browser/renderer_preferences_util.cc.orig	2020-07-08 21:40:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/renderer_preferences_util.cc.orig	2024-07-24 02:44:28.123957000 +0000
 +++ chrome/browser/renderer_preferences_util.cc
-@@ -31,7 +31,7 @@
- #include "ui/base/cocoa/defaults_utils.h"
+@@ -39,7 +39,7 @@
+ #include "ui/views/controls/textfield/textfield.h"
  #endif
  
--#if defined(USE_AURA) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if defined(USE_AURA) && BUILDFLAG(IS_LINUX)
++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
  #include "chrome/browser/themes/theme_service.h"
  #include "chrome/browser/themes/theme_service_factory.h"
- #include "ui/views/linux_ui/linux_ui.h"
-@@ -146,7 +146,7 @@ void UpdateFromSystemSettings(blink::moj
-     prefs->caret_blink_interval = interval;
+ #include "ui/linux/linux_ui.h"
+@@ -154,7 +154,7 @@ void UpdateFromSystemSettings(blink::Ren
+   prefs->caret_blink_interval = views::Textfield::GetCaretBlinkInterval();
  #endif
  
--#if defined(USE_AURA) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   views::LinuxUI* linux_ui = views::LinuxUI::instance();
-   if (linux_ui) {
+-#if defined(USE_AURA) && BUILDFLAG(IS_LINUX)
++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+   auto* linux_ui_theme = ui::LinuxUiTheme::GetForProfile(profile);
+   if (linux_ui_theme) {
      if (ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme()) {
-@@ -165,7 +165,7 @@ void UpdateFromSystemSettings(blink::moj
-   }
+@@ -177,7 +177,7 @@ void UpdateFromSystemSettings(blink::Ren
  #endif
  
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
    content::UpdateFontRendererPreferencesFromSystemSettings(prefs);
  #endif
  
diff --git a/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js b/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js
deleted file mode 100644
index 46a99b8754..0000000000
--- a/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/resources/settings/appearance_page/appearance_browser_proxy.js.orig	2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/resources/settings/appearance_page/appearance_browser_proxy.js
-@@ -23,7 +23,7 @@ export class AppearanceBrowserProxy {
- 
-   useDefaultTheme() {}
- 
--  // <if expr="is_linux and not chromeos">
-+  // <if expr="is_posix and not chromeos">
-   useSystemTheme() {}
- 
-   // </if>
-@@ -63,7 +63,7 @@ export class AppearanceBrowserProxyImpl 
-     chrome.send('useDefaultTheme');
-   }
- 
--  // <if expr="is_linux and not chromeos">
-+  // <if expr="is_posix and not chromeos">
-   /** @override */
-   useSystemTheme() {
-     chrome.send('useSystemTheme');
diff --git a/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html b/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html
deleted file mode 100644
index c3c9514c55..0000000000
--- a/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/browser/resources/settings/appearance_page/appearance_page.html.orig	2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/resources/settings/appearance_page/appearance_page.html
-@@ -27,7 +27,7 @@
-           <cr-link-row class="first" hidden="[[!pageVisibility.setTheme]]"
-               label="$i18n{themes}" sub-label="[[themeSublabel_]]"
-               on-click="openThemeUrl_" external></cr-link-row>
--<if expr="not is_linux or chromeos">
-+<if expr="not is_posix or chromeos">
-           <template is="dom-if" if="[[prefs.extensions.theme.id.value]]">
-             <div class="separator"></div>
-             <cr-button id="useDefault" on-click="onUseDefaultTap_">
-@@ -35,7 +35,7 @@
-             </cr-button>
-           </template>
- </if>
--<if expr="is_linux and not chromeos">
-+<if expr="is_posix and not chromeos">
-           <div class="settings-row continuation"
-               hidden="[[!showThemesSecondary_(
-                   prefs.extensions.theme.id.value, useSystemTheme_)]]"
-@@ -99,7 +99,7 @@
-             pref="{{prefs.bookmark_bar.show_on_all_tabs}}"
-             label="$i18n{showBookmarksBar}">
-         </settings-toggle-button>
--<if expr="is_linux and not chromeos">
-+<if expr="is_posix and not chromeos">
-         <div class="hr" hidden="[[!pageVisibility.bookmarksBar]]"></div>
-         <settings-toggle-button
-             pref="{{prefs.browser.custom_chrome_frame}}"
diff --git a/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.js b/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.js
deleted file mode 100644
index 509c7464c5..0000000000
--- a/chromium/patches/patch-chrome_browser_resources_settings_appearance__page_appearance__page.js
+++ /dev/null
@@ -1,35 +0,0 @@
-$NetBSD$
-
---- chrome/browser/resources/settings/appearance_page/appearance_page.js.orig	2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/resources/settings/appearance_page/appearance_page.js
-@@ -137,7 +137,7 @@ Polymer({
-     'defaultFontSizeChanged_(prefs.webkit.webprefs.default_font_size.value)',
-     'themeChanged_(prefs.extensions.theme.id.value, useSystemTheme_)',
- 
--    // <if expr="is_linux and not chromeos">
-+    // <if expr="is_posix and not chromeos">
-     // NOTE: this pref only exists on Linux.
-     'useSystemThemePrefChanged_(prefs.extensions.theme.use_system.value)',
-     // </if>
-@@ -222,7 +222,7 @@ Polymer({
-     this.appearanceBrowserProxy_.useDefaultTheme();
-   },
- 
--  // <if expr="is_linux and not chromeos">
-+  // <if expr="is_posix and not chromeos">
-   /**
-    * @param {boolean} useSystemTheme
-    * @private
-@@ -299,10 +299,10 @@ Polymer({
-     }
- 
-     let i18nId;
--    // <if expr="is_linux and not chromeos">
-+    // <if expr="is_posix and not chromeos">
-     i18nId = useSystemTheme ? 'systemTheme' : 'classicTheme';
-     // </if>
--    // <if expr="not is_linux or chromeos">
-+    // <if expr="not is_posix or chromeos">
-     i18nId = 'chooseFromWebStore';
-     // </if>
-     this.themeSublabel_ = this.i18n(i18nId);
diff --git a/chromium/patches/patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css b/chromium/patches/patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css
new file mode 100644
index 0000000000..37542353da
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_resources_settings_autofill__page_passwords__shared.css
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/resources/settings/autofill_page/passwords_shared.css.orig	2024-07-24 02:44:28.628005700 +0000
++++ chrome/browser/resources/settings/autofill_page/passwords_shared.css
+@@ -100,7 +100,7 @@ cr-input.password-input::part(input),
+    * necessary to prevent Chrome from using the operating system's font
+    * instead of the Material Design font.
+    * TODO(dbeam): why not font: inherit? */
+-<if expr="is_linux or is_chromeos">
++<if expr="is_posix or is_chromeos">
+   font-family: 'DejaVu Sans Mono', monospace;
+ </if>
+ <if expr="is_win">
diff --git a/chromium/patches/patch-chrome_browser_resources_signin_signin__shared.css b/chromium/patches/patch-chrome_browser_resources_signin_signin__shared.css
new file mode 100644
index 0000000000..cac84a220c
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_resources_signin_signin__shared.css
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/resources/signin/signin_shared.css.orig	2024-07-24 02:44:28.692011800 +0000
++++ chrome/browser/resources/signin/signin_shared.css
+@@ -54,7 +54,7 @@ a {
+   border-radius: var(--scrollbar-width);
+ }
+ 
+-<if expr="is_macosx or is_linux or is_chromeos">
++<if expr="is_macosx or is_posix or is_chromeos">
+ .action-container {
+   flex-flow: row-reverse;
+   justify-content: flex-start;
diff --git a/chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc b/chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc
new file mode 100644
index 0000000000..df5b6c478f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_binary__upload__service.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc.orig	2024-07-24 02:44:28.728015400 +0000
++++ chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc
+@@ -18,7 +18,7 @@
+ #include "net/base/url_util.h"
+ #include "third_party/abseil-cpp/absl/types/variant.h"
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/connectors/analysis/local_binary_upload_service_factory.h"
+ #endif
+ 
+@@ -434,7 +434,7 @@ BinaryUploadService* BinaryUploadService
+     Profile* profile,
+     const enterprise_connectors::AnalysisSettings& settings) {
+   // Local content analysis is supported only on desktop platforms.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (settings.cloud_or_local_settings.is_cloud_analysis()) {
+     return CloudBinaryUploadServiceFactory::GetForProfile(profile);
+   } else {
diff --git a/chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_deep__scanning__utils.cc b/chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_deep__scanning__utils.cc
new file mode 100644
index 0000000000..67147b026e
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_safe__browsing_cloud__content__scanning_deep__scanning__utils.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.cc.orig	2024-07-24 02:44:28.728015400 +0000
++++ chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.cc
+@@ -16,7 +16,7 @@
+ #include "components/crash/core/common/crash_key.h"
+ #include "components/signin/public/identity_manager/identity_manager.h"
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
+ #include "components/prefs/pref_service.h"
+ #endif
+@@ -416,7 +416,7 @@ std::string GetProfileEmail(Profile* pro
+   std::string email =
+       GetProfileEmail(IdentityManagerFactory::GetForProfile(profile));
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (email.empty()) {
+     email = profile->GetPrefs()->GetString(
+         enterprise_signin::prefs::kProfileUserEmail);
diff --git a/chromium/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc b/chromium/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc
index 6c5dd41c2b..0f8db645fe 100644
--- a/chromium/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc
+++ b/chromium/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc.orig	2024-07-24 02:44:28.748017300 +0000
 +++ chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
-@@ -672,7 +672,7 @@ void IncidentReportingService::OnEnviron
-   environment_collection_pending_ = false;
+@@ -694,7 +694,7 @@ void IncidentReportingService::OnEnviron
  
  // Process::Current().CreationTime() is missing on some platforms.
--#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    base::TimeDelta uptime =
        first_incident_time_ - base::Process::Current().CreationTime();
    environment_data->mutable_process()->set_uptime_msec(uptime.InMilliseconds());
diff --git a/chromium/patches/patch-chrome_browser_screen__ai_screen__ai__install__state.cc b/chromium/patches/patch-chrome_browser_screen__ai_screen__ai__install__state.cc
new file mode 100644
index 0000000000..ea3271f368
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_screen__ai_screen__ai__install__state.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/screen_ai/screen_ai_install_state.cc.orig	2024-07-24 02:44:28.772019600 +0000
++++ chrome/browser/screen_ai/screen_ai_install_state.cc
+@@ -17,7 +17,7 @@
+ #include "services/screen_ai/public/cpp/utilities.h"
+ #include "ui/accessibility/accessibility_features.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/cpu.h"
+ #include "base/files/file_util.h"
+ #endif
+@@ -27,7 +27,7 @@ const int kScreenAICleanUpDelayInDays = 
+ const char kMinExpectedVersion[] = "124.2";
+ 
+ bool IsDeviceCompatible() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #if defined(ARCH_CPU_X86_FAMILY)
+   // Check if the CPU has the required instruction set to run the Screen AI
+   // library.
diff --git a/chromium/patches/patch-chrome_browser_screen__ai_screen__ai__service__router.cc b/chromium/patches/patch-chrome_browser_screen__ai_screen__ai__service__router.cc
new file mode 100644
index 0000000000..5a35fd21dc
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_screen__ai_screen__ai__service__router.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/screen_ai/screen_ai_service_router.cc.orig	2024-07-24 02:44:28.772019600 +0000
++++ chrome/browser/screen_ai/screen_ai_service_router.cc
+@@ -284,7 +284,7 @@ void ScreenAIServiceRouter::LaunchIfNotR
+   base::FilePath binary_path = state_instance->get_component_binary_path();
+ #if BUILDFLAG(IS_WIN)
+   std::vector<base::FilePath> preload_libraries = {binary_path};
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   std::vector<std::string> extra_switches = {
+       base::StringPrintf("--%s=%s", screen_ai::GetBinaryPathSwitch(),
+                          binary_path.MaybeAsASCII().c_str())};
+@@ -298,7 +298,7 @@ void ScreenAIServiceRouter::LaunchIfNotR
+           .WithPreloadedLibraries(
+               preload_libraries,
+               content::ServiceProcessHostPreloadLibraries::GetPassKey())
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+           .WithExtraCommandLineSwitches(extra_switches)
+ #endif  // BUILDFLAG(IS_WIN)
+           .Pass());
diff --git a/chromium/patches/patch-chrome_browser_search_search__suggest_search__suggest__service.cc b/chromium/patches/patch-chrome_browser_search_search__suggest_search__suggest__service.cc
deleted file mode 100644
index 70803d2883..0000000000
--- a/chromium/patches/patch-chrome_browser_search_search__suggest_search__suggest__service.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/search/search_suggest/search_suggest_service.cc.orig	2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/search/search_suggest/search_suggest_service.cc
-@@ -21,7 +21,7 @@
- #include "components/prefs/scoped_user_pref_update.h"
- #include "components/signin/public/identity_manager/accounts_in_cookie_jar_info.h"
- #include "components/signin/public/identity_manager/identity_manager.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- 
- namespace {
- 
diff --git a/chromium/patches/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc b/chromium/patches/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc
index 922d12019b..e86a5128cc 100644
--- a/chromium/patches/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc
+++ b/chromium/patches/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- chrome/browser/send_tab_to_self/receiving_ui_handler_registry.cc.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/send_tab_to_self/receiving_ui_handler_registry.cc.orig	2024-07-24 02:44:28.800022400 +0000
 +++ chrome/browser/send_tab_to_self/receiving_ui_handler_registry.cc
-@@ -11,7 +11,7 @@
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/send_tab_to_self/receiving_ui_handler.h"
+@@ -15,7 +15,7 @@
+ #include "components/send_tab_to_self/features.h"
  
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/send_tab_to_self/desktop_notification_handler.h"
+ #include "chrome/browser/ui/send_tab_to_self/send_tab_to_self_toolbar_icon_controller.h"
  #endif
- 
-@@ -32,7 +32,7 @@ ReceivingUiHandlerRegistry* ReceivingUiH
- // Instantiates all the handlers relevant to this platform.
- void ReceivingUiHandlerRegistry::InstantiatePlatformSpecificHandlers(
+@@ -47,7 +47,7 @@ SendTabToSelfToolbarIconController*
+ ReceivingUiHandlerRegistry::GetToolbarButtonControllerForProfile(
      Profile* profile) {
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
-   applicable_handlers_.push_back(
-       std::make_unique<send_tab_to_self::DesktopNotificationHandler>(profile));
- #elif defined(OS_ANDROID)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   for (const std::unique_ptr<ReceivingUiHandler>& handler :
+        applicable_handlers_) {
+     auto* button_controller =
diff --git a/chromium/patches/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc b/chromium/patches/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc
index c2be444b94..2ecea0d356 100644
--- a/chromium/patches/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc
+++ b/chromium/patches/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- chrome/browser/send_tab_to_self/send_tab_to_self_client_service.cc.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/send_tab_to_self/send_tab_to_self_client_service.cc.orig	2024-07-24 02:44:28.800022400 +0000
 +++ chrome/browser/send_tab_to_self/send_tab_to_self_client_service.cc
-@@ -40,7 +40,7 @@ void SendTabToSelfClientService::SendTab
- void SendTabToSelfClientService::EntriesAddedRemotely(
+@@ -16,7 +16,7 @@
+ #include "components/send_tab_to_self/send_tab_to_self_model.h"
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/send_tab_to_self/send_tab_to_self_toolbar_icon_controller.h"
+ #endif
+ 
+@@ -50,7 +50,7 @@ void SendTabToSelfClientService::Entries
      const std::vector<const SendTabToSelfEntry*>& new_entries) {
    for (const std::unique_ptr<ReceivingUiHandler>& handler : GetHandlers()) {
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
      // Only respond to notifications corresponding to this service's profile
      // for these OSes; mobile does not have a Profile.
      // Cast note: on desktop, handlers are guaranteed to be the derived class
diff --git a/chromium/patches/patch-chrome_browser_sessions_session__restore.cc b/chromium/patches/patch-chrome_browser_sessions_session__restore.cc
new file mode 100644
index 0000000000..d62a4d4030
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_sessions_session__restore.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sessions/session_restore.cc.orig	2024-07-24 02:44:28.808023200 +0000
++++ chrome/browser/sessions/session_restore.cc
+@@ -99,7 +99,7 @@
+ #include "chrome/browser/web_applications/web_app_registrar.h"
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/whats_new/whats_new_fetcher.h"
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ 
+@@ -1040,7 +1040,7 @@ class SessionRestoreImpl : public Browse
+     bool is_first_tab = true;
+     for (const auto& startup_tab : startup_tabs) {
+       const GURL& url = startup_tab.url;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       if (url == whats_new::GetWebUIStartupURL()) {
+         whats_new::StartWhatsNewFetch(browser);
+         continue;
diff --git a/chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.cc b/chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.cc
deleted file mode 100644
index 244b4140c5..0000000000
--- a/chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/sharing/shared_clipboard/feature_flags.cc.orig	2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/sharing/shared_clipboard/feature_flags.cc
-@@ -8,7 +8,7 @@ const base::Feature kSharedClipboardUI{"
-                                        base::FEATURE_DISABLED_BY_DEFAULT};
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
- const base::Feature kRemoteCopyReceiver{"RemoteCopyReceiver",
-                                         base::FEATURE_ENABLED_BY_DEFAULT};
- 
diff --git a/chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.h b/chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.h
deleted file mode 100644
index b87fc27a2b..0000000000
--- a/chromium/patches/patch-chrome_browser_sharing_shared__clipboard_feature__flags.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/sharing/shared_clipboard/feature_flags.h.orig	2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/sharing/shared_clipboard/feature_flags.h
-@@ -15,7 +15,7 @@
- extern const base::Feature kSharedClipboardUI;
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
- // Feature to enable handling remote copy messages.
- extern const base::Feature kRemoteCopyReceiver;
- 
diff --git a/chromium/patches/patch-chrome_browser_sharing_sharing__device__registration.cc b/chromium/patches/patch-chrome_browser_sharing_sharing__device__registration.cc
index bc0586c9f0..403c45f514 100644
--- a/chromium/patches/patch-chrome_browser_sharing_sharing__device__registration.cc
+++ b/chromium/patches/patch-chrome_browser_sharing_sharing__device__registration.cc
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- chrome/browser/sharing/sharing_device_registration.cc.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sharing/sharing_device_registration.cc.orig	2024-07-24 02:44:28.840026100 +0000
 +++ chrome/browser/sharing/sharing_device_registration.cc
-@@ -329,7 +329,7 @@ bool SharingDeviceRegistration::IsSmsFet
+@@ -331,7 +331,7 @@ bool SharingDeviceRegistration::IsSmsFet
  
  bool SharingDeviceRegistration::IsRemoteCopySupported() const {
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
-   return base::FeatureList::IsEnabled(kRemoteCopyReceiver);
- #else
-   return false;
-@@ -338,7 +338,7 @@ bool SharingDeviceRegistration::IsRemote
- 
- bool SharingDeviceRegistration::IsPeerConnectionSupported() const {
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
-   return base::FeatureList::IsEnabled(kSharingPeerConnectionReceiver);
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   return true;
  #else
    return false;
diff --git a/chromium/patches/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc b/chromium/patches/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc
index 25930b3e1e..ca9e83d1e5 100644
--- a/chromium/patches/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc
+++ b/chromium/patches/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- chrome/browser/sharing/sharing_handler_registry_impl.cc.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sharing/sharing_handler_registry_impl.cc.orig	2024-07-24 02:44:28.844026600 +0000
 +++ chrome/browser/sharing/sharing_handler_registry_impl.cc
-@@ -25,7 +25,7 @@
- #endif  // defined(OS_ANDROID)
+@@ -22,7 +22,7 @@
+ #endif  // BUILDFLAG(IS_ANDROID)
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.h"
- #endif  // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-         // defined(OS_CHROMEOS)
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) ||
+         // BUILDFLAG(IS_CHROMEOS_LACROS)) BUILDFLAG(IS_CHROMEOS)
 @@ -74,7 +74,7 @@ SharingHandlerRegistryImpl::SharingHandl
-   }
+ #endif  // !BUILDFLAG(IS_ANDROID)
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (sharing_device_registration->IsRemoteCopySupported()) {
      AddSharingHandler(
          std::make_unique<RemoteCopyMessageHandler>(profile),
diff --git a/chromium/patches/patch-chrome_browser_sharing_sharing__service.cc b/chromium/patches/patch-chrome_browser_sharing_sharing__service.cc
deleted file mode 100644
index 92f81c8df8..0000000000
--- a/chromium/patches/patch-chrome_browser_sharing_sharing__service.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/sharing/sharing_service.cc.orig	2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/sharing/sharing_service.cc
-@@ -31,7 +31,7 @@ SharingMessageSender::DelegateType GetSe
-     const syncer::DeviceInfo& device,
-     const chrome_browser_sharing::SharingMessage& message) {
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
-   // Messages other than SharedClipboard are always sent via FCM.
-   if (message.payload_case() !=
-       chrome_browser_sharing::SharingMessage::kSharedClipboardMessage) {
diff --git a/chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.cc b/chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.cc
deleted file mode 100644
index 8bcdb1dac0..0000000000
--- a/chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/sharing/webrtc/webrtc_flags.cc.orig	2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/sharing/webrtc/webrtc_flags.cc
-@@ -5,7 +5,7 @@
- #include "chrome/browser/sharing/webrtc/webrtc_flags.h"
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
- const base::Feature kSharingPeerConnectionReceiver{
-     "SharingPeerConnectionReceiver", base::FEATURE_DISABLED_BY_DEFAULT};
- 
diff --git a/chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.h b/chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.h
deleted file mode 100644
index b554429d60..0000000000
--- a/chromium/patches/patch-chrome_browser_sharing_webrtc_webrtc__flags.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/sharing/webrtc/webrtc_flags.h.orig	2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/sharing/webrtc/webrtc_flags.h
-@@ -9,7 +9,7 @@
- #include "build/build_config.h"
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
- // Feature flag to enable receiving PeerConnection requests.
- extern const base::Feature kSharingPeerConnectionReceiver;
- 
diff --git a/chromium/patches/patch-chrome_browser_shortcuts_icon__badging.cc b/chromium/patches/patch-chrome_browser_shortcuts_icon__badging.cc
new file mode 100644
index 0000000000..271a0e213b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_shortcuts_icon__badging.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/shortcuts/icon_badging.cc.orig	2024-07-24 02:44:28.852027400 +0000
++++ chrome/browser/shortcuts/icon_badging.cc
+@@ -59,7 +59,7 @@ enum class BadgeSize {
+ constexpr ShortcutSize kSizesNeededForShortcutCreation[] = {
+     ShortcutSize::k16, ShortcutSize::k32, ShortcutSize::k128,
+     ShortcutSize::k256, ShortcutSize::k512};
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr ShortcutSize kSizesNeededForShortcutCreation[] = {ShortcutSize::k32,
+                                                             ShortcutSize::k128};
+ #elif BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-chrome_browser_signin_signin__util.cc b/chromium/patches/patch-chrome_browser_signin_signin__util.cc
index 8dfd9608ea..6ec6dc1cf4 100644
--- a/chromium/patches/patch-chrome_browser_signin_signin__util.cc
+++ b/chromium/patches/patch-chrome_browser_signin_signin__util.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/signin/signin_util.cc.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/signin/signin_util.cc.orig	2024-07-24 02:44:28.880030200 +0000
 +++ chrome/browser/signin/signin_util.cc
-@@ -34,7 +34,7 @@
- #include "google_apis/gaia/gaia_auth_util.h"
- #include "ui/base/l10n/l10n_util.h"
+@@ -81,7 +81,7 @@ CookiesMover::CookiesMover(base::WeakPtr
+ CookiesMover::~CookiesMover() = default;
  
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
- #include "chrome/browser/ui/browser_finder.h"
- #include "chrome/browser/ui/browser_list.h"
- #include "chrome/browser/ui/browser_list_observer.h"
+ void CookiesMover::StartMovingCookies() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   bool allow_cookies_to_be_moved = base::FeatureList::IsEnabled(
+       profile_management::features::kThirdPartyProfileManagement);
+ #else
diff --git a/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc
new file mode 100644
index 0000000000..9a624239ff
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__delegate__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.cc.orig	2024-07-24 02:44:28.932035200 +0000
++++ chrome/browser/supervised_user/supervised_user_extensions_delegate_impl.cc
+@@ -196,7 +196,7 @@ void SupervisedUserExtensionsDelegateImp
+       return;
+     }
+   }
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   CHECK(contents.value());
+   content::WebContents* web_contents = contents.value().get();
+   if (CanInstallExtensions()) {
diff --git a/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc
new file mode 100644
index 0000000000..fea0fbb8d1
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/supervised_user/supervised_user_extensions_manager.cc.orig	2024-07-24 02:44:28.932035200 +0000
++++ chrome/browser/supervised_user/supervised_user_extensions_manager.cc
+@@ -359,7 +359,7 @@ void SupervisedUserExtensionsManager::
+     ActivateManagementPolicyAndUpdateRegistration() {
+   SetActiveForSupervisedUsers();
+   UpdateManagementPolicyRegistration();
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   MaybeMarkExtensionsLocallyParentApproved();
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ }
+@@ -476,7 +476,7 @@ bool SupervisedUserExtensionsManager::Sh
+   return false;
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void SupervisedUserExtensionsManager::
+     MaybeMarkExtensionsLocallyParentApproved() {
+   supervised_user::LocallyParentApprovedExtensionsMigrationState
diff --git a/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h
new file mode 100644
index 0000000000..5786090bca
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__extensions__manager.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/supervised_user/supervised_user_extensions_manager.h.orig	2024-07-24 02:44:28.932035200 +0000
++++ chrome/browser/supervised_user/supervised_user_extensions_manager.h
+@@ -154,7 +154,7 @@ class SupervisedUserExtensionsManager : 
+   // launched.
+   bool ShouldBlockExtension(const std::string& extension_id) const;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Triggers an one-time migration of the present extensions as parent-approved
+   // when the feature
+   // `kEnableSupervisedUserSkipParentApprovalToInstallExtensions` becomes
diff --git a/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc
new file mode 100644
index 0000000000..5df82380fc
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__metrics__service__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/supervised_user/supervised_user_metrics_service_factory.cc.orig	2024-07-24 02:44:28.932035200 +0000
++++ chrome/browser/supervised_user/supervised_user_metrics_service_factory.cc
+@@ -14,7 +14,7 @@
+ #include "components/supervised_user/core/browser/supervised_user_service.h"
+ #include "content/public/browser/browser_context.h"
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/supervised_user/linux_mac_windows/supervised_user_extensions_metrics_delegate_impl.h"
+ #endif
+ 
+@@ -55,7 +55,7 @@ KeyedService* SupervisedUserMetricsServi
+   std::unique_ptr<supervised_user::SupervisedUserMetricsService ::
+                       SupervisedUserMetricsServiceExtensionDelegate>
+       extensions_metrics_delegate = nullptr;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   extensions_metrics_delegate =
+       std::make_unique<SupervisedUserExtensionsMetricsDelegateImpl>(
+           extensions::ExtensionRegistry::Get(profile), *profile->GetPrefs());
diff --git a/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc
new file mode 100644
index 0000000000..fc753fe94e
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_supervised__user_supervised__user__navigation__observer.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/supervised_user/supervised_user_navigation_observer.cc.orig	2024-07-24 02:44:28.932035200 +0000
++++ chrome/browser/supervised_user/supervised_user_navigation_observer.cc
+@@ -47,7 +47,7 @@
+ #include "chrome/browser/supervised_user/android/supervised_user_web_content_handler_impl.h"
+ #elif BUILDFLAG(IS_CHROMEOS)
+ #include "chrome/browser/supervised_user/chromeos/supervised_user_web_content_handler_impl.h"
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/supervised_user/linux_mac_windows/supervised_user_web_content_handler_impl.h"
+ #endif
+ 
+@@ -67,7 +67,7 @@ std::unique_ptr<supervised_user::WebCont
+ #elif BUILDFLAG(IS_ANDROID)
+   return std::make_unique<SupervisedUserWebContentHandlerImpl>(
+       web_contents, frame_id, navigation_id);
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   return std::make_unique<SupervisedUserWebContentHandlerImpl>(
+       web_contents, frame_id, navigation_id);
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_sync_chrome__sync__client.cc b/chromium/patches/patch-chrome_browser_sync_chrome__sync__client.cc
index b08b2eabbc..5034d8390a 100644
--- a/chromium/patches/patch-chrome_browser_sync_chrome__sync__client.cc
+++ b/chromium/patches/patch-chrome_browser_sync_chrome__sync__client.cc
@@ -1,13 +1,44 @@
 $NetBSD$
 
---- chrome/browser/sync/chrome_sync_client.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sync/chrome_sync_client.cc.orig	2024-07-24 02:44:28.940035800 +0000
 +++ chrome/browser/sync/chrome_sync_client.cc
-@@ -449,7 +449,7 @@ ChromeSyncClient::CreateDataTypeControll
+@@ -116,7 +116,7 @@
+ #endif  // BUILDFLAG(ENABLE_SPELLCHECK)
+ 
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_keyed_service.h"
+ #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_service_factory.h"
+ #elif BUILDFLAG(IS_ANDROID)
+@@ -475,7 +475,7 @@ ChromeSyncClient::CreateModelTypeControl
+     // platforms.
+     bool enable_tab_group_sync = false;
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+     enable_tab_group_sync = true;
+ #elif BUILDFLAG(IS_ANDROID)
+     enable_tab_group_sync =
+@@ -514,7 +514,7 @@ ChromeSyncClient::CreateModelTypeControl
  
  // Chrome prefers OS provided spell checkers where they exist. So only sync the
  // custom dictionary on platforms that typically don't provide one.
--#if defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
-   // Dictionary sync is enabled by default.
-   if (!disabled_types.Has(syncer::DICTIONARY) &&
-       GetPrefService()->GetBoolean(spellcheck::prefs::kSpellCheckEnable)) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+     // Dictionary sync is enabled by default.
+     if (GetPrefService()->GetBoolean(spellcheck::prefs::kSpellCheckEnable)) {
+       controllers.push_back(
+@@ -671,7 +671,7 @@ ChromeSyncClient::GetControllerDelegateF
+   switch (type) {
+     case syncer::SAVED_TAB_GROUP: {
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+       auto* keyed_service =
+           tab_groups::SavedTabGroupServiceFactory::GetForProfile(profile_);
+       CHECK(keyed_service);
diff --git a/chromium/patches/patch-chrome_browser_sync_device__info__sync__client__impl.cc b/chromium/patches/patch-chrome_browser_sync_device__info__sync__client__impl.cc
new file mode 100644
index 0000000000..e23871a09c
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_sync_device__info__sync__client__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sync/device_info_sync_client_impl.cc.orig	2024-07-24 02:44:28.940035800 +0000
++++ chrome/browser/sync/device_info_sync_client_impl.cc
+@@ -41,7 +41,7 @@ std::string DeviceInfoSyncClientImpl::Ge
+ // included in lacros-chrome once build flag switch of lacros-chrome is
+ // complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+   syncer::SyncPrefs prefs(profile_->GetPrefs());
+   if (prefs.IsLocalSyncEnabled()) {
+     return "local_device";
diff --git a/chromium/patches/patch-chrome_browser_sync_sync__service__factory.cc b/chromium/patches/patch-chrome_browser_sync_sync__service__factory.cc
new file mode 100644
index 0000000000..01cdb7fc05
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_sync_sync__service__factory.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sync/sync_service_factory.cc.orig	2024-07-24 02:44:28.944036200 +0000
++++ chrome/browser/sync/sync_service_factory.cc
+@@ -84,7 +84,7 @@
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_service_factory.h"
+ #elif BUILDFLAG(IS_ANDROID)
+ #include "chrome/browser/tab_group_sync/tab_group_sync_service_factory.h"
+@@ -135,7 +135,7 @@ std::unique_ptr<KeyedService> BuildSyncS
+ // TODO(crbug.com/40118868): Reassess whether the following block needs to be
+ // included in lacros-chrome once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
+   syncer::SyncPrefs prefs(profile->GetPrefs());
+   local_sync_backend_enabled = prefs.IsLocalSyncEnabled();
+@@ -274,7 +274,7 @@ SyncServiceFactory::SyncServiceFactory()
+   DependsOn(ProfilePasswordStoreFactory::GetInstance());
+   DependsOn(PowerBookmarkServiceFactory::GetInstance());
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   DependsOn(tab_groups::SavedTabGroupServiceFactory::GetInstance());
+ #elif BUILDFLAG(IS_ANDROID)
+   DependsOn(tab_groups::TabGroupSyncServiceFactory::GetInstance());
diff --git a/chromium/patches/patch-chrome_browser_sync_sync__service__util.cc b/chromium/patches/patch-chrome_browser_sync_sync__service__util.cc
new file mode 100644
index 0000000000..3faf523f9b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_sync_sync__service__util.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/sync/sync_service_util.cc.orig	2024-07-24 02:44:28.944036200 +0000
++++ chrome/browser/sync/sync_service_util.cc
+@@ -9,7 +9,7 @@
+ #include "components/sync/base/features.h"
+ 
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "components/variations/service/variations_service.h"
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ||
+         // BUILDFLAG(IS_WIN)
+@@ -21,7 +21,7 @@ bool IsDesktopEnUSLocaleOnlySyncPollFeat
+   }
+ 
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   std::string country_code;
+   auto* variations_service = g_browser_process->variations_service();
+   if (variations_service) {
diff --git a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.cc b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.cc
index 7539391eb2..18ad25b186 100644
--- a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.cc
+++ b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.cc
@@ -1,40 +1,44 @@
 $NetBSD$
 
---- chrome/browser/task_manager/sampling/task_group.cc.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/task_manager/sampling/task_group.cc.orig	2024-07-24 02:44:29.040045500 +0000
 +++ chrome/browser/task_manager/sampling/task_group.cc
-@@ -32,7 +32,7 @@ const int kBackgroundRefreshTypesMask =
- #if defined(OS_WIN)
+@@ -38,7 +38,7 @@ const int kBackgroundRefreshTypesMask =
+ #if BUILDFLAG(IS_WIN)
      REFRESH_TYPE_START_TIME | REFRESH_TYPE_CPU_TIME |
- #endif  // defined(OS_WIN)
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #endif  // BUILDFLAG(IS_WIN)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
      REFRESH_TYPE_FD_COUNT |
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
  #if BUILDFLAG(ENABLE_NACL)
-@@ -113,7 +113,7 @@ TaskGroup::TaskGroup(
+@@ -123,7 +123,7 @@ TaskGroup::TaskGroup(
  #if BUILDFLAG(ENABLE_NACL)
        nacl_debug_stub_port_(nacl::kGdbDebugStubPortUnknown),
  #endif  // BUILDFLAG(ENABLE_NACL)
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
        open_fd_count_(-1),
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
        idle_wakeups_per_second_(-1),
-@@ -128,7 +128,7 @@ TaskGroup::TaskGroup(
-                    weak_ptr_factory_.GetWeakPtr()),
-         base::Bind(&TaskGroup::OnIdleWakeupsRefreshDone,
-                    weak_ptr_factory_.GetWeakPtr()),
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
-         base::Bind(&TaskGroup::OnOpenFdCountRefreshDone,
-                    weak_ptr_factory_.GetWeakPtr()),
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
-@@ -299,7 +299,7 @@ void TaskGroup::OnRefreshNaClDebugStubPo
+@@ -142,7 +142,7 @@ TaskGroup::TaskGroup(
+                             weak_ptr_factory_.GetWeakPtr()),
+         base::BindRepeating(&TaskGroup::OnIdleWakeupsRefreshDone,
+                             weak_ptr_factory_.GetWeakPtr()),
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+         base::BindRepeating(&TaskGroup::OnOpenFdCountRefreshDone,
+                             weak_ptr_factory_.GetWeakPtr()),
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
+@@ -322,7 +322,7 @@ void TaskGroup::OnRefreshNaClDebugStubPo
  }
  #endif  // BUILDFLAG(ENABLE_NACL)
  
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
  void TaskGroup::OnOpenFdCountRefreshDone(int open_fd_count) {
    DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
  
diff --git a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.h b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.h
index 8a9fc7f9c7..026f4b1274 100644
--- a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.h
+++ b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group.h
@@ -1,40 +1,44 @@
 $NetBSD$
 
---- chrome/browser/task_manager/sampling/task_group.h.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/task_manager/sampling/task_group.h.orig	2024-07-24 02:44:29.040045500 +0000
 +++ chrome/browser/task_manager/sampling/task_group.h
-@@ -39,7 +39,7 @@ constexpr int kUnsupportedVMRefreshFlags
+@@ -44,7 +44,7 @@ constexpr int kUnsupportedVMRefreshFlags
      REFRESH_TYPE_WEBCACHE_STATS | REFRESH_TYPE_NETWORK_USAGE |
      REFRESH_TYPE_NACL | REFRESH_TYPE_IDLE_WAKEUPS | REFRESH_TYPE_HANDLES |
      REFRESH_TYPE_START_TIME | REFRESH_TYPE_CPU_TIME | REFRESH_TYPE_PRIORITY |
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
      REFRESH_TYPE_FD_COUNT |
  #endif
      REFRESH_TYPE_HARD_FAULTS;
-@@ -122,7 +122,7 @@ class TaskGroup {
-   int nacl_debug_stub_port() const { return nacl_debug_stub_port_; }
+@@ -152,7 +152,7 @@ class TaskGroup {
+   }
  #endif  // BUILDFLAG(ENABLE_NACL)
  
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    int open_fd_count() const { return open_fd_count_; }
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
- 
-@@ -138,7 +138,7 @@ class TaskGroup {
+   void set_open_fd_count(int open_fd_count) { open_fd_count_ = open_fd_count; }
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
+@@ -172,7 +172,7 @@ class TaskGroup {
    void RefreshNaClDebugStubPort(int child_process_unique_id);
    void OnRefreshNaClDebugStubPortDone(int port);
  #endif
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    void OnOpenFdCountRefreshDone(int open_fd_count);
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
  
-@@ -209,7 +209,7 @@ class TaskGroup {
+@@ -244,7 +244,7 @@ class TaskGroup {
  #if BUILDFLAG(ENABLE_NACL)
    int nacl_debug_stub_port_;
  #endif  // BUILDFLAG(ENABLE_NACL)
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    // The number of file descriptors currently open by the process.
    int open_fd_count_;
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc
index 21d4f121a9..e15190b62d 100644
--- a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc
+++ b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc
@@ -1,49 +1,53 @@
 $NetBSD$
 
---- chrome/browser/task_manager/sampling/task_group_sampler.cc.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/task_manager/sampling/task_group_sampler.cc.orig	2024-07-24 02:44:29.040045500 +0000
 +++ chrome/browser/task_manager/sampling/task_group_sampler.cc
-@@ -43,7 +43,7 @@ TaskGroupSampler::TaskGroupSampler(
+@@ -46,7 +46,7 @@ TaskGroupSampler::TaskGroupSampler(
      const OnCpuRefreshCallback& on_cpu_refresh,
      const OnSwappedMemRefreshCallback& on_swapped_mem_refresh,
      const OnIdleWakeupsCallback& on_idle_wakeups,
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
      const OnOpenFdCountCallback& on_open_fd_count,
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
      const OnProcessPriorityCallback& on_process_priority)
-@@ -53,7 +53,7 @@ TaskGroupSampler::TaskGroupSampler(
+@@ -56,7 +56,7 @@ TaskGroupSampler::TaskGroupSampler(
        on_cpu_refresh_callback_(on_cpu_refresh),
        on_swapped_mem_refresh_callback_(on_swapped_mem_refresh),
        on_idle_wakeups_callback_(on_idle_wakeups),
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
        on_open_fd_count_callback_(on_open_fd_count),
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
        on_process_priority_callback_(on_process_priority) {
-@@ -85,7 +85,7 @@ void TaskGroupSampler::Refresh(int64_t r
+@@ -86,7 +86,7 @@ void TaskGroupSampler::Refresh(int64_t r
          base::BindOnce(on_swapped_mem_refresh_callback_));
    }
  
--#if defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (TaskManagerObserver::IsResourceRefreshEnabled(REFRESH_TYPE_IDLE_WAKEUPS,
                                                      refresh_flags)) {
-     base::PostTaskAndReplyWithResult(
-@@ -95,7 +95,7 @@ void TaskGroupSampler::Refresh(int64_t r
+     blocking_pool_runner_->PostTaskAndReplyWithResult(
+@@ -96,7 +96,7 @@ void TaskGroupSampler::Refresh(int64_t r
    }
- #endif  // defined(OS_MACOSX) || defined(OS_LINUX)
+ #endif  // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
  
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    if (TaskManagerObserver::IsResourceRefreshEnabled(REFRESH_TYPE_FD_COUNT,
                                                      refresh_flags)) {
-     base::PostTaskAndReplyWithResult(
-@@ -145,7 +145,7 @@ int TaskGroupSampler::RefreshIdleWakeups
+     blocking_pool_runner_->PostTaskAndReplyWithResult(
+@@ -150,7 +150,7 @@ int TaskGroupSampler::RefreshIdleWakeups
    return process_metrics_->GetIdleWakeupsPerSecond();
  }
  
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
  int TaskGroupSampler::RefreshOpenFdCount() {
-   DCHECK(worker_pool_sequenced_checker_.CalledOnValidSequence());
+   DCHECK_CALLED_ON_VALID_SEQUENCE(worker_pool_sequenced_checker_);
  
diff --git a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.h b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.h
index b2cfd47d08..f72d589c50 100644
--- a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.h
+++ b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__group__sampler.h
@@ -1,40 +1,44 @@
 $NetBSD$
 
---- chrome/browser/task_manager/sampling/task_group_sampler.h.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/task_manager/sampling/task_group_sampler.h.orig	2024-07-24 02:44:29.040045500 +0000
 +++ chrome/browser/task_manager/sampling/task_group_sampler.h
-@@ -32,7 +32,7 @@ class TaskGroupSampler : public base::Re
-   using OnCpuRefreshCallback = base::Callback<void(double)>;
-   using OnSwappedMemRefreshCallback = base::Callback<void(int64_t)>;
-   using OnIdleWakeupsCallback = base::Callback<void(int)>;
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
-   using OnOpenFdCountCallback = base::Callback<void(int)>;
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
-   using OnProcessPriorityCallback = base::Callback<void(bool)>;
+@@ -31,7 +31,7 @@ class TaskGroupSampler : public base::Re
+   using OnCpuRefreshCallback = base::RepeatingCallback<void(double)>;
+   using OnSwappedMemRefreshCallback = base::RepeatingCallback<void(int64_t)>;
+   using OnIdleWakeupsCallback = base::RepeatingCallback<void(int)>;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   using OnOpenFdCountCallback = base::RepeatingCallback<void(int)>;
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
+   using OnProcessPriorityCallback =
 @@ -43,7 +43,7 @@ class TaskGroupSampler : public base::Re
        const OnCpuRefreshCallback& on_cpu_refresh,
        const OnSwappedMemRefreshCallback& on_memory_refresh,
        const OnIdleWakeupsCallback& on_idle_wakeups,
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
        const OnOpenFdCountCallback& on_open_fd_count,
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
        const OnProcessPriorityCallback& on_process_priority);
-@@ -60,7 +60,7 @@ class TaskGroupSampler : public base::Re
+@@ -63,7 +63,7 @@ class TaskGroupSampler : public base::Re
    double RefreshCpuUsage();
    int64_t RefreshSwappedMem();
    int RefreshIdleWakeupsPerSecond();
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    int RefreshOpenFdCount();
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
-   bool RefreshProcessPriority();
-@@ -84,7 +84,7 @@ class TaskGroupSampler : public base::Re
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
+   base::Process::Priority RefreshProcessPriority();
+@@ -87,7 +87,7 @@ class TaskGroupSampler : public base::Re
    const OnCpuRefreshCallback on_cpu_refresh_callback_;
    const OnSwappedMemRefreshCallback on_swapped_mem_refresh_callback_;
    const OnIdleWakeupsCallback on_idle_wakeups_callback_;
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    const OnOpenFdCountCallback on_open_fd_count_callback_;
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
    const OnProcessPriorityCallback on_process_priority_callback_;
diff --git a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc
index 88b119db19..5394745c90 100644
--- a/chromium/patches/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc
+++ b/chromium/patches/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/task_manager/sampling/task_manager_impl.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/task_manager/sampling/task_manager_impl.cc.orig	2024-07-24 02:44:29.040045500 +0000
 +++ chrome/browser/task_manager/sampling/task_manager_impl.cc
-@@ -229,7 +229,7 @@ void TaskManagerImpl::GetUSERHandles(Tas
+@@ -218,7 +218,7 @@ void TaskManagerImpl::GetUSERHandles(Tas
  }
  
  int TaskManagerImpl::GetOpenFdCount(TaskId task_id) const {
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    return GetTaskGroupByTaskId(task_id)->open_fd_count();
  #else
    return -1;
diff --git a/chromium/patches/patch-chrome_browser_task__manager_task__manager__observer.h b/chromium/patches/patch-chrome_browser_task__manager_task__manager__observer.h
index 37c6d45ac7..32e3f2ecd7 100644
--- a/chromium/patches/patch-chrome_browser_task__manager_task__manager__observer.h
+++ b/chromium/patches/patch-chrome_browser_task__manager_task__manager__observer.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/task_manager/task_manager_observer.h.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/task_manager/task_manager_observer.h.orig	2024-07-24 02:44:29.040045500 +0000
 +++ chrome/browser/task_manager/task_manager_observer.h
-@@ -43,7 +43,7 @@ enum RefreshType {
+@@ -47,7 +47,7 @@ enum RefreshType {
    // or backgrounded.
    REFRESH_TYPE_PRIORITY = 1 << 13,
  
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    // For observers interested in getting the number of open file descriptors of
    // processes.
    REFRESH_TYPE_FD_COUNT = 1 << 14,
diff --git a/chromium/patches/patch-chrome_browser_themes_theme__helper.cc b/chromium/patches/patch-chrome_browser_themes_theme__helper.cc
new file mode 100644
index 0000000000..4b5b77746d
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_themes_theme__helper.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/themes/theme_helper.cc.orig	2024-07-24 02:44:29.048046400 +0000
++++ chrome/browser/themes/theme_helper.cc
+@@ -18,7 +18,7 @@
+ #include "ui/gfx/image/image.h"
+ #include "ui/native_theme/native_theme.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_browser_themes_theme__service.cc b/chromium/patches/patch-chrome_browser_themes_theme__service.cc
new file mode 100644
index 0000000000..9789725740
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_themes_theme__service.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/themes/theme_service.cc.orig	2024-07-24 02:44:29.048046400 +0000
++++ chrome/browser/themes/theme_service.cc
+@@ -70,7 +70,7 @@
+ #include "extensions/browser/extension_registry_observer.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #include "ui/ozone/public/ozone_platform.h"  // nogncheck
+ #endif
+@@ -326,7 +326,7 @@ CustomThemeSupplier* ThemeService::GetTh
+ }
+ 
+ bool ThemeService::ShouldUseCustomFrame() const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (!ui::OzonePlatform::GetInstance()
+            ->GetPlatformRuntimeProperties()
+            .supports_server_side_window_decorations) {
diff --git a/chromium/patches/patch-chrome_browser_themes_theme__service__aura__linux.cc b/chromium/patches/patch-chrome_browser_themes_theme__service__aura__linux.cc
new file mode 100644
index 0000000000..90b80e1de1
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_themes_theme__service__aura__linux.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/themes/theme_service_aura_linux.cc.orig	2024-07-24 02:44:29.048046400 +0000
++++ chrome/browser/themes/theme_service_aura_linux.cc
+@@ -24,7 +24,7 @@ namespace {
+ ui::SystemTheme ValidateSystemTheme(ui::SystemTheme system_theme) {
+   switch (system_theme) {
+     case ui::SystemTheme::kDefault:
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     case ui::SystemTheme::kGtk:
+     case ui::SystemTheme::kQt:
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_themes_theme__service__factory.cc b/chromium/patches/patch-chrome_browser_themes_theme__service__factory.cc
index 254882f826..b3c36bd933 100644
--- a/chromium/patches/patch-chrome_browser_themes_theme__service__factory.cc
+++ b/chromium/patches/patch-chrome_browser_themes_theme__service__factory.cc
@@ -1,31 +1,43 @@
 $NetBSD$
 
---- chrome/browser/themes/theme_service_factory.cc.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/themes/theme_service_factory.cc.orig	2024-07-24 02:44:29.048046400 +0000
 +++ chrome/browser/themes/theme_service_factory.cc
-@@ -22,7 +22,7 @@
- #include "chrome/browser/themes/theme_helper_win.h"
- #endif
+@@ -27,11 +27,11 @@
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) || defined(OS_BSD)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/themes/theme_service_aura_linux.h"
- #include "ui/views/linux_ui/linux_ui.h"
  #endif
-@@ -77,7 +77,7 @@ ThemeServiceFactory::~ThemeServiceFactor
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui_factory.h"
+ #endif
+ 
+@@ -103,7 +103,7 @@ ThemeServiceFactory::~ThemeServiceFactor
  
  KeyedService* ThemeServiceFactory::BuildServiceInstanceFor(
      content::BrowserContext* profile) const {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    using ThemeService = ThemeServiceAuraLinux;
  #endif
  
-@@ -89,7 +89,7 @@ KeyedService* ThemeServiceFactory::Build
- 
- void ThemeServiceFactory::RegisterProfilePrefs(
+@@ -117,9 +117,9 @@ void ThemeServiceFactory::RegisterProfil
      user_prefs::PrefRegistrySyncable* registry) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   bool default_uses_system_theme = false;
- 
-   const views::LinuxUI* linux_ui = views::LinuxUI::instance();
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   ui::SystemTheme default_system_theme = ui::SystemTheme::kDefault;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   default_system_theme = ui::GetDefaultSystemTheme();
+ #endif
+   registry->RegisterIntegerPref(prefs::kSystemTheme,
diff --git a/chromium/patches/patch-chrome_browser_tracing_crash__service__uploader.cc b/chromium/patches/patch-chrome_browser_tracing_crash__service__uploader.cc
deleted file mode 100644
index f9b96f5f96..0000000000
--- a/chromium/patches/patch-chrome_browser_tracing_crash__service__uploader.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/tracing/crash_service_uploader.cc.orig	2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/tracing/crash_service_uploader.cc
-@@ -158,6 +158,8 @@ void TraceCrashServiceUploader::DoCompre
-   const char product[] = "Chrome_ChromeOS";
- #elif defined(OS_LINUX)
-   const char product[] = "Chrome_Linux";
-+#elif defined(OS_NETBSD)
-+  const char product[] = "Chrome_NetBSD";
- #elif defined(OS_ANDROID)
-   const char product[] = "Chrome_Android";
- #else
diff --git a/chromium/patches/patch-chrome_browser_ui_BUILD.gn b/chromium/patches/patch-chrome_browser_ui_BUILD.gn
deleted file mode 100644
index 0c33c000c4..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_BUILD.gn
+++ /dev/null
@@ -1,60 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/BUILD.gn.orig	2020-07-15 18:56:45.000000000 +0000
-+++ chrome/browser/ui/BUILD.gn
-@@ -622,13 +622,18 @@ static_library("ui") {
-     deps += [ "//components/autofill/content/browser/webauthn" ]
-   }
- 
--  if (!is_fuchsia) {
-+  if (!is_fuchsia && !is_bsd) {
-     # TODO(crbug.com/753619): Enable crash reporting on Fuchsia.
-     deps += [
-       "//components/crash/core/app",
-       "//components/crash/core/browser",
-     ]
-   }
-+  if (is_bsd) {
-+    deps += [
-+      "//components/crash/core/browser",
-+    ]
-+  }
- 
-   if (is_win || is_android || is_linux) {
-     sources += [
-@@ -1505,7 +1510,7 @@ static_library("ui") {
-       ]
-     }
- 
--    if (is_linux && !is_chromeos) {
-+    if ((is_linux || is_bsd) && !is_chromeos) {
-       deps += [ "//ui/base/ime/linux" ]
-     }
- 
-@@ -3019,7 +3024,7 @@ static_library("ui") {
-     # to fail on this variant. Since this target is only referenced (but not
-     # compiled) on this variant, it's okay to add this "incorrect" dependency
-     # to Cast Linux builds so that `gn check` passes.
--    if (toolkit_views || (is_chromecast && is_linux)) {
-+    if (toolkit_views || (is_chromecast && (is_linux || is_bsd))) {
-       public_deps += [
-         "//ui/views",
-         "//ui/views/controls/webview",
-@@ -3105,7 +3110,7 @@ static_library("ui") {
-     }
-   }
- 
--  if (is_linux) {  # Both desktop Linux and ChromeOS.
-+  if (is_linux || is_bsd) {  # Both desktop Linux and ChromeOS.
-     sources += [
-       "certificate_dialogs.cc",
-       "certificate_dialogs.h",
-@@ -3909,7 +3914,7 @@ static_library("ui") {
-       ]
-     }
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources += [
-         "views/process_singleton_dialog_linux.cc",
-         "views/status_icons/status_tray_linux.cc",
diff --git a/chromium/patches/patch-chrome_browser_ui_actions_chrome__action__id.h b/chromium/patches/patch-chrome_browser_ui_actions_chrome__action__id.h
new file mode 100644
index 0000000000..cd091d4ece
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_actions_chrome__action__id.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/actions/chrome_action_id.h.orig	2024-07-24 02:44:29.092050600 +0000
++++ chrome/browser/ui/actions/chrome_action_id.h
+@@ -515,7 +515,7 @@
+     IDC_CONTENT_CONTEXT_QUICK_ANSWERS_INLINE_ANSWER) \
+   E(kActionContentContextQuickAnswersInlineQuery, \
+     IDC_CONTENT_CONTEXT_QUICK_ANSWERS_INLINE_QUERY)
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #define CHROME_PLATFORM_SPECIFIC_ACTION_IDS \
+   E(kUseSystemTitleBar, IDC_USE_SYSTEM_TITLE_BAR) \
+   E(kRestoreWindow, IDC_RESTORE_WINDOW)
diff --git a/chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc b/chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc
new file mode 100644
index 0000000000..d402c0ba6d
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/autofill/payments/desktop_payments_window_manager.cc.orig	2024-07-24 02:44:29.500090100 +0000
++++ chrome/browser/ui/autofill/payments/desktop_payments_window_manager.cc
+@@ -49,7 +49,7 @@ gfx::Rect GetPopupSizeForVcn3ds() {
+ DesktopPaymentsWindowManager::DesktopPaymentsWindowManager(
+     ContentAutofillClient* client)
+     : client_(CHECK_DEREF(client)) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   scoped_observation_.Observe(BrowserList::GetInstance());
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+ }
+@@ -109,7 +109,7 @@ void DesktopPaymentsWindowManager::WebCo
+   }
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ void DesktopPaymentsWindowManager::OnBrowserSetLastActive(Browser* browser) {
+   // If there is an ongoing payments window manager pop-up flow, and the
+   // original tab's WebContents become active, activate the pop-up's
diff --git a/chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h b/chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h
new file mode 100644
index 0000000000..70f59f0980
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_autofill_payments_desktop__payments__window__manager.h
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/autofill/payments/desktop_payments_window_manager.h.orig	2024-07-24 02:44:29.500090100 +0000
++++ chrome/browser/ui/autofill/payments/desktop_payments_window_manager.h
+@@ -14,7 +14,7 @@
+ #include "components/autofill/core/browser/payments/payments_window_manager.h"
+ #include "content/public/browser/web_contents_observer.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ #include "base/scoped_observation.h"
+ #include "chrome/browser/ui/browser_list.h"
+ #include "chrome/browser/ui/browser_list_observer.h"
+@@ -39,7 +39,7 @@ class PaymentsWindowUserConsentDialogCon
+ // WebContents of the original tab that the pop-up is created in. If there is a
+ // pop-up currently present, `this` will observe the WebContents of that pop-up.
+ class DesktopPaymentsWindowManager : public PaymentsWindowManager,
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+                                      public BrowserListObserver,
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+                                      public content::WebContentsObserver {
+@@ -58,7 +58,7 @@ class DesktopPaymentsWindowManager : pub
+       content::NavigationHandle* navigation_handle) override;
+   void WebContentsDestroyed() override;
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   // BrowserListObserver:
+   void OnBrowserSetLastActive(Browser* browser) override;
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+@@ -136,7 +136,7 @@ class DesktopPaymentsWindowManager : pub
+   std::unique_ptr<PaymentsWindowUserConsentDialogControllerImpl>
+       payments_window_user_consent_dialog_controller_;
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   base::ScopedObservation<BrowserList, BrowserListObserver> scoped_observation_{
+       this};
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
diff --git a/chromium/patches/patch-chrome_browser_ui_browser.h b/chromium/patches/patch-chrome_browser_ui_browser.h
new file mode 100644
index 0000000000..9e5845d672
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_browser.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/browser.h.orig	2024-07-24 02:44:29.512091400 +0000
++++ chrome/browser/ui/browser.h
+@@ -339,7 +339,7 @@ class Browser : public TabStripModelObse
+     std::optional<int64_t> display_id;
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     // When the browser window is shown, the desktop environment is notified
+     // using this ID.  In response, the desktop will stop playing the "waiting
+     // for startup" animation (if any).
diff --git a/chromium/patches/patch-chrome_browser_ui_browser__command__controller.cc b/chromium/patches/patch-chrome_browser_ui_browser__command__controller.cc
index 2233c7d6bb..cc0f9c1667 100644
--- a/chromium/patches/patch-chrome_browser_ui_browser__command__controller.cc
+++ b/chromium/patches/patch-chrome_browser_ui_browser__command__controller.cc
@@ -1,40 +1,86 @@
 $NetBSD$
 
---- chrome/browser/ui/browser_command_controller.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/browser_command_controller.cc.orig	2024-07-24 02:44:29.516091600 +0000
 +++ chrome/browser/ui/browser_command_controller.cc
-@@ -83,7 +83,7 @@
- #include "components/session_manager/core/session_manager.h"
+@@ -129,7 +129,7 @@
+ #include "components/user_manager/user_manager.h"
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/base/ime/linux/text_edit_key_bindings_delegate_auralinux.h"  // nogncheck
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/base/ime/text_input_flags.h"
+ #include "ui/linux/linux_ui.h"
+ #endif
+@@ -138,7 +138,7 @@
+ #include "ui/ozone/public/ozone_platform.h"
  #endif
  
-@@ -254,7 +254,7 @@ bool BrowserCommandController::IsReserve
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/shortcuts/desktop_shortcuts_utils.h"
+ #endif  // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
+ 
+@@ -315,7 +315,7 @@ bool BrowserCommandController::IsReserve
  #endif
    }
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    // If this key was registered by the user as a content editing hotkey, then
    // it is not reserved.
-   ui::TextEditKeyBindingsDelegateAuraLinux* delegate =
-@@ -480,7 +480,7 @@ bool BrowserCommandController::ExecuteCo
-       break;
- #endif
+   auto* linux_ui = ui::LinuxUi::instance();
+@@ -567,7 +567,7 @@ bool BrowserCommandController::ExecuteCo
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
      case IDC_MINIMIZE_WINDOW:
        browser_->window()->Minimize();
        break;
-@@ -953,7 +953,7 @@ void BrowserCommandController::InitComma
-   command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_4, true);
-   command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_5, true);
+@@ -579,7 +579,7 @@ bool BrowserCommandController::ExecuteCo
+       break;
  #endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     case IDC_USE_SYSTEM_TITLE_BAR: {
+       PrefService* prefs = profile()->GetPrefs();
+       prefs->SetBoolean(prefs::kUseCustomChromeFrame,
+@@ -773,7 +773,7 @@ bool BrowserCommandController::ExecuteCo
+       break;
+     case IDC_CREATE_SHORTCUT:
+       base::RecordAction(base::UserMetricsAction("CreateShortcut"));
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       if (base::FeatureList::IsEnabled(features::kShortcutsNotApps)) {
+         chrome::CreateDesktopShortcutForActiveWebContents(browser_);
+       } else {
+@@ -1282,12 +1282,12 @@ void BrowserCommandController::InitComma
+ #endif
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    command_updater_.UpdateCommandEnabled(IDC_MINIMIZE_WINDOW, true);
    command_updater_.UpdateCommandEnabled(IDC_MAXIMIZE_WINDOW, true);
    command_updater_.UpdateCommandEnabled(IDC_RESTORE_WINDOW, true);
+ #endif
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   bool use_system_title_bar = true;
+ #if BUILDFLAG(IS_OZONE)
+   use_system_title_bar = ui::OzonePlatform::GetInstance()
+@@ -1602,7 +1602,7 @@ void BrowserCommandController::UpdateCom
+   bool can_create_web_app = web_app::CanCreateWebApp(browser_);
+   command_updater_.UpdateCommandEnabled(IDC_INSTALL_PWA, can_create_web_app);
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   if (base::FeatureList::IsEnabled(features::kShortcutsNotApps)) {
+     command_updater_.UpdateCommandEnabled(
+         IDC_CREATE_SHORTCUT, shortcuts::CanCreateDesktopShortcut(browser_));
diff --git a/chromium/patches/patch-chrome_browser_ui_browser__commands.cc b/chromium/patches/patch-chrome_browser_ui_browser__commands.cc
new file mode 100644
index 0000000000..229c53dad1
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_browser__commands.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/browser_commands.cc.orig	2024-07-24 02:44:29.516091600 +0000
++++ chrome/browser/ui/browser_commands.cc
+@@ -2001,7 +2001,7 @@ void OpenUpdateChromeDialog(Browser* bro
+   } else if (UpgradeDetector::GetInstance()->is_outdated_install_no_au()) {
+     UpgradeDetector::GetInstance()->NotifyOutdatedInstallNoAutoUpdate();
+   } else {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     if (base::FeatureList::IsEnabled(features::kFewerUpdateConfirmations)) {
+       chrome::AttemptRelaunch();
+       return;
diff --git a/chromium/patches/patch-chrome_browser_ui_browser__ui__prefs.cc b/chromium/patches/patch-chrome_browser_ui_browser__ui__prefs.cc
new file mode 100644
index 0000000000..fcbf2a10ea
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_browser__ui__prefs.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/browser_ui_prefs.cc.orig	2024-07-24 02:44:29.524092400 +0000
++++ chrome/browser/ui/browser_ui_prefs.cc
+@@ -175,7 +175,7 @@ void RegisterBrowserUserPrefs(user_prefs
+   registry->RegisterDictionaryPref(prefs::kHttpsUpgradeFallbacks);
+   registry->RegisterDictionaryPref(prefs::kHttpsUpgradeNavigations);
+   registry->RegisterBooleanPref(prefs::kHttpsOnlyModeAutoEnabled, false);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   registry->RegisterStringPref(prefs::kEnterpriseLogoUrl, std::string());
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
+ }
diff --git a/chromium/patches/patch-chrome_browser_ui_browser__view__prefs.cc b/chromium/patches/patch-chrome_browser_ui_browser__view__prefs.cc
index 7b9d4f8a2a..a9dc894ebe 100644
--- a/chromium/patches/patch-chrome_browser_ui_browser__view__prefs.cc
+++ b/chromium/patches/patch-chrome_browser_ui_browser__view__prefs.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- chrome/browser/ui/browser_view_prefs.cc.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/browser_view_prefs.cc.orig	2024-07-24 02:44:29.524092400 +0000
 +++ chrome/browser/ui/browser_view_prefs.cc
-@@ -26,7 +26,7 @@ namespace {
- // Old values: 0 = SHRINK (default), 1 = STACKED.
- const char kTabStripLayoutType[] = "tab_strip_layout_type";
+@@ -15,7 +15,7 @@
+ 
+ namespace {
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
  bool GetCustomFramePrefDefault() {
- #if defined(USE_OZONE)
-   if (features::IsUsingOzonePlatform()) {
-@@ -51,7 +51,7 @@ void RegisterBrowserViewLocalPrefs(PrefR
+ #if BUILDFLAG(IS_OZONE)
+   return ui::OzonePlatform::GetInstance()
+@@ -31,7 +31,7 @@ bool GetCustomFramePrefDefault() {
  
  void RegisterBrowserViewProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    registry->RegisterBooleanPref(prefs::kUseCustomChromeFrame,
                                  GetCustomFramePrefDefault());
- #endif  // defined(OS_LINUX) && defined(!OS_CHROMEOS)
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_chrome__pages.cc b/chromium/patches/patch-chrome_browser_ui_chrome__pages.cc
new file mode 100644
index 0000000000..7f45a19ed4
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_chrome__pages.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/chrome_pages.cc.orig	2024-07-24 02:44:29.524092400 +0000
++++ chrome/browser/ui/chrome_pages.cc
+@@ -86,7 +86,7 @@
+ #include "components/signin/public/identity_manager/identity_manager.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/web_applications/web_app_utils.h"
+ #endif
+ 
+@@ -379,7 +379,7 @@ void ShowChromeTips(Browser* browser) {
+   ShowSingletonTab(browser, GURL(kChromeTipsURL));
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ShowChromeWhatsNew(Browser* browser) {
+   ShowSingletonTab(browser, GURL(kChromeUIWhatsNewURL));
+ }
+@@ -721,7 +721,7 @@ void ShowShortcutCustomizationApp(Profil
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ShowWebAppSettingsImpl(Browser* browser,
+                             Profile* profile,
+                             const std::string& app_id,
diff --git a/chromium/patches/patch-chrome_browser_ui_chrome__pages.h b/chromium/patches/patch-chrome_browser_ui_chrome__pages.h
new file mode 100644
index 0000000000..250a570931
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_chrome__pages.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/chrome_pages.h.orig	2024-07-24 02:44:29.524092400 +0000
++++ chrome/browser/ui/chrome_pages.h
+@@ -39,7 +39,7 @@ namespace signin {
+ enum class ConsentLevel;
+ }  // namespace signin
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ namespace web_app {
+ enum class AppSettingsPageEntryPoint;
+ }  // namespace web_app
+@@ -196,7 +196,7 @@ void ShowShortcutCustomizationApp(Profil
+                                   const std::string& category);
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Show chrome://app-settings/<app-id> page.
+ void ShowWebAppSettings(Browser* browser,
+                         const std::string& app_id,
diff --git a/chromium/patches/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc b/chromium/patches/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc
new file mode 100644
index 0000000000..c876531675
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/color/native_chrome_color_mixer.cc.orig	2024-07-24 02:44:29.544094300 +0000
++++ chrome/browser/ui/color/native_chrome_color_mixer.cc
+@@ -7,7 +7,7 @@
+ #include "build/build_config.h"
+ 
+ #if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC) && \
+-    !BUILDFLAG(IS_WIN)
++    !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD)
+ void AddNativeChromeColorMixer(ui::ColorProvider* provider,
+                                const ui::ColorProviderKey& key) {}
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc b/chromium/patches/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc
deleted file mode 100644
index bd3b6857b6..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc.orig	2020-07-08 21:40:35.000000000 +0000
-+++ chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc
-@@ -16,7 +16,7 @@
- 
- // NOTE(koz): Linux doesn't use the thick shadowed border, so we add padding
- // here.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const int ExclusiveAccessBubble::kPaddingPx = 8;
- #else
- const int ExclusiveAccessBubble::kPaddingPx = 15;
diff --git a/chromium/patches/patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc b/chromium/patches/patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc
new file mode 100644
index 0000000000..ff2225c15d
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_omnibox_omnibox__pedal__implementations.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/omnibox/omnibox_pedal_implementations.cc.orig	2024-07-24 02:44:29.596099400 +0000
++++ chrome/browser/ui/omnibox/omnibox_pedal_implementations.cc
+@@ -1978,7 +1978,7 @@ const gfx::VectorIcon& GetSharingHubVect
+   return omnibox::kShareMacChromeRefreshIcon;
+ #elif BUILDFLAG(IS_WIN)
+   return omnibox::kShareWinChromeRefreshIcon;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return omnibox::kShareLinuxChromeRefreshIcon;
+ #else
+   return omnibox::kShareChromeRefreshIcon;
diff --git a/chromium/patches/patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc b/chromium/patches/patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc
new file mode 100644
index 0000000000..b1eb9425dd
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_passwords_bubble__controllers_relaunch__chrome__bubble__controller.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/passwords/bubble_controllers/relaunch_chrome_bubble_controller.cc.orig	2024-07-24 02:44:29.608100700 +0000
++++ chrome/browser/ui/passwords/bubble_controllers/relaunch_chrome_bubble_controller.cc
+@@ -44,7 +44,7 @@ std::u16string RelaunchChromeBubbleContr
+ #if BUILDFLAG(IS_MAC)
+           ? IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_TITLE_BRANDED
+           : IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_TITLE_NON_BRANDED
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+           ? IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_TITLE_LINUX_BRANDED
+           : IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_TITLE_LINUX_NON_BRANDED
+ #endif
+@@ -57,7 +57,7 @@ std::u16string RelaunchChromeBubbleContr
+ #if BUILDFLAG(IS_MAC)
+           ? IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_DESCRIPTION_BRANDED
+           : IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_DESCRIPTION_NON_BRANDED
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+           ? IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_DESCRIPTION_LINUX_BRANDED
+           : IDS_PASSWORD_MANAGER_RELAUNCH_CHROME_BUBBLE_DESCRIPTION_LINUX_NON_BRANDED
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc b/chromium/patches/patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc
new file mode 100644
index 0000000000..7f428317bf
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_passwords_manage__passwords__ui__controller.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/passwords/manage_passwords_ui_controller.cc.orig	2024-07-24 02:44:29.608100700 +0000
++++ chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
+@@ -97,7 +97,7 @@ namespace {
+ 
+ using Logger = autofill::SavePasswordProgressLogger;
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Should be kept in sync with constant declared in
+ // bubble_controllers/relaunch_chrome_bubble_controller.cc.
+ constexpr int kMaxNumberOfTimesKeychainErrorBubbleIsShown = 3;
+@@ -504,7 +504,7 @@ void ManagePasswordsUIController::OnBiom
+ }
+ 
+ void ManagePasswordsUIController::OnKeychainError() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   CHECK(!dialog_controller_);
+   PrefService* prefs =
+       Profile::FromBrowserContext(web_contents()->GetBrowserContext())
diff --git a/chromium/patches/patch-chrome_browser_ui_sad__tab.cc b/chromium/patches/patch-chrome_browser_ui_sad__tab.cc
index 2a0165150a..b9eea7b728 100644
--- a/chromium/patches/patch-chrome_browser_ui_sad__tab.cc
+++ b/chromium/patches/patch-chrome_browser_ui_sad__tab.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/ui/sad_tab.cc.orig	2020-07-08 21:40:35.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/sad_tab.cc.orig	2024-07-24 02:44:29.628102500 +0000
 +++ chrome/browser/ui/sad_tab.cc
-@@ -188,7 +188,7 @@ std::vector<int> SadTab::GetSubMessages(
+@@ -176,7 +176,7 @@ std::vector<int> SadTab::GetSubMessages(
        // Only show Incognito suggestion if not already in Incognito mode.
        if (!web_contents_->GetBrowserContext()->IsOffTheRecord())
          message_ids.insert(message_ids.begin(), IDS_SAD_TAB_RELOAD_INCOGNITO);
--#if defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
        // Note: on macOS, Linux and ChromeOS, the first bullet is either one of
        // IDS_SAD_TAB_RELOAD_CLOSE_TABS or IDS_SAD_TAB_RELOAD_CLOSE_NOTABS
        // followed by one of the above suggestions.
diff --git a/chromium/patches/patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h b/chromium/patches/patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h
new file mode 100644
index 0000000000..95a7d37947
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_sharing__hub_sharing__hub__bubble__controller.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/sharing_hub/sharing_hub_bubble_controller.h.orig	2024-07-24 02:44:29.640103800 +0000
++++ chrome/browser/ui/sharing_hub/sharing_hub_bubble_controller.h
+@@ -36,7 +36,7 @@ class SharingHubBubbleController {
+   // Returns true if the omnibox icon should be shown.
+   virtual bool ShouldOfferOmniboxIcon() = 0;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // This method returns the set of first-party actions, which are actions
+   // internal to Chrome. Third-party actions (those outside Chrome) are
+   // currently not supported.
diff --git a/chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller.cc b/chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller.cc
new file mode 100644
index 0000000000..6ed0abbf7a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/signin/signin_view_controller.cc.orig	2024-07-24 02:44:29.644104000 +0000
++++ chrome/browser/ui/signin/signin_view_controller.cc
+@@ -492,7 +492,7 @@ void SigninViewController::ShowModalMana
+     signin::SigninChoiceCallback process_user_choice_callback,
+     base::OnceClosure done_callback) {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   CloseModalSignin();
+   dialog_ = std::make_unique<SigninModalDialogImpl>(
+       SigninViewControllerDelegate::CreateManagedUserNoticeDelegate(
diff --git a/chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller__delegate.h b/chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller__delegate.h
new file mode 100644
index 0000000000..a3f7036c1a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_signin_signin__view__controller__delegate.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/signin/signin_view_controller_delegate.h.orig	2024-07-24 02:44:29.644104000 +0000
++++ chrome/browser/ui/signin/signin_view_controller_delegate.h
+@@ -83,7 +83,7 @@ class SigninViewControllerDelegate {
+ #endif  // BUILDFLAG(ENABLE_DICE_SUPPORT) || BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   // Returns a platform-specific SigninViewContolllerDelegate instance that
+   // displays the managed user notice modal dialog. The returned object
+   // should delete itself when the window it's managing is closed.
diff --git a/chromium/patches/patch-chrome_browser_ui_startup_bad__flags__prompt.cc b/chromium/patches/patch-chrome_browser_ui_startup_bad__flags__prompt.cc
index 98f7f83ab6..50e915f06e 100644
--- a/chromium/patches/patch-chrome_browser_ui_startup_bad__flags__prompt.cc
+++ b/chromium/patches/patch-chrome_browser_ui_startup_bad__flags__prompt.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/ui/startup/bad_flags_prompt.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/startup/bad_flags_prompt.cc.orig	2024-07-24 02:44:29.644104000 +0000
 +++ chrome/browser/ui/startup/bad_flags_prompt.cc
-@@ -88,7 +88,7 @@ static const char* kBadFlags[] = {
-     extensions::switches::kExtensionsOnChromeURLs,
- #endif
+@@ -107,7 +107,7 @@ const char* const kBadFlags[] = {
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
      // Speech dispatcher is buggy, it can crash and it can make Chrome freeze.
      // http://crbug.com/327295
      switches::kEnableSpeechDispatcher,
diff --git a/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc b/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc
index f462eb908c..fc8d1d6f1a 100644
--- a/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc
+++ b/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc
@@ -1,22 +1,44 @@
 $NetBSD$
 
---- chrome/browser/ui/startup/startup_browser_creator.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/startup/startup_browser_creator.cc.orig	2024-07-24 02:44:29.648104400 +0000
 +++ chrome/browser/ui/startup/startup_browser_creator.cc
-@@ -303,7 +303,7 @@ bool IsSilentLaunchEnabled(const base::C
- // true, send a warning if guest mode is requested but not allowed by policy.
- bool IsGuestModeEnforced(const base::CommandLine& command_line,
-                          bool show_warning) {
--#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD)
-   PrefService* service = g_browser_process->local_state();
-   DCHECK(service);
+@@ -137,7 +137,7 @@
+ #include "chrome/credential_provider/common/gcp_strings.h"
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/headless/headless_mode_util.h"
+ #include "chrome/browser/ui/startup/web_app_info_recorder_utils.h"
+ #include "components/headless/policy/headless_mode_policy.h"
+@@ -966,7 +966,7 @@ bool StartupBrowserCreator::ProcessCmdLi
+   TRACE_EVENT0("startup", "StartupBrowserCreator::ProcessCmdLineImpl");
+   ComputeAndRecordLaunchMode(command_line);
  
-@@ -687,7 +687,7 @@ bool StartupBrowserCreator::ProcessCmdLi
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   if (headless::IsHeadlessMode() &&
+       headless::HeadlessModePolicy::IsHeadlessModeDisabled(
+           g_browser_process->local_state())) {
+@@ -1079,7 +1079,7 @@ bool StartupBrowserCreator::ProcessCmdLi
+     silent_launch = true;
    }
- #endif  // OS_CHROMEOS
  
--#if defined(TOOLKIT_VIEWS) && defined(USE_X11)
-+#if defined(TOOLKIT_VIEWS) && defined(USE_X11) && !defined(OS_BSD)
-   // TODO(https://crbug.com/1097696): make it available on ozone/linux.
-   if (!features::IsUsingOzonePlatform())
-     ui::TouchFactory::SetTouchDeviceListFromCommandLine();
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   // Writes open and installed web apps to the specified file without
+   // launching a new browser window or tab.
+   if (base::FeatureList::IsEnabled(features::kListWebAppsSwitch) &&
+@@ -1289,7 +1289,7 @@ bool StartupBrowserCreator::ProcessCmdLi
+     CHECK_EQ(profile_info.mode, StartupProfileMode::kBrowserWindow)
+         << "Failed launch with app: couldn't pick a profile";
+     std::string app_id = command_line.GetSwitchValueASCII(switches::kAppId);
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     // If Chrome Apps are deprecated and |app_id| is a Chrome App, display the
+     // deprecation UI instead of launching the app.
+     if (apps::OpenDeprecatedApplicationPrompt(privacy_safe_profile, app_id))
diff --git a/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc b/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc
new file mode 100644
index 0000000000..7681e78e7f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_startup_startup__browser__creator__impl.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/startup/startup_browser_creator_impl.cc.orig	2024-07-24 02:44:29.652104900 +0000
++++ chrome/browser/ui/startup/startup_browser_creator_impl.cc
+@@ -86,7 +86,7 @@
+ #include "chromeos/startup/browser_params_proxy.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/whats_new/whats_new_fetcher.h"
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ 
+@@ -237,7 +237,7 @@ Browser* StartupBrowserCreatorImpl::Open
+     // at the state of the MessageLoop.
+     Browser::CreateParams params = Browser::CreateParams(profile_, false);
+     params.creation_source = Browser::CreationSource::kStartupCreator;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     params.startup_id =
+         command_line_->GetSwitchValueASCII("desktop-startup-id");
+ #endif
+@@ -267,7 +267,7 @@ Browser* StartupBrowserCreatorImpl::Open
+       continue;
+     }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     // Start the What's New fetch but don't add the tab at this point. The tab
+     // will open as the foreground tab only if the remote content can be
+     // retrieved successfully. This prevents needing to automatically close the
diff --git a/chromium/patches/patch-chrome_browser_ui_startup_startup__tab__provider.cc b/chromium/patches/patch-chrome_browser_ui_startup_startup__tab__provider.cc
new file mode 100644
index 0000000000..9ae188a634
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_startup_startup__tab__provider.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/startup/startup_tab_provider.cc.orig	2024-07-24 02:44:29.652104900 +0000
++++ chrome/browser/ui/startup/startup_tab_provider.cc
+@@ -61,7 +61,7 @@
+ #include "extensions/browser/extension_registry.h"
+ #endif  // !BUILDFLAG(IS_ANDROID)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/headless/headless_mode_util.h"
+ #endif
+ 
+@@ -105,7 +105,7 @@ bool ValidateUrl(const GURL& url) {
+ #if BUILDFLAG(IS_CHROMEOS_LACROS)
+   // In ChromeOS, allow any URL pattern that matches chrome:// scheme.
+   url_scheme_is_chrome = url.SchemeIs(content::kChromeUIScheme);
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   // In Headless mode, allow any URL pattern that matches chrome:// scheme if
+   // the user explicitly allowed it.
+   if (headless::IsHeadlessMode() && url.SchemeIs(content::kChromeUIScheme)) {
diff --git a/chromium/patches/patch-chrome_browser_ui_tab__helpers.cc b/chromium/patches/patch-chrome_browser_ui_tab__helpers.cc
index 9467bb7791..772ef40ca2 100644
--- a/chromium/patches/patch-chrome_browser_ui_tab__helpers.cc
+++ b/chromium/patches/patch-chrome_browser_ui_tab__helpers.cc
@@ -1,27 +1,32 @@
 $NetBSD$
 
---- chrome/browser/ui/tab_helpers.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/tab_helpers.cc.orig	2024-07-24 02:44:29.656105300 +0000
 +++ chrome/browser/ui/tab_helpers.cc
-@@ -142,7 +142,7 @@
- #include "chrome/browser/ui/app_list/search/cros_action_history/cros_action_recorder_tab_tracker.h"
+@@ -243,7 +243,7 @@
  #endif
  
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/ui/blocked_content/framebust_block_tab_helper.h"
+ #include "chrome/browser/ui/browser_finder.h"
  #include "chrome/browser/ui/hats/hats_helper.h"
- #endif
-@@ -385,11 +385,11 @@ void TabHelpers::AttachTabHelpers(WebCon
- #endif
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+@@ -721,12 +721,12 @@ void TabHelpers::AttachTabHelpers(WebCon
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
    metrics::DesktopSessionDurationObserver::CreateForWebContents(web_contents);
  #endif
  
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (base::FeatureList::IsEnabled(
-           features::kHappinessTrackingSurveysForDesktop) ||
-       base::FeatureList::IsEnabled(
+           features::kHappinessTrackingSurveysForDesktopDemo) ||
+       base::FeatureList::IsEnabled(features::kTrustSafetySentimentSurvey) ||
diff --git a/chromium/patches/patch-chrome_browser_ui_tabs_features.cc b/chromium/patches/patch-chrome_browser_ui_tabs_features.cc
new file mode 100644
index 0000000000..4e82cc86e2
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_tabs_features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/tabs/features.cc.orig	2024-07-24 02:44:29.660105700 +0000
++++ chrome/browser/ui/tabs/features.cc
+@@ -16,7 +16,7 @@ BASE_FEATURE(kTabSearchPositionSetting,
+ bool CanShowTabSearchPositionSetting() {
+ // Mac and other platforms will always have the tab search position in the
+ // correct location, cros/linux/win git the user the option to change.
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   return base::FeatureList::IsEnabled(kTabSearchPositionSetting);
+ #else
+   return false;
diff --git a/chromium/patches/patch-chrome_browser_ui_tabs_tab__strip__prefs.cc b/chromium/patches/patch-chrome_browser_ui_tabs_tab__strip__prefs.cc
new file mode 100644
index 0000000000..6849994455
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_tabs_tab__strip__prefs.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/tabs/tab_strip_prefs.cc.orig	2024-07-24 02:44:29.672106700 +0000
++++ chrome/browser/ui/tabs/tab_strip_prefs.cc
+@@ -20,7 +20,7 @@ namespace tabs {
+ 
+ bool GetDefaultTabSearchRightAligned() {
+   // These platforms are all left aligned, the others should be right.
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   return false;
+ #else
+   return true;
diff --git a/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__columns.cc b/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__columns.cc
index 31dbf5cc95..c1bdb51457 100644
--- a/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__columns.cc
+++ b/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__columns.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/ui/task_manager/task_manager_columns.cc.orig	2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/task_manager/task_manager_columns.cc.orig	2024-07-24 02:44:29.676107200 +0000
 +++ chrome/browser/ui/task_manager/task_manager_columns.cc
 @@ -93,7 +93,7 @@ const TableColumnData kColumns[] = {
-      base::size("100000") * kCharWidth, -1, true, false, false},
+      std::size("100000") * kCharWidth, -1, true, false, false},
  #endif
  
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
      {IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN, ui::TableColumn::RIGHT, -1, 0,
-      base::size("999") * kCharWidth, -1, true, false, false},
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
+      std::size("999") * kCharWidth, -1, true, false, false},
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc b/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc
index b278271f82..fa6dee1c7f 100644
--- a/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc
+++ b/chromium/patches/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- chrome/browser/ui/task_manager/task_manager_table_model.cc.orig	2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/task_manager/task_manager_table_model.cc.orig	2024-07-24 02:44:29.676107200 +0000
 +++ chrome/browser/ui/task_manager/task_manager_table_model.cc
-@@ -450,7 +450,7 @@ base::string16 TaskManagerTableModel::Ge
+@@ -454,7 +454,7 @@ std::u16string TaskManagerTableModel::Ge
            ? stringifier_->backgrounded_string()
            : stringifier_->foregrounded_string();
  
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
      case IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN: {
        const int fd_count = observed_task_manager()->GetOpenFdCount(tasks_[row]);
        return fd_count >= 0 ? base::FormatNumber(fd_count)
-@@ -616,7 +616,7 @@ int TaskManagerTableModel::CompareValues
+@@ -621,7 +621,7 @@ int TaskManagerTableModel::CompareValues
        return BooleanCompare(is_proc1_bg, is_proc2_bg);
      }
  
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
      case IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN: {
        const int proc1_fd_count =
            observed_task_manager()->GetOpenFdCount(tasks_[row1]);
-@@ -790,7 +790,7 @@ void TaskManagerTableModel::UpdateRefres
+@@ -806,7 +806,7 @@ void TaskManagerTableModel::UpdateRefres
        type = REFRESH_TYPE_KEEPALIVE_COUNT;
        break;
  
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
      case IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN:
        type = REFRESH_TYPE_FD_COUNT;
        break;
diff --git a/chromium/patches/patch-chrome_browser_ui_test_popup__browsertest.cc b/chromium/patches/patch-chrome_browser_ui_test_popup__browsertest.cc
new file mode 100644
index 0000000000..7bc6a9436e
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_test_popup__browsertest.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/test/popup_browsertest.cc.orig	2024-07-24 02:44:29.676107200 +0000
++++ chrome/browser/ui/test/popup_browsertest.cc
+@@ -74,7 +74,7 @@ IN_PROC_BROWSER_TEST_F(PopupTest, OpenLe
+   const display::Display display = GetDisplayNearestBrowser(popup);
+   gfx::Rect expected(popup->window()->GetBounds().size());
+   expected.AdjustToFit(display.work_area());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // TODO(crbug.com/40815883) Desktop Linux window bounds are inaccurate.
+   expected.Outset(50);
+   EXPECT_TRUE(expected.Contains(popup->window()->GetBounds()))
+@@ -106,7 +106,7 @@ IN_PROC_BROWSER_TEST_F(PopupTest, OpenCl
+     // The popup should be constrained to the opener's available display space.
+     EXPECT_EQ(display, GetDisplayNearestBrowser(popup));
+     gfx::Rect work_area(display.work_area());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     // TODO(crbug.com/40815883) Desktop Linux bounds flakily extend outside the
+     // work area on trybots, when opening with excessive width and height, e.g.:
+     // width=${screen.availWidth+300},height=${screen.availHeight+300} yields:
diff --git a/chromium/patches/patch-chrome_browser_ui_test_test__browser__ui.cc b/chromium/patches/patch-chrome_browser_ui_test_test__browser__ui.cc
new file mode 100644
index 0000000000..bbeea6fc5b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_test_test__browser__ui.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/test/test_browser_ui.cc.orig	2024-07-24 02:44:29.676107200 +0000
++++ chrome/browser/ui/test/test_browser_ui.cc
+@@ -22,7 +22,7 @@
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \
+     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
+ #include "content/public/common/content_switches.h"
+ #include "ui/base/test/skia_gold_matching_algorithm.h"
+@@ -39,7 +39,7 @@
+ // TODO(crbug.com/40625383) support Mac for pixel tests.
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+ #define SUPPORTS_PIXEL_TEST
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_browser_ui_ui__features.cc b/chromium/patches/patch-chrome_browser_ui_ui__features.cc
new file mode 100644
index 0000000000..ec3f47dc48
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_ui__features.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/ui_features.cc.orig	2024-07-24 02:44:29.688108400 +0000
++++ chrome/browser/ui/ui_features.cc
+@@ -120,7 +120,7 @@ BASE_FEATURE(kEvDetailsInPageInfo,
+              "EvDetailsInPageInfo",
+              base::FEATURE_ENABLED_BY_DEFAULT);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enables the feature to remove the last confirmation dialog when relaunching
+ // to update Chrome.
+ BASE_FEATURE(kFewerUpdateConfirmations,
+@@ -426,7 +426,7 @@ BASE_FEATURE(kTopChromeWebUIUsesSpareRen
+              "TopChromeWebUIUsesSpareRenderer",
+              base::FEATURE_ENABLED_BY_DEFAULT);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enables alternate update-related text to be displayed in browser app menu
+ // button, menu item and confirmation dialog.
+ BASE_FEATURE(kUpdateTextOptions,
diff --git a/chromium/patches/patch-chrome_browser_ui_ui__features.h b/chromium/patches/patch-chrome_browser_ui_ui__features.h
new file mode 100644
index 0000000000..e8da93a3b7
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_ui__features.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/ui_features.h.orig	2024-07-24 02:44:29.688108400 +0000
++++ chrome/browser/ui/ui_features.h
+@@ -85,7 +85,7 @@ BASE_DECLARE_FEATURE(kAccessCodeCastUI);
+ 
+ BASE_DECLARE_FEATURE(kEvDetailsInPageInfo);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kFewerUpdateConfirmations);
+ #endif
+ 
+@@ -256,7 +256,7 @@ bool IsToolbarPinningEnabled();
+ 
+ BASE_DECLARE_FEATURE(kTopChromeWebUIUsesSpareRenderer);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kUpdateTextOptions);
+ extern const base::FeatureParam<int> kUpdateTextOptionNumber;
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_views_accelerator__table.cc b/chromium/patches/patch-chrome_browser_ui_views_accelerator__table.cc
index 1b54f5629e..af6aa2a9f8 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_accelerator__table.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_accelerator__table.cc
@@ -1,31 +1,49 @@
 $NetBSD$
 
---- chrome/browser/ui/views/accelerator_table.cc.orig	2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/accelerator_table.cc.orig	2024-07-24 02:44:29.692108600 +0000
 +++ chrome/browser/ui/views/accelerator_table.cc
-@@ -52,7 +52,7 @@ const AcceleratorMapping kAcceleratorMap
+@@ -72,11 +72,11 @@ const AcceleratorMapping kAcceleratorMap
      {ui::VKEY_S, ui::EF_PLATFORM_ACCELERATOR, IDC_SAVE_PAGE},
      {ui::VKEY_9, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_LAST_TAB},
      {ui::VKEY_NUMPAD9, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_LAST_TAB},
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
      {ui::VKEY_9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB},
      {ui::VKEY_NUMPAD9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB},
+ #endif  // BUILDFLAG(IS_LINUX)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
      {ui::VKEY_NEXT, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, IDC_MOVE_TAB_NEXT},
-@@ -82,7 +82,7 @@ const AcceleratorMapping kAcceleratorMap
+     {ui::VKEY_PRIOR, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
+      IDC_MOVE_TAB_PREVIOUS},
+@@ -104,7 +104,7 @@ const AcceleratorMapping kAcceleratorMap
      {ui::VKEY_NUMPAD7, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_TAB_6},
      {ui::VKEY_8, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_TAB_7},
      {ui::VKEY_NUMPAD8, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_TAB_7},
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
      {ui::VKEY_1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0},
      {ui::VKEY_NUMPAD1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0},
      {ui::VKEY_2, ui::EF_ALT_DOWN, IDC_SELECT_TAB_1},
-@@ -126,7 +126,7 @@ const AcceleratorMapping kAcceleratorMap
+@@ -154,7 +154,7 @@ const AcceleratorMapping kAcceleratorMap
       IDC_SHOW_AVATAR_MENU},
  
-   // Platform-specific key maps.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ // Platform-specific key maps.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      {ui::VKEY_BROWSER_BACK, ui::EF_NONE, IDC_BACK},
      {ui::VKEY_BROWSER_FORWARD, ui::EF_NONE, IDC_FORWARD},
      {ui::VKEY_BROWSER_HOME, ui::EF_NONE, IDC_HOME},
+@@ -249,7 +249,7 @@ const AcceleratorMapping kAcceleratorMap
+ #endif  // !BUILDFLAG(IS_CHROMEOS)
+ #endif  // !BUILDFLAG(IS_MAC)
+ #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) && \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+     {ui::VKEY_S, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
+      IDC_CONTENT_CONTEXT_RUN_LAYOUT_EXTRACTION},
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc b/chromium/patches/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc
new file mode 100644
index 0000000000..935fefd036
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc.orig	2024-07-24 02:44:29.696109000 +0000
++++ chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc
+@@ -19,7 +19,7 @@
+ #include "ui/gfx/image/image_skia.h"
+ #include "ui/views/widget/widget.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/shell_integration_linux.h"
+ #endif
+ 
+@@ -55,7 +55,7 @@ void ChromeNativeAppWindowViewsAura::OnB
+     const AppWindow::CreateParams& create_params,
+     views::Widget::InitParams* init_params,
+     views::Widget* widget) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   std::string app_name =
+       web_app::GenerateApplicationNameFromAppId(app_window()->extension_id());
+   // Set up a custom WM_CLASS for app windows. This allows task switchers in
diff --git a/chromium/patches/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc b/chromium/patches/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc
index 684da9e64a..1cfe8ce953 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc.orig	2024-07-24 02:44:29.728112200 +0000
 +++ chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
-@@ -32,7 +32,7 @@
+@@ -38,7 +38,7 @@
  #include "ui/wm/core/wm_state.h"
  #endif  // defined(USE_AURA)
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
  #include <sys/stat.h>
  #include <sys/types.h>
  #include <unistd.h>
-@@ -99,7 +99,7 @@ void ChromeBrowserMainExtraPartsViews::P
-         devtools_server_->tracing_agent());
-   }
+@@ -131,7 +131,7 @@ void ChromeBrowserMainExtraPartsViews::P
+         return controller;
+       }));
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    // On the Linux desktop, we want to prevent the user from logging in as root,
    // so that we don't destroy the profile. Now that we have some minimal ui
    // initialized, check to see if we're running as root and bail if we are.
diff --git a/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h b/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h
index 3927136d60..304ec85ffe 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h
+++ b/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h
@@ -1,13 +1,22 @@
 $NetBSD$
 
---- chrome/browser/ui/views/chrome_views_delegate.h.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/chrome_views_delegate.h.orig	2024-07-24 02:44:29.728112200 +0000
 +++ chrome/browser/ui/views/chrome_views_delegate.h
-@@ -44,7 +44,7 @@ class ChromeViewsDelegate : public views
-   HICON GetSmallWindowIcon() const override;
-   int GetAppbarAutohideEdges(HMONITOR monitor,
+@@ -59,11 +59,11 @@ class ChromeViewsDelegate : public views
                               base::OnceClosure callback) override;
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   gfx::ImageSkia* GetDefaultWindowIcon() const override;
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    bool WindowManagerProvidesTitleBar(bool maximized) override;
  #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   gfx::ImageSkia* GetDefaultWindowIcon() const override;
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc b/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc
new file mode 100644
index 0000000000..e1df7d7823
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_chrome__views__delegate__linux.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/chrome_views_delegate_linux.cc.orig	2024-07-24 02:44:29.728112200 +0000
++++ chrome/browser/ui/views/chrome_views_delegate_linux.cc
+@@ -26,7 +26,7 @@ bool IsDesktopEnvironmentUnity() {
+   return desktop_env == base::nix::DESKTOP_ENVIRONMENT_UNITY;
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ int GetWindowIconResourceId() {
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+   switch (chrome::GetChannel()) {
+@@ -80,7 +80,7 @@ views::NativeWidget* ChromeViewsDelegate
+                               delegate);
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ gfx::ImageSkia* ChromeViewsDelegate::GetDefaultWindowIcon() const {
+   ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
+   return rb.GetImageSkiaNamed(GetWindowIconResourceId());
diff --git a/chromium/patches/patch-chrome_browser_ui_views_compose_compose__dialog__view.cc b/chromium/patches/patch-chrome_browser_ui_views_compose_compose__dialog__view.cc
new file mode 100644
index 0000000000..a38f7275d8
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_compose_compose__dialog__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/compose/compose_dialog_view.cc.orig	2024-07-24 02:44:29.732112600 +0000
++++ chrome/browser/ui/views/compose/compose_dialog_view.cc
+@@ -159,7 +159,7 @@ void ComposeDialogView::OnBeforeBubbleWi
+     views::Widget::InitParams* params,
+     views::Widget* widget) const {
+   WebUIBubbleDialogView::OnBeforeBubbleWidgetInit(params, widget);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // In linux, windows may be clipped to their anchors' bounds,
+   // resulting in visual errors, unless they use accelerated rendering. See
+   // crbug.com/1445770 for details.
diff --git a/chromium/patches/patch-chrome_browser_ui_views_download_download__item__view.cc b/chromium/patches/patch-chrome_browser_ui_views_download_download__item__view.cc
deleted file mode 100644
index 94c6229618..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_views_download_download__item__view.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/views/download/download_item_view.cc.orig	2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/ui/views/download/download_item_view.cc
-@@ -207,7 +207,7 @@ class TransparentButton : public views::
- };
- 
- int GetFilenameStyle(const views::StyledLabel& label) {
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
-   if (base::FeatureList::IsEnabled(safe_browsing::kUseNewDownloadWarnings))
-     return STYLE_EMPHASIZED;
- #endif
-@@ -276,7 +276,7 @@ DownloadItemView::DownloadItemView(Downl
-   open_button_ = AddChildView(std::move(open_button));
- 
-   int file_name_style = views::style::STYLE_PRIMARY;
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
-   if (base::FeatureList::IsEnabled(safe_browsing::kUseNewDownloadWarnings))
-     file_name_style = STYLE_EMPHASIZED;
- #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_views_first__run__dialog.cc b/chromium/patches/patch-chrome_browser_ui_views_first__run__dialog.cc
deleted file mode 100644
index 0e6712cf3a..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_views_first__run__dialog.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/views/first_run_dialog.cc.orig	2020-07-08 21:41:47.000000000 +0000
-+++ chrome/browser/ui/views/first_run_dialog.cc
-@@ -114,8 +114,10 @@ void FirstRunDialog::Done() {
- bool FirstRunDialog::Accept() {
-   GetWidget()->Hide();
- 
-+#if !defined(OS_BSD)
-   ChangeMetricsReportingStateWithReply(report_crashes_->GetChecked(),
-                                        base::Bind(&InitCrashReporterIfEnabled));
-+#endif
- 
-   if (make_default_->GetChecked())
-     shell_integration::SetAsDefaultBrowser();
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc
index f11c8cf731..f5f44d7f36 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc
@@ -1,30 +1,62 @@
 $NetBSD$
 
---- chrome/browser/ui/views/frame/browser_frame.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_frame.cc.orig	2024-07-24 02:44:29.772116400 +0000
 +++ chrome/browser/ui/views/frame/browser_frame.cc
-@@ -38,14 +38,14 @@
+@@ -54,7 +54,7 @@
  #include "components/user_manager/user_manager.h"
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
  #include "ui/display/screen.h"
+ #include "ui/linux/linux_ui.h"
  #endif
+@@ -89,7 +89,7 @@ class ThemeChangedObserver : public view
+ };
  
- namespace {
- 
- bool IsUsingGtkTheme(Profile* profile) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ bool IsUsingLinuxSystemTheme(Profile* profile) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    return ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme();
  #else
    return false;
-@@ -218,7 +218,7 @@ const ui::NativeTheme* BrowserFrame::Get
+@@ -184,7 +184,7 @@ void BrowserFrame::InitBrowserFrame() {
+ 
+   Init(std::move(params));
  
- void BrowserFrame::OnNativeWidgetWorkspaceChanged() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   SelectNativeTheme();
+ #else
+   SetNativeTheme(ui::NativeTheme::GetInstanceForNativeUi());
+@@ -370,7 +370,7 @@ void BrowserFrame::OnNativeWidgetWorkspa
    chrome::SaveWindowWorkspace(browser_view_->browser(), GetWorkspace());
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+   chrome::SaveWindowVisibleOnAllWorkspaces(browser_view_->browser(),
+                                            IsVisibleOnAllWorkspaces());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    // If the window was sent to a different workspace, prioritize it if
    // it was sent to the current workspace and deprioritize it
    // otherwise.  This is done by MoveBrowsersInWorkspaceToFront()
+@@ -563,7 +563,7 @@ void BrowserFrame::OnMenuClosed() {
+ }
+ 
+ void BrowserFrame::SelectNativeTheme() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Use the regular NativeTheme instance if running incognito mode, regardless
+   // of system theme (gtk, qt etc).
+   ui::NativeTheme* native_theme = ui::NativeTheme::GetInstanceForNativeUi();
+@@ -604,7 +604,7 @@ void BrowserFrame::OnTouchUiChanged() {
+ bool BrowserFrame::RegenerateFrameOnThemeChange(
+     BrowserThemeChangeType theme_change_type) {
+   bool need_regenerate = false;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // System and user theme changes can both change frame buttons, so the frame
+   // always needs to be regenerated on Linux.
+   need_regenerate = true;
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.h b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.h
new file mode 100644
index 0000000000..52bee0d889
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_frame.h.orig	2024-07-24 02:44:29.772116400 +0000
++++ chrome/browser/ui/views/frame/browser_frame.h
+@@ -65,7 +65,7 @@ class BrowserFrame : public views::Widge
+ 
+   ~BrowserFrame() override;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Returns whether the frame is in a tiled state.
+   bool tiled() const { return tiled_; }
+   void set_tiled(bool tiled) { tiled_ = tiled; }
+@@ -225,7 +225,7 @@ class BrowserFrame : public views::Widge
+   // contents for smoother dragging.
+   TabDragKind tab_drag_kind_ = TabDragKind::kNone;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   bool tiled_ = false;
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc
new file mode 100644
index 0000000000..af99a227dc
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_frame_view_layout_linux.cc.orig	2024-07-24 02:44:29.772116400 +0000
++++ chrome/browser/ui/views/frame/browser_frame_view_layout_linux.cc
+@@ -53,7 +53,7 @@ gfx::Insets BrowserFrameViewLayoutLinux:
+         OpaqueBrowserFrameViewLayout::RestoredFrameBorderInsets());
+   }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   const bool tiled = delegate_->IsTiled();
+ #else
+   const bool tiled = false;
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc
new file mode 100644
index 0000000000..3be33c54ad
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__layout__linux__native.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_frame_view_layout_linux_native.cc.orig	2024-07-24 02:44:29.776116800 +0000
++++ chrome/browser/ui/views/frame/browser_frame_view_layout_linux_native.cc
+@@ -18,7 +18,7 @@ BrowserFrameViewLayoutLinuxNative::~Brow
+ 
+ ui::WindowFrameProvider* BrowserFrameViewLayoutLinuxNative::GetFrameProvider()
+     const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   const bool tiled = delegate_->IsTiled();
+ #else
+   const bool tiled = false;
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc
new file mode 100644
index 0000000000..0dafeffc79
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__frame__view__linux.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_frame_view_linux.cc.orig	2024-07-24 02:44:29.776116800 +0000
++++ chrome/browser/ui/views/frame/browser_frame_view_linux.cc
+@@ -60,7 +60,7 @@ gfx::ShadowValues BrowserFrameViewLinux:
+ 
+ void BrowserFrameViewLinux::PaintRestoredFrameBorder(
+     gfx::Canvas* canvas) const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   const bool tiled = frame()->tiled();
+ #else
+   const bool tiled = false;
+@@ -104,7 +104,7 @@ void BrowserFrameViewLinux::OnWindowButt
+ }
+ 
+ float BrowserFrameViewLinux::GetRestoredCornerRadiusDip() const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   const bool tiled = frame()->tiled();
+ #else
+   const bool tiled = false;
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc
new file mode 100644
index 0000000000..f591deb5a9
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc.orig	2024-07-24 02:44:29.776116800 +0000
++++ chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc
+@@ -16,7 +16,7 @@
+ #include "chrome/browser/ui/views/frame/browser_frame_view_win.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/views/frame/browser_frame_view_layout_linux.h"
+ #include "chrome/browser/ui/views/frame/browser_frame_view_layout_linux_native.h"
+ #include "chrome/browser/ui/views/frame/browser_frame_view_linux_native.h"
+@@ -33,7 +33,7 @@ namespace {
+ std::unique_ptr<OpaqueBrowserFrameView> CreateOpaqueBrowserFrameView(
+     BrowserFrame* frame,
+     BrowserView* browser_view) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   auto* profile = browser_view->browser()->profile();
+   auto* linux_ui_theme = ui::LinuxUiTheme::GetForProfile(profile);
+   auto* theme_service_factory = ThemeServiceFactory::GetForProfile(profile);
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__view.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__view.cc
index b3ba93705d..b17bf2cde6 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_frame_browser__view.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_browser__view.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/ui/views/frame/browser_view.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/browser_view.cc.orig	2024-07-24 02:44:29.780117300 +0000
 +++ chrome/browser/ui/views/frame/browser_view.cc
-@@ -1766,7 +1766,7 @@ void BrowserView::UserChangedTheme(Brows
-   const bool should_use_native_frame = frame_->ShouldUseNativeFrame();
- 
-   bool must_regenerate_frame;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   // GTK and user theme changes can both change frame buttons, so the frame
-   // always needs to be regenerated on Linux.
-   must_regenerate_frame = true;
+@@ -2240,7 +2240,7 @@ void BrowserView::TabDraggingStatusChang
+   // CrOS cleanup is done.
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+   contents_web_view_->SetFastResize(is_dragging);
+   if (!is_dragging) {
+     // When tab dragging is ended, we need to make sure the web contents get
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc
index 2e8c57483d..fd06483406 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc
@@ -1,31 +1,44 @@
 $NetBSD$
 
---- chrome/browser/ui/views/frame/opaque_browser_frame_view.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/opaque_browser_frame_view.cc.orig	2024-07-24 02:44:29.788118100 +0000
 +++ chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
-@@ -48,7 +48,7 @@
+@@ -54,7 +54,7 @@
  #include "ui/views/window/vector_icons/vector_icons.h"
  #include "ui/views/window/window_shape.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "ui/views/controls/menu/menu_runner.h"
  #endif
  
-@@ -349,7 +349,7 @@ void OpaqueBrowserFrameView::ButtonPress
-   } else if (sender == close_button_) {
-     frame()->CloseWithReason(views::Widget::ClosedReason::kCloseButtonClicked);
-   } else if (sender == window_icon_) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     // TODO(pbos): Figure out / document why this is Linux only. This needs a
-     // comment.
-     views::MenuRunner menu_runner(frame()->GetSystemMenuModel(),
-@@ -478,7 +478,7 @@ bool OpaqueBrowserFrameView::EverHasVisi
- 
- OpaqueBrowserFrameView::FrameButtonStyle
+@@ -564,7 +564,7 @@ OpaqueBrowserFrameView::FrameButtonStyle
  OpaqueBrowserFrameView::GetFrameButtonStyle() const {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    return FrameButtonStyle::kMdButton;
  #else
    return FrameButtonStyle::kImageButton;
+@@ -583,7 +583,7 @@ bool OpaqueBrowserFrameView::ShouldDrawR
+   return false;
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool OpaqueBrowserFrameView::IsTiled() const {
+   return frame()->tiled();
+ }
+@@ -782,7 +782,7 @@ gfx::Rect OpaqueBrowserFrameView::GetIco
+ }
+ 
+ void OpaqueBrowserFrameView::WindowIconPressed() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Chrome OS doesn't show the window icon, and Windows handles this on its own
+   // due to the hit test being HTSYSMENU.
+   menu_runner_ = std::make_unique<views::MenuRunner>(
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h
new file mode 100644
index 0000000000..d9b9f624d8
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/opaque_browser_frame_view.h.orig	2024-07-24 02:44:29.788118100 +0000
++++ chrome/browser/ui/views/frame/opaque_browser_frame_view.h
+@@ -115,7 +115,7 @@ class OpaqueBrowserFrameView : public Br
+   void UpdateWindowControlsOverlay(
+       const gfx::Rect& bounding_rect) const override;
+   bool ShouldDrawRestoredFrameShadow() const override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   bool IsTiled() const override;
+ #endif
+   int WebAppButtonHeight() const override;
+@@ -232,7 +232,7 @@ class OpaqueBrowserFrameView : public Br
+   // Background painter for the window frame.
+   std::unique_ptr<views::FrameBackground> frame_background_;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   std::unique_ptr<views::MenuRunner> menu_runner_;
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h
new file mode 100644
index 0000000000..e60c14b813
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout__delegate.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/opaque_browser_frame_view_layout_delegate.h.orig	2024-07-24 02:44:29.788118100 +0000
++++ chrome/browser/ui/views/frame/opaque_browser_frame_view_layout_delegate.h
+@@ -10,7 +10,7 @@
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ #include "ui/base/ui_base_types.h"
+ #endif
+ 
+@@ -94,7 +94,7 @@ class OpaqueBrowserFrameViewLayoutDelega
+   // Returns true if a client-side shadow should be drawn for restored windows.
+   virtual bool ShouldDrawRestoredFrameShadow() const = 0;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Returns whether the window is in a tiled state.
+   virtual bool IsTiled() const = 0;
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc
deleted file mode 100644
index 2ef4abe2fe..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.cc.orig	2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.cc
-@@ -6,7 +6,7 @@
- 
- #include "build/build_config.h"
- 
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
- 
- // static
- std::unique_ptr<OpaqueBrowserFrameViewPlatformSpecific>
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc
new file mode 100644
index 0000000000..a649dfee37
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.cc
@@ -0,0 +1,98 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc.orig	2024-07-24 02:44:29.788118100 +0000
++++ chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc
+@@ -58,7 +58,7 @@
+ #include "ui/aura/window.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/themes/theme_service.h"
+ #include "chrome/browser/themes/theme_service_factory.h"
+ #include "chrome/browser/ui/views/frame/browser_frame_view_paint_utils_linux.h"
+@@ -90,7 +90,7 @@ constexpr int kContentSettingIconSize = 
+ // The height of the controls bar at the top of the window.
+ constexpr int kTopControlsHeight = 34;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Frame border when window shadow is not drawn.
+ constexpr int kFrameBorderThickness = 4;
+ #endif
+@@ -182,7 +182,7 @@ class WindowEventObserver : public ui::E
+ 
+     gfx::Rect input_bounds = pip_browser_frame_view_->GetLocalBounds();
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     // Calculate input bounds for Linux. This is needed because the input bounds
+     // is not necessary the same as the local bounds on Linux.
+     if (pip_browser_frame_view_->ShouldDrawFrameShadow()) {
+@@ -578,7 +578,7 @@ PictureInPictureBrowserFrameView::Pictur
+         AddChildView(std::move(auto_pip_setting_overlay));
+   }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   auto* profile = browser_view->browser()->profile();
+   auto* linux_ui_theme = ui::LinuxUiTheme::GetForProfile(profile);
+   auto* theme_service_factory = ThemeServiceFactory::GetForProfile(profile);
+@@ -800,7 +800,7 @@ void PictureInPictureBrowserFrameView::O
+   for (ContentSettingImageView* view : content_setting_views_)
+     view->SetIconColor(color_provider->GetColor(kColorPipWindowForeground));
+ 
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+   // On Linux the top bar background will be drawn in OnPaint().
+   top_bar_container_view_->SetBackground(views::CreateSolidBackground(
+       color_provider->GetColor(kColorPipWindowTopBarBackground)));
+@@ -882,7 +882,7 @@ void PictureInPictureBrowserFrameView::R
+   BrowserNonClientFrameView::RemovedFromWidget();
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ gfx::Insets PictureInPictureBrowserFrameView::MirroredFrameBorderInsets()
+     const {
+   auto border = FrameBorderInsets();
+@@ -1138,7 +1138,7 @@ void PictureInPictureBrowserFrameView::A
+ // views::View implementations:
+ 
+ void PictureInPictureBrowserFrameView::OnPaint(gfx::Canvas* canvas) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Draw the PiP window frame borders and shadows, including the top bar
+   // background.
+   if (window_frame_provider_) {
+@@ -1272,7 +1272,7 @@ void PictureInPictureBrowserFrameView::U
+ }
+ 
+ gfx::Insets PictureInPictureBrowserFrameView::FrameBorderInsets() const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (window_frame_provider_) {
+     const auto insets = window_frame_provider_->GetFrameThicknessDip();
+     const bool tiled = frame()->tiled();
+@@ -1290,7 +1290,7 @@ gfx::Insets PictureInPictureBrowserFrame
+ }
+ 
+ gfx::Insets PictureInPictureBrowserFrameView::ResizeBorderInsets() const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return FrameBorderInsets();
+ #elif !BUILDFLAG(IS_CHROMEOS_ASH)
+   return gfx::Insets(kResizeBorder);
+@@ -1311,7 +1311,7 @@ gfx::Size PictureInPictureBrowserFrameVi
+                    top_height + border_thickness.bottom());
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool PictureInPictureBrowserFrameView::ShouldDrawFrameShadow() const {
+   return static_cast<DesktopBrowserFrameAuraLinux*>(
+              frame()->native_browser_frame())
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h b/chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h
new file mode 100644
index 0000000000..4433849541
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_picture__in__picture__browser__frame__view.h
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.h.orig	2024-07-24 02:44:29.788118100 +0000
++++ chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.h
+@@ -27,7 +27,7 @@
+ #include "ui/views/layout/flex_layout_view.h"
+ #include "ui/views/widget/widget_observer.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/window_frame_provider.h"
+ #endif
+ 
+@@ -35,7 +35,7 @@
+ // parent window, so to prevent cutting off important dialogs we resize the
+ // picture-in-picture window to fit them. While ChromeOS Ash also uses Aura, it
+ // does not have this issue so we do not resize on ChromeOS Ash.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ #define RESIZE_DOCUMENT_PICTURE_IN_PICTURE_TO_DIALOG 1
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+         // BUILDFLAG(IS_CHROMEOS_LACROS)
+@@ -101,7 +101,7 @@ class PictureInPictureBrowserFrameView
+   void Layout(PassKey) override;
+   void AddedToWidget() override;
+   void RemovedFromWidget() override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   gfx::Insets MirroredFrameBorderInsets() const override;
+   gfx::Insets GetInputInsets() const override;
+   SkRRect GetRestoredClipRegion() const override;
+@@ -192,7 +192,7 @@ class PictureInPictureBrowserFrameView
+   // Returns true if there's an overlay view that's currently shown.
+   bool IsOverlayViewVisible() const;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Returns whether a client-side shadow should be drawn for the window.
+   bool ShouldDrawFrameShadow() const;
+ 
+@@ -368,7 +368,7 @@ class PictureInPictureBrowserFrameView
+   // `top_bar_color_animation_`.
+   std::optional<SkColor> current_foreground_color_;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Used to draw window frame borders and shadow on Linux when GTK theme is
+   // enabled.
+   raw_ptr<ui::WindowFrameProvider> window_frame_provider_ = nullptr;
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc
index 607118308d..b5c34f03bc 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- chrome/browser/ui/views/frame/system_menu_model_builder.cc.orig	2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/system_menu_model_builder.cc.orig	2024-07-24 02:44:29.788118100 +0000
 +++ chrome/browser/ui/views/frame/system_menu_model_builder.cc
-@@ -62,7 +62,7 @@ void SystemMenuModelBuilder::BuildMenu(u
- 
- void SystemMenuModelBuilder::BuildSystemMenuForBrowserWindow(
+@@ -75,7 +75,7 @@ void SystemMenuModelBuilder::BuildSystem
      ui::SimpleMenuModel* model) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS)
    model->AddItemWithStringId(IDC_MINIMIZE_WINDOW, IDS_MINIMIZE_WINDOW_MENU);
    model->AddItemWithStringId(IDC_MAXIMIZE_WINDOW, IDS_MAXIMIZE_WINDOW_MENU);
    model->AddItemWithStringId(IDC_RESTORE_WINDOW, IDS_RESTORE_WINDOW_MENU);
-@@ -75,7 +75,7 @@ void SystemMenuModelBuilder::BuildSystem
-     model->AddSeparator(ui::NORMAL_SEPARATOR);
-     model->AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
+@@ -91,7 +91,7 @@ void SystemMenuModelBuilder::BuildSystem
    }
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS)
    model->AddSeparator(ui::NORMAL_SEPARATOR);
-   model->AddCheckItemWithStringId(IDC_USE_SYSTEM_TITLE_BAR,
-                                   IDS_SHOW_WINDOW_DECORATIONS_MENU);
-@@ -113,7 +113,7 @@ void SystemMenuModelBuilder::BuildSystem
+   bool supports_server_side_decorations = true;
+ #if BUILDFLAG(IS_OZONE) && !BUILDFLAG(IS_CHROMEOS)
+@@ -147,7 +147,7 @@ void SystemMenuModelBuilder::BuildSystem
      model->AddSeparator(ui::NORMAL_SEPARATOR);
      model->AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
    }
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    model->AddSeparator(ui::NORMAL_SEPARATOR);
    model->AddItemWithStringId(IDC_CLOSE_WINDOW, IDS_CLOSE);
  #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc
index a2683d605d..e906e3f26c 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- chrome/browser/ui/views/frame/system_menu_model_delegate.cc.orig	2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/system_menu_model_delegate.cc.orig	2024-07-24 02:44:29.788118100 +0000
 +++ chrome/browser/ui/views/frame/system_menu_model_delegate.cc
-@@ -15,7 +15,7 @@
- #include "components/sessions/core/tab_restore_service.h"
- #include "ui/base/l10n/l10n_util.h"
+@@ -21,7 +21,7 @@
+ #include "chromeos/ui/frame/desks/move_to_desks_menu_model.h"
+ #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
  #include "chrome/common/pref_names.h"
  #include "components/prefs/pref_service.h"
  #endif
-@@ -30,7 +30,7 @@ SystemMenuModelDelegate::SystemMenuModel
+@@ -36,7 +36,7 @@ SystemMenuModelDelegate::SystemMenuModel
  SystemMenuModelDelegate::~SystemMenuModelDelegate() {}
  
  bool SystemMenuModelDelegate::IsCommandIdChecked(int command_id) const {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    if (command_id == IDC_USE_SYSTEM_TITLE_BAR) {
      PrefService* prefs = browser_->profile()->GetPrefs();
      return !prefs->GetBoolean(prefs::kUseCustomChromeFrame);
-@@ -44,7 +44,7 @@ bool SystemMenuModelDelegate::IsCommandI
- }
- 
+@@ -58,7 +58,7 @@ bool SystemMenuModelDelegate::IsCommandI
  bool SystemMenuModelDelegate::IsCommandIdVisible(int command_id) const {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    bool is_maximized = browser_->window()->IsMaximized();
    switch (command_id) {
      case IDC_MAXIMIZE_WINDOW:
diff --git a/chromium/patches/patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc b/chromium/patches/patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc
new file mode 100644
index 0000000000..cb0f81a064
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_frame_tab__strip__region__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/frame/tab_strip_region_view.cc.orig	2024-07-24 02:44:29.788118100 +0000
++++ chrome/browser/ui/views/frame/tab_strip_region_view.cc
+@@ -200,7 +200,7 @@ TabStripRegionView::TabStripRegionView(s
+ 
+     // TODO(crbug.com/40118868): Revisit the macro expression once build flag
+     // switch of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+     // The New Tab Button can be middle-clicked on Linux.
+     new_tab_button_->SetTriggerableEventFlags(
+         new_tab_button_->GetTriggerableEventFlags() |
diff --git a/chromium/patches/patch-chrome_browser_ui_views_hung__renderer__view.cc b/chromium/patches/patch-chrome_browser_ui_views_hung__renderer__view.cc
index 4485fc87ff..668ff4b613 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_hung__renderer__view.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_hung__renderer__view.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/ui/views/hung_renderer_view.cc.orig	2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/hung_renderer_view.cc.orig	2024-07-24 02:44:29.796118700 +0000
 +++ chrome/browser/ui/views/hung_renderer_view.cc
-@@ -425,7 +425,7 @@ void HungRendererDialogView::ForceCrashH
+@@ -406,7 +406,7 @@ void HungRendererDialogView::ForceCrashH
    content::RenderProcessHost* rph =
        hung_pages_table_model_->GetRenderWidgetHost()->GetProcess();
    if (rph) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      // A generic |CrashDumpHungChildProcess()| is not implemented for Linux.
      // Instead we send an explicit IPC to crash on the renderer's IO thread.
      rph->ForceCrash();
diff --git a/chromium/patches/patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc b/chromium/patches/patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc
new file mode 100644
index 0000000000..09ba9f416d
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_omnibox_omnibox__view__views.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/omnibox/omnibox_view_views.cc.orig	2024-07-24 02:44:29.824121500 +0000
++++ chrome/browser/ui/views/omnibox/omnibox_view_views.cc
+@@ -1962,7 +1962,7 @@ void OmniboxViewViews::MaybeAddSendTabTo
+ }
+ 
+ void OmniboxViewViews::OnPopupOpened() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // It's not great for promos to overlap the omnibox if the user opens the
+   // drop-down after showing the promo. This especially causes issues on Mac and
+   // Linux due to z-order/rendering issues, see crbug.com/1225046 and
diff --git a/chromium/patches/patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc b/chromium/patches/patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc
new file mode 100644
index 0000000000..93678f6507
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_passwords_password__bubble__view__base.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/passwords/password_bubble_view_base.cc.orig	2024-07-24 02:44:29.840123200 +0000
++++ chrome/browser/ui/views/passwords/password_bubble_view_base.cc
+@@ -34,7 +34,7 @@
+ #include "ui/base/metadata/metadata_impl_macros.h"
+ #include "ui/views/controls/button/button.h"
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/views/passwords/password_relaunch_chrome_view.h"
+ #endif
+ 
+@@ -133,7 +133,7 @@ PasswordBubbleViewBase* PasswordBubbleVi
+   } else if (model_state ==
+              password_manager::ui::NOTIFY_RECEIVED_SHARED_CREDENTIALS) {
+     view = new SharedPasswordsNotificationView(web_contents, anchor_view);
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   } else if (model_state == password_manager::ui::KEYCHAIN_ERROR_STATE) {
+     view = new RelaunchChromeView(
+         web_contents, anchor_view,
diff --git a/chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view.cc b/chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view.cc
new file mode 100644
index 0000000000..b665a9bc84
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/profiles/profile_menu_view.cc.orig	2024-07-24 02:44:29.868125700 +0000
++++ chrome/browser/ui/views/profiles/profile_menu_view.cc
+@@ -83,7 +83,7 @@
+ #include "ui/strings/grit/ui_strings.h"
+ #include "ui/views/accessibility/view_accessibility.h"
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
+ #endif
+ 
+@@ -577,7 +577,7 @@ void ProfileMenuView::BuildIdentity() {
+         badge_image_model, menu_title_, menu_subtitle_, management_label);
+   } else {
+     std::string profile_user_display_name, profile_user_email;
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     profile_user_display_name = profile->GetPrefs()->GetString(
+         enterprise_signin::prefs::kProfileUserDisplayName);
+     profile_user_email = profile->GetPrefs()->GetString(
diff --git a/chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc b/chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc
new file mode 100644
index 0000000000..3641a9d79a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/profiles/profile_menu_view_base.cc.orig	2024-07-24 02:44:29.872126000 +0000
++++ chrome/browser/ui/views/profiles/profile_menu_view_base.cc
+@@ -687,7 +687,7 @@ void ProfileMenuViewBase::SetProfileIden
+ 
+ // TODO(crbug.com/40118868): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   // crbug.com/1161166: Orca does not read the accessible window title of the
+   // bubble, so we duplicate it in the top-level menu item. To be revisited
+   // after considering other options, including fixes on the AT side.
diff --git a/chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc b/chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc
new file mode 100644
index 0000000000..517245ffa1
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc.orig	2024-07-24 02:44:29.876126500 +0000
++++ chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc
+@@ -58,7 +58,7 @@ namespace {
+ 
+ const int kModalDialogWidth = 448;
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ const int kManagedUserNoticeConfirmationDialogWidth = 512;
+ const int kManagedUserNoticeConfirmationDialogHeight = 576;
+ const int kManagedUserNoticeConfirmationUpdatedDialogWidth = 900;
+@@ -184,7 +184,7 @@ SigninViewControllerDelegateViews::Creat
+ #endif  // BUILDFLAG(ENABLE_DICE_SUPPORT) || BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // static
+ std::unique_ptr<views::WebView>
+ SigninViewControllerDelegateViews::CreateManagedUserNoticeConfirmationWebView(
+@@ -346,7 +346,7 @@ SigninViewControllerDelegateViews::Signi
+   SetButtons(ui::DIALOG_BUTTON_NONE);
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   // On the local profile creation dialog, cancelling the dialog (for instance
+   // through the VKEY_ESCAPE accelerator) should delete the profile.
+   if (delete_profile_on_cancel) {
+@@ -436,7 +436,7 @@ void SigninViewControllerDelegateViews::
+ }
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ void SigninViewControllerDelegateViews::DeleteProfileOnCancel() {
+   ProfileAttributesEntry* entry =
+       g_browser_process->profile_manager()
+@@ -510,7 +510,7 @@ SigninViewControllerDelegate::CreateProf
+ #endif  // BUILDFLAG(ENABLE_DICE_SUPPORT) || BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // static
+ SigninViewControllerDelegate*
+ SigninViewControllerDelegate::CreateManagedUserNoticeDelegate(
diff --git a/chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h b/chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h
new file mode 100644
index 0000000000..1638bf755e
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.h.orig	2024-07-24 02:44:29.876126500 +0000
++++ chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.h
+@@ -75,7 +75,7 @@ class SigninViewControllerDelegateViews
+ #endif  // BUILDFLAG(ENABLE_DICE_SUPPORT) || BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   static std::unique_ptr<views::WebView>
+   CreateManagedUserNoticeConfirmationWebView(
+       Browser* browser,
+@@ -141,7 +141,7 @@ class SigninViewControllerDelegateViews
+       InitializeSigninWebDialogUI initialize_signin_web_dialog_ui);
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   // Deletes the ephemeral profile when cancelling the local profile creation
+   // dialog.
+   void DeleteProfileOnCancel();
diff --git a/chromium/patches/patch-chrome_browser_ui_views_side__panel_BUILD.gn b/chromium/patches/patch-chrome_browser_ui_views_side__panel_BUILD.gn
new file mode 100644
index 0000000000..615d6da2e3
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_side__panel_BUILD.gn
@@ -0,0 +1,46 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/side_panel/BUILD.gn.orig	2024-07-24 02:44:29.888127800 +0000
++++ chrome/browser/ui/views/side_panel/BUILD.gn
+@@ -172,7 +172,9 @@ static_library("side_panel") {
+     "//chrome/app:generated_resources",
+     "//chrome/app:generated_resources_grit",
+     "//chrome/app/vector_icons",
++    "//chrome/browser/cart:mojo_bindings",
+     "//chrome/browser/companion/core",
++    "//chrome/browser/companion/visual_query",
+     "//chrome/browser/favicon",
+     "//chrome/browser/lens/region_search",
+     "//chrome/browser/profiles",
+@@ -181,8 +183,11 @@ static_library("side_panel") {
+     "//chrome/browser/search_engines",
+     "//chrome/browser/themes",
+     "//chrome/browser/ui:browser_element_identifiers",
++    "//chrome/browser/ui:webui_name_variants",
+     "//chrome/browser/ui/actions",
+     "//chrome/browser/ui/browser_window",
++    "//chrome/browser/ui/webui/side_panel/bookmarks:mojo_bindings",
++    "//chrome/browser/ui/webui/side_panel/reading_list:mojo_bindings",
+     "//chrome/common",
+     "//chrome/common:constants",
+     "//chrome/common/extensions/api",
+@@ -198,6 +203,7 @@ static_library("side_panel") {
+     "//components/lens:features",
+     "//components/omnibox/browser:vector_icons",
+     "//components/optimization_guide/core:features",
++    "//components/page_image_service/mojom:mojo_bindings",
+     "//components/performance_manager",
+     "//components/pref_registry",
+     "//components/search",
+@@ -222,5 +228,7 @@ static_library("side_panel") {
+     "//ui/gfx:color_utils",
+     "//ui/gfx/geometry:geometry_skia",
+     "//ui/webui",
++    "//ui/webui/resources/cr_components/commerce:mojo_bindings",
++    "//ui/webui/resources/cr_components/help_bubble:mojo_bindings",
+   ]
+ }
diff --git a/chromium/patches/patch-chrome_browser_ui_views_tabs_new__tab__button.cc b/chromium/patches/patch-chrome_browser_ui_views_tabs_new__tab__button.cc
deleted file mode 100644
index b9ab57940b..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_views_tabs_new__tab__button.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/views/tabs/new_tab_button.cc.orig	2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/ui/views/tabs/new_tab_button.cc
-@@ -84,7 +84,7 @@ class NewTabButton::HighlightPathGenerat
- NewTabButton::NewTabButton(TabStrip* tab_strip, views::ButtonListener* listener)
-     : views::ImageButton(listener), tab_strip_(tab_strip) {
-   set_animate_on_state_change(true);
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   set_triggerable_event_flags(triggerable_event_flags() |
-                               ui::EF_MIDDLE_MOUSE_BUTTON);
- #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_views_tabs_tab.cc b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab.cc
index c9316adbc4..cd3fff9eab 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_tabs_tab.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/browser/ui/views/tabs/tab.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/tabs/tab.cc.orig	2024-07-24 02:44:29.916130500 +0000
 +++ chrome/browser/ui/views/tabs/tab.cc
-@@ -596,7 +596,7 @@ void Tab::MaybeUpdateHoverStatus(const u
-   if (mouse_hovered_ || !GetWidget()->IsMouseEventsEnabled())
+@@ -611,7 +611,7 @@ void Tab::MaybeUpdateHoverStatus(const u
      return;
+   }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Move the hit test area for hovering up so that it is not overlapped by tab
    // hover cards when they are shown.
-   // TODO(crbug/978134): Once Linux/CrOS widget transparency is solved, remove
+   // TODO(crbug.com/41467565): Once Linux/CrOS widget transparency is solved,
diff --git a/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc
index ec2ab1002c..c1a8edd58f 100644
--- a/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc
+++ b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc
@@ -1,31 +1,62 @@
 $NetBSD$
 
---- chrome/browser/ui/views/tabs/tab_drag_controller.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/tabs/tab_drag_controller.cc.orig	2024-07-24 02:44:29.916130500 +0000
 +++ chrome/browser/ui/views/tabs/tab_drag_controller.cc
-@@ -445,7 +445,7 @@ void TabDragController::Init(TabDragCont
+@@ -95,7 +95,7 @@
+ #include "components/remote_cocoa/browser/window.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/aura/client/drag_drop_client.h"
+ #endif
+ 
+@@ -215,7 +215,7 @@ bool IsWindowDragUsingSystemDragDropAllo
+ 
+ void UpdateSystemDnDDragImage(TabDragContext* attached_context,
+                               const gfx::ImageSkia& image) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   aura::Window* root_window =
+       attached_context->GetWidget()->GetNativeWindow()->GetRootWindow();
+   if (aura::client::GetDragDropClient(root_window)) {
+@@ -405,7 +405,7 @@ TabDragController::Liveness TabDragContr
    //     synchronous on desktop Linux, so use that.
-   // - Chrome OS
+   // - ChromeOS Ash
    //     Releasing capture on Ash cancels gestures so avoid it.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   can_release_capture_ = false;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   ref->can_release_capture_ = false;
  #endif
-   start_point_in_screen_ = gfx::Point(source_view_offset, mouse_offset.y());
-@@ -890,7 +890,7 @@ TabDragController::DragBrowserToNewTabSt
-     else
-       SetCapture(target_context);
+   ref->start_point_in_screen_ =
+@@ -1070,7 +1070,7 @@ TabDragController::DragBrowserToNewTabSt
  
--#if !defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if (!defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
      // EndMoveLoop is going to snap the window back to its original location.
      // Hide it so users don't see this. Hiding a window in Linux aura causes
      // it to lose capture so skip it.
-@@ -2080,7 +2080,7 @@ TabDragController::Liveness TabDragContr
-     if (dragged_window)
-       exclude.insert(dragged_window);
+@@ -2179,7 +2179,7 @@ void TabDragController::CompleteDrag() {
+       }
+ 
+       // If source window was maximized - maximize the new window as well.
+-#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC)
++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
+       // Keeping maximized state breaks snap to Grid on Windows when dragging
+       // tabs from maximized windows. TODO:(crbug.com/727051) Explore doing this
+       // for other desktop OS's. kMaximizedStateRetainedOnTabDrag in
+@@ -2608,7 +2608,7 @@ TabDragController::Liveness TabDragContr
    }
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    // Exclude windows which are pending deletion via Browser::TabStripEmpty().
    // These windows can be returned in the Linux Aura port because the browser
    // window which was used for dragging is not hidden once all of its tabs are
diff --git a/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc
new file mode 100644
index 0000000000..5ce854f3b4
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__hover__card__bubble__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/tabs/tab_hover_card_bubble_view.cc.orig	2024-07-24 02:44:29.920130700 +0000
++++ chrome/browser/ui/views/tabs/tab_hover_card_bubble_view.cc
+@@ -374,7 +374,7 @@ TabHoverCardBubbleView::TabHoverCardBubb
+   // not become active. Setting this to false creates the need to explicitly
+   // hide the hovercard on press, touch, and keyboard events.
+   SetCanActivate(false);
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   set_accept_events(false);
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__style__views.cc b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__style__views.cc
new file mode 100644
index 0000000000..273ae2d2f5
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_tabs_tab__style__views.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/tabs/tab_style_views.cc.orig	2024-07-24 02:44:29.928131600 +0000
++++ chrome/browser/ui/views/tabs/tab_style_views.cc
+@@ -502,7 +502,7 @@ float GM2TabStyleViews::GetCurrentActive
+   if (!IsHoverAnimationActive()) {
+     return base_opacity;
+   }
+-  return std::lerp(base_opacity, GetHoverOpacity(), GetHoverAnimationValue());
++  return std::lerp(base_opacity, GetHoverOpacity(), static_cast<float>(GetHoverAnimationValue()));
+ }
+ 
+ TabActive GM2TabStyleViews::GetApparentActiveState() const {
diff --git a/chromium/patches/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc b/chromium/patches/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc
new file mode 100644
index 0000000000..273e4f2e0a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/user_education/browser_user_education_service.cc.orig	2024-07-24 02:44:29.944133000 +0000
++++ chrome/browser/ui/views/user_education/browser_user_education_service.cc
+@@ -1007,7 +1007,7 @@ void MaybeRegisterChromeFeaturePromos(
+                     FeaturePromoSpecification::AcceleratorInfo())
+                     .SetBubbleArrow(HelpBubbleArrow::kTopLeft)));
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   // kIPHDesktopPWAsLinkCapturingLaunch:
+   registry.RegisterFeature(std::move(
+       FeaturePromoSpecification::CreateForCustomAction(
diff --git a/chromium/patches/patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc b/chromium/patches/patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc
new file mode 100644
index 0000000000..dd926cff8a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_views_web__apps_web__app__integration__test__driver.cc
@@ -0,0 +1,89 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/views/web_apps/web_app_integration_test_driver.cc.orig	2024-07-24 02:44:29.960134700 +0000
++++ chrome/browser/ui/views/web_apps/web_app_integration_test_driver.cc
+@@ -515,7 +515,7 @@ std::string GetFileExtension(FileExtensi
+ }
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ SiteConfig GetSiteConfigurationFromAppName(const std::string& app_name) {
+   SiteConfig config;
+   bool is_app_found = false;
+@@ -2103,7 +2103,7 @@ void WebAppIntegrationTestDriver::Delete
+   if (app_name.empty()) {
+     app_name = GetSiteConfiguration(site).app_name;
+   }
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   ASSERT_TRUE(override_registration_->test_override().IsShortcutCreated(
+       profile(), app_id, app_name));
+   ASSERT_TRUE(
+@@ -3433,7 +3433,7 @@ void WebAppIntegrationTestDriver::CheckR
+           app_state->id, app_state->name);
+   ASSERT_TRUE(icon_color.has_value());
+   ASSERT_THAT(site_config.icon_color, testing::Eq(icon_color.value()));
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   ASSERT_TRUE(override_registration_->test_override().IsRunOnOsLoginEnabled(
+       profile(), app_state->id, app_state->name));
+ #endif
+@@ -3448,7 +3448,7 @@ void WebAppIntegrationTestDriver::CheckR
+       GetAppBySiteMode(after_state_change_action_state_.get(), profile(), site);
+   ASSERT_TRUE(app_state);
+   base::ScopedAllowBlockingForTesting allow_blocking;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   ASSERT_FALSE(override_registration_->test_override().IsRunOnOsLoginEnabled(
+       profile(), app_state->id, app_state->name));
+ #endif
+@@ -3458,7 +3458,7 @@ void WebAppIntegrationTestDriver::CheckR
+ void WebAppIntegrationTestDriver::CheckSiteHandlesFile(
+     Site site,
+     FileExtension file_extension) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (!BeforeStateCheckAction(__FUNCTION__)) {
+     return;
+   }
+@@ -3474,7 +3474,7 @@ void WebAppIntegrationTestDriver::CheckS
+ void WebAppIntegrationTestDriver::CheckSiteNotHandlesFile(
+     Site site,
+     FileExtension file_extension) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (!BeforeStateCheckAction(__FUNCTION__)) {
+     return;
+   }
+@@ -4288,7 +4288,7 @@ base::FilePath WebAppIntegrationTestDriv
+     base::FilePath shortcut_dir,
+     const std::string& app_name,
+     const webapps::AppId& app_id) {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   return override_registration_->test_override().GetShortcutPath(
+       profile(), shortcut_dir, app_id, app_name);
+ #else
+@@ -4488,7 +4488,7 @@ bool WebAppIntegrationTestDriver::IsShor
+     const webapps::AppId& id) {
+   base::ScopedAllowBlockingForTesting allow_blocking;
+   bool is_shortcut_and_icon_correct = false;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   bool is_shortcut_correct =
+       override_registration_->test_override().IsShortcutCreated(profile, id,
+                                                                 name);
+@@ -4532,7 +4532,7 @@ bool WebAppIntegrationTestDriver::DoIcon
+     do_icon_colors_match =
+         (expected_icon_pixel_color == shortcut_pixel_color_apps_folder.value());
+   }
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   SkColor expected_icon_pixel_color =
+       GetSiteConfigurationFromAppName(name).icon_color;
+   std::optional<SkColor> actual_color_install_icon_size =
diff --git a/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__dialogs.h b/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__dialogs.h
new file mode 100644
index 0000000000..5fee390d47
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__dialogs.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/web_applications/web_app_dialogs.h.orig	2024-07-24 02:44:29.976136200 +0000
++++ chrome/browser/ui/web_applications/web_app_dialogs.h
+@@ -22,7 +22,7 @@
+ #include "ui/gfx/native_widget_types.h"
+ 
+ static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+-              BUILDFLAG(IS_CHROMEOS));
++              BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD));
+ 
+ class GURL;
+ class Profile;
diff --git a/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc b/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc
new file mode 100644
index 0000000000..f1354ed5a0
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/web_applications/web_app_ui_manager_impl.cc.orig	2024-07-24 02:44:29.980136600 +0000
++++ chrome/browser/ui/web_applications/web_app_ui_manager_impl.cc
+@@ -577,7 +577,7 @@ void WebAppUiManagerImpl::MaybeShowIPHPr
+     content::WebContents* web_contents,
+     Profile* profile,
+     const std::string& app_id) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   WebAppProvider* provider = WebAppProvider::GetForWebApps(profile);
+   CHECK(provider);
+ 
+@@ -797,7 +797,7 @@ void WebAppUiManagerImpl::ClearWebAppSit
+   }
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void WebAppUiManagerImpl::ShowIPHPromoForAppsLaunchedViaLinkCapturing(
+     const Browser* browser,
+     const webapps::AppId& app_id,
diff --git a/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h b/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h
new file mode 100644
index 0000000000..cc6d2f12fc
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_web__applications_web__app__ui__manager__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/web_applications/web_app_ui_manager_impl.h.orig	2024-07-24 02:44:29.980136600 +0000
++++ chrome/browser/ui/web_applications/web_app_ui_manager_impl.h
+@@ -222,7 +222,7 @@ class WebAppUiManagerImpl : public Brows
+       UninstallCompleteCallback uninstall_complete_callback,
+       webapps::UninstallResultCode uninstall_code);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   void ShowIPHPromoForAppsLaunchedViaLinkCapturing(const Browser* browser,
+                                                    const webapps::AppId& app_id,
+                                                    bool is_activated);
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_about__ui.cc b/chromium/patches/patch-chrome_browser_ui_webui_about__ui.cc
deleted file mode 100644
index dd2437b0db..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_webui_about__ui.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/webui/about_ui.cc.orig	2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/ui/webui/about_ui.cc
-@@ -564,7 +564,7 @@ std::string ChromeURLs() {
-   return html;
- }
- 
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- std::string AboutLinuxProxyConfig() {
-   std::string data;
-   AppendHeader(&data, 0,
-@@ -620,7 +620,7 @@ void AboutUIHTMLSource::StartDataRequest
-       response =
-           ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(idr);
-     }
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   } else if (source_name_ == chrome::kChromeUILinuxProxyConfigHost) {
-     response = AboutLinuxProxyConfig();
- #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_about_about__ui.cc b/chromium/patches/patch-chrome_browser_ui_webui_about_about__ui.cc
new file mode 100644
index 0000000000..4f8c41fbc4
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_about_about__ui.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/about/about_ui.cc.orig	2024-07-24 02:44:29.984137000 +0000
++++ chrome/browser/ui/webui/about/about_ui.cc
+@@ -593,7 +593,7 @@ std::string ChromeURLs(content::BrowserC
+   return html;
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::string AboutLinuxProxyConfig() {
+   std::string data;
+   AppendHeader(&data,
+@@ -648,7 +648,7 @@ void AboutUIHTMLSource::StartDataRequest
+       response =
+           ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(idr);
+     }
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   } else if (source_name_ == chrome::kChromeUILinuxProxyConfigHost) {
+     response = AboutLinuxProxyConfig();
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc b/chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc
new file mode 100644
index 0000000000..54825bd08f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/app_home/app_home_page_handler.cc.orig	2024-07-24 02:44:29.988137500 +0000
++++ chrome/browser/ui/webui/app_home/app_home_page_handler.cc
+@@ -61,7 +61,7 @@
+ #include "ui/base/window_open_disposition_utils.h"
+ #include "url/gurl.h"
+ 
+-static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX));
++static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD));
+ 
+ using content::WebUI;
+ using extensions::Extension;
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h b/chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h
new file mode 100644
index 0000000000..6774e1dd5b
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_app__home_app__home__page__handler.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/app_home/app_home_page_handler.h.orig	2024-07-24 02:44:29.988137500 +0000
++++ chrome/browser/ui/webui/app_home/app_home_page_handler.h
+@@ -24,7 +24,7 @@
+ #include "mojo/public/cpp/bindings/receiver.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ 
+-static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX));
++static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD));
+ 
+ class ExtensionEnableFlow;
+ 
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc b/chromium/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
index 24fab9c0f5..6fc7245ce3 100644
--- a/chromium/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
+++ b/chromium/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
@@ -1,57 +1,120 @@
 $NetBSD$
 
---- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig	2024-07-24 02:44:30.072145500 +0000
 +++ chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
-@@ -234,11 +234,11 @@
- #include "chrome/browser/ui/webui/conflicts/conflicts_ui.h"
+@@ -191,7 +191,7 @@
+ #include "chrome/browser/ui/webui/chromeos/chrome_url_disabled/chrome_url_disabled_ui.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/webui_js_error/webui_js_error_ui.h"
  #endif
  
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+@@ -216,21 +216,21 @@
+ #endif
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/ui/webui/discards/discards_ui.h"
  #endif
  
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
  #include "chrome/browser/ui/webui/sandbox/sandbox_internals_ui.h"
  #endif
  
-@@ -382,7 +382,7 @@ bool IsAboutUI(const GURL& url) {
- #if !defined(OS_ANDROID)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/whats_new/whats_new_ui.h"
+ #include "chrome/browser/ui/webui/whats_new/whats_new_util.h"
+ #endif
+@@ -384,7 +384,7 @@ bool IsAboutUI(const GURL& url) {
+ #if !BUILDFLAG(IS_ANDROID)
            || url.host_piece() == chrome::kChromeUITermsHost
  #endif
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
            || url.host_piece() == chrome::kChromeUILinuxProxyConfigHost
  #endif
- #if defined(OS_CHROMEOS)
-@@ -755,7 +755,7 @@ WebUIFactoryFunction GetWebUIFactoryFunc
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -591,7 +591,7 @@ WebUIFactoryFunction GetWebUIFactoryFunc
+   if (url.host_piece() == chrome::kChromeUIMobileSetupHost)
+     return &NewWebUI<ash::cellular_setup::MobileSetupUI>;
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (url.host_piece() == chrome::kChromeUIWebUIJsErrorHost)
+     return &NewWebUI<WebUIJsErrorUI>;
+ #endif
+@@ -647,7 +647,7 @@ WebUIFactoryFunction GetWebUIFactoryFunc
    if (url.host_piece() == chrome::kChromeUINaClHost)
      return &NewWebUI<NaClUI>;
  #endif
--#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
+-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+      defined(TOOLKIT_VIEWS)) ||                         \
+     defined(USE_AURA)
    if (url.host_piece() == chrome::kChromeUITabModalConfirmDialogHost)
-     return &NewWebUI<ConstrainedWebDialogUI>;
- #endif
-@@ -803,17 +803,17 @@ WebUIFactoryFunction GetWebUIFactoryFunc
-     return &NewWebUI<media_router::MediaRouterInternalsUI>;
+@@ -678,7 +678,7 @@ WebUIFactoryFunction GetWebUIFactoryFunc
+   if (url.host_piece() == chrome::kChromeUIWebuiGalleryHost) {
+     return &NewWebUI<WebuiGalleryUI>;
+   }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (url.host_piece() == chrome::kChromeUIWhatsNewHost &&
+       whats_new::IsEnabled()) {
+     return &NewWebUI<WhatsNewUI>;
+@@ -697,26 +697,26 @@ WebUIFactoryFunction GetWebUIFactoryFunc
    }
  #endif
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
    if (url.host_piece() == chrome::kChromeUISandboxHost) {
      return &NewWebUI<SandboxInternalsUI>;
    }
  #endif
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   if (url.host_piece() == chrome::kChromeUIConnectorsInternalsHost)
+     return &NewWebUI<enterprise_connectors::ConnectorsInternalsUI>;
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (url.host_piece() == chrome::kChromeUIDiscardsHost)
      return &NewWebUI<DiscardsUI>;
  #endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    if (url.host_piece() == chrome::kChromeUIBrowserSwitchHost)
      return &NewWebUI<BrowserSwitchUI>;
  #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (url.host_piece() == chrome::kChromeUIWebAppSettingsHost)
+     return &NewWebUI<WebAppSettingsUI>;
+ #endif
+@@ -955,7 +955,7 @@ base::RefCountedMemory* ChromeWebUIContr
+   if (page_url.host_piece() == chrome::kChromeUINewTabPageHost)
+     return NewTabPageUI::GetFaviconResourceBytes(scale_factor);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (page_url.host_piece() == chrome::kChromeUIWhatsNewHost)
+     return WhatsNewUI::GetFaviconResourceBytes(scale_factor);
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc b/chromium/patches/patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc
new file mode 100644
index 0000000000..ff19202cf3
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_connectors__internals_device__trust__utils.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/connectors_internals/device_trust_utils.cc.orig	2024-07-24 02:44:30.076146000 +0000
++++ chrome/browser/ui/webui/connectors_internals/device_trust_utils.cc
+@@ -7,7 +7,7 @@
+ #include "build/build_config.h"
+ #include "components/enterprise/buildflags/buildflags.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "base/base64url.h"
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/policy/chrome_browser_policy_connector.h"
+@@ -38,7 +38,7 @@ namespace enterprise_connectors::utils {
+ 
+ namespace {
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ 
+ connectors_internals::mojom::KeyTrustLevel ParseTrustLevel(
+     BPKUR::KeyTrustLevel trust_level) {
+@@ -173,7 +173,7 @@ connectors_internals::mojom::Certificate
+ }  // namespace
+ 
+ connectors_internals::mojom::KeyInfoPtr GetKeyInfo() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   auto* key_manager = g_browser_process->browser_policy_connector()
+                           ->chrome_browser_cloud_management_controller()
+                           ->GetDeviceTrustKeyManager();
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui.cc b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui.cc
new file mode 100644
index 0000000000..71e54a118e
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/management/management_ui.cc.orig	2024-07-24 02:44:30.096147800 +0000
++++ chrome/browser/ui/webui/management/management_ui.cc
+@@ -100,11 +100,11 @@ content::WebUIDataSource* CreateAndAddMa
+       {kManagementOnFileTransferVisibleData,
+        IDS_MANAGEMENT_FILE_TRANSFER_VISIBLE_DATA},
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       {kManagementScreenCaptureEvent, IDS_MANAGEMENT_SCREEN_CAPTURE_EVENT},
+       {kManagementScreenCaptureData, IDS_MANAGEMENT_SCREEN_CAPTURE_DATA},
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       {kManagementDeviceSignalsDisclosure,
+        IDS_MANAGEMENT_DEVICE_SIGNALS_DISCLOSURE},
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.cc b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.cc
new file mode 100644
index 0000000000..1e84cfbe1a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.cc
@@ -0,0 +1,23 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/management/management_ui_constants.cc.orig	2024-07-24 02:44:30.100148200 +0000
++++ chrome/browser/ui/webui/management/management_ui_constants.cc
+@@ -78,12 +78,12 @@ const char kProfileReportingBrowser[] = 
+ const char kProfileReportingExtension[] = "profileReportingExtension";
+ const char kProfileReportingPolicy[] = "profileReportingPolicy";
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kManagementScreenCaptureEvent[] = "managementScreenCaptureEvent";
+ const char kManagementScreenCaptureData[] = "managementScreenCaptureData";
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kManagementDeviceSignalsDisclosure[] =
+     "managementDeviceSignalsDisclosure";
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.h b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.h
new file mode 100644
index 0000000000..2b0547d97e
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__constants.h
@@ -0,0 +1,25 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/management/management_ui_constants.h.orig	2024-07-24 02:44:30.100148200 +0000
++++ chrome/browser/ui/webui/management/management_ui_constants.h
+@@ -8,14 +8,14 @@
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Constants defining the IDs for the localized strings sent to the page as
+ // load time data.
+ extern const char kManagementScreenCaptureEvent[];
+ extern const char kManagementScreenCaptureData[];
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ extern const char kManagementDeviceSignalsDisclosure[];
+ #endif  // #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ 
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.cc b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.cc
new file mode 100644
index 0000000000..676a3c9aca
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/management/management_ui_handler.cc.orig	2024-07-24 02:44:30.100148200 +0000
++++ chrome/browser/ui/webui/management/management_ui_handler.cc
+@@ -58,7 +58,7 @@
+ #include "ui/base/l10n/l10n_util.h"
+ #include "ui/base/webui/web_ui_util.h"
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/enterprise/signals/user_permission_service_factory.h"
+ #include "components/device_signals/core/browser/user_permission_service.h"  // nogncheck
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+@@ -354,7 +354,7 @@ void ManagementUIHandler::AddReportingIn
+       report_sources->Append(std::move(data));
+     }
+   }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Insert the device signals consent disclosure at the end of browser
+   // reporting section.
+   auto* user_permission_service = GetUserPermissionService();
+@@ -532,7 +532,7 @@ policy::PolicyService* ManagementUIHandl
+       ->policy_service();
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ device_signals::UserPermissionService*
+ ManagementUIHandler::GetUserPermissionService() {
+   return enterprise_signals::UserPermissionServiceFactory::GetForProfile(
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.h b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.h
new file mode 100644
index 0000000000..1c2b6334ae
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_management_management__ui__handler.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/management/management_ui_handler.h.orig	2024-07-24 02:44:30.100148200 +0000
++++ chrome/browser/ui/webui/management/management_ui_handler.h
+@@ -31,7 +31,7 @@ namespace policy {
+ class PolicyService;
+ }  // namespace policy
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ namespace device_signals {
+ class UserPermissionService;
+ }  // namespace device_signals
+@@ -72,7 +72,7 @@ class ManagementUIHandler : public conte
+   base::Value::List GetManagedWebsitesInfo(Profile* profile) const;
+   base::Value::List GetApplicationsInfo(Profile* profile) const;
+   virtual policy::PolicyService* GetPolicyService();
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   virtual device_signals::UserPermissionService* GetUserPermissionService();
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ 
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc b/chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc
new file mode 100644
index 0000000000..4637c2a2d2
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards__handler.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/password_manager/promo_cards_handler.cc.orig	2024-07-24 02:44:30.260163800 +0000
++++ chrome/browser/ui/webui/password_manager/promo_cards_handler.cc
+@@ -28,7 +28,7 @@
+ #include "chrome/browser/ui/webui/password_manager/promo_cards/web_password_manager_promo.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/ui/webui/password_manager/promo_cards/relaunch_chrome_promo.h"
+ #endif
+ 
+@@ -71,7 +71,7 @@ std::vector<std::unique_ptr<PasswordProm
+           .get()));
+ #endif
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   promo_cards.push_back(
+       std::make_unique<RelaunchChromePromo>(profile->GetPrefs()));
+ #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc b/chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc
new file mode 100644
index 0000000000..e4f44f943c
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_password__manager_promo__cards_relaunch__chrome__promo.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/password_manager/promo_cards/relaunch_chrome_promo.cc.orig	2024-07-24 02:44:30.260163800 +0000
++++ chrome/browser/ui/webui/password_manager/promo_cards/relaunch_chrome_promo.cc
+@@ -37,7 +37,7 @@ std::u16string RelaunchChromePromo::GetT
+   return l10n_util::GetStringUTF16(
+ #if BUILDFLAG(IS_MAC)
+       IDS_PASSWORD_MANAGER_UI_RELAUNCH_CHROME_PROMO_CARD_TITLE
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       IDS_PASSWORD_MANAGER_UI_RELAUNCH_CHROME_PROMO_CARD_TITLE_LINUX
+ #endif
+   );
+@@ -47,7 +47,7 @@ std::u16string RelaunchChromePromo::GetD
+   return l10n_util::GetStringUTF16(
+ #if BUILDFLAG(IS_MAC)
+       IDS_PASSWORD_MANAGER_UI_RELAUNCH_CHROME_PROMO_CARD_DESCRIPTION
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       IDS_PASSWORD_MANAGER_UI_RELAUNCH_CHROME_PROMO_CARD_DESCRIPTION_LINUX
+ #endif
+   );
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc b/chromium/patches/patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc
new file mode 100644
index 0000000000..4ab87eac47
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_searchbox_searchbox__handler.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/searchbox/searchbox_handler.cc.orig	2024-07-24 02:44:30.276165200 +0000
++++ chrome/browser/ui/webui/searchbox/searchbox_handler.cc
+@@ -105,7 +105,7 @@ const char* kMacShareIconResourceName =
+ #elif BUILDFLAG(IS_WIN)
+ const char* kWinShareIconResourceName =
+     "//resources/cr_components/searchbox/icons/win_share.svg";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char* kLinuxShareIconResourceName =
+     "//resources/cr_components/searchbox/icons/share.svg";
+ #else
+@@ -165,7 +165,7 @@ static void DefineChromeRefreshRealboxIc
+ #elif BUILDFLAG(IS_WIN)
+   kWinShareIconResourceName =
+       "//resources/cr_components/searchbox/icons/win_share_cr23.svg";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   kLinuxShareIconResourceName =
+       "//resources/cr_components/searchbox/icons/share_cr23.svg";
+ #else
+@@ -671,7 +671,7 @@ std::string SearchboxHandler::ActionVect
+       icon.name == omnibox::kShareWinChromeRefreshIcon.name) {
+     return kWinShareIconResourceName;
+   }
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (icon.name == omnibox::kShareIcon.name ||
+       icon.name == omnibox::kShareLinuxChromeRefreshIcon.name) {
+     return kLinuxShareIconResourceName;
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.cc b/chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.cc
new file mode 100644
index 0000000000..d2015f4747
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.cc
@@ -0,0 +1,52 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/settings/accessibility_main_handler.cc.orig	2024-07-24 02:44:30.276165200 +0000
++++ chrome/browser/ui/webui/settings/accessibility_main_handler.cc
+@@ -19,7 +19,7 @@
+ #include "content/public/browser/web_contents.h"
+ #include "content/public/browser/web_ui.h"
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "ui/accessibility/accessibility_features.h"
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+ 
+@@ -39,7 +39,7 @@ void AccessibilityMainHandler::RegisterM
+       base::BindRepeating(
+           &AccessibilityMainHandler::HandleCheckAccessibilityImageLabels,
+           base::Unretained(this)));
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   web_ui()->RegisterMessageCallback(
+       "getScreenAiInstallState",
+       base::BindRepeating(
+@@ -56,7 +56,7 @@ void AccessibilityMainHandler::OnJavascr
+           base::Unretained(this)));
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   if (features::IsPdfOcrEnabled() || features::IsMainNodeAnnotationsEnabled()) {
+     CHECK(!component_ready_observer_.IsObserving());
+     component_ready_observer_.Observe(
+@@ -70,14 +70,14 @@ void AccessibilityMainHandler::OnJavascr
+   accessibility_subscription_ = {};
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   if (features::IsPdfOcrEnabled() || features::IsMainNodeAnnotationsEnabled()) {
+     component_ready_observer_.Reset();
+   }
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ void AccessibilityMainHandler::DownloadProgressChanged(double progress) {
+   CHECK_GE(progress, 0.0);
+   CHECK_LE(progress, 1.0);
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.h b/chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.h
new file mode 100644
index 0000000000..00659f8895
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_webui_settings_accessibility__main__handler.h
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/settings/accessibility_main_handler.h.orig	2024-07-24 02:44:30.276165200 +0000
++++ chrome/browser/ui/webui/settings/accessibility_main_handler.h
+@@ -13,7 +13,7 @@
+ #include "chrome/browser/ash/accessibility/accessibility_manager.h"
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "base/scoped_observation.h"
+ #include "chrome/browser/screen_ai/screen_ai_install_state.h"
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+@@ -24,7 +24,7 @@ namespace settings {
+ // chrome://settings/accessibility.
+ class AccessibilityMainHandler
+     : public ::settings::SettingsPageUIHandler
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+     ,
+       public screen_ai::ScreenAIInstallState::Observer
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+@@ -40,7 +40,7 @@ class AccessibilityMainHandler
+   void OnJavascriptAllowed() override;
+   void OnJavascriptDisallowed() override;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   // screen_ai::ScreenAIInstallState::Observer:
+   void DownloadProgressChanged(double progress) override;
+   void StateChanged(screen_ai::ScreenAIInstallState::State state) override;
+@@ -50,7 +50,7 @@ class AccessibilityMainHandler
+   void HandleGetScreenReaderState(const base::Value::List& args);
+   void HandleCheckAccessibilityImageLabels(const base::Value::List& args);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   void HandleGetScreenAIInstallState(const base::Value::List& args);
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+ 
+@@ -63,7 +63,7 @@ class AccessibilityMainHandler
+   base::CallbackListSubscription accessibility_subscription_;
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   base::ScopedObservation<screen_ai::ScreenAIInstallState,
+                           screen_ai::ScreenAIInstallState::Observer>
+       component_ready_observer_{this};
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.cc b/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.cc
index a0d73d1256..7473ba36c4 100644
--- a/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.cc
+++ b/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.cc
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- chrome/browser/ui/webui/settings/appearance_handler.cc.orig	2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/settings/appearance_handler.cc.orig	2024-07-24 02:44:30.276165200 +0000
 +++ chrome/browser/ui/webui/settings/appearance_handler.cc
-@@ -27,7 +27,7 @@ void AppearanceHandler::RegisterMessages
+@@ -28,7 +28,7 @@ void AppearanceHandler::RegisterMessages
        "useDefaultTheme",
-       base::BindRepeating(&AppearanceHandler::HandleUseDefaultTheme,
-                           base::Unretained(this)));
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+       base::BindRepeating(&AppearanceHandler::HandleUseTheme,
+                           base::Unretained(this), ui::SystemTheme::kDefault));
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    web_ui()->RegisterMessageCallback(
-       "useSystemTheme",
-       base::BindRepeating(&AppearanceHandler::HandleUseSystemTheme,
-@@ -39,7 +39,7 @@ void AppearanceHandler::HandleUseDefault
-   ThemeServiceFactory::GetForProfile(profile_)->UseDefaultTheme();
- }
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- void AppearanceHandler::HandleUseSystemTheme(const base::ListValue* args) {
-   if (profile_->IsSupervised())
-     NOTREACHED();
+       "useGtkTheme",
+       base::BindRepeating(&AppearanceHandler::HandleUseTheme,
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.h b/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.h
deleted file mode 100644
index 3989c23b5d..0000000000
--- a/chromium/patches/patch-chrome_browser_ui_webui_settings_appearance__handler.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/ui/webui/settings/appearance_handler.h.orig	2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/ui/webui/settings/appearance_handler.h
-@@ -36,7 +36,7 @@ class AppearanceHandler : public Setting
-   // Changes the UI theme of the browser to the default theme.
-   void HandleUseDefaultTheme(const base::ListValue* args);
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   // Changes the UI theme of the browser to the system (GTK+) theme.
-   void HandleUseSystemTheme(const base::ListValue* args);
- #endif
diff --git a/chromium/patches/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc b/chromium/patches/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc
index ef99adb396..dfd817942d 100644
--- a/chromium/patches/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc
+++ b/chromium/patches/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc
@@ -1,13 +1,71 @@
 $NetBSD$
 
---- chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc.orig	2024-07-24 02:44:30.288166500 +0000
 +++ chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
-@@ -332,7 +332,7 @@ void AddAppearanceStrings(content::WebUI
-     {"minimumFont", IDS_SETTINGS_MINIMUM_FONT_SIZE_LABEL},
-     {"tiny", IDS_SETTINGS_TINY_FONT_SIZE},
-     {"huge", IDS_SETTINGS_HUGE_FONT_SIZE},
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-     {"systemTheme", IDS_SETTINGS_SYSTEM_THEME},
-     {"useSystemTheme", IDS_SETTINGS_USE_SYSTEM_THEME},
-     {"classicTheme", IDS_SETTINGS_CLASSIC_THEME},
+@@ -142,7 +142,7 @@
+ #include "chrome/browser/ui/chrome_pages.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS)
+ #include "ui/display/screen.h"
+ #endif
+ 
+@@ -161,7 +161,7 @@
+ #include "chrome/browser/ui/webui/certificate_manager_localized_strings_provider.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui_factory.h"
+ #include "ui/ozone/public/ozone_platform.h"
+ #endif
+@@ -280,7 +280,7 @@ void AddA11yStrings(content::WebUIDataSo
+       {"focusHighlightLabel",
+        IDS_SETTINGS_ACCESSIBILITY_FOCUS_HIGHLIGHT_DESCRIPTION},
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+       {"overscrollHistoryNavigationTitle",
+        IDS_SETTINGS_OVERSCROLL_HISTORY_NAVIGATION_TITLE},
+       {"overscrollHistoryNavigationSubtitle",
+@@ -303,7 +303,7 @@ void AddA11yStrings(content::WebUIDataSo
+   html_source->AddLocalizedStrings(kLocalizedStrings);
+ 
+ #if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)) && \
+-    BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
++    BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) || BUILDFLAG(IS_BSD)
+   html_source->AddBoolean(
+       "mainNodeAnnotationsEnabled",
+       base::FeatureList::IsEnabled(features::kMainNodeAnnotations));
+@@ -422,7 +422,7 @@ void AddAppearanceStrings(content::WebUI
+       {"huge", IDS_SETTINGS_HUGE_FONT_SIZE},
+       {"uiFeatureAlignLeft", IDS_SETTINGS_UI_FEATURE_ALIGN_LEFT},
+       {"uiFeatureAlignRight", IDS_SETTINGS_UI_FEATURE_ALIGN_RIGHT},
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       {"gtkTheme", IDS_SETTINGS_GTK_THEME},
+       {"useGtkTheme", IDS_SETTINGS_USE_GTK_THEME},
+       {"qtTheme", IDS_SETTINGS_QT_THEME},
+@@ -432,7 +432,7 @@ void AddAppearanceStrings(content::WebUI
+ #else
+       {"resetToDefaultTheme", IDS_SETTINGS_RESET_TO_DEFAULT_THEME},
+ #endif
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS)
+       {"showWindowDecorations", IDS_SHOW_WINDOW_DECORATIONS},
+ #endif
+ #if BUILDFLAG(IS_MAC)
+@@ -458,7 +458,7 @@ void AddAppearanceStrings(content::WebUI
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS)
+   bool show_custom_chrome_frame = ui::OzonePlatform::GetInstance()
+                                       ->GetPlatformRuntimeProperties()
+                                       .supports_server_side_window_decorations;
diff --git a/chromium/patches/patch-chrome_browser_ui_window__sizer_window__sizer.cc b/chromium/patches/patch-chrome_browser_ui_window__sizer_window__sizer.cc
new file mode 100644
index 0000000000..a2e36ab092
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_ui_window__sizer_window__sizer.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/ui/window_sizer/window_sizer.cc.orig	2024-07-24 02:44:30.328170300 +0000
++++ chrome/browser/ui/window_sizer/window_sizer.cc
+@@ -210,7 +210,7 @@ void WindowSizer::GetBrowserWindowBounds
+       browser, window_bounds, show_state);
+ }
+ 
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Linux has its own implementation, see WindowSizerLinux.
+ // static
+ void WindowSizer::GetBrowserWindowBoundsAndShowState(
diff --git a/chromium/patches/patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc b/chromium/patches/patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc
new file mode 100644
index 0000000000..214d05afbc
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_visited__url__ranking_visited__url__ranking__service__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/visited_url_ranking/visited_url_ranking_service_factory.cc.orig	2024-07-24 02:44:30.348172200 +0000
++++ chrome/browser/visited_url_ranking/visited_url_ranking_service_factory.cc
+@@ -39,7 +39,7 @@
+ #include "components/visited_url_ranking/public/visited_url_ranking_service.h"
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/visited_url_ranking/desktop_tab_model_url_visit_data_fetcher.h"
+ #elif BUILDFLAG(IS_ANDROID)
+ #include "chrome/browser/visited_url_ranking/android_tab_model_url_visit_data_fetcher.h"
+@@ -99,7 +99,7 @@ VisitedURLRankingServiceFactory::BuildSe
+ 
+   std::map<Fetcher, std::unique_ptr<URLVisitDataFetcher>> data_fetchers;
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   data_fetchers.emplace(
+       Fetcher::kTabModel,
+       std::make_unique<visited_url_ranking::DesktopTabModelURLVisitDataFetcher>(
diff --git a/chromium/patches/patch-chrome_browser_web__applications_components_web__app__file__handler__registration.h b/chromium/patches/patch-chrome_browser_web__applications_components_web__app__file__handler__registration.h
deleted file mode 100644
index fa72e973b3..0000000000
--- a/chromium/patches/patch-chrome_browser_web__applications_components_web__app__file__handler__registration.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/web_applications/components/web_app_file_handler_registration.h.orig	2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/web_applications/components/web_app_file_handler_registration.h
-@@ -38,7 +38,7 @@ void RegisterFileHandlersWithOs(const Ap
- // If a shim app was required, also removes the shim app.
- void UnregisterFileHandlersWithOs(const AppId& app_id, Profile* profile);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- using RegisterMimeTypesOnLinuxCallback =
-     base::OnceCallback<bool(base::FilePath profile_path,
-                             std::string file_contents)>;
diff --git a/chromium/patches/patch-chrome_browser_web__applications_components_web__app__shortcut.cc b/chromium/patches/patch-chrome_browser_web__applications_components_web__app__shortcut.cc
deleted file mode 100644
index e14ba0ff17..0000000000
--- a/chromium/patches/patch-chrome_browser_web__applications_components_web__app__shortcut.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/web_applications/components/web_app_shortcut.cc.orig	2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/web_applications/components/web_app_shortcut.cc
-@@ -34,7 +34,7 @@ namespace {
- 
- #if defined(OS_MACOSX)
- const int kDesiredIconSizesForShortcut[] = {16, 32, 128, 256, 512};
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- // Linux supports icons of any size. FreeDesktop Icon Theme Specification states
- // that "Minimally you should install a 48x48 icon in the hicolor theme."
- const int kDesiredIconSizesForShortcut[] = {16, 32, 48, 128, 256, 512};
diff --git a/chromium/patches/patch-chrome_browser_web__applications_extension__status__utils.h b/chromium/patches/patch-chrome_browser_web__applications_extension__status__utils.h
new file mode 100644
index 0000000000..2b1f3bc795
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_extension__status__utils.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/extension_status_utils.h.orig	2024-07-24 02:44:30.380175400 +0000
++++ chrome/browser/web_applications/extension_status_utils.h
+@@ -55,7 +55,7 @@ bool IsExternalExtensionUninstalled(cont
+ bool ClearExternalExtensionUninstalled(content::BrowserContext* context,
+                                        const std::string& extension_id);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // If this method returns true, then |extension_id| will not be launchable.
+ //
+ // The eventual goal is that this method should return true for all hosted apps,
diff --git a/chromium/patches/patch-chrome_browser_web__applications_extensions_bookmark__app__finalizer__utils.cc b/chromium/patches/patch-chrome_browser_web__applications_extensions_bookmark__app__finalizer__utils.cc
deleted file mode 100644
index 391460b1f7..0000000000
--- a/chromium/patches/patch-chrome_browser_web__applications_extensions_bookmark__app__finalizer__utils.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/browser/web_applications/extensions/bookmark_app_finalizer_utils.cc.orig	2020-07-08 21:40:36.000000000 +0000
-+++ chrome/browser/web_applications/extensions/bookmark_app_finalizer_utils.cc
-@@ -15,7 +15,7 @@ namespace {
- 
- #if !defined(OS_CHROMEOS)
- bool CanOsAddDesktopShortcuts() {
--#if defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
-   return true;
- #else
-   return false;
diff --git a/chromium/patches/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc b/chromium/patches/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc
new file mode 100644
index 0000000000..a3c385f2b8
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/extensions/extension_status_utils.cc.orig	2024-07-24 02:44:30.380175400 +0000
++++ chrome/browser/web_applications/extensions/extension_status_utils.cc
+@@ -25,7 +25,7 @@ namespace {
+ 
+ const char* g_preinstalled_app_for_testing = nullptr;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // TODO(b/268221237): Remove this allow-list.
+ const char kDefaultAllowedExtensionIds[] =
+     "alhngdkjgnedakdlnamimgfihgkmenbh,"
+@@ -113,7 +113,7 @@ bool ClearExternalExtensionUninstalled(c
+       extension_id);
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool IsExtensionUnsupportedDeprecatedApp(content::BrowserContext* context,
+                                          const std::string& extension_id) {
+   if (testing::g_enable_chrome_apps_for_testing) {
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc b/chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc
new file mode 100644
index 0000000000..9c525234d1
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/os_integration_manager.cc.orig	2024-07-24 02:44:30.404177700 +0000
++++ chrome/browser/web_applications/os_integration/os_integration_manager.cc
+@@ -651,7 +651,7 @@ std::unique_ptr<ShortcutInfo> OsIntegrat
+     }
+   }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   const std::vector<WebAppShortcutsMenuItemInfo>& shortcuts_menu_item_infos =
+       app->shortcuts_menu_item_infos();
+   DCHECK_LE(shortcuts_menu_item_infos.size(), kMaxApplicationDockMenuItems);
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h b/chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h
new file mode 100644
index 0000000000..d5af8b8e02
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_os__integration__test__override.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/os_integration_test_override.h.orig	2024-07-24 02:44:30.404177700 +0000
++++ chrome/browser/web_applications/os_integration/os_integration_test_override.h
+@@ -99,7 +99,7 @@ class OsIntegrationTestOverride
+   virtual base::FilePath chrome_apps_folder() = 0;
+   virtual void EnableOrDisablePathOnLogin(const base::FilePath& file_path,
+                                           bool enable_on_login) = 0;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   virtual base::Environment* environment() = 0;
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc b/chromium/patches/patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc
new file mode 100644
index 0000000000..3a8683ffc3
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_run__on__os__login__sub__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/run_on_os_login_sub_manager.cc.orig	2024-07-24 02:44:30.404177700 +0000
++++ chrome/browser/web_applications/os_integration/run_on_os_login_sub_manager.cc
+@@ -54,7 +54,7 @@ proto::RunOnOsLoginMode ConvertWebAppRun
+ // different from other platforms, see web_app_run_on_os_login_manager.h for
+ // more info.
+ bool DoesRunOnOsLoginRequireExecution() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return base::FeatureList::IsEnabled(features::kDesktopPWAsRunOnOsLogin);
+ #else
+   return false;
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc b/chromium/patches/patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc
new file mode 100644
index 0000000000..cf12ae2781
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_shortcut__sub__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/shortcut_sub_manager.cc.orig	2024-07-24 02:44:30.408178000 +0000
++++ chrome/browser/web_applications/os_integration/shortcut_sub_manager.cc
+@@ -186,7 +186,7 @@ void ShortcutSubManager::Execute(
+     return;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   // Protocol handler update detection. Shortcuts need to be updated in this
+   // case on Linux & Mac because the shortcut itself includes the protocol
+   // handling metadata.
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h b/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h
new file mode 100644
index 0000000000..7493fd2fe8
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/web_app_file_handler_registration.h.orig	2024-07-24 02:44:30.408178000 +0000
++++ chrome/browser/web_applications/os_integration/web_app_file_handler_registration.h
+@@ -43,7 +43,7 @@ void UnregisterFileHandlersWithOs(const 
+                                   const base::FilePath& profile_path,
+                                   ResultCallback callback);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Exposed for testing purposes. Register the set of
+ // MIME-type-to-file-extensions mappings corresponding to |file_handlers|. File
+ // I/O and callouts to the Linux shell are performed asynchronously.
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc b/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc
new file mode 100644
index 0000000000..75aadc91ad
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/web_app_shortcut.cc.orig	2024-07-24 02:44:30.408178000 +0000
++++ chrome/browser/web_applications/os_integration/web_app_shortcut.cc
+@@ -65,7 +65,7 @@ namespace {
+ 
+ #if BUILDFLAG(IS_MAC)
+ const int kDesiredIconSizesForShortcut[] = {16, 32, 128, 256, 512};
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Linux supports icons of any size. FreeDesktop Icon Theme Specification states
+ // that "Minimally you should install a 48x48 icon in the hicolor theme."
+ const int kDesiredIconSizesForShortcut[] = {16, 32, 48, 128, 256, 512};
+@@ -227,7 +227,7 @@ std::unique_ptr<ShortcutInfo> BuildShort
+ 
+ // TODO(crbug.com/40257107): Implement tests on Linux for using shortcuts_menu
+ // actions.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   const std::vector<WebAppShortcutsMenuItemInfo>& shortcuts_menu_item_infos =
+       CreateShortcutsMenuItemInfos(state.shortcut_menus());
+   DCHECK_LE(shortcuts_menu_item_infos.size(), kMaxApplicationDockMenuItems);
diff --git a/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h b/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h
new file mode 100644
index 0000000000..474672a93a
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/os_integration/web_app_shortcut.h.orig	2024-07-24 02:44:30.408178000 +0000
++++ chrome/browser/web_applications/os_integration/web_app_shortcut.h
+@@ -21,7 +21,7 @@
+ #include "ui/gfx/image/image_family.h"
+ #include "url/gurl.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/browser/web_applications/os_integration/web_app_shortcut_linux.h"
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+@@ -70,7 +70,7 @@ struct ShortcutInfo {
+   std::set<std::string> file_handler_extensions;
+   std::set<std::string> file_handler_mime_types;
+   std::set<std::string> protocol_handlers;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   std::set<DesktopActionInfo> actions;
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
diff --git a/chromium/patches/patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc b/chromium/patches/patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc
new file mode 100644
index 0000000000..9641ab2c59
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_policy_web__app__policy__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/policy/web_app_policy_manager.cc.orig	2024-07-24 02:44:30.412178500 +0000
++++ chrome/browser/web_applications/policy/web_app_policy_manager.cc
+@@ -101,7 +101,7 @@ namespace web_app {
+ 
+ BASE_FEATURE(kDesktopPWAsForceUnregisterOSIntegration,
+              "DesktopPWAsForceUnregisterOSIntegration",
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc b/chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc
new file mode 100644
index 0000000000..522f7b7f56
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.cc
@@ -0,0 +1,125 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/test/os_integration_test_override_impl.cc.orig	2024-07-24 02:44:30.420179400 +0000
++++ chrome/browser/web_applications/test/os_integration_test_override_impl.cc
+@@ -46,7 +46,7 @@
+ #include "third_party/skia/include/core/SkBitmap.h"
+ #include "third_party/skia/include/core/SkColor.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/nix/xdg_util.h"
+ #endif
+ 
+@@ -131,7 +131,7 @@ std::vector<std::wstring> GetFileExtensi
+ }
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Performs a blocking read of app icons from the disk.
+ SkColor IconManagerReadIconTopLeftColorForSize(WebAppIconManager& icon_manager,
+                                                const webapps::AppId& app_id,
+@@ -266,7 +266,7 @@ bool OsIntegrationTestOverrideImpl::Simu
+       GetShortcutPath(profile, chrome_apps_folder(), app_id, app_name);
+   CHECK(base::PathExists(app_folder_shortcut_path));
+   return base::DeletePathRecursively(app_folder_shortcut_path);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   base::FilePath desktop_shortcut_path =
+       GetShortcutPath(profile, desktop(), app_id, app_name);
+   LOG(INFO) << desktop_shortcut_path;
+@@ -306,7 +306,7 @@ bool OsIntegrationTestOverrideImpl::Dele
+ }
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool OsIntegrationTestOverrideImpl::DeleteDesktopDirOnLinux() {
+   if (desktop_.IsValid()) {
+     return desktop_.Delete();
+@@ -320,7 +320,7 @@ bool OsIntegrationTestOverrideImpl::IsRu
+     Profile* profile,
+     const webapps::AppId& app_id,
+     const std::string& app_name) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   std::string shortcut_filename =
+       "chrome-" + app_id + "-" + profile->GetBaseName().value() + ".desktop";
+   return base::PathExists(startup().Append(shortcut_filename));
+@@ -376,7 +376,7 @@ bool OsIntegrationTestOverrideImpl::IsFi
+   is_file_handled =
+       shell_integration::CanApplicationHandleURL(app_path, test_file_url);
+   base::DeleteFile(test_file_path);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   base::FilePath user_applications_dir = applications();
+   bool database_update_called = false;
+   for (const LinuxFileRegistration& command : linux_file_registration_) {
+@@ -419,7 +419,7 @@ OsIntegrationTestOverrideImpl::GetShortc
+     return std::nullopt;
+   }
+   return GetIconTopLeftColorFromShortcutFile(shortcut_path);
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   WebAppProvider* provider = WebAppProvider::GetForLocalAppsUnchecked(profile);
+   if (!provider) {
+     return std::nullopt;
+@@ -469,7 +469,7 @@ base::FilePath OsIntegrationTestOverride
+       app_installed_profiles.end()) {
+     return shortcut_path;
+   }
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   std::string shortcut_filename =
+       "chrome-" + app_id + "-" + profile->GetBaseName().value() + ".desktop";
+   base::FilePath shortcut_path = shortcut_dir.Append(shortcut_filename);
+@@ -495,7 +495,7 @@ bool OsIntegrationTestOverrideImpl::IsSh
+   base::FilePath app_shortcut_path =
+       GetShortcutPath(profile, chrome_apps_folder(), app_id, app_name);
+   return base::PathExists(app_shortcut_path);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   base::FilePath desktop_shortcut_path =
+       GetShortcutPath(profile, desktop(), app_id, app_name);
+   return base::PathExists(desktop_shortcut_path);
+@@ -683,7 +683,7 @@ void OsIntegrationTestOverrideImpl::Enab
+ }
+ #endif  // BUILDFLAG(IS_MAC)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ base::FilePath OsIntegrationTestOverrideImpl::desktop() {
+   return desktop_.GetPath();
+ }
+@@ -734,7 +734,7 @@ OsIntegrationTestOverrideImpl::OsIntegra
+   success = chrome_apps_folder_.CreateUniqueTempDirUnderPath(
+       outer_temp_dir_.GetPath());
+   CHECK(success);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   success = desktop_.CreateUniqueTempDirUnderPath(outer_temp_dir_.GetPath());
+   CHECK(success);
+   success = startup_.CreateUniqueTempDirUnderPath(outer_temp_dir_.GetPath());
+@@ -747,7 +747,7 @@ OsIntegrationTestOverrideImpl::OsIntegra
+   CHECK(success);
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   auto callback = base::BindRepeating([](base::FilePath filename_in,
+                                          std::string xdg_command,
+                                          std::string file_contents) {
+@@ -819,7 +819,7 @@ OsIntegrationTestOverrideImpl::~OsIntegr
+   EXPECT_TRUE(!startup_.IsValid() || startup_.Delete());
+ #elif BUILDFLAG(IS_MAC)
+   EXPECT_TRUE(!chrome_apps_folder_.IsValid() || chrome_apps_folder_.Delete());
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   EXPECT_TRUE(!desktop_.IsValid() || desktop_.Delete());
+   EXPECT_TRUE(!startup_.IsValid() || startup_.Delete());
+   EXPECT_TRUE(!xdg_data_home_dir_.IsValid() || xdg_data_home_dir_.Delete());
diff --git a/chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h b/chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h
new file mode 100644
index 0000000000..fc1ed4fb98
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_test_os__integration__test__override__impl.h
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/test/os_integration_test_override_impl.h.orig	2024-07-24 02:44:30.420179400 +0000
++++ chrome/browser/web_applications/test/os_integration_test_override_impl.h
+@@ -40,7 +40,7 @@ class ShellLinkItem;
+ 
+ namespace web_app {
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ struct LinuxFileRegistration {
+   base::FilePath file_name;
+   std::string xdg_command;
+@@ -122,7 +122,7 @@ class OsIntegrationTestOverrideImpl : pu
+   bool DeleteApplicationMenuDirOnWin();
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   bool DeleteDesktopDirOnLinux();
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+@@ -242,7 +242,7 @@ class OsIntegrationTestOverrideImpl : pu
+   base::FilePath chrome_apps_folder() override;
+   void EnableOrDisablePathOnLogin(const base::FilePath& file_path,
+                                   bool enable_on_login) override;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   base::FilePath desktop();
+   base::FilePath startup();
+   base::FilePath applications();
+@@ -322,7 +322,7 @@ class OsIntegrationTestOverrideImpl : pu
+   base::ScopedTempDir chrome_apps_folder_;
+   std::map<base::FilePath, bool> startup_enabled_;
+ 
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   base::ScopedTempDir desktop_;
+   base::ScopedTempDir startup_;
+   base::ScopedTempDir xdg_data_home_dir_;
diff --git a/chromium/patches/patch-chrome_browser_web__applications_web__app__helpers.cc b/chromium/patches/patch-chrome_browser_web__applications_web__app__helpers.cc
new file mode 100644
index 0000000000..09225efe37
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_web__app__helpers.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/web_app_helpers.cc.orig	2024-07-24 02:44:30.428180000 +0000
++++ chrome/browser/web_applications/web_app_helpers.cc
+@@ -145,7 +145,7 @@ bool IsValidWebAppUrl(const GURL& app_ur
+     return false;
+ 
+   bool allow_extension_apps = true;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Stop allowing apps to be extension urls when the shortcuts are separated -
+   // they can be extension urls instead.
+   allow_extension_apps =
diff --git a/chromium/patches/patch-chrome_browser_web__applications_web__app__install__info.h b/chromium/patches/patch-chrome_browser_web__applications_web__app__install__info.h
new file mode 100644
index 0000000000..2f12e3fef3
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_web__applications_web__app__install__info.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/web_applications/web_app_install_info.h.orig	2024-07-24 02:44:30.428180000 +0000
++++ chrome/browser/web_applications/web_app_install_info.h
+@@ -38,7 +38,7 @@
+ #include "url/gurl.h"
+ 
+ static_assert(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+-              BUILDFLAG(IS_CHROMEOS));
++              BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD));
+ 
+ namespace web_app {
+ 
diff --git a/chromium/patches/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc b/chromium/patches/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc
new file mode 100644
index 0000000000..238dd121eb
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/webauthn/chrome_authenticator_request_delegate.cc.orig	2024-07-24 02:44:30.448181900 +0000
++++ chrome/browser/webauthn/chrome_authenticator_request_delegate.cc
+@@ -972,7 +972,7 @@ void ChromeAuthenticatorRequestDelegate:
+     g_observer->ConfiguringCable(request_type);
+   }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // No caBLEv1 on Linux. It tends to crash bluez.
+   if (base::Contains(pairings_from_extension,
+                      device::CableDiscoveryData::Version::V1,
diff --git a/chromium/patches/patch-chrome_browser_webauthn_enclave__manager.cc b/chromium/patches/patch-chrome_browser_webauthn_enclave__manager.cc
new file mode 100644
index 0000000000..97ef31355f
--- /dev/null
+++ b/chromium/patches/patch-chrome_browser_webauthn_enclave__manager.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/browser/webauthn/enclave_manager.cc.orig	2024-07-24 02:44:30.452182300 +0000
++++ chrome/browser/webauthn/enclave_manager.cc
+@@ -646,7 +646,7 @@ base::flat_set<std::string> GetGaiaIDs(
+ }
+ 
+ std::string UserVerifyingLabelToString(crypto::UserVerifyingKeyLabel label) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return label;
+ #else
+   return std::string("placeholder");
+@@ -655,7 +655,7 @@ std::string UserVerifyingLabelToString(c
+ 
+ std::optional<crypto::UserVerifyingKeyLabel> UserVerifyingKeyLabelFromString(
+     std::string saved_label) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return saved_label;
+ #else
+   return std::nullopt;
diff --git a/chromium/patches/patch-chrome_common_BUILD.gn b/chromium/patches/patch-chrome_common_BUILD.gn
deleted file mode 100644
index 2912b5d327..0000000000
--- a/chromium/patches/patch-chrome_common_BUILD.gn
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- chrome/common/BUILD.gn.orig	2020-07-08 21:41:47.000000000 +0000
-+++ chrome/common/BUILD.gn
-@@ -271,6 +271,11 @@ static_library("common") {
-     public_deps += [ "//ppapi/shared_impl" ]
-   }
- 
-+  if (is_bsd) {
-+    #sources -= [ "component_flash_hint_file_linux.cc" ]
-+    deps -= [ "//components/crash/core/app" ]
-+  }
-+
-   if (enable_extensions) {
-     sources += [
-       "cast_messages.cc",
diff --git a/chromium/patches/patch-chrome_common_channel__info.h b/chromium/patches/patch-chrome_common_channel__info.h
index 3bc2954d73..5084f19308 100644
--- a/chromium/patches/patch-chrome_common_channel__info.h
+++ b/chromium/patches/patch-chrome_common_channel__info.h
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- chrome/common/channel_info.h.orig	2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/channel_info.h.orig	2024-07-24 02:44:30.488186000 +0000
 +++ chrome/common/channel_info.h
-@@ -61,7 +61,7 @@ bool IsSideBySideCapable();
+@@ -12,7 +12,7 @@
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ namespace base {
+ class Environment;
+ }
+@@ -100,7 +100,7 @@ void ClearChannelIdForTesting();
  std::string GetChannelSuffixForDataDir();
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::string GetChannelSuffixForExtraFlagsEnvVarName();
+ 
  // Returns the channel-specific filename of the desktop shortcut used to launch
- // the browser.
- std::string GetDesktopName(base::Environment* env);
diff --git a/chromium/patches/patch-chrome_common_channel__info__posix.cc b/chromium/patches/patch-chrome_common_channel__info__posix.cc
index 3493b5dd9d..5e896bc881 100644
--- a/chromium/patches/patch-chrome_common_channel__info__posix.cc
+++ b/chromium/patches/patch-chrome_common_channel__info__posix.cc
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- chrome/common/channel_info_posix.cc.orig	2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/channel_info_posix.cc.orig	2024-07-24 02:44:30.488186000 +0000
 +++ chrome/common/channel_info_posix.cc
-@@ -67,7 +67,7 @@ std::string GetChannelSuffixForDataDir()
+@@ -93,7 +93,7 @@ std::string GetChannelSuffixForDataDir()
    }
  }
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ std::string GetChannelSuffixForExtraFlagsEnvVarName() {
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+   const auto channel_state = GetChannelImpl();
+@@ -121,7 +121,7 @@ std::string GetChannelSuffixForExtraFlag
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  std::string GetDesktopName(base::Environment* env) {
  #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
    // Google Chrome packaged as a snap is a special case: the application name
diff --git a/chromium/patches/patch-chrome_common_chrome__content__client.cc b/chromium/patches/patch-chrome_common_chrome__content__client.cc
deleted file mode 100644
index 27597f2568..0000000000
--- a/chromium/patches/patch-chrome_common_chrome__content__client.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/common/chrome_content_client.cc.orig	2020-07-08 21:41:47.000000000 +0000
-+++ chrome/common/chrome_content_client.cc
-@@ -65,7 +65,7 @@
- #include "ui/base/resource/resource_bundle.h"
- #include "url/url_constants.h"
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include <fcntl.h>
- #include "chrome/common/component_flash_hint_file_linux.h"
- #include "sandbox/linux/services/credentials.h"
-@@ -294,7 +294,7 @@ bool GetComponentUpdatedPepperFlash(cont
- 
-   return TryCreatePepperFlashInfo(flash_filename, plugin);
- }
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- // This method is used on Linux only because of architectural differences in how
- // it loads the component updated flash plugin, and not because the other
- // platforms do not support component updated flash. On other platforms, the
-@@ -557,7 +557,7 @@ void ChromeContentClient::AddPepperPlugi
-   std::vector<std::unique_ptr<content::PepperPluginInfo>> flash_versions;
- 
- // Get component updated flash for desktop Linux and Chrome OS.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Depending on the sandbox configuration, the file system
-   // is not always available. If it is not available, do not try and load any
-   // flash plugin. The flash player, if any, preloaded before the sandbox
diff --git a/chromium/patches/patch-chrome_common_chrome__features.cc b/chromium/patches/patch-chrome_common_chrome__features.cc
index 45307b3a88..c5a6b54477 100644
--- a/chromium/patches/patch-chrome_common_chrome__features.cc
+++ b/chromium/patches/patch-chrome_common_chrome__features.cc
@@ -1,13 +1,62 @@
 $NetBSD$
 
---- chrome/common/chrome_features.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_features.cc.orig	2024-07-24 02:44:30.492186300 +0000
 +++ chrome/common/chrome_features.cc
-@@ -70,7 +70,7 @@ const base::Feature kAsyncDns {
+@@ -81,7 +81,7 @@ BASE_FEATURE(kUseAdHocSigningForWebAppSh
+ #endif  // BUILDFLAG(IS_MAC)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Enables or disables the Autofill survey triggered by opening a prompt to
+ // save address info.
+ BASE_FEATURE(kAutofillAddressSurvey,
+@@ -99,7 +99,7 @@ BASE_FEATURE(kAutofillPasswordSurvey,
+              base::FEATURE_DISABLED_BY_DEFAULT);
  #endif
- };
  
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // Enables the Restart background mode optimization. When all Chrome UI is
  // closed and it goes in the background, allows to restart the browser to
  // discard memory.
+@@ -277,7 +277,7 @@ BASE_FEATURE(kDesktopPWAsElidedExtension
+ BASE_FEATURE(kDesktopPWAsRunOnOsLogin,
+              "DesktopPWAsRunOnOsLogin",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
+@@ -319,7 +319,7 @@ BASE_FEATURE(kDesktopPWAsTabStripSetting
+              "DesktopPWAsTabStripSettings",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Controls whether Chrome Apps are supported. See https://crbug.com/1221251.
+ // If the feature is disabled, Chrome Apps continue to work. If enabled, Chrome
+ // Apps will not launch and will be marked in the UI as deprecated.
+@@ -876,7 +876,7 @@ BASE_FEATURE(kKAnonymityServiceStorage,
+              "KAnonymityServiceStorage",
+              base::FEATURE_ENABLED_BY_DEFAULT);
+ 
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kLinuxLowMemoryMonitor,
+              "LinuxLowMemoryMonitor",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -889,7 +889,7 @@ constexpr base::FeatureParam<int> kLinux
+     &kLinuxLowMemoryMonitor, "critical_level", 255};
+ #endif  // BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kListWebAppsSwitch,
+              "ListWebAppsSwitch",
+              base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-chrome_common_chrome__features.h b/chromium/patches/patch-chrome_common_chrome__features.h
index bd6e4879c0..271c6d55ee 100644
--- a/chromium/patches/patch-chrome_common_chrome__features.h
+++ b/chromium/patches/patch-chrome_common_chrome__features.h
@@ -1,13 +1,51 @@
 $NetBSD$
 
---- chrome/common/chrome_features.h.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_features.h.orig	2024-07-24 02:44:30.492186300 +0000
 +++ chrome/common/chrome_features.h
-@@ -63,7 +63,7 @@ extern const base::Feature kAppServiceAd
+@@ -60,13 +60,13 @@ BASE_DECLARE_FEATURE(kUseAdHocSigningFor
+ #endif  // BUILDFLAG(IS_MAC)
  
- COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kAsyncDns;
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kAutofillAddressSurvey);
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kAutofillCardSurvey);
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kAutofillPasswordSurvey);
+ #endif
  
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES)
+ BASE_DECLARE_FEATURE(kBackgroundModeAllowRestart);
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -193,7 +193,7 @@ BASE_DECLARE_FEATURE(kDesktopPWAsPrevent
+ COMPONENT_EXPORT(CHROME_FEATURES)
+ BASE_DECLARE_FEATURE(kDesktopPWAsTabStripSettings);
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kChromeAppsDeprecation);
+ COMPONENT_EXPORT(CHROME_FEATURES)
+ BASE_DECLARE_FEATURE(kShortcutsNotApps);
+@@ -529,7 +529,7 @@ BASE_DECLARE_FEATURE(kKAnonymityServiceO
  COMPONENT_EXPORT(CHROME_FEATURES)
- extern const base::Feature kBackgroundModeAllowRestart;
- #endif  // defined(OS_WIN) || defined(OS_LINUX)
+ BASE_DECLARE_FEATURE(kKAnonymityServiceStorage);
+ 
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kLinuxLowMemoryMonitor);
+ COMPONENT_EXPORT(CHROME_FEATURES)
+ extern const base::FeatureParam<int> kLinuxLowMemoryMonitorModerateLevel;
+@@ -537,7 +537,7 @@ COMPONENT_EXPORT(CHROME_FEATURES)
+ extern const base::FeatureParam<int> kLinuxLowMemoryMonitorCriticalLevel;
+ #endif  // BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kListWebAppsSwitch);
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_common_chrome__paths.cc b/chromium/patches/patch-chrome_common_chrome__paths.cc
index 0680686b14..e05eb3fac8 100644
--- a/chromium/patches/patch-chrome_common_chrome__paths.cc
+++ b/chromium/patches/patch-chrome_common_chrome__paths.cc
@@ -1,58 +1,90 @@
 $NetBSD$
 
---- chrome/common/chrome_paths.cc.orig	2020-07-15 18:55:52.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_paths.cc.orig	2024-07-24 02:44:30.492186300 +0000
 +++ chrome/common/chrome_paths.cc
-@@ -52,14 +52,14 @@ const base::FilePath::CharType kPepperFl
-     FILE_PATH_LITERAL("Internet Plug-Ins/PepperFlashPlayer");
+@@ -30,7 +30,7 @@
+ #include "base/apple/foundation_util.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
+ #include "components/policy/core/common/policy_paths.h"
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+@@ -52,14 +52,14 @@
+ 
+ namespace {
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // The path to the external extension <id>.json files.
  // /usr/share seems like a good choice, see: http://www.pathname.com/fhs/
  const base::FilePath::CharType kFilepathSinglePrefExtensions[] =
  #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
 -    FILE_PATH_LITERAL("/usr/share/google-chrome/extensions");
-+    FILE_PATH_LITERAL("@PREFIX@/share/google-chrome/extensions");
++    FILE_PATH_LITERAL("@PREFIX@/share/chromium/extensions");
  #else
 -    FILE_PATH_LITERAL("/usr/share/chromium/extensions");
 +    FILE_PATH_LITERAL("@PREFIX@/share/chromium/extensions");
  #endif  // BUILDFLAG(GOOGLE_CHROME_BRANDING)
  
- // The path to the hint file that tells the pepper plugin loader
-@@ -205,7 +205,7 @@ bool PathProvider(int key, base::FilePat
-         return false;
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -225,7 +225,7 @@ bool PathProvider(int key, base::FilePat
+       }
        break;
      case chrome::DIR_DEFAULT_DOWNLOADS_SAFE:
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
-       if (!GetUserDownloadsDirectorySafe(&cur))
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+       if (!GetUserDownloadsDirectorySafe(&cur)) {
          return false;
+       }
+@@ -541,7 +541,7 @@ bool PathProvider(int key, base::FilePat
+         return false;
+       }
+       break;
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
+     case chrome::DIR_POLICY_FILES: {
+       cur = base::FilePath(policy::kPolicyPath);
        break;
-@@ -505,7 +505,7 @@ bool PathProvider(int key, base::FilePat
+@@ -552,7 +552,7 @@ bool PathProvider(int key, base::FilePat
+ #if BUILDFLAG(IS_CHROMEOS_ASH) ||                              \
+     ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
+      BUILDFLAG(CHROMIUM_BRANDING)) ||                          \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+     case chrome::DIR_USER_EXTERNAL_EXTENSIONS: {
+       if (!base::PathService::Get(chrome::DIR_USER_DATA, &cur)) {
+         return false;
+@@ -561,7 +561,7 @@ bool PathProvider(int key, base::FilePat
        break;
      }
  #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      case chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS: {
        cur = base::FilePath(kFilepathSinglePrefExtensions);
        break;
-@@ -540,7 +540,7 @@ bool PathProvider(int key, base::FilePat
- #endif
+@@ -599,7 +599,7 @@ bool PathProvider(int key, base::FilePat
        break;
  
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(ENABLE_EXTENSIONS) && \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD))
      case chrome::DIR_NATIVE_MESSAGING:
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_MAC)
  #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
-@@ -574,7 +574,7 @@ bool PathProvider(int key, base::FilePat
-       cur = cur.Append(kGCMStoreDirname);
-       break;
- #endif  // !defined(OS_ANDROID)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     case chrome::FILE_COMPONENT_FLASH_HINT:
-       if (!base::PathService::Get(
-               chrome::DIR_COMPONENT_UPDATED_PEPPER_FLASH_PLUGIN, &cur)) {
+@@ -613,6 +613,9 @@ bool PathProvider(int key, base::FilePat
+ #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+       cur = base::FilePath(
+           FILE_PATH_LITERAL("/etc/opt/chrome/native-messaging-hosts"));
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
++      cur = base::FilePath(FILE_PATH_LITERAL(
++          "@PREFIX@/etc/chromium/native-messaging-hosts"));
+ #else
+       cur = base::FilePath(
+           FILE_PATH_LITERAL("/etc/chromium/native-messaging-hosts"));
diff --git a/chromium/patches/patch-chrome_common_chrome__paths.h b/chromium/patches/patch-chrome_common_chrome__paths.h
index a73b6fa2f6..ff1d134b79 100644
--- a/chromium/patches/patch-chrome_common_chrome__paths.h
+++ b/chromium/patches/patch-chrome_common_chrome__paths.h
@@ -1,49 +1,35 @@
 $NetBSD$
 
---- chrome/common/chrome_paths.h.orig	2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_paths.h.orig	2024-07-24 02:44:30.492186300 +0000
 +++ chrome/common/chrome_paths.h
-@@ -51,7 +51,7 @@ enum {
-                      // contains subdirectories.
- #endif
- #if defined(OS_CHROMEOS) || \
--    (defined(OS_LINUX) && BUILDFLAG(CHROMIUM_BRANDING)) || defined(OS_MACOSX)
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(CHROMIUM_BRANDING)) || defined(OS_MACOSX)
+@@ -59,7 +59,7 @@ enum {
+ #if BUILDFLAG(IS_CHROMEOS_ASH) ||                              \
+     ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
+      BUILDFLAG(CHROMIUM_BRANDING)) ||                          \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    DIR_USER_EXTERNAL_EXTENSIONS,  // Directory for per-user external extensions
                                   // on Chrome Mac and Chromium Linux.
                                   // On Chrome OS, this path is used for OEM
-@@ -59,7 +59,7 @@ enum {
+@@ -67,7 +67,7 @@ enum {
                                   // create it.
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    DIR_STANDALONE_EXTERNAL_EXTENSIONS,  // Directory for 'per-extension'
                                         // definition manifest files that
                                         // describe extensions which are to be
-@@ -91,7 +91,7 @@ enum {
-   DIR_PNACL_BASE,                   // Full path to the base dir for PNaCl.
-   DIR_PNACL_COMPONENT,              // Full path to the latest PNaCl version
-                                     // (subdir of DIR_PNACL_BASE).
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   DIR_BUNDLED_WIDEVINE_CDM,  // Full path to the directory containing the
-                              // bundled Widevine CDM.
- #if !defined(OS_CHROMEOS)
-@@ -120,7 +120,7 @@ enum {
-   DIR_SUPERVISED_USER_INSTALLED_WHITELISTS,  // Directory where sanitized
-                                              // supervised user whitelists are
-                                              // installed.
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+@@ -126,7 +126,7 @@ enum {
+ 
+ #endif
+ #if BUILDFLAG(ENABLE_EXTENSIONS) && \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD))
    DIR_NATIVE_MESSAGING,       // System directory where native messaging host
                                // manifest files are stored.
    DIR_USER_NATIVE_MESSAGING,  // Directory with Native Messaging Hosts
-@@ -135,7 +135,7 @@ enum {
-   DIR_GEN_TEST_DATA,  // Directory where generated test data resides.
-   DIR_TEST_DATA,      // Directory where unit test data resides.
-   DIR_TEST_TOOLS,     // Directory where unit test tools reside.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   FILE_COMPONENT_FLASH_HINT,  // A file in a known location that points to
-                               // the component updated flash plugin.
- #endif  // defined(OS_LINUX)
diff --git a/chromium/patches/patch-chrome_common_chrome__paths__internal.h b/chromium/patches/patch-chrome_common_chrome__paths__internal.h
index 8346bc3cbf..e2690378ee 100644
--- a/chromium/patches/patch-chrome_common_chrome__paths__internal.h
+++ b/chromium/patches/patch-chrome_common_chrome__paths__internal.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/common/chrome_paths_internal.h.orig	2020-07-08 21:40:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_paths_internal.h.orig	2024-07-24 02:44:30.492186300 +0000
 +++ chrome/common/chrome_paths_internal.h
-@@ -45,7 +45,7 @@ void GetUserCacheDirectory(const base::F
+@@ -43,7 +43,7 @@ void GetUserCacheDirectory(const base::F
  // Get the path to the user's documents directory.
  bool GetUserDocumentsDirectory(base::FilePath* result);
  
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // Gets the path to a safe default download directory for a user.
  bool GetUserDownloadsDirectorySafe(base::FilePath* result);
  #endif
diff --git a/chromium/patches/patch-chrome_common_chrome__switches.cc b/chromium/patches/patch-chrome_common_chrome__switches.cc
index b6a69f15f6..f0d79de065 100644
--- a/chromium/patches/patch-chrome_common_chrome__switches.cc
+++ b/chromium/patches/patch-chrome_common_chrome__switches.cc
@@ -1,13 +1,25 @@
 $NetBSD$
 
---- chrome/common/chrome_switches.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_switches.cc.orig	2024-07-24 02:44:30.492186300 +0000
 +++ chrome/common/chrome_switches.cc
-@@ -834,7 +834,7 @@ const char kAllowNaClFileHandleAPI[]    
- const char kAllowNaClSocketAPI[]            = "allow-nacl-socket-api";
+@@ -867,14 +867,14 @@ const char kAllowNaClSocketAPI[] = "allo
  #endif
  
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
  const char kEnableNewAppMenuIcon[] = "enable-new-app-menu-icon";
  
  // Causes the browser to launch directly in guest mode.
+ const char kGuest[] = "guest";
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Writes open and installed web apps for each profile to the specified file
+ // without launching a new browser window or tab. Pass a absolute file path to
+ // specify where to output the information. Can be used together with optional
diff --git a/chromium/patches/patch-chrome_common_chrome__switches.h b/chromium/patches/patch-chrome_common_chrome__switches.h
index b0a4224a42..cdeb5d2e83 100644
--- a/chromium/patches/patch-chrome_common_chrome__switches.h
+++ b/chromium/patches/patch-chrome_common_chrome__switches.h
@@ -1,13 +1,23 @@
 $NetBSD$
 
---- chrome/common/chrome_switches.h.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/chrome_switches.h.orig	2024-07-24 02:44:30.492186300 +0000
 +++ chrome/common/chrome_switches.h
-@@ -255,7 +255,7 @@ extern const char kAllowNaClFileHandleAP
- extern const char kAllowNaClSocketAPI[];
+@@ -274,12 +274,12 @@ extern const char kAllowNaClSocketAPI[];
  #endif
  
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
  extern const char kEnableNewAppMenuIcon[];
  extern const char kGuest[];
  #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ extern const char kListApps[];
+ extern const char kProfileBaseName[];
+ extern const char kProfileManagementAttributes[];
diff --git a/chromium/patches/patch-chrome_common_component__flash__hint__file__linux.h b/chromium/patches/patch-chrome_common_component__flash__hint__file__linux.h
deleted file mode 100644
index c514b56f2b..0000000000
--- a/chromium/patches/patch-chrome_common_component__flash__hint__file__linux.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/common/component_flash_hint_file_linux.h.orig	2020-07-24 02:37:49.000000000 +0000
-+++ chrome/common/component_flash_hint_file_linux.h
-@@ -7,7 +7,7 @@
- 
- #include "build/build_config.h"
- 
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
- #error "This file only applies to the Linux component update of Flash."
- #endif  // !defined(OS_LINUX)
- 
diff --git a/chromium/patches/patch-chrome_common_extensions_api_api__sources.gni b/chromium/patches/patch-chrome_common_extensions_api_api__sources.gni
deleted file mode 100644
index 702f3eab1c..0000000000
--- a/chromium/patches/patch-chrome_common_extensions_api_api__sources.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/common/extensions/api/api_sources.gni.orig	2020-07-08 21:40:36.000000000 +0000
-+++ chrome/common/extensions/api/api_sources.gni
-@@ -112,7 +112,7 @@ if (is_chromeos) {
-       "printing_metrics.idl",
-     ]
-   }
--} else if (is_linux || is_win) {
-+} else if (is_linux || is_win || is_bsd) {
-   schema_sources_ += [ "input_ime.json" ]
- }
- 
diff --git a/chromium/patches/patch-chrome_common_extensions_command.cc b/chromium/patches/patch-chrome_common_extensions_command.cc
deleted file mode 100644
index 37d97b9c52..0000000000
--- a/chromium/patches/patch-chrome_common_extensions_command.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/common/extensions/command.cc.orig	2020-07-08 21:40:36.000000000 +0000
-+++ chrome/common/extensions/command.cc
-@@ -293,7 +293,7 @@ std::string Command::CommandPlatform() {
-   return values::kKeybindingPlatformMac;
- #elif defined(OS_CHROMEOS)
-   return values::kKeybindingPlatformChromeOs;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   return values::kKeybindingPlatformLinux;
- #else
-   return "";
diff --git a/chromium/patches/patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc b/chromium/patches/patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc
new file mode 100644
index 0000000000..cad92706db
--- /dev/null
+++ b/chromium/patches/patch-chrome_common_extensions_permissions_chrome__permission__message__rules.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/extensions/permissions/chrome_permission_message_rules.cc.orig	2024-07-24 02:44:30.524189200 +0000
++++ chrome/common/extensions/permissions/chrome_permission_message_rules.cc
+@@ -285,7 +285,7 @@ int GetEnterpriseReportingPrivatePermiss
+   }
+ #if BUILDFLAG(IS_WIN)
+   return IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_REPORTING_PRIVATE_ENABLED_WIN;
+-#elif BUILDFLAG(IS_LINUX) or BUILDFLAG(IS_MAC)
++#elif BUILDFLAG(IS_LINUX) or BUILDFLAG(IS_MAC) or BUILDFLAG(IS_BSD)
+   return IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_REPORTING_PRIVATE_ENABLED_LINUX_AND_MACOS;
+ #else
+   return IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_REPORTING_PRIVATE;
diff --git a/chromium/patches/patch-chrome_common_features.gni b/chromium/patches/patch-chrome_common_features.gni
deleted file mode 100644
index 07e0965b14..0000000000
--- a/chromium/patches/patch-chrome_common_features.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/common/features.gni.orig	2020-07-08 21:41:47.000000000 +0000
-+++ chrome/common/features.gni
-@@ -49,7 +49,7 @@ declare_args() {
-                                 (is_desktop_linux && use_dbus) || is_chromeos
- 
-   enable_one_click_signin =
--      is_win || is_mac || (is_linux && !is_chromeos && !is_chromecast)
-+      is_win || is_mac || ((is_linux || is_bsd) && !is_chromeos && !is_chromecast)
- 
-   enable_service_discovery = (enable_mdns && !is_android) || is_mac
- 
diff --git a/chromium/patches/patch-chrome_common_media_cdm__host__file__path.cc b/chromium/patches/patch-chrome_common_media_cdm__host__file__path.cc
index 09386ffa58..142c513034 100644
--- a/chromium/patches/patch-chrome_common_media_cdm__host__file__path.cc
+++ b/chromium/patches/patch-chrome_common_media_cdm__host__file__path.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chrome/common/media/cdm_host_file_path.cc.orig	2020-07-08 21:40:37.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/media/cdm_host_file_path.cc.orig	2024-07-24 02:44:30.528189700 +0000
 +++ chrome/common/media/cdm_host_file_path.cc
-@@ -95,7 +95,7 @@ void AddCdmHostFilePaths(
+@@ -90,7 +90,7 @@ void AddCdmHostFilePaths(
    cdm_host_file_paths->emplace_back(chrome_framework_path,
                                      chrome_framework_sig_path);
  
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  
    base::FilePath chrome_exe_dir;
    if (!base::PathService::Get(base::DIR_EXE, &chrome_exe_dir))
diff --git a/chromium/patches/patch-chrome_common_media_cdm__registration.cc b/chromium/patches/patch-chrome_common_media_cdm__registration.cc
new file mode 100644
index 0000000000..f9e0725e40
--- /dev/null
+++ b/chromium/patches/patch-chrome_common_media_cdm__registration.cc
@@ -0,0 +1,62 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/media/cdm_registration.cc.orig	2024-07-24 02:44:30.528189700 +0000
++++ chrome/common/media/cdm_registration.cc
+@@ -33,7 +33,7 @@
+ #if BUILDFLAG(ENABLE_WIDEVINE)
+ #include "components/cdm/common/cdm_manifest.h"
+ #include "third_party/widevine/cdm/widevine_cdm_common.h"  // nogncheck
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/native_library.h"
+ #include "chrome/common/chrome_paths.h"
+ #include "chrome/common/media/component_widevine_cdm_hint_file_linux.h"
+@@ -86,7 +86,7 @@ void ReportLacrosUMA(LacrosBundledWidevi
+ 
+ #if (BUILDFLAG(BUNDLE_WIDEVINE_CDM) ||            \
+      BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)) && \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ // Create a CdmInfo for a Widevine CDM, using |version|, |cdm_library_path|, and
+ // |capability|.
+ std::unique_ptr<content::CdmInfo> CreateWidevineCdmInfo(
+@@ -131,7 +131,7 @@ std::unique_ptr<content::CdmInfo> Create
+         // BUILDFLAG(IS_CHROMEOS))
+ 
+ #if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ // On Linux/ChromeOS we have to preload the CDM since it uses the zygote
+ // sandbox. On Windows and Mac, CDM registration is handled by Component
+ // Update (as the CDM can be loaded only when needed).
+@@ -185,7 +185,7 @@ std::unique_ptr<content::CdmInfo> GetAsh
+ #endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+ #if (BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) &&             \
+-     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH))) || \
++     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD))) || \
+     BUILDFLAG(IS_CHROMEOS_LACROS)
+ // This code checks to see if Component Updater picked a version of the Widevine
+ // CDM to be used last time it ran. (Component Updater may choose the bundled
+@@ -232,7 +232,7 @@ void AddSoftwareSecureWidevine(std::vect
+       /*supports_sub_key_systems=*/false, kWidevineCdmDisplayName,
+       kWidevineCdmType, base::Version(), base::FilePath());
+ 
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if defined(WIDEVINE_CDM_MIN_GLIBC_VERSION)
+   base::Version glibc_version(gnu_get_libc_version());
+   DCHECK(glibc_version.IsValid());
+@@ -493,7 +493,7 @@ void RegisterCdmInfo(std::vector<content
+ }
+ 
+ #if BUILDFLAG(ENABLE_WIDEVINE) && \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD))
+ std::vector<content::CdmInfo> GetSoftwareSecureWidevine() {
+   std::vector<content::CdmInfo> cdms;
+   AddSoftwareSecureWidevine(&cdms);
diff --git a/chromium/patches/patch-chrome_common_media_cdm__registration.h b/chromium/patches/patch-chrome_common_media_cdm__registration.h
new file mode 100644
index 0000000000..502ccdf357
--- /dev/null
+++ b/chromium/patches/patch-chrome_common_media_cdm__registration.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/media/cdm_registration.h.orig	2024-07-24 02:44:30.528189700 +0000
++++ chrome/common/media/cdm_registration.h
+@@ -16,7 +16,7 @@
+ void RegisterCdmInfo(std::vector<content::CdmInfo>* cdms);
+ 
+ #if BUILDFLAG(ENABLE_WIDEVINE) && \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD))
+ // Returns the software secure Widevine CDM, if one exists.
+ std::vector<content::CdmInfo> GetSoftwareSecureWidevine();
+ #endif
diff --git a/chromium/patches/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h b/chromium/patches/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h
new file mode 100644
index 0000000000..0ae28ebfb3
--- /dev/null
+++ b/chromium/patches/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/media/component_widevine_cdm_hint_file_linux.h.orig	2024-07-24 02:44:30.528189700 +0000
++++ chrome/common/media/component_widevine_cdm_hint_file_linux.h
+@@ -17,7 +17,7 @@
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
+ #error "This file only applies to desktop Linux and ChromeOS."
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_common_pref__names.cc b/chromium/patches/patch-chrome_common_pref__names.cc
deleted file mode 100644
index 94cdac43f3..0000000000
--- a/chromium/patches/patch-chrome_common_pref__names.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD$
-
---- chrome/common/pref_names.cc.orig	2020-07-08 21:41:47.000000000 +0000
-+++ chrome/common/pref_names.cc
-@@ -1081,7 +1081,7 @@ const char kForceYouTubeRestrict[] = "se
- // only using an account that belongs to one of the domains from this pref.
- const char kAllowedDomainsForApps[] = "settings.allowed_domains_for_apps";
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // Linux specific preference on whether we should match the system theme.
- const char kUsesSystemTheme[] = "extensions.theme.use_system";
- #endif
-@@ -1224,7 +1224,7 @@ const char kShowUpdatePromotionInfoBar[]
-     "browser.show_update_promotion_info_bar";
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // Boolean that is false if we should show window manager decorations.  If
- // true, we draw a custom chrome frame (thicker title bar and blue border).
- const char kUseCustomChromeFrame[] = "browser.custom_chrome_frame";
-@@ -1667,7 +1667,7 @@ const char kDownloadDefaultDirectory[] =
- // upgrade a unsafe location to a safe location.
- const char kDownloadDirUpgraded[] = "download.directory_upgrade";
- 
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
- const char kOpenPdfDownloadInSystemReader[] =
-     "download.open_pdf_in_system_reader";
- #endif
-@@ -1982,7 +1982,7 @@ const char kGloballyScopeHTTPAuthCacheEn
- const char kAmbientAuthenticationInPrivateModesEnabled[] =
-     "auth.ambient_auth_in_private_modes";
- 
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS) || defined(OS_BSD)
- // Boolean that specifies whether OK-AS-DELEGATE flag from KDC is respected
- // along with kAuthNegotiateDelegateWhitelist.
- const char kAuthNegotiateDelegateByKdcPolicy[] =
-@@ -2908,7 +2908,7 @@ const char kAutoplayWhitelist[] = "media
- const char kBlockAutoplayEnabled[] = "media.block_autoplay";
- #endif  // !defined(OS_ANDROID)
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // Boolean that indicates if native notifications are allowed to be used in
- // place of Chrome notifications.
- const char kAllowNativeNotifications[] = "native_notifications.allowed";
diff --git a/chromium/patches/patch-chrome_common_pref__names.h b/chromium/patches/patch-chrome_common_pref__names.h
index d5149bead2..d0ea5d1ef7 100644
--- a/chromium/patches/patch-chrome_common_pref__names.h
+++ b/chromium/patches/patch-chrome_common_pref__names.h
@@ -1,49 +1,97 @@
 $NetBSD$
 
---- chrome/common/pref_names.h.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/pref_names.h.orig	2024-07-24 02:44:30.536190500 +0000
 +++ chrome/common/pref_names.h
-@@ -349,7 +349,7 @@ extern const char kHistoryMenuPromoShown
- extern const char kForceGoogleSafeSearch[];
- extern const char kForceYouTubeRestrict[];
- extern const char kAllowedDomainsForApps[];
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- extern const char kUsesSystemTheme[];
+@@ -1340,7 +1340,7 @@ inline constexpr char kUseAshProxy[] = "
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Linux specific preference on whether we should match the system theme.
+ inline constexpr char kSystemTheme[] = "extensions.theme.system_theme";
  #endif
- extern const char kCurrentThemePackFilename[];
-@@ -380,7 +380,7 @@ extern const char kDefaultBrowserSetting
- #if defined(OS_MACOSX)
- extern const char kShowUpdatePromotionInfoBar[];
+@@ -1483,7 +1483,7 @@ inline constexpr char kShowUpdatePromoti
+     "browser.show_update_promotion_info_bar";
  #endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- extern const char kUseCustomChromeFrame[];
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Boolean that is false if we should show window manager decorations.  If
+ // true, we draw a custom chrome frame (thicker title bar and blue border).
+ inline constexpr char kUseCustomChromeFrame[] = "browser.custom_chrome_frame";
+@@ -2088,7 +2088,7 @@ inline constexpr char kDownloadDefaultDi
+ inline constexpr char kDownloadDirUpgraded[] = "download.directory_upgrade";
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ inline constexpr char kOpenPdfDownloadInSystemReader[] =
+     "download.open_pdf_in_system_reader";
  #endif
- #if BUILDFLAG(ENABLE_PLUGINS)
-@@ -555,7 +555,7 @@ extern const char kDownloadExtensionsToO
- extern const char kDownloadExtensionsToOpenByPolicy[];
- extern const char kDownloadAllowedURLsForOpenByPolicy[];
- extern const char kDownloadDirUpgraded[];
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
- extern const char kOpenPdfDownloadInSystemReader[];
+@@ -2528,14 +2528,14 @@ inline constexpr char kMediaStorageIdSal
+ inline constexpr char kMediaCdmOriginData[] = "media.cdm.origin_data";
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // A boolean pref to determine whether or not the network service is running
+ // sandboxed.
+ inline constexpr char kNetworkServiceSandboxEnabled[] =
+     "net.network_service_sandbox";
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Records whether the user has seen an HTTP auth "negotiate" header.
+ inline constexpr char kReceivedHttpAuthNegotiateHeader[] =
+     "net.received_http_auth_negotiate_headers";
+@@ -2613,7 +2613,7 @@ inline constexpr char kAmbientAuthentica
+ inline constexpr char kBasicAuthOverHttpEnabled[] =
+     "auth.basic_over_http_enabled";
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Boolean that specifies whether OK-AS-DELEGATE flag from KDC is respected
+ // along with kAuthNegotiateDelegateAllowlist.
+ inline constexpr char kAuthNegotiateDelegateByKdcPolicy[] =
+@@ -3133,7 +3133,7 @@ inline constexpr char kDeviceWeeklySched
+ 
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Defines administrator-set availability of Chrome for Testing.
+ inline constexpr char kChromeForTestingAllowed[] = "chrome_for_testing.allowed";
  #endif
- #if defined(OS_ANDROID)
-@@ -775,7 +775,7 @@ extern const char kAllowCrossOriginAuthP
- extern const char kGloballyScopeHTTPAuthCacheEnabled[];
- extern const char kAmbientAuthenticationInPrivateModesEnabled[];
- 
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS) || defined(OS_BSD)
- extern const char kAuthNegotiateDelegateByKdcPolicy[];
- #endif  // defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
- 
-@@ -1009,7 +1009,7 @@ extern const char kAutoplayWhitelist[];
- extern const char kBlockAutoplayEnabled[];
+@@ -3706,7 +3706,7 @@ inline constexpr char kFileOrDirectoryPi
+ inline constexpr char kSandboxExternalProtocolBlocked[] =
+     "profile.sandbox_external_protocol_blocked";
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Boolean that indicates if system notifications are allowed to be used in
+ // place of Chrome notifications.
+ inline constexpr char kAllowSystemNotifications[] =
+@@ -3755,7 +3755,7 @@ inline constexpr char kCACertificateMana
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- extern const char kAllowNativeNotifications[];
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ inline constexpr char kEnforceLocalAnchorConstraintsEnabled[] =
+     "enforce_local_anchor_constraints_enabled";
+ #endif
+@@ -4063,7 +4063,7 @@ inline constexpr char kPrintingOAuth2Aut
+     "printing.oauth2_authorization_servers";
  #endif
  
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // If this exists and is true, Chrome may run system DNS resolution out of the
+ // network process. If false, Chrome will run system DNS resolution in the
+ // network process. If non-existent, Chrome will decide where to run system DNS
diff --git a/chromium/patches/patch-chrome_common_url__constants.h b/chromium/patches/patch-chrome_common_url__constants.h
new file mode 100644
index 0000000000..ac76d0f1c9
--- /dev/null
+++ b/chromium/patches/patch-chrome_common_url__constants.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/url_constants.h.orig	2024-07-24 02:44:30.544191400 +0000
++++ chrome/common/url_constants.h
+@@ -907,7 +907,7 @@ inline constexpr char kOutdatedPluginLea
+ inline constexpr char kPhoneHubPermissionLearnMoreURL[] =
+     "https://support.google.com/chromebook?p=multidevice";;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // "Learn more" URL for the chrome apps deprecation dialog.
+ inline constexpr char kChromeAppsDeprecationLearnMoreURL[] =
+     "https://support.google.com/chrome?p=chrome_app_deprecation";;
diff --git a/chromium/patches/patch-chrome_common_webui__url__constants.cc b/chromium/patches/patch-chrome_common_webui__url__constants.cc
index e35dad68d2..02f7545944 100644
--- a/chromium/patches/patch-chrome_common_webui__url__constants.cc
+++ b/chromium/patches/patch-chrome_common_webui__url__constants.cc
@@ -1,50 +1,109 @@
 $NetBSD$
 
---- chrome/common/webui_url_constants.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/webui_url_constants.cc.orig	2024-07-24 02:44:30.544191400 +0000
 +++ chrome/common/webui_url_constants.cc
-@@ -317,7 +317,7 @@ bool IsSystemWebUIHost(base::StringPiece
- }
- #endif  // defined(OS_CHROMEOS)
+@@ -259,7 +259,7 @@ const char kChromeUIVersionURL[] = "chro
+ const char kChromeUIWelcomeHost[] = "welcome";
+ const char kChromeUIWelcomeURL[] = "chrome://welcome/";
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kChromeUIWhatsNewHost[] = "whats-new";
+ const char kChromeUIWhatsNewURL[] = "chrome://whats-new/";
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+@@ -523,18 +523,18 @@ const char kOsUISystemURL[] = "os://syst
+ const char kOsUIVersionURL[] = "os://version";
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kChromeUIWebUIJsErrorHost[] = "webuijserror";
+ const char kChromeUIWebUIJsErrorURL[] = "chrome://webuijserror/";
+ #endif
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ const char kChromeUIConnectorsInternalsHost[] = "connectors-internals";
+ #endif
  
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  const char kChromeUIDiscardsHost[] = "discards";
  const char kChromeUIDiscardsURL[] = "chrome://discards/";
- const char kChromeUIHatsHost[] = "hats";
-@@ -334,17 +334,17 @@ const char kChromeUINearbyShareURL[] = "
- const char kChromeUILinuxProxyConfigHost[] = "linux-proxy-config";
+ #endif
+@@ -549,14 +549,14 @@ const char kChromeUILinuxProxyConfigHost
  #endif
  
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
  const char kChromeUISandboxHost[] = "sandbox";
  #endif
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
  const char kChromeUIBrowserSwitchHost[] = "browser-switch";
  const char kChromeUIBrowserSwitchURL[] = "chrome://browser-switch/";
+ const char kChromeUIIntroHost[] = "intro";
+@@ -575,7 +575,7 @@ const char kChromeUIProfilePickerUrl[] =
+ const char kChromeUIProfilePickerStartupQuery[] = "startup";
  #endif
  
--#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
+-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+      defined(TOOLKIT_VIEWS)) ||                         \
+     defined(USE_AURA)
  const char kChromeUITabModalConfirmDialogHost[] = "tab-modal-confirm-dialog";
+@@ -654,7 +654,7 @@ const char kTrackingProtectionSubPagePat
+ const char kCookiesSubPagePath[] = "/cookies";
  #endif
  
-@@ -510,13 +510,13 @@ const char* const kChromeHostURLs[] = {
-     kChromeUIInternetDetailDialogHost,
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kChromeUIWebAppSettingsURL[] = "chrome://app-settings/";
+ const char kChromeUIWebAppSettingsHost[] = "app-settings";
+ #endif
+@@ -802,21 +802,21 @@ const char* const kChromeHostURLs[] = {
      kChromeUIAssistantOptInHost,
  #endif
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+     kChromeUIConnectorsInternalsHost,
+ #endif
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      kChromeUIDiscardsHost,
  #endif
- #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     kChromeUIWebAppSettingsHost,
+ #endif
+ #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID)
      kChromeUILinuxProxyConfigHost,
  #endif
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
      kChromeUISandboxHost,
  #endif
- #if defined(OS_WIN)
+ #if BUILDFLAG(IS_WIN)
+@@ -883,7 +883,7 @@ const char* const kChromeDebugURLs[] = {
+     blink::kChromeUIGpuJavaCrashURL,
+     kChromeUIJavaCrashURL,
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     kChromeUIWebUIJsErrorURL,
+ #endif
+     kChromeUIQuitURL,
diff --git a/chromium/patches/patch-chrome_common_webui__url__constants.h b/chromium/patches/patch-chrome_common_webui__url__constants.h
index f1381a3bfc..06fd415c8e 100644
--- a/chromium/patches/patch-chrome_common_webui__url__constants.h
+++ b/chromium/patches/patch-chrome_common_webui__url__constants.h
@@ -1,34 +1,62 @@
 $NetBSD$
 
---- chrome/common/webui_url_constants.h.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/common/webui_url_constants.h.orig	2024-07-24 02:44:30.544191400 +0000
 +++ chrome/common/webui_url_constants.h
-@@ -276,7 +276,7 @@ bool IsSystemWebUIHost(base::StringPiece
+@@ -438,23 +438,23 @@ extern const char kOsUISystemURL[];
+ extern const char kOsUIVersionURL[];
+ #endif
  
- #endif  // defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ extern const char kChromeUIWebUIJsErrorHost[];
+ extern const char kChromeUIWebUIJsErrorURL[];
+ #endif
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ extern const char kChromeUIConnectorsInternalsHost[];
+ #endif
  
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  extern const char kChromeUIDiscardsHost[];
  extern const char kChromeUIDiscardsURL[];
- extern const char kChromeUIHatsHost[];
-@@ -293,17 +293,17 @@ extern const char kChromeUINearbyShareUR
- extern const char kChromeUILinuxProxyConfigHost[];
  #endif
  
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ extern const char kChromeUIWebAppSettingsURL[];
+ extern const char kChromeUIWebAppSettingsHost[];
+ extern const char kChromeUIWhatsNewHost[];
+@@ -471,14 +471,14 @@ extern const char kChromeUILinuxProxyCon
+ #endif
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
  extern const char kChromeUISandboxHost[];
  #endif
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
  extern const char kChromeUIBrowserSwitchHost[];
  extern const char kChromeUIBrowserSwitchURL[];
+ extern const char kChromeUIIntroHost[];
+@@ -494,7 +494,7 @@ extern const char kChromeUIProfilePicker
+ extern const char kChromeUIProfilePickerStartupQuery[];
  #endif
  
--#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
+-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+      defined(TOOLKIT_VIEWS)) ||                         \
+     defined(USE_AURA)
  extern const char kChromeUITabModalConfirmDialogHost[];
- #endif
- 
diff --git a/chromium/patches/patch-chrome_enterprise__companion_enterprise__companion__client.cc b/chromium/patches/patch-chrome_enterprise__companion_enterprise__companion__client.cc
new file mode 100644
index 0000000000..5ad4aae15b
--- /dev/null
+++ b/chromium/patches/patch-chrome_enterprise__companion_enterprise__companion__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/enterprise_companion/enterprise_companion_client.cc.orig	2024-07-24 02:44:30.576194300 +0000
++++ chrome/enterprise_companion/enterprise_companion_client.cc
+@@ -9,7 +9,7 @@ namespace enterprise_companion {
+ mojo::NamedPlatformChannel::ServerName GetServerName() {
+ #if BUILDFLAG(IS_MAC)
+   return "org.chromium.ChromeEnterpriseCompanion.service";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return "/run/Chromium/ChromeEnterpriseCompanion/service.sk";
+ #elif BUILDFLAG(IS_WIN)
+   return L"ChromeEnterpriseCompanionService";
diff --git a/chromium/patches/patch-chrome_enterprise__companion_lock.cc b/chromium/patches/patch-chrome_enterprise__companion_lock.cc
new file mode 100644
index 0000000000..db311b06bc
--- /dev/null
+++ b/chromium/patches/patch-chrome_enterprise__companion_lock.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/enterprise_companion/lock.cc.orig	2024-07-24 02:44:30.576194300 +0000
++++ chrome/enterprise_companion/lock.cc
+@@ -16,7 +16,7 @@
+ 
+ namespace {
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr char kLockName[] = "/ChromeEnterpriseCompanion.lock";
+ #elif BUILDFLAG(IS_MAC)
+ constexpr char kLockName[] = "org.chromium.ChromeEnterpriseCompanion.lock";
+@@ -41,7 +41,7 @@ CSecurityDesc GetAdminDaclSecurityDescri
+ namespace enterprise_companion {
+ 
+ std::unique_ptr<ScopedLock> CreateScopedLock() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return named_system_lock::ScopedLock::Create(kLockName, base::Seconds(0));
+ #elif BUILDFLAG(IS_WIN)
+   CSecurityAttributes sa =
diff --git a/chromium/patches/patch-chrome_renderer_BUILD.gn b/chromium/patches/patch-chrome_renderer_BUILD.gn
deleted file mode 100644
index 328b758910..0000000000
--- a/chromium/patches/patch-chrome_renderer_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/renderer/BUILD.gn.orig	2020-07-15 18:56:46.000000000 +0000
-+++ chrome/renderer/BUILD.gn
-@@ -244,7 +244,7 @@ static_library("renderer") {
-       "//ppapi/shared_impl",
-     ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       deps += [ "//components/services/font/public/cpp" ]
-     }
-   }
diff --git a/chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc b/chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc
deleted file mode 100644
index b7f6eba69f..0000000000
--- a/chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chrome/renderer/pepper/pepper_flash_font_file_host.cc.orig	2020-07-08 21:40:37.000000000 +0000
-+++ chrome/renderer/pepper/pepper_flash_font_file_host.cc
-@@ -15,7 +15,7 @@
- #include "ppapi/proxy/ppapi_messages.h"
- #include "ppapi/proxy/serialized_structs.h"
- 
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "components/services/font/public/cpp/font_loader.h"
- #include "content/public/common/common_sandbox_support_linux.h"
- #elif defined(OS_WIN)
-@@ -29,7 +29,7 @@ PepperFlashFontFileHost::PepperFlashFont
-     const ppapi::proxy::SerializedFontDescription& description,
-     PP_PrivateFontCharset charset)
-     : ResourceHost(host->GetPpapiHost(), instance, resource) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // The global SkFontConfigInterface is configured and initialized with a
-   // SkFontconfigInterface compatible font_service::FontLoader in
-   // RendererBlinkPlatformImpl (called from RenderThreadImpl::Init) at startup
-@@ -74,7 +74,7 @@ bool PepperFlashFontFileHost::GetFontDat
-                                           void* buffer,
-                                           size_t* length) {
-   bool result = false;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   if (font_file_.IsValid()) {
-     result = content::GetFontTable(font_file_.GetPlatformFile(), table,
-                                    0 /* offset */,
diff --git a/chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h b/chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h
deleted file mode 100644
index 07784c1f77..0000000000
--- a/chromium/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/renderer/pepper/pepper_flash_font_file_host.h.orig	2020-07-08 21:40:37.000000000 +0000
-+++ chrome/renderer/pepper/pepper_flash_font_file_host.h
-@@ -14,7 +14,7 @@
- #include "ppapi/c/private/pp_private_font_charset.h"
- #include "ppapi/host/resource_host.h"
- 
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "base/files/file.h"
- #elif defined(OS_WIN)
- #include "third_party/skia/include/core/SkRefCnt.h"
-@@ -50,7 +50,7 @@ class PepperFlashFontFileHost : public p
-                          uint32_t table);
-   bool GetFontData(uint32_t table, void* buffer, size_t* length);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   base::File font_file_;
- #elif defined(OS_WIN)
-   sk_sp<SkTypeface> typeface_;
diff --git a/chromium/patches/patch-chrome_service_cloud__print_print__system.cc b/chromium/patches/patch-chrome_service_cloud__print_print__system.cc
deleted file mode 100644
index 910ca636fb..0000000000
--- a/chromium/patches/patch-chrome_service_cloud__print_print__system.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/service/cloud_print/print_system.cc.orig	2020-07-08 21:40:37.000000000 +0000
-+++ chrome/service/cloud_print/print_system.cc
-@@ -36,7 +36,7 @@ std::string PrintSystem::GenerateProxyId
-   return base::GenerateGUID();
- }
- 
--#if defined(OS_LINUX) && !defined(USE_CUPS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(USE_CUPS)
- scoped_refptr<PrintSystem> PrintSystem::CreateInstance(
-     const base::DictionaryValue*) {
-   return nullptr;
diff --git a/chromium/patches/patch-chrome_services_printing_print__backend__service__impl.cc b/chromium/patches/patch-chrome_services_printing_print__backend__service__impl.cc
new file mode 100644
index 0000000000..e88656f95c
--- /dev/null
+++ b/chromium/patches/patch-chrome_services_printing_print__backend__service__impl.cc
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/services/printing/print_backend_service_impl.cc.orig	2024-07-24 02:44:30.676204000 +0000
++++ chrome/services/printing/print_backend_service_impl.cc
+@@ -49,7 +49,7 @@
+ #include "printing/backend/cups_connection_pool.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/no_destructor.h"
+ #include "ui/linux/linux_ui.h"
+ #include "ui/linux/linux_ui_delegate_stub.h"
+@@ -76,7 +76,7 @@ namespace printing {
+ 
+ namespace {
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void InstantiateLinuxUiDelegate() {
+   // TODO(crbug.com/40561724)  Until a real UI can be used in a utility process,
+   // need to use the stub version.
+@@ -85,7 +85,7 @@ void InstantiateLinuxUiDelegate() {
+ #endif
+ 
+ scoped_refptr<base::SequencedTaskRunner> GetPrintingTaskRunner() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Use task runner associated with equivalent of UI thread.  Needed for calls
+   // made through `PrintDialogLinuxInterface` to properly execute.
+   CHECK(base::SequencedTaskRunner::HasCurrentDefault());
+@@ -469,7 +469,7 @@ void PrintBackendServiceImpl::Init(
+   // `InitCommon()`.
+   InitializeProcessForPrinting();
+   print_backend_ = PrintBackend::CreateInstance(locale);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Test framework already initializes the UI, so this should not go in
+   // `InitCommon()`.  Additionally, low-level Linux UI is not needed when tests
+   // are using `TestPrintingContext`.
+@@ -690,7 +690,7 @@ void PrintBackendServiceImpl::UpdatePrin
+   crash_keys_ = std::make_unique<crash_keys::ScopedPrinterInfo>(
+       *printer_name, print_backend_->GetPrinterDriverInfo(*printer_name));
+ 
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_CUPS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_CUPS)
+   // Try to fill in advanced settings based upon basic info options.
+   PrinterBasicInfo basic_info;
+   if (print_backend_->GetPrinterBasicInfo(*printer_name, &basic_info) ==
diff --git a/chromium/patches/patch-chrome_services_speech_audio__source__fetcher__impl.cc b/chromium/patches/patch-chrome_services_speech_audio__source__fetcher__impl.cc
new file mode 100644
index 0000000000..9860378a86
--- /dev/null
+++ b/chromium/patches/patch-chrome_services_speech_audio__source__fetcher__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/services/speech/audio_source_fetcher_impl.cc.orig	2024-07-24 02:44:30.692205700 +0000
++++ chrome/services/speech/audio_source_fetcher_impl.cc
+@@ -132,7 +132,7 @@ void AudioSourceFetcherImpl::Start(
+ 
+   // TODO(crbug.com/40753481): Check implementation / sandbox policy on Mac and
+   // Windows.
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   is_started_ = true;
+   // Initialize the AudioCapturerSource with |this| as the CaptureCallback,
+   // get the parameters for the device ID, then start audio capture.
diff --git a/chromium/patches/patch-chrome_test_BUILD.gn b/chromium/patches/patch-chrome_test_BUILD.gn
deleted file mode 100644
index 13a464be24..0000000000
--- a/chromium/patches/patch-chrome_test_BUILD.gn
+++ /dev/null
@@ -1,220 +0,0 @@
-$NetBSD$
-
---- chrome/test/BUILD.gn.orig	2020-06-25 09:32:36.000000000 +0000
-+++ chrome/test/BUILD.gn
-@@ -268,7 +268,7 @@ static_library("test_support") {
-     ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     public_deps += [ "//crypto:platform" ]
-   }
- 
-@@ -333,7 +333,7 @@ static_library("test_support") {
-     ]
-   }
- 
--  if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+  if (is_win || is_mac || (is_linux && !is_chromeos) || is_bsd) {
-     public_deps += [ "//ui/base:pixel_diff_test_support" ]
-     sources += [
-       "pixel/browser_skia_gold_pixel_diff.cc",
-@@ -1609,7 +1609,7 @@ if (!is_android) {
-         }
-       }
- 
--      if (is_win || is_linux) {
-+      if (is_win || is_linux || is_bsd) {
-         sources += [ "../browser/nacl_host/test/nacl_gdb_browsertest.cc" ]
-         data_deps += [ "//chrome/browser/nacl_host/test:mock_nacl_gdb" ]
-       }
-@@ -2069,7 +2069,7 @@ if (!is_android) {
-       }
-     }
- 
--    if (is_linux && !is_component_build) {
-+    if ((is_linux || is_bsd) && !is_component_build) {
-       # Set rpath to find the CDM adapter even in a non-component build.
-       configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-     }
-@@ -2682,7 +2682,7 @@ if (!is_android) {
-       ]
-       deps += [ "//components/wifi:test_support" ]
-     }
--    if (is_linux || is_win) {
-+    if (is_linux || is_win || is_bsd) {
-       sources += [
-         # This test is for the spelling options submenu that's only for Windows,
-         # ChromeOS, and Linux.
-@@ -2693,7 +2693,7 @@ if (!is_android) {
-       sources -= [ "../common/time_format_browsertest.cc" ]
-     }
- 
--    if (is_mac || is_win || (is_linux && !is_chromeos)) {
-+    if (is_mac || is_win || (is_linux && !is_chromeos) || is_bsd) {
-       sources += [
-         # Tests for non mobile and non CrOS (includes Linux, Win, Mac).
-         "../browser/browser_switcher/browser_switcher_browsertest.cc",
-@@ -2734,7 +2734,7 @@ if (!is_android) {
-         ]
-       }
-     }
--    if (is_linux && is_asan && is_lsan) {
-+    if ((is_linux || is_bsd) && is_asan && is_lsan) {
-       # TODO(crbug.com/793426): Fix the flakiness on Linux Asan Lsan bot.
-       sources -= [ "../browser/media/encrypted_media_browsertest.cc" ]
-     }
-@@ -2813,7 +2813,7 @@ if (!is_android) {
-       }
-     }
- 
--    if (is_chromeos || (is_linux && use_dbus)) {
-+    if (is_chromeos || ((is_linux || is_bsd) && use_dbus)) {
-       sources += [ "../browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_apitest.cc" ]
-     }
- 
-@@ -2843,7 +2843,7 @@ if (!is_android) {
-   }
- }
- 
--if (is_linux || is_mac || is_win) {
-+if (is_linux || is_mac || is_win || is_bsd) {
-   import("//tools/binary_size/sizes.gni")
- 
-   group("browser_tests_apprtc") {
-@@ -2977,7 +2977,7 @@ group("telemetry_perf_webview_tests") {
- group("angle_perftests") {
-   testonly = true
-   data_deps = [ "//testing:run_perf_test" ]
--  if (is_win || is_linux || is_android) {
-+  if (is_win || is_linux || is_android || is_bsd) {
-     data_deps += [ "//third_party/angle/src/tests:angle_perftests" ]
-   }
- }
-@@ -3649,7 +3649,7 @@ test("unit_tests") {
-     ]
-   }
- 
--  if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+  if (is_win || is_mac || (is_linux && !is_chromeos) || is_bsd) {
-     sources += [ "../test/pixel/browser_skia_gold_pixel_diff_unittest.cc" ]
-   }
- 
-@@ -3714,7 +3714,7 @@ test("unit_tests") {
-       "$root_gen_dir/chrome/android/chrome_apk_paks/resources.pak",
-     ]
-   }
--  if (is_linux || is_win) {
-+  if (is_linux || is_win || is_bsd) {
-     data_deps += [ "//chrome:packed_resources" ]
-   }
-   if (is_win) {
-@@ -5012,7 +5012,7 @@ test("unit_tests") {
-       "//ui/wm",
-     ]
-   }
--  if (!is_chromeos && is_linux) {
-+  if (!is_chromeos && (is_linux || is_bsd)) {
-     sources += [
-       "../browser/shell_integration_linux_unittest.cc",
-       "../browser/upgrade_detector/get_installed_version_linux_unittest.cc",
-@@ -5267,7 +5267,7 @@ test("unit_tests") {
-   } else {
-     sources -= [ "../browser/password_manager/password_store_x_unittest.cc" ]
-   }
--  if (is_linux && use_aura) {
-+  if ((is_linux || is_bsd) && use_aura) {
-     deps += [ "//ui/aura:test_support" ]
-     if (use_dbus) {
-       deps += [ "//dbus:test_support" ]
-@@ -5511,7 +5511,7 @@ test("unit_tests") {
-         "../browser/ui/views/sync/profile_signin_confirmation_dialog_views_unittest.cc",
-       ]
-     }
--    if ((is_linux && !is_chromeos) || is_win) {
-+    if ((is_linux && !is_chromeos) || is_win || is_bsd) {
-       sources +=
-           [ "../browser/notifications/popups_only_ui_controller_unittest.cc" ]
-     }
-@@ -5567,7 +5567,7 @@ test("unit_tests") {
-     sources += [ "../browser/extensions/blacklist_unittest.cc" ]
-   }
- 
--  if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+  if (is_win || is_mac || (is_linux && !is_chromeos) || is_bsd) {
-     sources += [
-       "../browser/browser_switcher/alternative_browser_driver_unittest.cc",
-       "../browser/browser_switcher/browser_switcher_navigation_throttle_unittest.cc",
-@@ -5884,7 +5884,7 @@ if (!is_android) {
-     }
- 
-     configs += [ "//build/config:precompiled_headers" ]
--    if (is_linux && !is_component_build) {
-+    if ((is_linux || is_bsd) && !is_component_build) {
-       configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-     }
- 
-@@ -5909,7 +5909,7 @@ if (!is_android) {
-       "$root_out_dir/test_page.css.mock-http-headers",
-     ]
-     data += js2gtest_js_libraries
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       data += [ "$root_out_dir/libppapi_tests.so" ]
-     }
- 
-@@ -5971,7 +5971,7 @@ if (!is_android) {
-       "//third_party/mesa_headers",
-       "//ui/resources:ui_test_pak_data",
-     ]
--    if (is_linux || is_win) {
-+    if (is_linux || is_win || is_bsd) {
-       data_deps += [ "//chrome:packed_resources" ]
-     }
- 
-@@ -6031,7 +6031,7 @@ if (!is_android) {
-         "//ui/views:views_interactive_ui_tests",
-         "//ui/views/controls/webview:test_support",
-       ]
--      if (is_linux && !is_chromeos) {
-+      if ((is_linux || is_bsd) && !is_chromeos) {
-         # Desktop linux.
-         sources -= [
-           # TODO(port): This times out. Attempts have been made to fix the
-@@ -6170,7 +6170,7 @@ if (!is_android) {
-       configs += [ "//build/config/linux/atk" ]
-     }
- 
--    if (is_linux && !is_chromeos) {
-+    if ((is_linux || is_bsd) && !is_chromeos) {
-       deps += [ "//ui/base/ime/linux" ]
-     }
- 
-@@ -6204,7 +6204,7 @@ test("chrome_app_unittests") {
-     "//components/heap_profiling/in_process",
-     "//components/safe_browsing:buildflags",
-   ]
--  if (!is_fuchsia) {
-+  if (!is_fuchsia && !is_bsd) {
-     # TODO(crbug.com/753619): Enable crash reporting on Fuchsia.
-     deps += [ "//third_party/breakpad:client" ]
-   }
-@@ -6509,7 +6509,7 @@ if (!is_fuchsia && !is_android) {
-       "//third_party/mesa_headers",
-     ]
- 
--    if (is_linux || is_win) {
-+    if (is_linux || is_win || is_bsd) {
-       data_deps += [ "//chrome:packed_resources" ]
-     }
- 
-@@ -6702,7 +6702,7 @@ if (!is_fuchsia && !is_android) {
-       "//third_party/catapult/web_page_replay_go/deterministic.js",
-     ]
- 
--    if (is_linux || is_win) {
-+    if (is_linux || is_win || is_bsd) {
-       data_deps = [ "//chrome:packed_resources" ]
-     }
- 
diff --git a/chromium/patches/patch-chrome_test_base_chrome__test__launcher.cc b/chromium/patches/patch-chrome_test_base_chrome__test__launcher.cc
deleted file mode 100644
index 11f93cf33a..0000000000
--- a/chromium/patches/patch-chrome_test_base_chrome__test__launcher.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD$
-
---- chrome/test/base/chrome_test_launcher.cc.orig	2020-07-08 21:40:37.000000000 +0000
-+++ chrome/test/base/chrome_test_launcher.cc
-@@ -47,7 +47,7 @@
- #include "ui/base/test/ui_controls_aura.h"
- #endif
- 
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- #include "chrome/app/chrome_crash_reporter_client.h"
- #endif
- 
-@@ -61,7 +61,7 @@
- #endif
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- #include "chrome/browser/first_run/scoped_relaunch_chrome_browser_override.h"
- #include "chrome/browser/upgrade_detector/installed_version_poller.h"
- #include "testing/gtest/include/gtest/gtest.h"
-@@ -79,7 +79,7 @@ int ChromeTestSuiteRunner::RunTestSuite(
-   content::ContentTestSuiteBase::RegisterInProcessThreads();
- #endif
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
-   InstalledVersionPoller::ScopedDisableForTesting disable_polling(
-       InstalledVersionPoller::MakeScopedDisableForTesting());
- #endif
-@@ -201,7 +201,7 @@ int LaunchChromeTests(size_t parallel_jo
-   if (command_line.HasSwitch(switches::kLaunchAsBrowser))
-     sampling_profiler = std::make_unique<MainThreadStackSamplingProfiler>();
- 
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
-   ChromeCrashReporterClient::Create();
- #elif defined(OS_WIN)
-   // We leak this pointer intentionally. The crash client needs to outlive
-@@ -229,7 +229,7 @@ int LaunchChromeTests(size_t parallel_jo
-   }
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
-   // Cause a test failure for any test that triggers an unexpected relaunch.
-   // Tests that fail here should likely be restructured to put the "before
-   // relaunch" code into a PRE_ test with its own
diff --git a/chromium/patches/patch-chrome_test_base_in__process__browser__test.cc b/chromium/patches/patch-chrome_test_base_in__process__browser__test.cc
deleted file mode 100644
index ee5d5ccd9a..0000000000
--- a/chromium/patches/patch-chrome_test_base_in__process__browser__test.cc
+++ /dev/null
@@ -1,42 +0,0 @@
-$NetBSD$
-
---- chrome/test/base/in_process_browser_test.cc.orig	2020-07-08 21:40:37.000000000 +0000
-+++ chrome/test/base/in_process_browser_test.cc
-@@ -6,6 +6,10 @@
- 
- #include <utility>
- 
-+#if defined(OS_BSD)
-+#include <signal.h>
-+#endif
-+
- #include "base/auto_reset.h"
- #include "base/bind.h"
- #include "base/command_line.h"
-@@ -105,7 +109,7 @@
- #include "ui/events/test/event_generator.h"
- #endif  // defined(OS_CHROMEOS)
- 
--#if !defined(OS_CHROMEOS) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && (defined(OS_LINUX) || defined(OS_BSD))
- #include "ui/views/test/test_desktop_screen_x11.h"
- #endif
- 
-@@ -282,7 +286,7 @@ void InProcessBrowserTest::SetUp() {
-   // Cookies). Without this on Mac and Linux, many tests will hang waiting for a
-   // user to approve KeyChain/kwallet access. On Windows this is not needed as
-   // OS APIs never block.
--#if defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-   OSCryptMocker::SetUp();
- #endif
- 
-@@ -344,7 +348,7 @@ void InProcessBrowserTest::TearDown() {
-   com_initializer_.reset();
- #endif
-   BrowserTestBase::TearDown();
--#if defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-   OSCryptMocker::TearDown();
- #endif
- 
diff --git a/chromium/patches/patch-chrome_test_base_interactive__ui__tests__main.cc b/chromium/patches/patch-chrome_test_base_interactive__ui__tests__main.cc
deleted file mode 100644
index c2bd42a476..0000000000
--- a/chromium/patches/patch-chrome_test_base_interactive__ui__tests__main.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chrome/test/base/interactive_ui_tests_main.cc.orig	2020-07-08 21:40:37.000000000 +0000
-+++ chrome/test/base/interactive_ui_tests_main.cc
-@@ -16,7 +16,7 @@
- #if defined(USE_AURA)
- #include "ui/aura/test/ui_controls_factory_aura.h"
- #include "ui/base/test/ui_controls_aura.h"
--#if defined(USE_OZONE) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(USE_OZONE) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/base/ui_base_features.h"
- #include "ui/ozone/public/ozone_platform.h"
- #endif
-@@ -53,7 +53,7 @@ class InteractiveUITestSuite : public Ch
-     com_initializer_.reset(new base::win::ScopedCOMInitializer());
-     ui_controls::InstallUIControlsAura(
-         aura::test::CreateUIControlsAura(nullptr));
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #if defined(USE_OZONE)
-     if (features::IsUsingOzonePlatform()) {
-       ui::OzonePlatform::InitParams params;
diff --git a/chromium/patches/patch-chrome_test_base_scoped__channel__override__posix.cc b/chromium/patches/patch-chrome_test_base_scoped__channel__override__posix.cc
new file mode 100644
index 0000000000..1fcec5cf63
--- /dev/null
+++ b/chromium/patches/patch-chrome_test_base_scoped__channel__override__posix.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/test/base/scoped_channel_override_posix.cc.orig	2024-07-24 02:44:30.732209400 +0000
++++ chrome/test/base/scoped_channel_override_posix.cc
+@@ -45,7 +45,7 @@ std::string GetVersionExtra(ScopedChanne
+       return "beta";
+     case ScopedChannelOverride::Channel::kDev:
+       return "unstable";
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     case ScopedChannelOverride::Channel::kCanary:
+       return "canary";
+ #endif  // BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-chrome_test_base_test__browser__window.h b/chromium/patches/patch-chrome_test_base_test__browser__window.h
deleted file mode 100644
index 5d723c0a90..0000000000
--- a/chromium/patches/patch-chrome_test_base_test__browser__window.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chrome/test/base/test_browser_window.h.orig	2020-07-08 21:40:37.000000000 +0000
-+++ chrome/test/base/test_browser_window.h
-@@ -178,7 +178,7 @@ class TestBrowserWindow : public Browser
-       bool is_source_keyboard) override {}
- 
- #if defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) || \
--    defined(OS_LINUX)
-+    defined(OS_LINUX) || defined(OS_BSD)
-   void ShowHatsBubble(const std::string& site_id) override {}
- #endif
- 
diff --git a/chromium/patches/patch-chrome_test_base_testing__browser__process.h b/chromium/patches/patch-chrome_test_base_testing__browser__process.h
deleted file mode 100644
index a325cb908d..0000000000
--- a/chromium/patches/patch-chrome_test_base_testing__browser__process.h
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- chrome/test/base/testing_browser_process.h.orig	2020-07-08 21:40:37.000000000 +0000
-+++ chrome/test/base/testing_browser_process.h
-@@ -119,8 +119,10 @@ class TestingBrowserProcess : public Bro
-   DownloadRequestLimiter* download_request_limiter() override;
-   StartupData* startup_data() override;
- 
--#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-+#if (defined(OS_WIN) || (defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-   void StartAutoupdateTimer() override {}
-+#elif defined(OS_BSD)
-+  void StartAutoupdateTimer() {}
- #endif
- 
-   component_updater::ComponentUpdateService* component_updater() override;
diff --git a/chromium/patches/patch-chrome_test_chromedriver_chrome__launcher.cc b/chromium/patches/patch-chrome_test_chromedriver_chrome__launcher.cc
index d2bd78b606..914acd2f67 100644
--- a/chromium/patches/patch-chrome_test_chromedriver_chrome__launcher.cc
+++ b/chromium/patches/patch-chrome_test_chromedriver_chrome__launcher.cc
@@ -1,15 +1,16 @@
 $NetBSD$
 
---- chrome/test/chromedriver/chrome_launcher.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/test/chromedriver/chrome_launcher.cc.orig	2024-07-24 02:44:30.748211100 +0000
 +++ chrome/test/chromedriver/chrome_launcher.cc
-@@ -69,6 +69,10 @@
- #include "chrome/test/chromedriver/keycode_text_conversion.h"
- #endif
- 
-+#if defined(OS_BSD)
+@@ -73,6 +73,7 @@
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
 +#include <sys/wait.h>
-+#endif
-+
- namespace {
- 
- const char* const kCommonSwitches[] = {
+ #include <unistd.h>
+ #elif BUILDFLAG(IS_WIN)
+ #include <windows.h>
diff --git a/chromium/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc b/chromium/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc
index 23fbd20538..376785e16c 100644
--- a/chromium/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc
+++ b/chromium/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc
@@ -1,22 +1,35 @@
 $NetBSD$
 
---- chrome/test/chromedriver/chrome/chrome_finder.cc.orig	2020-07-08 21:40:37.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/test/chromedriver/chrome/chrome_finder.cc.orig	2024-07-24 02:44:30.736209900 +0000
 +++ chrome/test/chromedriver/chrome/chrome_finder.cc
-@@ -50,7 +50,7 @@ void GetApplicationDirs(std::vector<base
+@@ -58,7 +58,7 @@ void GetApplicationDirs(std::vector<base
          installation_locations[i].Append(L"Chromium\\Application"));
    }
  }
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  void GetApplicationDirs(std::vector<base::FilePath>* locations) {
    // TODO: Respect users' PATH variables.
    // Until then, we use an approximation of the most common defaults.
-@@ -136,7 +136,7 @@ bool FindChrome(base::FilePath* browser_
- #if defined(OS_WIN) || defined(OS_MACOSX)
-     base::FilePath(chrome::kBrowserProcessExecutablePath),
-     base::FilePath(chrome::kBrowserProcessExecutablePathChromium)
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-     base::FilePath("google-chrome"),
+@@ -125,7 +125,7 @@ std::vector<base::FilePath> GetChromePro
+             chrome::kGoogleChromeForTestingBrowserProcessExecutablePath),
+         base::FilePath(chrome::kGoogleChromeBrowserProcessExecutablePath),
+         base::FilePath(chrome::kChromiumBrowserProcessExecutablePath),
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      base::FilePath(chrome::kBrowserProcessExecutablePath),
-     base::FilePath(chrome::kBrowserProcessExecutablePathChromium),
+         base::FilePath("chrome"),  // Chrome for Testing or Google Chrome
+         base::FilePath("google-chrome"), base::FilePath("chromium"),
+@@ -141,7 +141,7 @@ std::vector<base::FilePath> GetHeadlessS
+   return {
+ #if BUILDFLAG(IS_WIN)
+     base::FilePath(FILE_PATH_LITERAL("chrome-headless-shell.exe")),
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     base::FilePath("chrome-headless-shell"),
+ #else
+     // it will compile but won't work on other OSes
diff --git a/chromium/patches/patch-chrome_test_chromedriver_key__converter__unittest.cc b/chromium/patches/patch-chrome_test_chromedriver_key__converter__unittest.cc
index 8b116b9983..6f6a7cbdde 100644
--- a/chromium/patches/patch-chrome_test_chromedriver_key__converter__unittest.cc
+++ b/chromium/patches/patch-chrome_test_chromedriver_key__converter__unittest.cc
@@ -1,40 +1,26 @@
 $NetBSD$
 
---- chrome/test/chromedriver/key_converter_unittest.cc.orig	2020-07-08 21:40:37.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/test/chromedriver/key_converter_unittest.cc.orig	2024-07-24 02:44:30.752211300 +0000
 +++ chrome/test/chromedriver/key_converter_unittest.cc
-@@ -277,7 +277,7 @@ TEST(KeyConverter, AllShorthandKeys) {
-       ->Generate(&key_events);
-   builder.Generate(&key_events);
-   builder.SetKeyCode(ui::VKEY_TAB);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   builder.SetText("\t", "\t")->Generate(&key_events);
- #else
-   builder.SetText(std::string(), std::string());
-@@ -285,7 +285,7 @@ TEST(KeyConverter, AllShorthandKeys) {
-   key_events.push_back(builder.SetType(kKeyUpEventType)->Build());
- #endif
-   builder.SetKeyCode(ui::VKEY_BACK);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   builder.SetText("\b", "\b")->Generate(&key_events);
- #else
-   builder.SetText(std::string(), std::string());
-@@ -296,7 +296,7 @@ TEST(KeyConverter, AllShorthandKeys) {
-   CheckEventsReleaseModifiers("\n\r\n\t\b ", key_events);
+@@ -246,7 +246,7 @@ TEST(KeyConverter, ToggleModifiers) {
+   CheckEventsReleaseModifiers(keys, key_events);
  }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // Fails on bots: crbug.com/174962
  #define MAYBE_AllEnglishKeyboardSymbols DISABLED_AllEnglishKeyboardSymbols
  #else
-@@ -353,7 +353,7 @@ TEST(KeyConverter, AllEnglishKeyboardTex
+@@ -303,7 +303,7 @@ TEST(KeyConverter, AllEnglishKeyboardTex
  TEST(KeyConverter, AllSpecialWebDriverKeysOnEnglishKeyboard) {
    ui::ScopedKeyboardLayout keyboard_layout(ui::KEYBOARD_LAYOUT_ENGLISH_US);
    const char kTextForKeys[] = {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
        0, 0, 0, 0, '\t', 0, '\r', '\r', 0, 0, 0, 0, 0,
  #else
        0, 0, 0, 0, 0, 0, '\r', '\r', 0, 0, 0, 0, 0,
diff --git a/chromium/patches/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc b/chromium/patches/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc
new file mode 100644
index 0000000000..9e27f0eec0
--- /dev/null
+++ b/chromium/patches/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/test/chromedriver/keycode_text_conversion_unittest.cc.orig	2024-07-24 02:44:30.752211300 +0000
++++ chrome/test/chromedriver/keycode_text_conversion_unittest.cc
+@@ -67,7 +67,7 @@ std::string ConvertKeyCodeToTextNoError(
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Fails on bots: crbug.com/174962
+ #define MAYBE_KeyCodeToText DISABLED_KeyCodeToText
+ #else
+@@ -104,7 +104,7 @@ TEST(KeycodeTextConversionTest, MAYBE_Ke
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Fails on bots: crbug.com/174962
+ #define MAYBE_CharToKeyCode DISABLED_CharToKeyCode
+ #else
diff --git a/chromium/patches/patch-chrome_updater_configurator.cc b/chromium/patches/patch-chrome_updater_configurator.cc
new file mode 100644
index 0000000000..e2bd11dbd4
--- /dev/null
+++ b/chromium/patches/patch-chrome_updater_configurator.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/updater/configurator.cc.orig	2024-07-24 02:44:32.248356300 +0000
++++ chrome/updater/configurator.cc
+@@ -67,7 +67,7 @@ Configurator::Configurator(scoped_refptr
+         return std::nullopt;
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+       }()) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // On Linux creating the NetworkFetcherFactory requires performing blocking IO
+   // to load an external library. This should be done when the configurator is
+   // created.
diff --git a/chromium/patches/patch-chrome_updater_lock.cc b/chromium/patches/patch-chrome_updater_lock.cc
new file mode 100644
index 0000000000..63865929fd
--- /dev/null
+++ b/chromium/patches/patch-chrome_updater_lock.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/updater/lock.cc.orig	2024-07-24 02:44:32.256357200 +0000
++++ chrome/updater/lock.cc
+@@ -26,7 +26,7 @@ namespace updater {
+ std::unique_ptr<ScopedLock> CreateScopedLock(const std::string& name,
+                                              UpdaterScope scope,
+                                              base::TimeDelta timeout) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return named_system_lock::ScopedLock::Create(
+       base::StrCat({"/" PRODUCT_FULLNAME_STRING, name,
+                     UpdaterScopeToString(scope), ".lock"}),
diff --git a/chromium/patches/patch-chrome_updater_util_posix__util.cc b/chromium/patches/patch-chrome_updater_util_posix__util.cc
new file mode 100644
index 0000000000..6d84c8ecaa
--- /dev/null
+++ b/chromium/patches/patch-chrome_updater_util_posix__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/updater/util/posix_util.cc.orig	2024-07-24 02:44:32.320363300 +0000
++++ chrome/updater/util/posix_util.cc
+@@ -20,7 +20,7 @@
+ #include "chrome/updater/updater_branding.h"
+ #include "chrome/updater/util/util.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/updater/util/linux_util.h"
+ #endif
+ 
diff --git a/chromium/patches/patch-chrome_utility_services.cc b/chromium/patches/patch-chrome_utility_services.cc
new file mode 100644
index 0000000000..53b8b11148
--- /dev/null
+++ b/chromium/patches/patch-chrome_utility_services.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chrome/utility/services.cc.orig	2024-07-24 02:44:32.340365200 +0000
++++ chrome/utility/services.cc
+@@ -57,7 +57,7 @@
+ #include "chrome/services/system_signals/mac/mac_system_signals_service.h"
+ #endif  // BUILDFLAG(IS_MAC)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "chrome/services/system_signals/linux/linux_system_signals_service.h"
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+@@ -214,7 +214,7 @@ auto RunMacNotificationService(
+ }
+ #endif  // BUILDFLAG(IS_MAC)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ auto RunSystemSignalsService(
+     mojo::PendingReceiver<device_signals::mojom::SystemSignalsService>
+         receiver) {
+@@ -481,7 +481,7 @@ void RegisterMainThreadServices(mojo::Se
+   services.Add(RunWindowsIconReader);
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   services.Add(RunSystemSignalsService);
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ 
diff --git a/chromium/patches/patch-chromecast_BUILD.gn b/chromium/patches/patch-chromecast_BUILD.gn
deleted file mode 100644
index 9ffdfa8808..0000000000
--- a/chromium/patches/patch-chromecast_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chromecast/BUILD.gn.orig	2020-07-15 18:56:46.000000000 +0000
-+++ chromecast/BUILD.gn
-@@ -123,7 +123,7 @@ cast_test_group("cast_tests") {
-     filters += [ sandbox_linux_unittests_filter ]
-   }
- 
--  if (is_linux || is_fuchsia) {
-+  if (is_linux || is_fuchsia || is_bsd) {
-     tests += [ "//chromecast/media/cma/backend:cast_audio_backend_unittests" ]
-     cast_audio_backend_unittests_filter = {
-       test_name = "cast_audio_backend_unittests"
diff --git a/chromium/patches/patch-chromecast_bindings_BUILD.gn b/chromium/patches/patch-chromecast_bindings_BUILD.gn
deleted file mode 100644
index 52dd1f9ea9..0000000000
--- a/chromium/patches/patch-chromecast_bindings_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chromecast/bindings/BUILD.gn.orig	2020-07-15 18:56:46.000000000 +0000
-+++ chromecast/bindings/BUILD.gn
-@@ -52,7 +52,7 @@ if (is_fuchsia) {
-   }
- }
- 
--if (is_linux || is_android) {
-+if (is_linux || is_android || is_bsd) {
-   source_set("bindings_manager_cast") {
-     sources = [
-       "bindings_manager_cast.cc",
-@@ -99,7 +99,7 @@ if (is_linux || is_android) {
- source_set("browsertests") {
-   testonly = true
-   deps = []
--  if (is_linux || is_android) {
-+  if (is_linux || is_android || is_bsd) {
-     deps += [ "//chromecast/bindings:browsertests_cast" ]
-   }
- }
diff --git a/chromium/patches/patch-chromecast_browser_BUILD.gn b/chromium/patches/patch-chromecast_browser_BUILD.gn
deleted file mode 100644
index a7cce2f28c..0000000000
--- a/chromium/patches/patch-chromecast_browser_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- chromecast/browser/BUILD.gn.orig	2020-07-15 18:56:46.000000000 +0000
-+++ chromecast/browser/BUILD.gn
-@@ -249,7 +249,7 @@ cast_source_set("browser") {
-     ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "cast_system_memory_pressure_evaluator.cc",
-       "cast_system_memory_pressure_evaluator.h",
-@@ -408,7 +408,7 @@ cast_source_set("browser") {
-     ]
-   }
- 
--  if (is_linux && use_ozone) {
-+  if ((is_linux || is_bsd) && use_ozone) {
-     sources += [
-       "exo/cast_wm_helper.cc",
-       "exo/cast_wm_helper.h",
-@@ -592,7 +592,7 @@ cast_source_set("unittests") {
-     ]
-   }
- 
--  if (is_linux && use_ozone) {
-+  if ((is_linux || is_bsd) && use_ozone) {
-     sources += [ "webview/webview_window_manager_unittest.cc" ]
-     deps += [
-       "//chromecast/graphics",
diff --git a/chromium/patches/patch-chromecast_browser_cast__browser__main__parts.cc b/chromium/patches/patch-chromecast_browser_cast__browser__main__parts.cc
index 015e3b9d41..34bcb3712f 100644
--- a/chromium/patches/patch-chromecast_browser_cast__browser__main__parts.cc
+++ b/chromium/patches/patch-chromecast_browser_cast__browser__main__parts.cc
@@ -1,40 +1,44 @@
 $NetBSD$
 
---- chromecast/browser/cast_browser_main_parts.cc.orig	2020-07-08 21:40:38.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chromecast/browser/cast_browser_main_parts.cc.orig	2024-07-24 02:44:32.364367500 +0000
 +++ chromecast/browser/cast_browser_main_parts.cc
-@@ -75,7 +75,7 @@
- #include "ui/base/ui_base_switches.h"
- #include "ui/gl/gl_switches.h"
+@@ -94,7 +94,7 @@
+ #include "ui/ozone/public/ozone_platform.h"
+ #endif  // BUILDFLAG(IS_OZONE)
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include <fontconfig/fontconfig.h>
  #include <signal.h>
  #include <sys/prctl.h>
-@@ -272,7 +272,7 @@ class CastViewsDelegate : public views::
+@@ -267,7 +267,7 @@ class CastViewsDelegate : public views::
  
  #endif  // defined(USE_AURA)
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  
  base::FilePath GetApplicationFontsDir() {
    std::unique_ptr<base::Environment> env(base::Environment::Create());
-@@ -317,7 +317,7 @@ const DefaultCommandLineSwitch kDefaultS
+@@ -313,7 +313,7 @@ const DefaultCommandLineSwitch kDefaultS
      {cc::switches::kDisableThreadedAnimation, ""},
- #endif  // defined(OS_ANDROID)
+ #endif  // BUILDFLAG(IS_ANDROID)
  #endif  // BUILDFLAG(IS_CAST_AUDIO_ONLY)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #if defined(ARCH_CPU_X86_FAMILY)
      // This is needed for now to enable the x11 Ozone platform to work with
      // current Linux/NVidia OpenGL drivers.
-@@ -484,7 +484,7 @@ void CastBrowserMainParts::ToolkitInitia
+@@ -490,7 +490,7 @@ void CastBrowserMainParts::ToolkitInitia
      views_delegate_ = std::make_unique<CastViewsDelegate>();
  #endif  // defined(USE_AURA)
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    base::FilePath dir_font = GetApplicationFontsDir();
-   const FcChar8 *dir_font_char8 = reinterpret_cast<const FcChar8*>(dir_font.value().data());
-   if (!FcConfigAppFontAddDir(gfx::GetGlobalFontConfig(), dir_font_char8)) {
+   const FcChar8* dir_font_char8 =
+       reinterpret_cast<const FcChar8*>(dir_font.value().data());
diff --git a/chromium/patches/patch-chromecast_browser_cast__content__browser__client.cc b/chromium/patches/patch-chromecast_browser_cast__content__browser__client.cc
index 6357948127..b0f076ceca 100644
--- a/chromium/patches/patch-chromecast_browser_cast__content__browser__client.cc
+++ b/chromium/patches/patch-chromecast_browser_cast__content__browser__client.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- chromecast/browser/cast_content_browser_client.cc.orig	2020-07-08 21:40:38.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chromecast/browser/cast_content_browser_client.cc.orig	2024-07-24 02:44:32.364367500 +0000
 +++ chromecast/browser/cast_content_browser_client.cc
-@@ -475,7 +475,7 @@ void CastContentBrowserClient::AppendExt
+@@ -431,7 +431,7 @@ void CastContentBrowserClient::AppendExt
                                            switches::kAudioOutputChannels));
      }
    } else if (process_type == switches::kGpuProcess) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      // Necessary for accelerated 2d canvas.  By default on Linux, Chromium
      // assumes GLES2 contexts can be lost to a power-save mode, which breaks GPU
      // canvas apps.
diff --git a/chromium/patches/patch-chromecast_browser_metrics_BUILD.gn b/chromium/patches/patch-chromecast_browser_metrics_BUILD.gn
deleted file mode 100644
index 25d3b88d2d..0000000000
--- a/chromium/patches/patch-chromecast_browser_metrics_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chromecast/browser/metrics/BUILD.gn.orig	2020-07-08 21:40:38.000000000 +0000
-+++ chromecast/browser/metrics/BUILD.gn
-@@ -32,7 +32,7 @@ cast_source_set("metrics") {
-     "//third_party/metrics_proto",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "external_metrics.cc",
-       "external_metrics.h",
diff --git a/chromium/patches/patch-chromecast_browser_tts_tts__controller__impl.cc b/chromium/patches/patch-chromecast_browser_tts_tts__controller__impl.cc
deleted file mode 100644
index 0f0f61720d..0000000000
--- a/chromium/patches/patch-chromecast_browser_tts_tts__controller__impl.cc
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- chromecast/browser/tts/tts_controller_impl.cc.orig	2020-07-08 21:40:38.000000000 +0000
-+++ chromecast/browser/tts/tts_controller_impl.cc
-@@ -390,7 +390,11 @@ int TtsControllerImpl::QueueSize() {
- }
- 
- TtsPlatformImpl* TtsControllerImpl::GetPlatformImpl() {
-+#if defined(OS_BSD)
-+  return NULL;
-+#else
-   return platform_impl_.get();
-+#endif
- }
- 
- std::string TtsControllerImpl::GetApplicationLocale() const {
diff --git a/chromium/patches/patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc b/chromium/patches/patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc
new file mode 100644
index 0000000000..a3ddfe2185
--- /dev/null
+++ b/chromium/patches/patch-chromecast_cast__core_runtime_browser_runtime__application__service__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chromecast/cast_core/runtime/browser/runtime_application_service_impl.cc.orig	2024-07-24 02:44:32.384369600 +0000
++++ chromecast/cast_core/runtime/browser/runtime_application_service_impl.cc
+@@ -336,7 +336,7 @@ CastWebView::Scoped RuntimeApplicationSe
+       GetFlagEntry(feature::kCastCoreIsRemoteControlMode,
+                    config_.extra_features(), /*default_value=*/false);
+   params->enabled_for_dev = IsEnabledForDev();
+-#if BUILDFLAG(ENABLE_CAST_RECEIVER) && BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(ENABLE_CAST_RECEIVER) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+   // cast_receiver::ApplicationControlsImpl constructs an instance of
+   // url_rewrite::UrlRequestRewriteRulesManager. CastWebContentsImpl should NOT
+   // construct its own instance, or UrlRequestRulesReceiver will crash when a
diff --git a/chromium/patches/patch-chromecast_chromecast.gni b/chromium/patches/patch-chromecast_chromecast.gni
deleted file mode 100644
index b671fc954f..0000000000
--- a/chromium/patches/patch-chromecast_chromecast.gni
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chromecast/chromecast.gni.orig	2020-07-15 18:56:46.000000000 +0000
-+++ chromecast/chromecast.gni
-@@ -114,7 +114,7 @@ declare_args() {
- 
-   # Set to true to enable external Mojo services to communicate with services
-   # within cast_shell.
--  enable_external_mojo_services = is_linux
-+  enable_external_mojo_services = is_linux || is_bsd
- 
-   # Support Perfetto tracing of processes that depend on entry points in
-   # //chromecast/external_mojo/external_service_support
-@@ -124,7 +124,7 @@ declare_args() {
-   audio_input_sample_rate = 16000
- 
-   # Whether use unix sockets in Cast input/output stream.
--  use_unix_sockets = is_linux
-+  use_unix_sockets = is_linux || is_bsd
- 
-   # Set to true to enable audio capture service for audio input.
-   enable_audio_capture_service = false
diff --git a/chromium/patches/patch-chromecast_external__mojo_public_cpp_external__mojo__broker.cc b/chromium/patches/patch-chromecast_external__mojo_public_cpp_external__mojo__broker.cc
deleted file mode 100644
index 332b366ee5..0000000000
--- a/chromium/patches/patch-chromecast_external__mojo_public_cpp_external__mojo__broker.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- chromecast/external_mojo/public/cpp/external_mojo_broker.cc.orig	2020-07-08 21:41:47.000000000 +0000
-+++ chromecast/external_mojo/public/cpp/external_mojo_broker.cc
-@@ -7,7 +7,7 @@
- #include <map>
- #include <utility>
- 
--#if OS_LINUX
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include <sys/stat.h>
- #endif
- 
-@@ -400,7 +400,7 @@ ExternalMojoBroker::ExternalMojoBroker(c
-       named_channel.TakeServerEndpoint();
-   DCHECK(server_endpoint.is_valid());
- 
--#if OS_LINUX
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   chmod(broker_path.c_str(), 0770);
- #endif
- 
diff --git a/chromium/patches/patch-chromecast_media_base_default__monotonic__clock.cc b/chromium/patches/patch-chromecast_media_base_default__monotonic__clock.cc
new file mode 100644
index 0000000000..8083bfe672
--- /dev/null
+++ b/chromium/patches/patch-chromecast_media_base_default__monotonic__clock.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- chromecast/media/base/default_monotonic_clock.cc.orig	2024-07-24 02:44:32.416372500 +0000
++++ chromecast/media/base/default_monotonic_clock.cc
+@@ -11,7 +11,7 @@
+ #include "base/time/time.h"
+ #include "build/build_config.h"
+ 
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "chromecast/media/base/buildflags.h"
+ #endif  // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ||
+         // BUILDFLAG(IS_CHROMEOS)
+@@ -28,7 +28,7 @@ std::unique_ptr<MonotonicClock> Monotoni
+   return std::make_unique<DefaultMonotonicClock>();
+ }
+ 
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ int64_t MonotonicClockNow() {
+   timespec now = {0, 0};
+ #if BUILDFLAG(MEDIA_CLOCK_MONOTONIC_RAW)
diff --git a/chromium/patches/patch-chromecast_net_BUILD.gn b/chromium/patches/patch-chromecast_net_BUILD.gn
deleted file mode 100644
index c0074a2619..0000000000
--- a/chromium/patches/patch-chromecast_net_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chromecast/net/BUILD.gn.orig	2020-07-15 18:55:53.000000000 +0000
-+++ chromecast/net/BUILD.gn
-@@ -11,7 +11,7 @@ cast_source_set("net") {
-     "net_util_cast.h",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "network_change_notifier_factory_cast.cc",
-       "network_change_notifier_factory_cast.h",
diff --git a/chromium/patches/patch-chromecast_renderer_cast__content__renderer__client.cc b/chromium/patches/patch-chromecast_renderer_cast__content__renderer__client.cc
deleted file mode 100644
index c93a9e57e7..0000000000
--- a/chromium/patches/patch-chromecast_renderer_cast__content__renderer__client.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- chromecast/renderer/cast_content_renderer_client.cc.orig	2020-07-08 21:41:47.000000000 +0000
-+++ chromecast/renderer/cast_content_renderer_client.cc
-@@ -207,7 +207,7 @@ void CastContentRendererClient::RenderFr
-   dispatcher->OnRenderFrameCreated(render_frame);
- #endif
- 
--#if defined(OS_LINUX) && defined(USE_OZONE)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && defined(USE_OZONE)
-   // JsChannelBindings destroys itself when the RenderFrame is destroyed.
-   JsChannelBindings::Create(render_frame);
- #endif
diff --git a/chromium/patches/patch-components_BUILD.gn b/chromium/patches/patch-components_BUILD.gn
deleted file mode 100644
index bdeabe975e..0000000000
--- a/chromium/patches/patch-components_BUILD.gn
+++ /dev/null
@@ -1,47 +0,0 @@
-$NetBSD$
-
---- components/BUILD.gn.orig	2020-07-15 18:56:46.000000000 +0000
-+++ components/BUILD.gn
-@@ -45,7 +45,7 @@ if (is_ios) {
- # no tests will run) and add a reference here. You can add more than one unit
- # test target if convenient.
- test("components_unittests") {
--  if (is_android || is_linux || is_mac || is_win) {
-+  if (is_android || is_linux || is_mac || is_win || is_bsd) {
-     data = [ "test/data/" ]
-   }
- 
-@@ -194,9 +194,13 @@ test("components_unittests") {
-   }
- 
-   if (!is_fuchsia) {
-+    if (!is_bsd) {
-+      deps += [
-+        "//components/browser_sync:unit_tests",
-+        "//components/send_tab_to_self:unit_tests",
-+      ]
-+    }
-     deps += [
--      "//components/browser_sync:unit_tests",
--      "//components/send_tab_to_self:unit_tests",
-       "//components/sync_device_info:unit_tests",
-       "//components/sync_sessions:unit_tests",
-       "//components/update_client:unit_tests",
-@@ -313,7 +317,7 @@ test("components_unittests") {
-     deps += [ ":components_tests_pak_bundle_data" ]
-   }
- 
--  if (is_mac || is_linux) {
-+  if (is_mac || is_linux || is_bsd) {
-     data_deps += [ "//content/shell:pak" ]
-   }
- 
-@@ -663,7 +667,7 @@ if (!is_ios && !is_fuchsia) {
-       ]
-     }
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       # content_extractor_browsertest is a standalone content extraction tool built as
-       # a MANUAL component_browsertest.
-       sources += [ "dom_distiller/standalone/content_extractor_browsertest.cc" ]
diff --git a/chromium/patches/patch-components_autofill__payments__strings.grdp b/chromium/patches/patch-components_autofill__payments__strings.grdp
deleted file mode 100644
index 0eed3793da..0000000000
--- a/chromium/patches/patch-components_autofill__payments__strings.grdp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/autofill_payments_strings.grdp.orig	2020-07-15 18:55:54.000000000 +0000
-+++ components/autofill_payments_strings.grdp
-@@ -116,7 +116,7 @@
-   <message name="IDS_AUTOFILL_FIX_FLOW_PROMPT_SAVE_CARD_LABEL" desc="Text to show on the button to save the card to Google when the fix flow dialog is shown after the Autofill save card prompt." formatter_data="android_java">
-     Save card
-   </message>
--  <if expr="is_linux and not chromeos">
-+  <if expr="is_posix and not chromeos">
-     <then>
-       <message name="IDS_AUTOFILL_SAVE_CARD_PROMPT_TITLE_TO_CLOUD" desc="Title text for the Autofill save card prompt when the card is to be saved by uploading it to Google Payments and also saved locally. The prompt can be either a bubble or an infobar.">
-         Do you want to save this card to your Google Account?
diff --git a/chromium/patches/patch-components_autofill_content_renderer_password__form__conversion__utils.cc b/chromium/patches/patch-components_autofill_content_renderer_password__form__conversion__utils.cc
deleted file mode 100644
index 98dba56175..0000000000
--- a/chromium/patches/patch-components_autofill_content_renderer_password__form__conversion__utils.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/autofill/content/renderer/password_form_conversion_utils.cc.orig	2020-07-08 21:40:39.000000000 +0000
-+++ components/autofill/content/renderer/password_form_conversion_utils.cc
-@@ -19,7 +19,7 @@
- #include "third_party/blink/public/web/web_form_control_element.h"
- #include "third_party/blink/public/web/web_input_element.h"
- #include "third_party/blink/public/web/web_local_frame.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- #include "url/gurl.h"
- 
- using blink::WebElement;
diff --git a/chromium/patches/patch-components_autofill_core_browser_autofill__external__delegate.cc b/chromium/patches/patch-components_autofill_core_browser_autofill__external__delegate.cc
deleted file mode 100644
index 8718bf99f2..0000000000
--- a/chromium/patches/patch-components_autofill_core_browser_autofill__external__delegate.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/autofill/core/browser/autofill_external_delegate.cc.orig	2020-07-08 21:40:39.000000000 +0000
-+++ components/autofill/core/browser/autofill_external_delegate.cc
-@@ -122,7 +122,7 @@ void AutofillExternalDelegate::OnSuggest
-     // Append the "Hide Suggestions" menu item for only Autofill Address and
-     // Autocomplete popups.
- #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
-   if (base::FeatureList::IsEnabled(
-           features::kAutofillEnableHideSuggestionsUI)) {
-     // If the user has selected a suggestion, it indicates the suggestions are
diff --git a/chromium/patches/patch-components_autofill_core_browser_payments__data__manager.cc b/chromium/patches/patch-components_autofill_core_browser_payments__data__manager.cc
new file mode 100644
index 0000000000..560a023ff0
--- /dev/null
+++ b/chromium/patches/patch-components_autofill_core_browser_payments__data__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/autofill/core/browser/payments_data_manager.cc.orig	2024-07-24 02:44:33.288457200 +0000
++++ components/autofill/core/browser/payments_data_manager.cc
+@@ -1065,7 +1065,7 @@ bool PaymentsDataManager::ShouldShowCard
+ // The feature is only for Linux, Windows, Mac, and Fuchsia.
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) || \
+     BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA)
+   // This option should only be shown for users that have not enabled the Sync
+   // Feature and that have server credit cards available.
diff --git a/chromium/patches/patch-components_autofill_core_browser_personal__data__manager.cc b/chromium/patches/patch-components_autofill_core_browser_personal__data__manager.cc
deleted file mode 100644
index f176b45093..0000000000
--- a/chromium/patches/patch-components_autofill_core_browser_personal__data__manager.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- components/autofill/core/browser/personal_data_manager.cc.orig	2020-07-08 21:40:39.000000000 +0000
-+++ components/autofill/core/browser/personal_data_manager.cc
-@@ -1916,7 +1916,7 @@ bool PersonalDataManager::IsServerCard(c
- 
- bool PersonalDataManager::ShouldShowCardsFromAccountOption() const {
- // The feature is only for Linux, Windows and Mac.
--#if (!defined(OS_LINUX) && !defined(OS_WIN) && !defined(OS_MACOSX)) || \
-+#if (!defined(OS_LINUX) && !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_BSD)) || \
-     defined(OS_CHROMEOS)
-   return false;
- #else
-@@ -1940,7 +1940,7 @@ bool PersonalDataManager::ShouldShowCard
- 
-   // The option should only be shown if the user has not already opted-in.
-   return !is_opted_in;
--#endif  // (!defined(OS_LINUX) && !defined(OS_WIN) && !defined(OS_MACOSX)) ||
-+#endif  // (!defined(OS_LINUX) && !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_BSD)) ||
-         // defined(OS_CHROMEOS)
- }
- 
diff --git a/chromium/patches/patch-components_autofill_core_common_autofill__features.cc b/chromium/patches/patch-components_autofill_core_common_autofill__features.cc
new file mode 100644
index 0000000000..642f801e13
--- /dev/null
+++ b/chromium/patches/patch-components_autofill_core_common_autofill__features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/autofill/core/common/autofill_features.cc.orig	2024-07-24 02:44:33.320460000 +0000
++++ components/autofill/core/common/autofill_features.cc
+@@ -661,7 +661,7 @@ BASE_FEATURE(kAutofillTextAreaChangeEven
+ // Enabled by default for Mac and Windows platforms.
+ BASE_FEATURE(kAutofillContentEditableChangeEvents,
+              "AutofillContentEditableChangeEvents",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-components_autofill_core_common_autofill__payments__features.cc b/chromium/patches/patch-components_autofill_core_common_autofill__payments__features.cc
index e6ca232da4..edac6c6aae 100644
--- a/chromium/patches/patch-components_autofill_core_common_autofill__payments__features.cc
+++ b/chromium/patches/patch-components_autofill_core_common_autofill__payments__features.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/autofill/core/common/autofill_payments_features.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/autofill/core/common/autofill_payments_features.cc.orig	2024-07-24 02:44:33.320460000 +0000
 +++ components/autofill/core/common/autofill_payments_features.cc
-@@ -124,7 +124,7 @@ const base::Feature kAutofillUpstreamAll
- 
+@@ -248,7 +248,7 @@ BASE_FEATURE(kAutofillSyncEwalletAccount
  bool ShouldShowImprovedUserConsentForCreditCardSave() {
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) || \
+     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
    // The new user consent UI is fully launched on MacOS, Windows and Linux.
    return true;
- #else
diff --git a/chromium/patches/patch-components_autofill_core_common_autofill__util.cc b/chromium/patches/patch-components_autofill_core_common_autofill__util.cc
index 7c15e8226c..8f000ccf8f 100644
--- a/chromium/patches/patch-components_autofill_core_common_autofill__util.cc
+++ b/chromium/patches/patch-components_autofill_core_common_autofill__util.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/autofill/core/common/autofill_util.cc.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/autofill/core/common/autofill_util.cc.orig	2024-07-24 02:44:33.320460000 +0000
 +++ components/autofill/core/common/autofill_util.cc
-@@ -213,7 +213,7 @@ bool SanitizedFieldIsEmpty(const base::s
- }
+@@ -132,7 +132,7 @@ bool SanitizedFieldIsEmpty(const std::u1
  
  bool ShouldAutoselectFirstSuggestionOnArrowDown() {
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    return true;
  #else
    return false;
diff --git a/chromium/patches/patch-components_commerce_core_commerce__feature__list.cc b/chromium/patches/patch-components_commerce_core_commerce__feature__list.cc
new file mode 100644
index 0000000000..823e22fc33
--- /dev/null
+++ b/chromium/patches/patch-components_commerce_core_commerce__feature__list.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/commerce/core/commerce_feature_list.cc.orig	2024-07-24 02:44:33.564484000 +0000
++++ components/commerce/core/commerce_feature_list.cc
+@@ -168,7 +168,7 @@ BASE_FEATURE(kPriceInsights,
+              "PriceInsights",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kPriceInsightsRegionLaunched,
+              "PriceInsightsRegionLaunched",
+              base::FEATURE_ENABLED_BY_DEFAULT);
+@@ -244,7 +244,7 @@ const base::FeatureParam<bool> kDeleteAl
+ 
+ BASE_FEATURE(kShoppingList, "ShoppingList", base::FEATURE_DISABLED_BY_DEFAULT);
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_IOS)
++    BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kShoppingListRegionLaunched,
+              "ShoppingListRegionLaunched",
+              base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-components_constrained__window_constrained__window__views.cc b/chromium/patches/patch-components_constrained__window_constrained__window__views.cc
new file mode 100644
index 0000000000..9c999d9213
--- /dev/null
+++ b/chromium/patches/patch-components_constrained__window_constrained__window__views.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/constrained_window/constrained_window_views.cc.orig	2024-07-24 02:44:33.596487000 +0000
++++ components/constrained_window/constrained_window_views.cc
+@@ -360,7 +360,7 @@ bool SupportsGlobalScreenCoordinates() {
+ }
+ 
+ bool PlatformClipsChildrenToViewport() {
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return true;
+ #else
+   return false;
diff --git a/chromium/patches/patch-components_content__settings_core_browser_website__settings__registry.cc b/chromium/patches/patch-components_content__settings_core_browser_website__settings__registry.cc
index a88b959bcf..a2f1801b48 100644
--- a/chromium/patches/patch-components_content__settings_core_browser_website__settings__registry.cc
+++ b/chromium/patches/patch-components_content__settings_core_browser_website__settings__registry.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/content_settings/core/browser/website_settings_registry.cc.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/content_settings/core/browser/website_settings_registry.cc.orig	2024-07-24 02:44:33.612488500 +0000
 +++ components/content_settings/core/browser/website_settings_registry.cc
-@@ -66,7 +66,7 @@ const WebsiteSettingsInfo* WebsiteSettin
- #if defined(OS_WIN)
+@@ -67,7 +67,7 @@ const WebsiteSettingsInfo* WebsiteSettin
+ #if BUILDFLAG(IS_WIN)
    if (!(platform & PLATFORM_WINDOWS))
      return nullptr;
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    if (!(platform & PLATFORM_LINUX))
      return nullptr;
- #elif defined(OS_MACOSX) && !defined(OS_IOS)
+ #elif BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-components_cookie__config_cookie__store__util.cc b/chromium/patches/patch-components_cookie__config_cookie__store__util.cc
index 3286d34bc9..f5e1b78b18 100644
--- a/chromium/patches/patch-components_cookie__config_cookie__store__util.cc
+++ b/chromium/patches/patch-components_cookie__config_cookie__store__util.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/cookie_config/cookie_store_util.cc.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/cookie_config/cookie_store_util.cc.orig	2024-07-24 02:44:33.624489500 +0000
 +++ components/cookie_config/cookie_store_util.cc
-@@ -11,7 +11,7 @@
- 
+@@ -12,7 +12,7 @@
  namespace cookie_config {
  
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  namespace {
  
  // Use the operating system's mechanisms to encrypt cookies before writing
diff --git a/chromium/patches/patch-components_crash_content_browser_BUILD.gn b/chromium/patches/patch-components_crash_content_browser_BUILD.gn
deleted file mode 100644
index d43d74262c..0000000000
--- a/chromium/patches/patch-components_crash_content_browser_BUILD.gn
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- components/crash/content/browser/BUILD.gn.orig	2020-06-25 09:31:26.000000000 +0000
-+++ components/crash/content/browser/BUILD.gn
-@@ -42,13 +42,13 @@ source_set("browser") {
-     deps += [ "//third_party/crashpad/crashpad/client" ]
-   }
- 
--  if (!is_android) {
-+  if (!is_android && !is_bsd) {
-     deps += [ "//third_party/breakpad:client" ]
-   }
- 
-   # This is not in the GYP build but this target includes breakpad client
-   # headers, so add the dependency here.
--  if ((is_posix && !is_ios) || is_fuchsia) {
-+  if ((is_posix && !is_ios && !is_bsd) || is_fuchsia) {
-     configs += [ "//third_party/breakpad:client_config" ]
-     public_configs = [ "//third_party/breakpad:client_config" ]
-   }
diff --git a/chromium/patches/patch-components_crash_core_app_BUILD.gn b/chromium/patches/patch-components_crash_core_app_BUILD.gn
new file mode 100644
index 0000000000..a5175cd979
--- /dev/null
+++ b/chromium/patches/patch-components_crash_core_app_BUILD.gn
@@ -0,0 +1,49 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/crash/core/app/BUILD.gn.orig	2024-07-24 02:44:33.628490000 +0000
++++ components/crash/core/app/BUILD.gn
+@@ -82,6 +82,10 @@ static_library("app") {
+     ]
+   }
+ 
++  if (is_bsd) {
++    sources -= [ "crashpad.cc" ]
++  }
++
+   defines = [ "CRASH_IMPLEMENTATION" ]
+ 
+   public_deps = [ ":lib" ]
+@@ -95,7 +99,7 @@ static_library("app") {
+     "//third_party/crashpad/crashpad/util",
+   ]
+ 
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
+     sources += [ "crashpad_linux.cc" ]
+     data_deps = [ ":chrome_crashpad_handler" ]
+   }
+@@ -115,7 +119,7 @@ static_library("app") {
+     libs = [ "log" ]
+   }
+ 
+-  if (is_android || is_linux || is_chromeos) {
++  if ((is_android || is_linux || is_chromeos) && !is_bsd) {
+     deps += [
+       "//base:base_static",
+       "//components/crash/core/common",
+@@ -246,11 +250,6 @@ if (is_mac || is_android || is_linux || 
+   executable("chrome_crashpad_handler") {
+     sources = [ "chrome_crashpad_handler.cc" ]
+ 
+-    deps = [
+-      ":crashpad_handler_main",
+-      "//third_party/crashpad/crashpad/handler",
+-    ]
+-
+     if (is_mac && (is_component_build || is_asan)) {
+       ldflags = [
+         # The handler is in
diff --git a/chromium/patches/patch-components_crash_core_app_chrome__crashpad__handler.cc b/chromium/patches/patch-components_crash_core_app_chrome__crashpad__handler.cc
new file mode 100644
index 0000000000..f44ab6ae69
--- /dev/null
+++ b/chromium/patches/patch-components_crash_core_app_chrome__crashpad__handler.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/crash/core/app/chrome_crashpad_handler.cc.orig	2024-07-24 02:44:33.628490000 +0000
++++ components/crash/core/app/chrome_crashpad_handler.cc
+@@ -6,5 +6,9 @@
+ extern "C" int CrashpadHandlerMain(int argc, char* argv[]);
+ 
+ int main(int argc, char* argv[]) {
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
++  return -1;
++#else
+   return CrashpadHandlerMain(argc, argv);
++#endif
+ }
diff --git a/chromium/patches/patch-components_crash_core_app_crashpad__handler__main.cc b/chromium/patches/patch-components_crash_core_app_crashpad__handler__main.cc
new file mode 100644
index 0000000000..f1e130a94b
--- /dev/null
+++ b/chromium/patches/patch-components_crash_core_app_crashpad__handler__main.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/crash/core/app/crashpad_handler_main.cc.orig	2024-07-24 02:44:33.632490400 +0000
++++ components/crash/core/app/crashpad_handler_main.cc
+@@ -10,7 +10,7 @@
+ #include "third_party/crashpad/crashpad/handler/handler_main.h"
+ #include "third_party/crashpad/crashpad/handler/user_stream_data_source.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "components/stability_report/user_stream_data_source_posix.h"
+ #endif
+ 
+@@ -31,7 +31,7 @@ __attribute__((visibility("default"), us
+     char* argv[]) {
+   crashpad::UserStreamDataSources user_stream_data_sources;
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   user_stream_data_sources.push_back(
+       std::make_unique<stability_report::UserStreamDataSourcePosix>());
+ #endif
diff --git a/chromium/patches/patch-components_crash_core_browser_crash__upload__list__crashpad.cc b/chromium/patches/patch-components_crash_core_browser_crash__upload__list__crashpad.cc
new file mode 100644
index 0000000000..74b1aa9f81
--- /dev/null
+++ b/chromium/patches/patch-components_crash_core_browser_crash__upload__list__crashpad.cc
@@ -0,0 +1,32 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/crash/core/browser/crash_upload_list_crashpad.cc.orig	2024-07-24 02:44:33.632490400 +0000
++++ components/crash/core/browser/crash_upload_list_crashpad.cc
+@@ -38,7 +38,9 @@ CrashUploadListCrashpad::~CrashUploadLis
+ std::vector<std::unique_ptr<UploadList::UploadInfo>>
+ CrashUploadListCrashpad::LoadUploadList() {
+   std::vector<crash_reporter::Report> reports;
++#if !BUILDFLAG(IS_BSD)
+   crash_reporter::GetReports(&reports);
++#endif
+ 
+   std::vector<std::unique_ptr<UploadInfo>> uploads;
+   for (const crash_reporter::Report& report : reports) {
+@@ -52,9 +54,13 @@ CrashUploadListCrashpad::LoadUploadList(
+ 
+ void CrashUploadListCrashpad::ClearUploadList(const base::Time& begin,
+                                               const base::Time& end) {
++#if !BUILDFLAG(IS_BSD)
+   crash_reporter::ClearReportsBetween(begin, end);
++#endif
+ }
+ 
+ void CrashUploadListCrashpad::RequestSingleUpload(const std::string& local_id) {
++#if !BUILDFLAG(IS_BSD)
+   crash_reporter::RequestSingleCrashUpload(local_id);
++#endif
+ }
diff --git a/chromium/patches/patch-components_crash_core_common_BUILD.gn b/chromium/patches/patch-components_crash_core_common_BUILD.gn
index 34c4138a31..e9c264a96d 100644
--- a/chromium/patches/patch-components_crash_core_common_BUILD.gn
+++ b/chromium/patches/patch-components_crash_core_common_BUILD.gn
@@ -1,8 +1,12 @@
 $NetBSD$
 
---- components/crash/core/common/BUILD.gn.orig	2020-06-25 09:31:26.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/crash/core/common/BUILD.gn.orig	2024-07-24 02:44:33.632490400 +0000
 +++ components/crash/core/common/BUILD.gn
-@@ -7,7 +7,7 @@ import("//components/gwp_asan/buildflags
+@@ -9,7 +9,7 @@ import("//components/gwp_asan/buildflags
  
  declare_args() {
    # If set to true, this will stub out and disable the entire crash key system.
@@ -11,23 +15,3 @@ $NetBSD$
  }
  
  group("common") {
-@@ -108,7 +108,9 @@ target(crash_key_target_type, "crash_key
-       ]
-     }
- 
--    deps += [ "//third_party/breakpad:client" ]
-+    if (!is_bsd) {
-+      deps += [ "//third_party/breakpad:client" ]
-+    }
-     if (use_combined_annotations) {
-       public_deps += [ "//third_party/crashpad/crashpad/client" ]
-     }
-@@ -184,7 +186,7 @@ source_set("unit_tests") {
-     sources += [ "crash_key_breakpad_ios_unittest.cc" ]
-     deps += [ "//third_party/breakpad:client" ]
-     include_dirs = [ "//third_party/breakpad/breakpad/src/" ]
--  } else if (!is_mac && !is_win && !is_fuchsia && !is_android) {
-+  } else if (!is_mac && !is_win && !is_fuchsia && !is_android && !is_bsd) {
-     include_dirs = [ "//third_party/breakpad/breakpad/src/" ]
-     sources += [ "crash_key_breakpad_unittest.cc" ]
-   }
diff --git a/chromium/patches/patch-components_cronet_BUILD.gn b/chromium/patches/patch-components_cronet_BUILD.gn
deleted file mode 100644
index 38d92e4e52..0000000000
--- a/chromium/patches/patch-components_cronet_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- components/cronet/BUILD.gn.orig	2020-07-15 18:55:54.000000000 +0000
-+++ components/cronet/BUILD.gn
-@@ -158,7 +158,7 @@ if (is_android) {
- 
-     defines = [ "CRONET_TESTS_IMPLEMENTATION" ]
- 
--    if (is_linux && !is_component_build) {
-+    if ((is_linux || is_bsd) && !is_component_build) {
-       public_configs = [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-     }
-   }
-@@ -253,7 +253,7 @@ if (is_android) {
-       "//components/cronet",
-       "//components/cronet/native:cronet_native_headers",
-     ]
--    if (is_linux && !is_component_build) {
-+    if ((is_linux || is_bsd) && !is_component_build) {
-       public_configs = [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-     }
-   }
diff --git a/chromium/patches/patch-components_device__signals_core_browser_mock__signals__aggregator.h b/chromium/patches/patch-components_device__signals_core_browser_mock__signals__aggregator.h
new file mode 100644
index 0000000000..41825b140f
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_mock__signals__aggregator.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/mock_signals_aggregator.h.orig	2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/mock_signals_aggregator.h
+@@ -17,7 +17,7 @@ class MockSignalsAggregator : public Sig
+   MockSignalsAggregator();
+   ~MockSignalsAggregator() override;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   MOCK_METHOD(void,
+               GetSignalsForUser,
+               (const UserContext&,
diff --git a/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator.h b/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator.h
new file mode 100644
index 0000000000..3a7b7764ac
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/signals_aggregator.h.orig	2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/signals_aggregator.h
+@@ -22,7 +22,7 @@ class SignalsAggregator : public KeyedSe
+ 
+   ~SignalsAggregator() override = default;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Will asynchronously collect signals whose names are specified in the
+   // `request` object, and will also use a `user_context` to validate that the
+   // user has permissions to the device's signals. Invokes `callback` with the
diff --git a/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.cc b/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.cc
new file mode 100644
index 0000000000..a96ad6ac67
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/signals_aggregator_impl.cc.orig	2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/signals_aggregator_impl.cc
+@@ -65,7 +65,7 @@ SignalsAggregatorImpl::SignalsAggregator
+ 
+ SignalsAggregatorImpl::~SignalsAggregatorImpl() = default;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void SignalsAggregatorImpl::GetSignalsForUser(
+     const UserContext& user_context,
+     const SignalsAggregationRequest& request,
diff --git a/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.h b/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.h
new file mode 100644
index 0000000000..da809e445d
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_signals__aggregator__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/signals_aggregator_impl.h.orig	2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/signals_aggregator_impl.h
+@@ -29,7 +29,7 @@ class SignalsAggregatorImpl : public Sig
+   ~SignalsAggregatorImpl() override;
+ 
+   // SignalsAggregator:
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   void GetSignalsForUser(const UserContext& user_context,
+                          const SignalsAggregationRequest& request,
+                          GetSignalsCallback callback) override;
diff --git a/chromium/patches/patch-components_device__signals_core_browser_user__permission__service.h b/chromium/patches/patch-components_device__signals_core_browser_user__permission__service.h
new file mode 100644
index 0000000000..3f316aee53
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_user__permission__service.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/user_permission_service.h.orig	2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/user_permission_service.h
+@@ -57,7 +57,7 @@ class UserPermissionService : public Key
+   // missing.
+   virtual bool ShouldCollectConsent() const = 0;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Will verify whether context-aware signals can be collected
+   // on behalf of the user represented by `user_context`. Returns `kGranted` if
+   // collection is allowed.
diff --git a/chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.cc b/chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.cc
new file mode 100644
index 0000000000..fcdff4b269
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/user_permission_service_impl.cc.orig	2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/user_permission_service_impl.cc
+@@ -87,7 +87,7 @@ bool UserPermissionServiceImpl::ShouldCo
+          consent_required_by_dependent_policy;
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ UserPermission UserPermissionServiceImpl::CanUserCollectSignals(
+     const UserContext& user_context) const {
+   // Return "unknown user" if no user ID was given.
diff --git a/chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.h b/chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.h
new file mode 100644
index 0000000000..8fc601f2cc
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_browser_user__permission__service__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/browser/user_permission_service_impl.h.orig	2024-07-24 02:44:33.856512000 +0000
++++ components/device_signals/core/browser/user_permission_service_impl.h
+@@ -38,7 +38,7 @@ class UserPermissionServiceImpl : public
+ 
+   // UserPermissionService:
+   bool ShouldCollectConsent() const override;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   UserPermission CanUserCollectSignals(
+       const UserContext& user_context) const override;
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX
diff --git a/chromium/patches/patch-components_device__signals_core_common_signals__features.cc b/chromium/patches/patch-components_device__signals_core_common_signals__features.cc
new file mode 100644
index 0000000000..de1db911da
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_common_signals__features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/common/signals_features.cc.orig	2024-07-24 02:44:33.860512500 +0000
++++ components/device_signals/core/common/signals_features.cc
+@@ -46,7 +46,7 @@ bool IsNewFunctionEnabled(NewEvFunction 
+ }
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ // Enables the triggering of device signals consent dialog when conditions met
+ // This feature also requires UnmanagedDeviceSignalsConsentFlowEnabled policy to
+ // be enabled
diff --git a/chromium/patches/patch-components_device__signals_core_common_signals__features.h b/chromium/patches/patch-components_device__signals_core_common_signals__features.h
new file mode 100644
index 0000000000..a3617ace76
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_common_signals__features.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/common/signals_features.h.orig	2024-07-24 02:44:33.860512500 +0000
++++ components/device_signals/core/common/signals_features.h
+@@ -28,7 +28,7 @@ enum class NewEvFunction { kFileSystemIn
+ bool IsNewFunctionEnabled(NewEvFunction new_ev_function);
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_CHROMEOS_ASH)
++    BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kDeviceSignalsConsentDialog);
+ 
+ // Returns true if device signals consent dialog has been enabled for
diff --git a/chromium/patches/patch-components_device__signals_core_system__signals_platform__delegate.cc b/chromium/patches/patch-components_device__signals_core_system__signals_platform__delegate.cc
new file mode 100644
index 0000000000..f19ae80e84
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_core_system__signals_platform__delegate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/core/system_signals/platform_delegate.cc.orig	2024-07-24 02:44:33.860512500 +0000
++++ components/device_signals/core/system_signals/platform_delegate.cc
+@@ -11,7 +11,7 @@ namespace device_signals {
+ 
+ bool CustomFilePathComparator::operator()(const base::FilePath& a,
+                                           const base::FilePath& b) const {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // On Linux, the file system is case sensitive.
+   return a < b;
+ #else
diff --git a/chromium/patches/patch-components_device__signals_test_signals__contract.cc b/chromium/patches/patch-components_device__signals_test_signals__contract.cc
new file mode 100644
index 0000000000..4ab7d6726a
--- /dev/null
+++ b/chromium/patches/patch-components_device__signals_test_signals__contract.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/device_signals/test/signals_contract.cc.orig	2024-07-24 02:44:33.864513000 +0000
++++ components/device_signals/test/signals_contract.cc
+@@ -212,7 +212,7 @@ GetSignalsContract() {
+       base::BindRepeating(VerifyUnset, names::kCrowdStrike);
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   contract[names::kAllowScreenLock] =
+       base::BindRepeating(VerifyUnset, names::kAllowScreenLock);
+   contract[names::kImei] = base::BindRepeating(VerifyUnset, names::kImei);
diff --git a/chromium/patches/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc b/chromium/patches/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc
index 8cfbee9ed0..5c93797877 100644
--- a/chromium/patches/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc
+++ b/chromium/patches/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- components/discardable_memory/service/discardable_shared_memory_manager.cc.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/discardable_memory/service/discardable_shared_memory_manager.cc.orig	2024-07-24 02:44:33.868513300 +0000
 +++ components/discardable_memory/service/discardable_shared_memory_manager.cc
-@@ -33,7 +33,7 @@
- #include "components/discardable_memory/common/discardable_shared_memory_heap.h"
- #include "mojo/public/cpp/bindings/self_owned_receiver.h"
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "base/files/file_path.h"
- #include "base/files/file_util.h"
- #include "base/metrics/histogram_macros.h"
-@@ -176,7 +176,7 @@ int64_t GetDefaultMemoryLimit() {
-     max_default_memory_limit /= 8;
+@@ -176,7 +176,7 @@ uint64_t GetDefaultMemoryLimit() {
+   // Limits the number of FDs used to 32, assuming a 4MB allocation size.
+   uint64_t max_default_memory_limit = 128 * kMegabyte;
+ #else
+-  uint64_t max_default_memory_limit = 512 * kMegabyte;
++  uint64_t max_default_memory_limit = 128 * kMegabyte;
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   base::FilePath shmem_dir;
-   if (base::GetShmemTempDir(false, &shmem_dir)) {
-     int64_t shmem_dir_amount_of_free_space =
+   // Use 1/8th of discardable memory on low-end devices.
diff --git a/chromium/patches/patch-components_download_internal_common_base__file.cc b/chromium/patches/patch-components_download_internal_common_base__file.cc
deleted file mode 100644
index 372b7bd439..0000000000
--- a/chromium/patches/patch-components_download_internal_common_base__file.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/download/internal/common/base_file.cc.orig	2020-07-08 21:40:39.000000000 +0000
-+++ components/download/internal/common/base_file.cc
-@@ -604,7 +604,7 @@ GURL GetEffectiveAuthorityURL(const GURL
- 
- }  // namespace
- 
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- 
- DownloadInterruptReason BaseFile::AnnotateWithSourceInformationSync(
-     const std::string& client_guid,
diff --git a/chromium/patches/patch-components_embedder__support_user__agent__utils.cc b/chromium/patches/patch-components_embedder__support_user__agent__utils.cc
new file mode 100644
index 0000000000..26fd68c48e
--- /dev/null
+++ b/chromium/patches/patch-components_embedder__support_user__agent__utils.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/embedder_support/user_agent_utils.cc.orig	2024-07-24 02:44:33.940520300 +0000
++++ components/embedder_support/user_agent_utils.cc
+@@ -445,6 +445,9 @@ std::string GetPlatformForUAMetadata() {
+ # else
+   return "Chromium OS";
+ # endif
++#elif BUILDFLAG(IS_BSD)
++  // The internet is weird...
++  return "Linux";
+ #else
+   return std::string(version_info::GetOSType());
+ #endif
diff --git a/chromium/patches/patch-components_embedder__support_user__agent__utils__unittest.cc b/chromium/patches/patch-components_embedder__support_user__agent__utils__unittest.cc
new file mode 100644
index 0000000000..c33b2bac7b
--- /dev/null
+++ b/chromium/patches/patch-components_embedder__support_user__agent__utils__unittest.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/embedder_support/user_agent_utils_unittest.cc.orig	2024-07-24 02:44:33.940520300 +0000
++++ components/embedder_support/user_agent_utils_unittest.cc
+@@ -71,7 +71,7 @@ const char kDesktop[] =
+     "X11; CrOS x86_64 14541.0.0"
+ #elif BUILDFLAG(IS_FUCHSIA)
+     "Fuchsia"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     "X11; Linux x86_64"
+ #elif BUILDFLAG(IS_MAC)
+     "Macintosh; Intel Mac OS X 10_15_7"
+@@ -171,7 +171,7 @@ void CheckUserAgentStringOrdering(bool m
+   ASSERT_EQ("CrOS", pieces[0]);
+   ASSERT_EQ("x86_64", pieces[1]);
+   ASSERT_EQ("14541.0.0", pieces[2]);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Post-UA Reduction there is a single <unifiedPlatform> value for Linux:
+   // X11; Linux x86_64
+   ASSERT_EQ(2u, pieces.size());
+@@ -727,7 +727,7 @@ TEST_F(UserAgentUtilsTest, UserAgentMeta
+ #endif
+ #elif BUILDFLAG(IS_ANDROID)
+   EXPECT_EQ(metadata.platform, "Android");
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   EXPECT_EQ(metadata.platform, "Linux");
+ #elif BUILDFLAG(IS_FREEBSD)
+   EXPECT_EQ(metadata.platform, "FreeBSD");
diff --git a/chromium/patches/patch-components_enterprise_watermarking_watermark.cc b/chromium/patches/patch-components_enterprise_watermarking_watermark.cc
new file mode 100644
index 0000000000..448d7737ee
--- /dev/null
+++ b/chromium/patches/patch-components_enterprise_watermarking_watermark.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/enterprise/watermarking/watermark.cc.orig	2024-07-24 02:44:33.956521700 +0000
++++ components/enterprise/watermarking/watermark.cc
+@@ -23,7 +23,7 @@ gfx::Font WatermarkFont() {
+       "Segoe UI",
+ #elif BUILDFLAG(IS_MAC)
+       "SF Pro Text",
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       "Ubuntu",
+ #elif BUILDFLAG(IS_CHROMEOS)
+       "Google Sans",
+@@ -34,7 +34,7 @@ gfx::Font WatermarkFont() {
+ }
+ 
+ gfx::Font::Weight WatermarkFontWeight() {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return gfx::Font::Weight::SEMIBOLD;
+ #else
+   return gfx::Font::Weight::MEDIUM;
diff --git a/chromium/patches/patch-components_exo_BUILD.gn b/chromium/patches/patch-components_exo_BUILD.gn
deleted file mode 100644
index fc574e076f..0000000000
--- a/chromium/patches/patch-components_exo_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/exo/BUILD.gn.orig	2020-07-15 18:56:46.000000000 +0000
-+++ components/exo/BUILD.gn
-@@ -296,7 +296,7 @@ test("exo_unittests") {
- 
-   data_deps = []
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//components/exo/wayland:unit_tests" ]
-   }
- 
diff --git a/chromium/patches/patch-components_eye__dropper_eye__dropper__view.cc b/chromium/patches/patch-components_eye__dropper_eye__dropper__view.cc
new file mode 100644
index 0000000000..b7ba18f67a
--- /dev/null
+++ b/chromium/patches/patch-components_eye__dropper_eye__dropper__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/eye_dropper/eye_dropper_view.cc.orig	2024-07-24 02:44:34.008526800 +0000
++++ components/eye_dropper/eye_dropper_view.cc
+@@ -202,7 +202,7 @@ EyeDropperView::EyeDropperView(gfx::Nati
+   // EyeDropper/WidgetDelegate.
+   set_owned_by_client();
+   SetPreferredSize(GetSize());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Use TYPE_MENU for Linux to ensure that the eye dropper view is displayed
+   // above the color picker.
+   views::Widget::InitParams params(
diff --git a/chromium/patches/patch-components_feature__engagement_public_event__constants.cc b/chromium/patches/patch-components_feature__engagement_public_event__constants.cc
index 6b6e178f14..7b0d11318d 100644
--- a/chromium/patches/patch-components_feature__engagement_public_event__constants.cc
+++ b/chromium/patches/patch-components_feature__engagement_public_event__constants.cc
@@ -1,20 +1,17 @@
 $NetBSD$
 
---- components/feature_engagement/public/event_constants.cc.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/event_constants.cc.orig	2024-07-24 02:44:34.032529000 +0000
 +++ components/feature_engagement/public/event_constants.cc
-@@ -12,13 +12,13 @@ namespace feature_engagement {
+@@ -11,7 +11,7 @@ namespace feature_engagement {
  namespace events {
  
- #if defined(OS_IOS) || defined(OS_WIN) || defined(OS_MACOSX) || \
--    defined(OS_LINUX) || defined(OS_CHROMEOS)
-+    defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
  const char kNewTabOpened[] = "new_tab_opened";
- #endif  // defined(OS_IOS) || defined(OS_WIN) || defined(OS_MACOSX) ||
-         // defined(OS_LINUX) || defined(OS_CHROMEOS)
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
  const char kSixthTabOpened[] = "sixth_tab_opened";
  const char kTabGroupCreated[] = "tab_group_created";
- 
diff --git a/chromium/patches/patch-components_feature__engagement_public_event__constants.h b/chromium/patches/patch-components_feature__engagement_public_event__constants.h
index b285538645..5a743ff66a 100644
--- a/chromium/patches/patch-components_feature__engagement_public_event__constants.h
+++ b/chromium/patches/patch-components_feature__engagement_public_event__constants.h
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- components/feature_engagement/public/event_constants.h.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/event_constants.h.orig	2024-07-24 02:44:34.032529000 +0000
 +++ components/feature_engagement/public/event_constants.h
 @@ -14,7 +14,7 @@ namespace events {
  
- // Desktop and IOS.
- #if defined(OS_IOS) || defined(OS_WIN) || defined(OS_MACOSX) || \
--    defined(OS_LINUX) || defined(OS_CHROMEOS)
-+    defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+ // Desktop
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
  // The user has explicitly opened a new tab via an entry point from inside of
  // Chrome.
  extern const char kNewTabOpened[];
-@@ -23,7 +23,7 @@ extern const char kNewTabOpened[];
- 
- // Desktop
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
- // A new tab was opened when 5 (or more) tabs were already open.
- extern const char kSixthTabOpened[];
- // The user made a new tab group.
diff --git a/chromium/patches/patch-components_feature__engagement_public_feature__configurations.cc b/chromium/patches/patch-components_feature__engagement_public_feature__configurations.cc
new file mode 100644
index 0000000000..242fc5200d
--- /dev/null
+++ b/chromium/patches/patch-components_feature__engagement_public_feature__configurations.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/feature_configurations.cc.orig	2024-07-24 02:44:34.036529500 +0000
++++ components/feature_engagement/public/feature_configurations.cc
+@@ -99,7 +99,7 @@ std::optional<FeatureConfig> CreateNewUs
+ 
+ std::optional<FeatureConfig> GetClientSideFeatureConfig(
+     const base::Feature* feature) {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ 
+   // The IPH bubble for link capturing has a trigger set to ANY so that it
+   // always shows up. The per app specific guardrails are independently stored
+@@ -118,7 +118,7 @@ std::optional<FeatureConfig> GetClientSi
+ 
+ #endif  // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (kIPHPasswordsAccountStorageFeature.name == feature->name) {
+     std::optional<FeatureConfig> config = FeatureConfig();
+     config->valid = true;
+@@ -1607,7 +1607,7 @@ std::optional<FeatureConfig> GetClientSi
+ 
+ #endif  // BUILDFLAG(IS_ANDROID)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+     BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
+ 
+   if (kIPHAutofillCreditCardBenefitFeature.name == feature->name) {
diff --git a/chromium/patches/patch-components_feature__engagement_public_feature__constants.cc b/chromium/patches/patch-components_feature__engagement_public_feature__constants.cc
index d8beba75f6..40cf63757d 100644
--- a/chromium/patches/patch-components_feature__engagement_public_feature__constants.cc
+++ b/chromium/patches/patch-components_feature__engagement_public_feature__constants.cc
@@ -1,13 +1,36 @@
 $NetBSD$
 
---- components/feature_engagement/public/feature_constants.cc.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/feature_constants.cc.orig	2024-07-24 02:44:34.036529500 +0000
 +++ components/feature_engagement/public/feature_constants.cc
-@@ -15,7 +15,7 @@ const base::Feature kIPHDummyFeature{"IP
-                                      base::FEATURE_DISABLED_BY_DEFAULT};
+@@ -18,7 +18,7 @@ BASE_FEATURE(kIPHDemoMode, "IPH_DemoMode
+ BASE_FEATURE(kIPHDummyFeature, "IPH_Dummy", base::FEATURE_DISABLED_BY_DEFAULT);
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kEsbDownloadRowPromoFeature,
+              "EsbDownloadRowPromo",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -626,7 +626,8 @@ BASE_FEATURE(kDefaultBrowserTriggerCrite
+ #endif  // BUILDFLAG(IS_IOS)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++    BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kIPHAutofillCreditCardBenefitFeature,
+              "IPH_AutofillCreditCardBenefit",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -757,7 +758,7 @@ BASE_FEATURE(kIPHScalableIphGamingFeatur
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
- const base::Feature kIPHDesktopTabGroupsNewGroupFeature{
-     "IPH_DesktopTabGroupsNewGroup", base::FEATURE_DISABLED_BY_DEFAULT};
- const base::Feature kIPHFocusModeFeature{"IPH_FocusMode",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // This can be enabled by default, as the DesktopPWAsLinkCapturing
+ // flag is needed for the IPH linked to this feature to work, and
+ // use-cases to show the IPH are guarded by that flag.
diff --git a/chromium/patches/patch-components_feature__engagement_public_feature__constants.h b/chromium/patches/patch-components_feature__engagement_public_feature__constants.h
index ff437d0c12..48f7d3a961 100644
--- a/chromium/patches/patch-components_feature__engagement_public_feature__constants.h
+++ b/chromium/patches/patch-components_feature__engagement_public_feature__constants.h
@@ -1,13 +1,36 @@
 $NetBSD$
 
---- components/feature_engagement/public/feature_constants.h.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/feature_constants.h.orig	2024-07-24 02:44:34.036529500 +0000
 +++ components/feature_engagement/public/feature_constants.h
-@@ -18,7 +18,7 @@ extern const base::Feature kIPHDemoMode;
- extern const base::Feature kIPHDummyFeature;
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
- extern const base::Feature kIPHDesktopTabGroupsNewGroupFeature;
- extern const base::Feature kIPHFocusModeFeature;
- extern const base::Feature kIPHGlobalMediaControlsFeature;
+@@ -20,7 +20,7 @@ BASE_DECLARE_FEATURE(kIPHDemoMode);
+ BASE_DECLARE_FEATURE(kIPHDummyFeature);
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kEsbDownloadRowPromoFeature);
+ BASE_DECLARE_FEATURE(kIPHBatterySaverModeFeature);
+ BASE_DECLARE_FEATURE(kIPHCompanionSidePanelFeature);
+@@ -259,7 +259,8 @@ BASE_DECLARE_FEATURE(kDefaultBrowserTrig
+ #endif  // BUILDFLAG(IS_IOS)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++    BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kIPHAutofillCreditCardBenefitFeature);
+ BASE_DECLARE_FEATURE(kIPHAutofillExternalAccountProfileSuggestionFeature);
+ BASE_DECLARE_FEATURE(kIPHAutofillManualFallbackFeature);
+@@ -308,7 +309,7 @@ BASE_DECLARE_FEATURE(kIPHScalableIphHelp
+ BASE_DECLARE_FEATURE(kIPHScalableIphGamingFeature);
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kIPHDesktopPWAsLinkCapturingLaunch);
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ 
diff --git a/chromium/patches/patch-components_feature__engagement_public_feature__list.cc b/chromium/patches/patch-components_feature__engagement_public_feature__list.cc
index e5a1dce049..ccb583ad5c 100644
--- a/chromium/patches/patch-components_feature__engagement_public_feature__list.cc
+++ b/chromium/patches/patch-components_feature__engagement_public_feature__list.cc
@@ -1,13 +1,36 @@
 $NetBSD$
 
---- components/feature_engagement/public/feature_list.cc.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/feature_list.cc.orig	2024-07-24 02:44:34.036529500 +0000
 +++ components/feature_engagement/public/feature_list.cc
-@@ -62,7 +62,7 @@ const base::Feature* const kAllFeatures[
-     &kIPHBadgedTranslateManualTriggerFeature,
- #endif  // defined(OS_IOS)
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
-     &kIPHDesktopTabGroupsNewGroupFeature,
-     &kIPHFocusModeFeature,
-     &kIPHGlobalMediaControlsFeature,
+@@ -152,7 +152,7 @@ const base::Feature* const kAllFeatures[
+     &kIPHiOSSavedTabGroupClosed,
+ #endif  // BUILDFLAG(IS_IOS)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+     &kEsbDownloadRowPromoFeature,
+     &kIPHBatterySaverModeFeature,
+     &kIPHCompanionSidePanelFeature,
+@@ -218,7 +218,8 @@ const base::Feature* const kAllFeatures[
+         // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++    BUILDFLAG(IS_BSD)
+     &kIPHAutofillCreditCardBenefitFeature,
+     &kIPHAutofillExternalAccountProfileSuggestionFeature,
+     &kIPHAutofillManualFallbackFeature,
+@@ -267,7 +268,7 @@ const base::Feature* const kAllFeatures[
+     &kIPHScalableIphGamingFeature,
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     &kIPHDesktopPWAsLinkCapturingLaunch,
+ #endif  // BUILDFLAG(IS_WIN) ||  BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ 
diff --git a/chromium/patches/patch-components_feature__engagement_public_feature__list.h b/chromium/patches/patch-components_feature__engagement_public_feature__list.h
index 9e037600df..fedd055e5c 100644
--- a/chromium/patches/patch-components_feature__engagement_public_feature__list.h
+++ b/chromium/patches/patch-components_feature__engagement_public_feature__list.h
@@ -1,22 +1,64 @@
 $NetBSD$
 
---- components/feature_engagement/public/feature_list.h.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/feature_engagement/public/feature_list.h.orig	2024-07-24 02:44:34.036529500 +0000
 +++ components/feature_engagement/public/feature_list.h
-@@ -116,7 +116,7 @@ DEFINE_VARIATION_PARAM(kIPHBadgedTransla
- #endif  // defined(OS_IOS)
+@@ -273,7 +273,7 @@ DEFINE_VARIATION_PARAM(kIPHiOSSavedTabGr
+ #endif  // BUILDFLAG(IS_IOS)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ DEFINE_VARIATION_PARAM(kEsbDownloadRowPromoFeature, "EsbDownloadRowPromo");
+ DEFINE_VARIATION_PARAM(kIPHBatterySaverModeFeature, "IPH_BatterySaverMode");
+ DEFINE_VARIATION_PARAM(kIPHCompanionSidePanelFeature, "IPH_CompanionSidePanel");
+@@ -383,7 +383,8 @@ DEFINE_VARIATION_PARAM(kIPHTabGroupsSave
+         // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++    BUILDFLAG(IS_BSD)
+ DEFINE_VARIATION_PARAM(kIPHAutofillCreditCardBenefitFeature,
+                        "IPH_AutofillCreditCardBenefit");
+ DEFINE_VARIATION_PARAM(kIPHAutofillExternalAccountProfileSuggestionFeature,
+@@ -470,7 +471,7 @@ DEFINE_VARIATION_PARAM(kIPHScalableIphHe
+ DEFINE_VARIATION_PARAM(kIPHScalableIphGamingFeature, "IPH_ScalableIphGaming");
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ DEFINE_VARIATION_PARAM(kIPHDesktopPWAsLinkCapturingLaunch,
+                        "IPH_DesktopPWAsLinkCapturingLaunch");
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+@@ -626,7 +627,7 @@ constexpr flags_ui::FeatureEntry::Featur
+         VARIATION_ENTRY(kIPHiOSOverflowMenuCustomizationFeature),
+         VARIATION_ENTRY(kIPHiOSSavedTabGroupClosed),
+ #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+         VARIATION_ENTRY(kIPHBatterySaverModeFeature),
+         VARIATION_ENTRY(kIPHCompanionSidePanelFeature),
+         VARIATION_ENTRY(kIPHCompanionSidePanelRegionSearchFeature),
+@@ -686,7 +687,8 @@ constexpr flags_ui::FeatureEntry::Featur
+         // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \
++    BUILDFLAG(IS_BSD)
+         VARIATION_ENTRY(kIPHAutofillCreditCardBenefitFeature),
+         VARIATION_ENTRY(kIPHAutofillExternalAccountProfileSuggestionFeature),
+         VARIATION_ENTRY(kIPHAutofillManualFallbackFeature),
+@@ -735,7 +737,7 @@ constexpr flags_ui::FeatureEntry::Featur
+         VARIATION_ENTRY(kIPHScalableIphGamingFeature),
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+         VARIATION_ENTRY(kIPHDesktopPWAsLinkCapturingLaunch),
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
  
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
- DEFINE_VARIATION_PARAM(kIPHDesktopTabGroupsNewGroupFeature,
-                        "IPH_DesktopTabGroupsNewGroup");
- DEFINE_VARIATION_PARAM(kIPHFocusModeFeature, "IPH_FocusMode");
-@@ -184,7 +184,7 @@ constexpr flags_ui::FeatureEntry::Featur
-         VARIATION_ENTRY(kIPHBadgedReadingListFeature),
-         VARIATION_ENTRY(kIPHBadgedTranslateManualTriggerFeature),
- #elif defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_CHROMEOS)
-+    defined(OS_CHROMEOS) || defined(OS_BSD)
-         VARIATION_ENTRY(kIPHDesktopTabGroupsNewGroupFeature),
-         VARIATION_ENTRY(kIPHFocusModeFeature),
-         VARIATION_ENTRY(kIPHGlobalMediaControls),
diff --git a/chromium/patches/patch-components_feed_core_proto_v2_wire_version.proto b/chromium/patches/patch-components_feed_core_proto_v2_wire_version.proto
new file mode 100644
index 0000000000..f3e5c8b575
--- /dev/null
+++ b/chromium/patches/patch-components_feed_core_proto_v2_wire_version.proto
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/feed/core/proto/v2/wire/version.proto.orig	2024-07-24 02:44:34.040530000 +0000
++++ components/feed/core/proto/v2/wire/version.proto
+@@ -25,8 +25,8 @@ message Version {
+     BETA = 3;
+     RELEASE = 4;
+   }
+-  optional int32 major = 1;
+-  optional int32 minor = 2;
++  optional int32 gmajor = 1;
++  optional int32 gminor = 2;
+   optional int32 build = 3;
+   optional int32 revision = 4;
+   optional Architecture architecture = 5;
diff --git a/chromium/patches/patch-components_feed_core_v2_feed__network__impl__unittest.cc b/chromium/patches/patch-components_feed_core_v2_feed__network__impl__unittest.cc
new file mode 100644
index 0000000000..5acd9116b7
--- /dev/null
+++ b/chromium/patches/patch-components_feed_core_v2_feed__network__impl__unittest.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/feed/core/v2/feed_network_impl_unittest.cc.orig	2024-07-24 02:44:34.044530400 +0000
++++ components/feed/core/v2/feed_network_impl_unittest.cc
+@@ -753,8 +753,8 @@ TEST_F(FeedNetworkTest, SendApiRequest_D
+ 
+   EXPECT_EQ(feedwire::ClientInfo::CHROME_ANDROID, client_info.app_type());
+   EXPECT_EQ(feedwire::Version::RELEASE, client_info.app_version().build_type());
+-  EXPECT_EQ(1, client_info.app_version().major());
+-  EXPECT_EQ(2, client_info.app_version().minor());
++  EXPECT_EQ(1, client_info.app_version().gmajor());
++  EXPECT_EQ(2, client_info.app_version().gminor());
+   EXPECT_EQ(3, client_info.app_version().build());
+   EXPECT_EQ(4, client_info.app_version().revision());
+   EXPECT_FALSE(client_info.chrome_client_info().start_surface());
diff --git a/chromium/patches/patch-components_feed_core_v2_proto__util.cc b/chromium/patches/patch-components_feed_core_v2_proto__util.cc
new file mode 100644
index 0000000000..0c29f71da3
--- /dev/null
+++ b/chromium/patches/patch-components_feed_core_v2_proto__util.cc
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/feed/core/v2/proto_util.cc.orig	2024-07-24 02:44:34.048530800 +0000
++++ components/feed/core/v2/proto_util.cc
+@@ -93,8 +93,8 @@ feedwire::Version GetPlatformVersionMess
+ 
+   int32_t major, minor, revision;
+   base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &revision);
+-  result.set_major(major);
+-  result.set_minor(minor);
++  result.set_gmajor(major);
++  result.set_gminor(minor);
+   result.set_revision(revision);
+ #if BUILDFLAG(IS_ANDROID)
+   result.set_api_version(base::android::BuildInfo::GetInstance()->sdk_int());
+@@ -109,8 +109,8 @@ feedwire::Version GetAppVersionMessage(c
+   // Chrome's version is in the format: MAJOR,MINOR,BUILD,PATCH.
+   const std::vector<uint32_t>& numbers = chrome_info.version.components();
+   if (numbers.size() > 3) {
+-    result.set_major(static_cast<int32_t>(numbers[0]));
+-    result.set_minor(static_cast<int32_t>(numbers[1]));
++    result.set_gmajor(static_cast<int32_t>(numbers[0]));
++    result.set_gminor(static_cast<int32_t>(numbers[1]));
+     result.set_build(static_cast<int32_t>(numbers[2]));
+     result.set_revision(static_cast<int32_t>(numbers[3]));
+   }
diff --git a/chromium/patches/patch-components_feed_core_v2_proto__util__unittest.cc b/chromium/patches/patch-components_feed_core_v2_proto__util__unittest.cc
new file mode 100644
index 0000000000..de6e951ec2
--- /dev/null
+++ b/chromium/patches/patch-components_feed_core_v2_proto__util__unittest.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/feed/core/v2/proto_util_unittest.cc.orig	2024-07-24 02:44:34.048530800 +0000
++++ components/feed/core/v2/proto_util_unittest.cc
+@@ -44,8 +44,8 @@ TEST(ProtoUtilTest, CreateClientInfo) {
+   feedwire::ClientInfo result = CreateClientInfo(request_metadata);
+   EXPECT_EQ(feedwire::ClientInfo::CHROME_ANDROID, result.app_type());
+   EXPECT_EQ(feedwire::Version::RELEASE, result.app_version().build_type());
+-  EXPECT_EQ(1, result.app_version().major());
+-  EXPECT_EQ(2, result.app_version().minor());
++  EXPECT_EQ(1, result.app_version().gmajor());
++  EXPECT_EQ(2, result.app_version().gminor());
+   EXPECT_EQ(3, result.app_version().build());
+   EXPECT_EQ(4, result.app_version().revision());
+   EXPECT_FALSE(result.chrome_client_info().start_surface());
diff --git a/chromium/patches/patch-components_feed_core_v2_test_proto__printer.cc b/chromium/patches/patch-components_feed_core_v2_test_proto__printer.cc
new file mode 100644
index 0000000000..e04359da9a
--- /dev/null
+++ b/chromium/patches/patch-components_feed_core_v2_test_proto__printer.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/feed/core/v2/test/proto_printer.cc.orig	2024-07-24 02:44:34.056531400 +0000
++++ components/feed/core/v2/test/proto_printer.cc
+@@ -158,8 +158,8 @@ class TextProtoPrinter {
+   }
+   TextProtoPrinter& operator<<(const feedwire::Version& v) {
+     BeginMessage();
+-    PRINT_FIELD(major);
+-    PRINT_FIELD(minor);
++    PRINT_FIELD(gmajor);
++    PRINT_FIELD(gminor);
+     PRINT_FIELD(build);
+     PRINT_FIELD(revision);
+     PRINT_FIELD(architecture);
diff --git a/chromium/patches/patch-components_feedback_anonymizer__tool.cc b/chromium/patches/patch-components_feedback_anonymizer__tool.cc
deleted file mode 100644
index 709a6ff4e7..0000000000
--- a/chromium/patches/patch-components_feedback_anonymizer__tool.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/feedback/anonymizer_tool.cc.orig	2020-07-08 21:40:39.000000000 +0000
-+++ components/feedback/anonymizer_tool.cc
-@@ -15,7 +15,7 @@
- #include "base/threading/thread_restrictions.h"
- #include "content/public/browser/browser_thread.h"
- #include "net/base/ip_address.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- 
- using re2::RE2;
- 
diff --git a/chromium/patches/patch-components_flags__ui_flags__state.cc b/chromium/patches/patch-components_flags__ui_flags__state.cc
index f616a098f8..209f6ffa62 100644
--- a/chromium/patches/patch-components_flags__ui_flags__state.cc
+++ b/chromium/patches/patch-components_flags__ui_flags__state.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/flags_ui/flags_state.cc.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/flags_ui/flags_state.cc.orig	2024-07-24 02:44:34.072533100 +0000
 +++ components/flags_ui/flags_state.cc
-@@ -684,7 +684,7 @@ int FlagsState::GetCurrentPlatform() {
-   return kOsWin;
- #elif defined(OS_CHROMEOS)  // Needs to be before the OS_LINUX check.
+@@ -749,7 +749,7 @@ unsigned short FlagsState::GetCurrentPla
    return kOsCrOS;
--#elif defined(OS_LINUX) || defined(OS_OPENBSD)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+   return kOsLacros;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    return kOsLinux;
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
    return kOsAndroid;
diff --git a/chromium/patches/patch-components_gcm__driver_gcm__client.h b/chromium/patches/patch-components_gcm__driver_gcm__client.h
deleted file mode 100644
index aff0d79bb0..0000000000
--- a/chromium/patches/patch-components_gcm__driver_gcm__client.h
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- components/gcm_driver/gcm_client.h.orig	2020-07-08 21:40:39.000000000 +0000
-+++ components/gcm_driver/gcm_client.h
-@@ -87,6 +87,7 @@ class GCMClient {
-     PLATFORM_CROS,
-     PLATFORM_IOS,
-     PLATFORM_ANDROID,
-+    PLATFORM_BSD,
-     PLATFORM_UNSPECIFIED
-   };
- 
diff --git a/chromium/patches/patch-components_gcm__driver_gcm__client__impl.cc b/chromium/patches/patch-components_gcm__driver_gcm__client__impl.cc
deleted file mode 100644
index de83c34375..0000000000
--- a/chromium/patches/patch-components_gcm__driver_gcm__client__impl.cc
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD$
-
---- components/gcm_driver/gcm_client_impl.cc.orig	2020-07-08 21:40:39.000000000 +0000
-+++ components/gcm_driver/gcm_client_impl.cc
-@@ -135,6 +135,9 @@ void ToCheckinProtoVersion(
-     case GCMClient::PLATFORM_CROS:
-       platform = checkin_proto::ChromeBuildProto_Platform_PLATFORM_CROS;
-       break;
-+    case GCMClient::PLATFORM_BSD:
-+      platform = checkin_proto::ChromeBuildProto_Platform_PLATFORM_LINUX;
-+      break;
-     case GCMClient::PLATFORM_UNSPECIFIED:
-       // For unknown platform, return as LINUX.
-       platform = checkin_proto::ChromeBuildProto_Platform_PLATFORM_LINUX;
diff --git a/chromium/patches/patch-components_gwp__asan_BUILD.gn b/chromium/patches/patch-components_gwp__asan_BUILD.gn
index f25c346f22..e9f88bcd99 100644
--- a/chromium/patches/patch-components_gwp__asan_BUILD.gn
+++ b/chromium/patches/patch-components_gwp__asan_BUILD.gn
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/gwp_asan/BUILD.gn.orig	2020-07-15 18:55:54.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/gwp_asan/BUILD.gn.orig	2024-07-24 02:44:34.104536000 +0000
 +++ components/gwp_asan/BUILD.gn
-@@ -14,7 +14,7 @@ test("gwp_asan_unittests") {
-     "//components/gwp_asan/common:unit_tests",
+@@ -15,7 +15,7 @@ test("gwp_asan_unittests") {
      "//testing/gtest",
+     "//third_party/boringssl",
    ]
--  if (is_win || is_mac || is_linux || is_android) {
-+  if (is_win || is_mac || is_linux || is_android || is_bsd) {
+-  if (is_win || is_mac || is_linux || is_chromeos || is_android) {
++  if ((is_win || is_mac || is_linux || is_chromeos || is_android) && !is_bsd) {
      deps += [
        "//components/gwp_asan/client:unit_tests",
        "//components/gwp_asan/crash_handler:unit_tests",
diff --git a/chromium/patches/patch-components_gwp__asan_client_guarded__page__allocator__posix.cc b/chromium/patches/patch-components_gwp__asan_client_guarded__page__allocator__posix.cc
new file mode 100644
index 0000000000..b0906909c4
--- /dev/null
+++ b/chromium/patches/patch-components_gwp__asan_client_guarded__page__allocator__posix.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/gwp_asan/client/guarded_page_allocator_posix.cc.orig	2024-07-24 02:44:34.104536000 +0000
++++ components/gwp_asan/client/guarded_page_allocator_posix.cc
+@@ -35,8 +35,9 @@ void GuardedPageAllocator::MarkPageInacc
+   // mmap() a PROT_NONE page over the address to release it to the system, if
+   // we used mprotect() here the system would count pages in the quarantine
+   // against the RSS.
++  // MAP_ANONYMOUS requires the fd to be -1 on !linux
+   void* err = mmap(ptr, state_.page_size, PROT_NONE,
+-                   MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, 0, 0);
++                   MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+   PCHECK(err == ptr) << "mmap";
+ }
+ 
diff --git a/chromium/patches/patch-components_gwp__asan_client_gwp__asan.cc b/chromium/patches/patch-components_gwp__asan_client_gwp__asan.cc
new file mode 100644
index 0000000000..0e0af0c347
--- /dev/null
+++ b/chromium/patches/patch-components_gwp__asan_client_gwp__asan.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/gwp_asan/client/gwp_asan.cc.orig	2024-07-24 02:44:34.104536000 +0000
++++ components/gwp_asan/client/gwp_asan.cc
+@@ -75,7 +75,7 @@ namespace {
+ // ProcessSamplingBoost is the multiplier to increase the
+ // ProcessSamplingProbability in scenarios where we want to perform additional
+ // testing (e.g., on canary/dev builds).
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ constexpr int kDefaultMaxAllocations = 50;
+ constexpr int kDefaultMaxMetadata = 210;
+ constexpr int kDefaultTotalPages = kCpuIs64Bit ? 2048 : kDefaultMaxMetadata * 2;
diff --git a/chromium/patches/patch-components_gwp__asan_client_gwp__asan__features.cc b/chromium/patches/patch-components_gwp__asan_client_gwp__asan__features.cc
new file mode 100644
index 0000000000..34190fee5d
--- /dev/null
+++ b/chromium/patches/patch-components_gwp__asan_client_gwp__asan__features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/gwp_asan/client/gwp_asan_features.cc.orig	2024-07-24 02:44:34.104536000 +0000
++++ components/gwp_asan/client/gwp_asan_features.cc
+@@ -9,7 +9,7 @@
+ namespace gwp_asan::internal {
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) ||                                          \
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) ||                     \
+     (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS))
+ constexpr base::FeatureState kDefaultEnabled = base::FEATURE_ENABLED_BY_DEFAULT;
+ #else
diff --git a/chromium/patches/patch-components_gwp__asan_crash__handler_crash__analyzer.cc b/chromium/patches/patch-components_gwp__asan_crash__handler_crash__analyzer.cc
new file mode 100644
index 0000000000..f33169f445
--- /dev/null
+++ b/chromium/patches/patch-components_gwp__asan_crash__handler_crash__analyzer.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/gwp_asan/crash_handler/crash_analyzer.cc.orig	2024-07-24 02:44:34.108536500 +0000
++++ components/gwp_asan/crash_handler/crash_analyzer.cc
+@@ -30,7 +30,7 @@
+ #include "third_party/crashpad/crashpad/snapshot/process_snapshot.h"
+ #include "third_party/crashpad/crashpad/util/process/process_memory.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include <signal.h>
+ #elif BUILDFLAG(IS_APPLE)
+ #include <mach/exception_types.h>
+@@ -90,7 +90,7 @@ bool CrashAnalyzer::GetExceptionInfo(
+ 
+ crashpad::VMAddress CrashAnalyzer::GetAccessAddress(
+     const crashpad::ExceptionSnapshot& exception) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   if (exception.Exception() == SIGSEGV || exception.Exception() == SIGBUS)
+     return exception.ExceptionAddress();
+ #elif BUILDFLAG(IS_APPLE)
diff --git a/chromium/patches/patch-components_keyed__service_core_dependency__graph__unittest.cc b/chromium/patches/patch-components_keyed__service_core_dependency__graph__unittest.cc
deleted file mode 100644
index ff09386e3d..0000000000
--- a/chromium/patches/patch-components_keyed__service_core_dependency__graph__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/keyed_service/core/dependency_graph_unittest.cc.orig	2020-07-08 21:40:39.000000000 +0000
-+++ components/keyed_service/core/dependency_graph_unittest.cc
-@@ -9,7 +9,7 @@
- #include "components/keyed_service/core/dependency_graph.h"
- #include "components/keyed_service/core/dependency_node.h"
- #include "testing/gtest/include/gtest/gtest.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- 
- namespace {
- 
diff --git a/chromium/patches/patch-components_live__caption_caption__util.cc b/chromium/patches/patch-components_live__caption_caption__util.cc
new file mode 100644
index 0000000000..394c6d76e0
--- /dev/null
+++ b/chromium/patches/patch-components_live__caption_caption__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/live_caption/caption_util.cc.orig	2024-07-24 02:44:34.216547000 +0000
++++ components/live_caption/caption_util.cc
+@@ -144,7 +144,7 @@ std::string GetCaptionSettingsUrl() {
+   return "chrome://os-settings/audioAndCaptions";
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return "chrome://settings/captions";
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
diff --git a/chromium/patches/patch-components_live__caption_caption__util.h b/chromium/patches/patch-components_live__caption_caption__util.h
new file mode 100644
index 0000000000..971bcb1d83
--- /dev/null
+++ b/chromium/patches/patch-components_live__caption_caption__util.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/live_caption/caption_util.h.orig	2024-07-24 02:44:34.216547000 +0000
++++ components/live_caption/caption_util.h
+@@ -15,7 +15,7 @@ class PrefService;
+ namespace captions {
+ 
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ extern const char kCaptionSettingsUrl[];
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+         // BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-components_media__router_common_media__source.cc b/chromium/patches/patch-components_media__router_common_media__source.cc
new file mode 100644
index 0000000000..8ddd621c23
--- /dev/null
+++ b/chromium/patches/patch-components_media__router_common_media__source.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/media_router/common/media_source.cc.orig	2024-07-24 02:44:34.256550800 +0000
++++ components/media_router/common/media_source.cc
+@@ -57,7 +57,7 @@ bool IsSystemAudioCaptureSupported() {
+   if (!media::IsSystemLoopbackCaptureSupported()) {
+     return false;
+   }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return base::FeatureList::IsEnabled(media::kPulseaudioLoopbackForCast);
+ #else
+   return true;
diff --git a/chromium/patches/patch-components_media__router_common_providers_cast_channel_cast__message__util.cc b/chromium/patches/patch-components_media__router_common_providers_cast_channel_cast__message__util.cc
new file mode 100644
index 0000000000..7865c97f84
--- /dev/null
+++ b/chromium/patches/patch-components_media__router_common_providers_cast_channel_cast__message__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/media_router/common/providers/cast/channel/cast_message_util.cc.orig	2024-07-24 02:44:34.264551600 +0000
++++ components/media_router/common/providers/cast/channel/cast_message_util.cc
+@@ -169,7 +169,7 @@ int GetVirtualConnectPlatformValue() {
+   return 4;
+ #elif BUILDFLAG(IS_CHROMEOS_ASH)
+   return 5;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   return 6;
+ #else
+   return 0;
diff --git a/chromium/patches/patch-components_metrics_BUILD.gn b/chromium/patches/patch-components_metrics_BUILD.gn
deleted file mode 100644
index fa69248812..0000000000
--- a/chromium/patches/patch-components_metrics_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- components/metrics/BUILD.gn.orig	2020-06-25 09:31:27.000000000 +0000
-+++ components/metrics/BUILD.gn
-@@ -399,7 +405,7 @@ static_library("demographics_test_suppor
-   ]
- }
- 
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   static_library("serialization") {
-     sources = [
-       "serialization/metric_sample.cc",
-@@ -491,7 +497,7 @@ source_set("unit_tests") {
-     ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [ "serialization/serialization_utils_unittest.cc" ]
-     deps += [ ":serialization" ]
-   }
diff --git a/chromium/patches/patch-components_metrics_drive__metrics__provider__linux.cc b/chromium/patches/patch-components_metrics_drive__metrics__provider__linux.cc
index fe7a0ed65b..fafe9f6f2b 100644
--- a/chromium/patches/patch-components_metrics_drive__metrics__provider__linux.cc
+++ b/chromium/patches/patch-components_metrics_drive__metrics__provider__linux.cc
@@ -1,12 +1,16 @@
 $NetBSD$
 
---- components/metrics/drive_metrics_provider_linux.cc.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/metrics/drive_metrics_provider_linux.cc.orig	2024-07-24 02:44:34.288554000 +0000
 +++ components/metrics/drive_metrics_provider_linux.cc
 @@ -4,7 +4,13 @@
  
  #include "components/metrics/drive_metrics_provider.h"
  
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
 +#include <sys/types.h>
 +#define MAJOR(dev) major(dev)
 +#define MINOR(dev) minor(dev)
diff --git a/chromium/patches/patch-components_metrics_metrics__log.cc b/chromium/patches/patch-components_metrics_metrics__log.cc
index 7889325937..40474a0380 100644
--- a/chromium/patches/patch-components_metrics_metrics__log.cc
+++ b/chromium/patches/patch-components_metrics_metrics__log.cc
@@ -1,13 +1,44 @@
 $NetBSD$
 
---- components/metrics/metrics_log.cc.orig	2020-07-08 21:41:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/metrics/metrics_log.cc.orig	2024-07-24 02:44:34.292554400 +0000
 +++ components/metrics/metrics_log.cc
-@@ -215,7 +215,7 @@ void MetricsLog::RecordCoreSystemProfile
+@@ -56,7 +56,7 @@
+ #include "base/win/current_module.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/environment.h"
+ #include "base/nix/xdg_util.h"
+ #endif
+@@ -146,7 +146,7 @@ void RecordCurrentTime(
+   }
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ metrics::SystemProfileProto::OS::XdgSessionType ToProtoSessionType(
+     base::nix::SessionType session_type) {
+   switch (session_type) {
+@@ -415,7 +415,7 @@ void MetricsLog::RecordCoreSystemProfile
  // OperatingSystemVersion refers to the ChromeOS release version.
- #if defined(OS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
    os->set_kernel_version(base::SysInfo::KernelVersion());
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    // Linux operating system version is copied over into kernel version to be
    // consistent.
    os->set_kernel_version(base::SysInfo::OperatingSystemVersion());
+@@ -432,7 +432,7 @@ void MetricsLog::RecordCoreSystemProfile
+   os->set_build_number(base::SysInfo::GetIOSBuildNumber());
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   std::unique_ptr<base::Environment> env = base::Environment::Create();
+   os->set_xdg_session_type(ToProtoSessionType(base::nix::GetSessionType(*env)));
+   os->set_xdg_current_desktop(
diff --git a/chromium/patches/patch-components_metrics_motherboard.cc b/chromium/patches/patch-components_metrics_motherboard.cc
new file mode 100644
index 0000000000..7edbc21361
--- /dev/null
+++ b/chromium/patches/patch-components_metrics_motherboard.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/metrics/motherboard.cc.orig	2024-07-24 02:44:34.300555200 +0000
++++ components/metrics/motherboard.cc
+@@ -1,6 +1,7 @@
+ // Copyright 2022 The Chromium Authors
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
++// CHECK
+ 
+ #include "components/metrics/motherboard.h"
+ 
diff --git a/chromium/patches/patch-components_metrics_system__memory__stats__recorder__linux.cc b/chromium/patches/patch-components_metrics_system__memory__stats__recorder__linux.cc
deleted file mode 100644
index 59a813398b..0000000000
--- a/chromium/patches/patch-components_metrics_system__memory__stats__recorder__linux.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- components/metrics/system_memory_stats_recorder_linux.cc.orig	2020-07-08 21:40:39.000000000 +0000
-+++ components/metrics/system_memory_stats_recorder_linux.cc
-@@ -30,6 +30,7 @@ namespace metrics {
-   UMA_HISTOGRAM_LINEAR(name, sample, 2500, 50)
- 
- void RecordMemoryStats(RecordMemoryStatsType type) {
-+#if !defined(OS_BSD)
-   base::SystemMemoryInfoKB memory;
-   if (!base::GetSystemMemoryInfo(&memory))
-     return;
-@@ -81,6 +82,7 @@ void RecordMemoryStats(RecordMemoryStats
-       break;
-     }
-   }
-+#endif
- }
- 
- }  // namespace metrics
diff --git a/chromium/patches/patch-components_named__mojo__ipc__server_connection__info.h b/chromium/patches/patch-components_named__mojo__ipc__server_connection__info.h
new file mode 100644
index 0000000000..05248b7f00
--- /dev/null
+++ b/chromium/patches/patch-components_named__mojo__ipc__server_connection__info.h
@@ -0,0 +1,33 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/named_mojo_ipc_server/connection_info.h.orig	2024-07-24 02:44:34.340559000 +0000
++++ components/named_mojo_ipc_server/connection_info.h
+@@ -14,8 +14,14 @@
+ #include "base/win/scoped_handle.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include <bsm/libbsm.h>
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include <sys/socket.h>
++#if defined(__NetBSD__)
++#include <sys/un.h>
++#define ucred unpcbid
++#define SO_PEERCRED LOCAL_PEEREID
++#define pid unp_pid
++#endif
+ #endif
+ 
+ namespace named_mojo_ipc_server {
+@@ -33,7 +39,7 @@ struct ConnectionInfo {
+   std::optional<base::win::ScopedHandle> impersonation_token{};
+ #elif BUILDFLAG(IS_MAC)
+   audit_token_t audit_token{};
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   ucred credentials{};
+ #endif
+ };
diff --git a/chromium/patches/patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc b/chromium/patches/patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc
new file mode 100644
index 0000000000..a9879ae2aa
--- /dev/null
+++ b/chromium/patches/patch-components_named__mojo__ipc__server_named__mojo__ipc__server__client__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/named_mojo_ipc_server/named_mojo_ipc_server_client_util.cc.orig	2024-07-24 02:44:34.340559000 +0000
++++ components/named_mojo_ipc_server/named_mojo_ipc_server_client_util.cc
+@@ -22,7 +22,7 @@ namespace named_mojo_ipc_server {
+ // static
+ mojo::PlatformChannelEndpoint ConnectToServer(
+     const mojo::NamedPlatformChannel::ServerName& server_name) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   return mojo::NamedPlatformChannel::ConnectToServer(server_name);
+ #elif BUILDFLAG(IS_MAC)
+   mojo::PlatformChannelEndpoint endpoint =
diff --git a/chromium/patches/patch-components_named__system__lock_lock.h b/chromium/patches/patch-components_named__system__lock_lock.h
new file mode 100644
index 0000000000..0bf56bffc2
--- /dev/null
+++ b/chromium/patches/patch-components_named__system__lock_lock.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/named_system_lock/lock.h.orig	2024-07-24 02:44:34.340559000 +0000
++++ components/named_system_lock/lock.h
+@@ -38,7 +38,7 @@ class ScopedLock {
+   // may acquire that lock. The lock name has different meanings per platform:
+   // Linux: A shared memory object name starting with `/`. E.g. `/MyApp.lock`.
+   // Mac: A bootstrap service name (see `man bootstrap_check_in`).
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   static std::unique_ptr<ScopedLock> Create(const std::string& name,
+                                             base::TimeDelta timeout);
+ #elif BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-components_neterror_resources_neterror.js b/chromium/patches/patch-components_neterror_resources_neterror.js
index b4b62ad154..911edb0faa 100644
--- a/chromium/patches/patch-components_neterror_resources_neterror.js
+++ b/chromium/patches/patch-components_neterror_resources_neterror.js
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/neterror/resources/neterror.js.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/neterror/resources/neterror.js.orig	2024-07-24 02:44:34.348559900 +0000
 +++ components/neterror/resources/neterror.js
-@@ -204,7 +204,7 @@ function setUpCachedButton(buttonStrings
- }
+@@ -142,7 +142,7 @@ function detailsButtonClick() {
  
  let primaryControlOnLeft = true;
--// <if expr="is_macosx or is_ios or is_linux or is_android">
-+// <if expr="is_macosx or is_ios or is_linux or is_android or is_bsd">
+ // clang-format off
+-// <if expr="is_macosx or is_ios or is_linux or is_chromeos or is_android">
++// <if expr="is_macosx or is_ios or is_posix or is_chromeos or is_android">
+ // clang-format on
  primaryControlOnLeft = false;
  // </if>
- 
diff --git a/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator.cc b/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator.cc
index 0d522be706..a169f57708 100644
--- a/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator.cc
+++ b/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/network_session_configurator/browser/network_session_configurator.cc.orig	2020-07-08 21:40:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/network_session_configurator/browser/network_session_configurator.cc.orig	2024-07-24 02:44:34.348559900 +0000
 +++ components/network_session_configurator/browser/network_session_configurator.cc
-@@ -717,7 +717,7 @@ net::URLRequestContextBuilder::HttpCache
-   }
- #endif  // #if !defined(OS_ANDROID)
- 
--#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+@@ -825,7 +825,7 @@ net::URLRequestContextBuilder::HttpCache
+   // backport, having it behave differently than in stable would be a bigger
+   // problem. TODO: Does this work in later macOS releases?
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    return net::URLRequestContextBuilder::HttpCacheParams::DISK_SIMPLE;
  #else
    return net::URLRequestContextBuilder::HttpCacheParams::DISK_BLOCKFILE;
diff --git a/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc b/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc
new file mode 100644
index 0000000000..7b9a89fa1f
--- /dev/null
+++ b/chromium/patches/patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/network_session_configurator/browser/network_session_configurator_unittest.cc.orig	2024-07-24 02:44:34.352560300 +0000
++++ components/network_session_configurator/browser/network_session_configurator_unittest.cc
+@@ -782,7 +782,7 @@ TEST_F(NetworkSessionConfiguratorTest, H
+ 
+ TEST_F(NetworkSessionConfiguratorTest, DefaultCacheBackend) {
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   EXPECT_EQ(net::URLRequestContextBuilder::HttpCacheParams::DISK_SIMPLE,
+             ChooseCacheType());
+ #else
diff --git a/chromium/patches/patch-components_new__or__sad__tab__strings.grdp b/chromium/patches/patch-components_new__or__sad__tab__strings.grdp
deleted file mode 100644
index 2eb99d9818..0000000000
--- a/chromium/patches/patch-components_new__or__sad__tab__strings.grdp
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD$
-
---- components/new_or_sad_tab_strings.grdp.orig	2020-07-08 21:40:39.000000000 +0000
-+++ components/new_or_sad_tab_strings.grdp
-@@ -51,7 +51,7 @@
-           Open page in a new Incognito window (⇧⌘N)
-         </message>
-       </if>
--      <if expr="is_win or is_linux or chromeos">
-+      <if expr="is_win or is_posix or chromeos">
-         <message name="IDS_SAD_TAB_RELOAD_INCOGNITO" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to open the web page in Chrome's Incognito mode.">
-           Open page in a new Incognito window (Ctrl-Shift-N)
-         </message>
-@@ -66,7 +66,7 @@
-           Close other tabs or apps
-         </message>
-       </if>
--      <if expr="is_linux and not chromeos">
-+      <if expr="is_posix and not chromeos">
-         <message name="IDS_SAD_TAB_RELOAD_CLOSE_TABS" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to close other Chrome tabs or programs running on their computer.">
-           Close other tabs or programs
-         </message>
-@@ -76,7 +76,7 @@
-           Close other apps
-         </message>
-       </if>
--      <if expr="is_linux and not chromeos">
-+      <if expr="is_posix and not chromeos">
-         <message name="IDS_SAD_TAB_RELOAD_CLOSE_NOTABS" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to close other programs running on their computer (Linux).">
-           Close other programs
-         </message>
-@@ -91,7 +91,7 @@
-           Restart Chromium
-         </message>
-       </if>
--      <if expr="is_win or is_linux or is_macosx or chromeos">
-+      <if expr="is_win or is_posix or is_macosx or chromeos">
-         <message name="IDS_SAD_TAB_RELOAD_RESTART_DEVICE" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to restart their computer.">
-           Restart your computer
-         </message>
-@@ -106,7 +106,7 @@
-           Learn more
-         </message>
-       </if>
--      <if expr="is_win or is_linux or is_macosx or chromeos">
-+      <if expr="is_win or is_posix or is_macosx or chromeos">
-         <message name="IDS_SAD_TAB_ERROR_CODE" desc="The message displayed on the crashed web page indicating the type of the crash.">
-           Error code: <ph name="ERROR_CODE">$1<ex>STATUS_ACCESS_VIOLATION</ex></ph>
-         </message>
diff --git a/chromium/patches/patch-components_optimization__guide_core_optimization__guide__util.cc b/chromium/patches/patch-components_optimization__guide_core_optimization__guide__util.cc
new file mode 100644
index 0000000000..50562a2838
--- /dev/null
+++ b/chromium/patches/patch-components_optimization__guide_core_optimization__guide__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/optimization_guide/core/optimization_guide_util.cc.orig	2024-07-24 02:44:34.488573300 +0000
++++ components/optimization_guide/core/optimization_guide_util.cc
+@@ -35,7 +35,7 @@ optimization_guide::proto::Platform GetP
+   return optimization_guide::proto::PLATFORM_CHROMEOS;
+ #elif BUILDFLAG(IS_ANDROID)
+   return optimization_guide::proto::PLATFORM_ANDROID;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return optimization_guide::proto::PLATFORM_LINUX;
+ #else
+   return optimization_guide::proto::PLATFORM_UNDEFINED;
diff --git a/chromium/patches/patch-components_os__crypt_os__crypt.h b/chromium/patches/patch-components_os__crypt_os__crypt.h
deleted file mode 100644
index f0b7ae29a7..0000000000
--- a/chromium/patches/patch-components_os__crypt_os__crypt.h
+++ /dev/null
@@ -1,38 +0,0 @@
-$NetBSD$
-
---- components/os_crypt/os_crypt.h.orig	2020-07-08 21:40:40.000000000 +0000
-+++ components/os_crypt/os_crypt.h
-@@ -15,7 +15,7 @@
- #include "base/strings/string16.h"
- #include "build/build_config.h"
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- class KeyStorageLinux;
- #endif  // defined(OS_LINUX) && !defined(OS_CHROMEOS)
- 
-@@ -34,13 +34,13 @@ struct Config;
- // true for Linux, if a password management tool is available.
- class OSCrypt {
-  public:
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   // Set the configuration of OSCrypt.
-   static COMPONENT_EXPORT(OS_CRYPT) void SetConfig(
-       std::unique_ptr<os_crypt::Config> config);
- #endif  // defined(OS_LINUX) && !defined(OS_CHROMEOS)
- 
--#if defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if defined(OS_MACOSX) || ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
-   // On Linux returns true iff the real secret key (not hardcoded one) is
-   // available. On MacOS returns true if Keychain is available (for mock
-   // Keychain it returns true if not using locked Keychain, false if using
-@@ -131,7 +131,7 @@ class OSCrypt {
-   DISALLOW_IMPLICIT_CONSTRUCTORS(OSCrypt);
- };
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // For unit testing purposes, inject methods to be used.
- // |get_key_storage_mock| provides the desired |KeyStorage| implementation.
- // If the provider returns |nullptr|, a hardcoded password will be used.
diff --git a/chromium/patches/patch-components_os__crypt_os__crypt__unittest.cc b/chromium/patches/patch-components_os__crypt_os__crypt__unittest.cc
deleted file mode 100644
index a9d71a51f1..0000000000
--- a/chromium/patches/patch-components_os__crypt_os__crypt__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/os_crypt/os_crypt_unittest.cc.orig	2020-07-08 21:40:40.000000000 +0000
-+++ components/os_crypt/os_crypt_unittest.cc
-@@ -18,7 +18,7 @@
- #include "components/os_crypt/os_crypt_mocker.h"
- #include "testing/gtest/include/gtest/gtest.h"
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "components/os_crypt/os_crypt_mocker_linux.h"
- #endif
- 
diff --git a/chromium/patches/patch-components_os__crypt_sync_libsecret__util__linux.cc b/chromium/patches/patch-components_os__crypt_sync_libsecret__util__linux.cc
new file mode 100644
index 0000000000..7d2520dbdc
--- /dev/null
+++ b/chromium/patches/patch-components_os__crypt_sync_libsecret__util__linux.cc
@@ -0,0 +1,33 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/os_crypt/sync/libsecret_util_linux.cc.orig	2024-07-24 02:44:34.504574800 +0000
++++ components/os_crypt/sync/libsecret_util_linux.cc
+@@ -99,16 +99,22 @@ bool LibsecretLoader::EnsureLibsecretLoa
+ 
+ // static
+ bool LibsecretLoader::LoadLibsecret() {
++#if BUILDFLAG(IS_BSD)
++  const char* kSecretLib = "libsecret-1.so";
++#else
++  const char* kSecretLib = "libsecret-1.so.0";
++#endif
++
+   if (libsecret_loaded_)
+     return true;
+ 
+-  static void* handle = dlopen("libsecret-1.so.0", RTLD_NOW | RTLD_GLOBAL);
++  static void* handle = dlopen(kSecretLib, RTLD_NOW | RTLD_GLOBAL);
+   if (!handle) {
+     // We wanted to use libsecret, but we couldn't load it. Warn, because
+     // either the user asked for this, or we autodetected it incorrectly. (Or
+     // the system has broken libraries, which is also good to warn about.)
+     // TODO(crbug.com/40467093): Channel this message to the user-facing log
+-    VLOG(1) << "Could not load libsecret-1.so.0: " << dlerror();
++    VLOG(1) << "Could not load " << kSecretLib << ": " << dlerror();
+     return false;
+   }
+ 
diff --git a/chromium/patches/patch-components_os__crypt_sync_os__crypt.h b/chromium/patches/patch-components_os__crypt_sync_os__crypt.h
new file mode 100644
index 0000000000..60d8c3d335
--- /dev/null
+++ b/chromium/patches/patch-components_os__crypt_sync_os__crypt.h
@@ -0,0 +1,78 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/os_crypt/sync/os_crypt.h.orig	2024-07-24 02:44:34.504574800 +0000
++++ components/os_crypt/sync/os_crypt.h
+@@ -14,7 +14,7 @@
+ #include "build/build_config.h"
+ #include "build/chromecast_buildflags.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ class KeyStorageLinux;
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+@@ -23,7 +23,7 @@ class PrefRegistrySimple;
+ class PrefService;
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+ namespace crypto {
+ class SymmetricKey;
+ }
+@@ -36,7 +36,7 @@ struct Config;
+ // Temporary interface due to OSCrypt refactor. See OSCryptImpl for descriptions
+ // of what each function does.
+ namespace OSCrypt {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(OS_CRYPT)
+ void SetConfig(std::unique_ptr<os_crypt::Config> config);
+ #endif  // BUILDFLAG(IS_LINUX)
+@@ -81,7 +81,7 @@ COMPONENT_EXPORT(OS_CRYPT) void UseMockK
+ COMPONENT_EXPORT(OS_CRYPT) void SetLegacyEncryptionForTesting(bool legacy);
+ COMPONENT_EXPORT(OS_CRYPT) void ResetStateForTesting();
+ #endif  // BUILDFLAG(IS_WIN)
+-#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(OS_CRYPT)
+ void UseMockKeyStorageForTesting(
+     base::OnceCallback<std::unique_ptr<KeyStorageLinux>()>
+@@ -108,7 +108,7 @@ class COMPONENT_EXPORT(OS_CRYPT) OSCrypt
+   // Returns singleton instance of OSCryptImpl.
+   static OSCryptImpl* GetInstance();
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Set the configuration of OSCryptImpl.
+   // This method, or SetRawEncryptionKey(), must be called before using
+   // EncryptString() and DecryptString().
+@@ -200,7 +200,7 @@ class COMPONENT_EXPORT(OS_CRYPT) OSCrypt
+   void ResetStateForTesting();
+ #endif
+ 
+-#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS))
++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD)
+   // For unit testing purposes, inject methods to be used.
+   // |storage_provider_factory| provides the desired |KeyStorage|
+   // implementation. If the provider returns |nullptr|, a hardcoded password
+@@ -225,13 +225,13 @@ class COMPONENT_EXPORT(OS_CRYPT) OSCrypt
+   crypto::SymmetricKey* GetEncryptionKey();
+ #endif  // BUILDFLAG(IS_APPLE)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+   // This lock is used to make the GetEncryptionKey and
+   // GetRawEncryptionKey methods thread-safe.
+   static base::Lock& GetLock();
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Create the KeyStorage. Will be null if no service is found. A Config must
+   // be set before every call to this method.
+   std::unique_ptr<KeyStorageLinux> CreateKeyStorage();
diff --git a/chromium/patches/patch-components_paint__preview_browser_paint__preview__client.cc b/chromium/patches/patch-components_paint__preview_browser_paint__preview__client.cc
new file mode 100644
index 0000000000..6557416fdb
--- /dev/null
+++ b/chromium/patches/patch-components_paint__preview_browser_paint__preview__client.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/paint_preview/browser/paint_preview_client.cc.orig	2024-07-24 02:44:34.548579200 +0000
++++ components/paint_preview/browser/paint_preview_client.cc
+@@ -313,8 +313,8 @@ void PaintPreviewClient::CapturePaintPre
+   metadata->set_version(kPaintPreviewVersion);
+   auto* chromeVersion = metadata->mutable_chrome_version();
+   const auto& current_chrome_version = version_info::GetVersion();
+-  chromeVersion->set_major(current_chrome_version.components()[0]);
+-  chromeVersion->set_minor(current_chrome_version.components()[1]);
++  chromeVersion->set_gmajor(current_chrome_version.components()[0]);
++  chromeVersion->set_gminor(current_chrome_version.components()[1]);
+   chromeVersion->set_build(current_chrome_version.components()[2]);
+   chromeVersion->set_patch(current_chrome_version.components()[3]);
+   document_data.callback = std::move(callback);
diff --git a/chromium/patches/patch-components_paint__preview_browser_paint__preview__client__unittest.cc b/chromium/patches/patch-components_paint__preview_browser_paint__preview__client__unittest.cc
new file mode 100644
index 0000000000..b9f5b75ac8
--- /dev/null
+++ b/chromium/patches/patch-components_paint__preview_browser_paint__preview__client__unittest.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/paint_preview/browser/paint_preview_client_unittest.cc.orig	2024-07-24 02:44:34.548579200 +0000
++++ components/paint_preview/browser/paint_preview_client_unittest.cc
+@@ -174,8 +174,8 @@ TEST_P(PaintPreviewClientRenderViewHostT
+   metadata->set_version(kPaintPreviewVersion);
+   auto* chromeVersion = metadata->mutable_chrome_version();
+   const auto& current_chrome_version = version_info::GetVersion();
+-  chromeVersion->set_major(current_chrome_version.components()[0]);
+-  chromeVersion->set_minor(current_chrome_version.components()[1]);
++  chromeVersion->set_gmajor(current_chrome_version.components()[0]);
++  chromeVersion->set_gminor(current_chrome_version.components()[1]);
+   chromeVersion->set_build(current_chrome_version.components()[2]);
+   chromeVersion->set_patch(current_chrome_version.components()[3]);
+   PaintPreviewFrameProto* main_frame = expected_proto.mutable_root_frame();
diff --git a/chromium/patches/patch-components_paint__preview_common_proto_paint__preview.proto b/chromium/patches/patch-components_paint__preview_common_proto_paint__preview.proto
new file mode 100644
index 0000000000..6beef1e89d
--- /dev/null
+++ b/chromium/patches/patch-components_paint__preview_common_proto_paint__preview.proto
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/paint_preview/common/proto/paint_preview.proto.orig	2024-07-24 02:44:34.552579600 +0000
++++ components/paint_preview/common/proto/paint_preview.proto
+@@ -82,8 +82,8 @@ message PaintPreviewFrameProto {
+ // Stores Chrome version.
+ // NEXT_TAG = 5
+ message ChromeVersionProto {
+-  optional uint64 major = 1;
+-  optional uint64 minor = 2;
++  optional uint64 gmajor = 1;
++  optional uint64 gminor = 2;
+   optional uint64 build = 3;
+   optional uint64 patch = 4;
+ }
diff --git a/chromium/patches/patch-components_paint__preview_player_player__compositor__delegate.cc b/chromium/patches/patch-components_paint__preview_player_player__compositor__delegate.cc
new file mode 100644
index 0000000000..7695564ac3
--- /dev/null
+++ b/chromium/patches/patch-components_paint__preview_player_player__compositor__delegate.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/paint_preview/player/player_compositor_delegate.cc.orig	2024-07-24 02:44:34.560580300 +0000
++++ components/paint_preview/player/player_compositor_delegate.cc
+@@ -435,8 +435,8 @@ void PlayerCompositorDelegate::ValidateP
+   auto chrome_version = capture_result_->proto.metadata().chrome_version();
+   const auto& current_chrome_version = version_info::GetVersion();
+   if (capture_result_->proto.metadata().has_chrome_version() &&
+-      chrome_version.major() == current_chrome_version.components()[0] &&
+-      chrome_version.minor() == current_chrome_version.components()[1] &&
++      chrome_version.gmajor() == current_chrome_version.components()[0] &&
++      chrome_version.gminor() == current_chrome_version.components()[1] &&
+       chrome_version.build() == current_chrome_version.components()[2] &&
+       chrome_version.patch() == current_chrome_version.components()[3]) {
+     paint_preview_service_->GetFileMixin()->GetAXTreeUpdate(
diff --git a/chromium/patches/patch-components_password__manager_core_browser_BUILD.gn b/chromium/patches/patch-components_password__manager_core_browser_BUILD.gn
deleted file mode 100644
index f3686c26c2..0000000000
--- a/chromium/patches/patch-components_password__manager_core_browser_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/password_manager/core/browser/BUILD.gn.orig	2020-07-15 18:56:46.000000000 +0000
-+++ components/password_manager/core/browser/BUILD.gn
-@@ -617,7 +617,7 @@ source_set("unit_tests") {
-     ]
-   }
- 
--  if (is_win || is_mac || is_linux || is_chromeos) {
-+  if (is_win || is_mac || is_linux || is_chromeos || is_bsd) {
-     sources += [ "hash_password_manager_unittest.cc" ]
-   }
- 
diff --git a/chromium/patches/patch-components_password__manager_core_browser_features_password__features.cc b/chromium/patches/patch-components_password__manager_core_browser_features_password__features.cc
new file mode 100644
index 0000000000..73a34f4203
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_features_password__features.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/features/password_features.cc.orig	2024-07-24 02:44:34.568581000 +0000
++++ components/password_manager/core/browser/features/password_features.cc
+@@ -33,7 +33,7 @@ BASE_FEATURE(kBiometricTouchToFill,
+ #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)  // Desktop
+ BASE_FEATURE(kButterOnDesktopFollowup,
+              "ButterOnDesktopFollowup",
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT);
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -46,7 +46,7 @@ BASE_FEATURE(kClearUndecryptablePassword
+ 
+ BASE_FEATURE(kClearUndecryptablePasswordsOnSync,
+              "ClearUndecryptablePasswordsInSync",
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_IOS)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
+@@ -108,7 +108,7 @@ BASE_FEATURE(kPasswordManualFallbackAvai
+              "PasswordManualFallbackAvailable",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kRestartToGainAccessToKeychain,
+              "RestartToGainAccessToKeychain",
+ #if BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-components_password__manager_core_browser_features_password__features.h b/chromium/patches/patch-components_password__manager_core_browser_features_password__features.h
new file mode 100644
index 0000000000..ff850a3d57
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_features_password__features.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/features/password_features.h.orig	2024-07-24 02:44:34.568581000 +0000
++++ components/password_manager/core/browser/features/password_features.h
+@@ -93,7 +93,7 @@ BASE_DECLARE_FEATURE(kPasswordManagerLog
+ // Enables triggering password suggestions through the context menu.
+ BASE_DECLARE_FEATURE(kPasswordManualFallbackAvailable);
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enables "Needs access to keychain, restart chrome" bubble and banner.
+ BASE_DECLARE_FEATURE(kRestartToGainAccessToKeychain);
+ #endif  // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__form__manager.cc b/chromium/patches/patch-components_password__manager_core_browser_password__form__manager.cc
new file mode 100644
index 0000000000..6498b37e47
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__form__manager.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_form_manager.cc.orig	2024-07-24 02:44:34.588583000 +0000
++++ components/password_manager/core/browser/password_form_manager.cc
+@@ -58,7 +58,7 @@
+ #include "components/webauthn/android/webauthn_cred_man_delegate.h"
+ #endif  // BUILDFLAG(IS_ANDROID)
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "components/os_crypt/sync/os_crypt.h"
+ #endif
+ 
+@@ -229,7 +229,7 @@ bool ShouldUploadCrowdsourcingVotes(cons
+   return false;
+ }
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool ShouldShowKeychainErrorBubble(
+     std::optional<PasswordStoreBackendError> backend_error) {
+   if (!backend_error.has_value()) {
+@@ -880,7 +880,7 @@ void PasswordFormManager::OnFetchComplet
+         error.value().type);
+   }
+ 
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (ShouldShowKeychainErrorBubble(
+           form_fetcher_->GetProfileStoreBackendError())) {
+     client_->NotifyKeychainError();
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__manager.cc b/chromium/patches/patch-components_password__manager_core_browser_password__manager.cc
new file mode 100644
index 0000000000..8b42c92b3b
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_manager.cc.orig	2024-07-24 02:44:34.592583400 +0000
++++ components/password_manager/core/browser/password_manager.cc
+@@ -386,7 +386,7 @@ void PasswordManager::RegisterProfilePre
+       prefs::kAutofillableCredentialsAccountStoreLoginDatabase, false);
+ #endif  // BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
+   registry->RegisterBooleanPref(prefs::kPasswordSharingEnabled, true);
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   registry->RegisterIntegerPref(prefs::kRelaunchChromeBubbleDismissedCounter,
+                                 0);
+ #endif
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__manager__client.h b/chromium/patches/patch-components_password__manager_core_browser_password__manager__client.h
new file mode 100644
index 0000000000..34de843011
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__manager__client.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_manager_client.h.orig	2024-07-24 02:44:34.592583400 +0000
++++ components/password_manager/core/browser/password_manager_client.h
+@@ -30,7 +30,7 @@
+ #include "net/cert/cert_status_flags.h"
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/i18n/rtl.h"
+ #include "components/password_manager/core/browser/password_cross_domain_confirmation_popup_controller.h"
+ #include "ui/gfx/geometry/rect_f.h"
+@@ -517,7 +517,7 @@ class PasswordManagerClient {
+   virtual void RefreshPasswordManagerSettingsIfNeeded() const;
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Creates and show the cross domain confirmation popup.
+   virtual std::unique_ptr<PasswordCrossDomainConfirmationPopupController>
+   ShowCrossDomainConfirmationPopup(const gfx::RectF& element_bounds,
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.cc b/chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.cc
new file mode 100644
index 0000000000..8307e630c6
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_manager_switches.cc.orig	2024-07-24 02:44:34.596583800 +0000
++++ components/password_manager/core/browser/password_manager_switches.cc
+@@ -6,7 +6,7 @@
+ 
+ namespace password_manager {
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Specifies which encryption storage backend to use. Possible values are
+ // kwallet, kwallet5, kwallet6, gnome-libsecret, basic.
+ // Any other value will lead to Chrome detecting the best backend automatically.
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.h b/chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.h
new file mode 100644
index 0000000000..ab950c5fdd
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__manager__switches.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_manager_switches.h.orig	2024-07-24 02:44:34.596583800 +0000
++++ components/password_manager/core/browser/password_manager_switches.h
+@@ -10,7 +10,7 @@
+ 
+ namespace password_manager {
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ extern const char kPasswordStore[];
+ extern const char kEnableEncryptionSelection[];
+ #endif  // BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc b/chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc
new file mode 100644
index 0000000000..b3f7bc4bcb
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_manual_fallback_flow.cc.orig	2024-07-24 02:44:34.596583800 +0000
++++ components/password_manager/core/browser/password_manual_fallback_flow.cc
+@@ -192,7 +192,7 @@ void PasswordManualFallbackFlow::DidAcce
+                          payload.password));
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+       if (payload.is_cross_domain) {
+         cross_domain_confirmation_popup_controller_ =
+             password_client_->ShowCrossDomainConfirmationPopup(
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.h b/chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.h
new file mode 100644
index 0000000000..e2ea804ddf
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__manual__fallback__flow.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_manual_fallback_flow.h.orig	2024-07-24 02:44:34.596583800 +0000
++++ components/password_manager/core/browser/password_manual_fallback_flow.h
+@@ -18,7 +18,7 @@
+ #include "components/password_manager/core/browser/ui/saved_passwords_presenter.h"
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/password_manager/core/browser/password_cross_domain_confirmation_popup_controller.h"
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ||
+         // BUILDFLAG(IS_CHROMEOS)
+@@ -159,7 +159,7 @@ class PasswordManualFallbackFlow : publi
+   std::unique_ptr<device_reauth::DeviceAuthenticator> authenticator_;
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   std::unique_ptr<PasswordCrossDomainConfirmationPopupController>
+       cross_domain_confirmation_popup_controller_;
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ||
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database.cc b/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database.cc
new file mode 100644
index 0000000000..1c459aa50a
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_store/login_database.cc.orig	2024-07-24 02:44:34.604584700 +0000
++++ components/password_manager/core/browser/password_store/login_database.cc
+@@ -1020,7 +1020,7 @@ void RecordShouldDeleteUndecryptablePass
+ }
+ 
+ bool ShouldDeleteUndecryptablePasswords() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   std::string user_data_dir_string;
+   std::unique_ptr<base::Environment> environment(base::Environment::Create());
+   // On Linux user data directory ca be specified using an env variable. If it
+@@ -1039,7 +1039,7 @@ bool ShouldDeleteUndecryptablePasswords(
+     return false;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (command_line->HasSwitch(password_manager::kPasswordStore)) {
+     RecordShouldDeleteUndecryptablePasswordsMetric(
+         ShouldDeleteUndecryptablePasswordsResult::
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc b/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc
new file mode 100644
index 0000000000..6b6e74ce28
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__async__helper.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_store/login_database_async_helper.cc.orig	2024-07-24 02:44:34.604584700 +0000
++++ components/password_manager/core/browser/password_store/login_database_async_helper.cc
+@@ -149,7 +149,7 @@ LoginsResultOrError LoginDatabaseAsyncHe
+     std::vector<PasswordForm> matched_forms;
+     if (!login_db_ ||
+         !login_db_->GetLogins(form, include_psl, &matched_forms)) {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       return PasswordStoreBackendError(
+           OSCrypt::IsEncryptionAvailable()
+               ? PasswordStoreBackendErrorType::kUncategorized
diff --git a/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__unittest.cc b/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__unittest.cc
new file mode 100644
index 0000000000..3b6a9cd5d4
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_password__store_login__database__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/password_store/login_database_unittest.cc.orig	2024-07-24 02:44:34.604584700 +0000
++++ components/password_manager/core/browser/password_store/login_database_unittest.cc
+@@ -2141,7 +2141,7 @@ INSTANTIATE_TEST_SUITE_P(MigrationToVCur
+                          testing::Values(1, 2, 3, 24));
+ 
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_IOS) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ class LoginDatabaseUndecryptableLoginsTest : public testing::Test {
+  protected:
+   LoginDatabaseUndecryptableLoginsTest() = default;
diff --git a/chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.cc b/chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.cc
new file mode 100644
index 0000000000..ae816db8d6
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/stub_password_manager_client.cc.orig	2024-07-24 02:44:34.616585700 +0000
++++ components/password_manager/core/browser/stub_password_manager_client.cc
+@@ -175,7 +175,7 @@ version_info::Channel StubPasswordManage
+ }
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::unique_ptr<
+     password_manager::PasswordCrossDomainConfirmationPopupController>
+ StubPasswordManagerClient::ShowCrossDomainConfirmationPopup(
diff --git a/chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.h b/chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.h
new file mode 100644
index 0000000000..9bba2f24bf
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_browser_stub__password__manager__client.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/browser/stub_password_manager_client.h.orig	2024-07-24 02:44:34.616585700 +0000
++++ components/password_manager/core/browser/stub_password_manager_client.h
+@@ -74,7 +74,7 @@ class StubPasswordManagerClient : public
+   MockPasswordFeatureManager* GetPasswordFeatureManager();
+   version_info::Channel GetChannel() const override;
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   std::unique_ptr<
+       password_manager::PasswordCrossDomainConfirmationPopupController>
+   ShowCrossDomainConfirmationPopup(
diff --git a/chromium/patches/patch-components_password__manager_core_common_password__manager__pref__names.h b/chromium/patches/patch-components_password__manager_core_common_password__manager__pref__names.h
new file mode 100644
index 0000000000..0f64888251
--- /dev/null
+++ b/chromium/patches/patch-components_password__manager_core_common_password__manager__pref__names.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/password_manager/core/common/password_manager_pref_names.h.orig	2024-07-24 02:44:34.624586600 +0000
++++ components/password_manager/core/common/password_manager_pref_names.h
+@@ -358,7 +358,7 @@ inline constexpr char kAutofillableCrede
+ inline constexpr char kPasswordSharingEnabled[] =
+     "password_manager.password_sharing_enabled";
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Integer pref indicating how many times relaunch Chrome bubble was dismissed.
+ inline constexpr char kRelaunchChromeBubbleDismissedCounter[] =
+     "password_manager.relaunch_chrome_bubble_dismissed_counter";
diff --git a/chromium/patches/patch-components_performance__manager_public_features.h b/chromium/patches/patch-components_performance__manager_public_features.h
new file mode 100644
index 0000000000..009fad7ae0
--- /dev/null
+++ b/chromium/patches/patch-components_performance__manager_public_features.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/performance_manager/public/features.h.orig	2024-07-24 02:44:34.700594000 +0000
++++ components/performance_manager/public/features.h
+@@ -21,7 +21,7 @@ BASE_DECLARE_FEATURE(kRunOnMainThreadSyn
+ 
+ #if !BUILDFLAG(IS_ANDROID)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #define URGENT_DISCARDING_FROM_PERFORMANCE_MANAGER() false
+ #else
+ #define URGENT_DISCARDING_FROM_PERFORMANCE_MANAGER() true
diff --git a/chromium/patches/patch-components_permissions_prediction__service_prediction__common.cc b/chromium/patches/patch-components_permissions_prediction__service_prediction__common.cc
new file mode 100644
index 0000000000..08c075c635
--- /dev/null
+++ b/chromium/patches/patch-components_permissions_prediction__service_prediction__common.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/permissions/prediction_service/prediction_common.cc.orig	2024-07-24 02:44:34.752599000 +0000
++++ components/permissions/prediction_service/prediction_common.cc
+@@ -33,7 +33,7 @@ int BucketizeValue(int count) {
+ 
+ ClientFeatures_Platform GetCurrentPlatformProto() {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   return permissions::ClientFeatures_Platform_PLATFORM_DESKTOP;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
+   return permissions::ClientFeatures_Platform_PLATFORM_MOBILE;
+@@ -44,7 +44,7 @@ ClientFeatures_Platform GetCurrentPlatfo
+ 
+ ClientFeatures_PlatformEnum GetCurrentPlatformEnumProto() {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   return permissions::ClientFeatures_PlatformEnum_PLATFORM_DESKTOP_V2;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
+   return permissions::ClientFeatures_PlatformEnum_PLATFORM_MOBILE_V2;
diff --git a/chromium/patches/patch-components_plugins_renderer_plugin__placeholder.cc b/chromium/patches/patch-components_plugins_renderer_plugin__placeholder.cc
deleted file mode 100644
index 58616bf2a8..0000000000
--- a/chromium/patches/patch-components_plugins_renderer_plugin__placeholder.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/plugins/renderer/plugin_placeholder.cc.orig	2020-07-08 21:40:40.000000000 +0000
-+++ components/plugins/renderer/plugin_placeholder.cc
-@@ -17,7 +17,7 @@
- #include "third_party/blink/public/web/web_plugin_container.h"
- #include "third_party/blink/public/web/web_script_source.h"
- #include "third_party/blink/public/web/web_serialized_script_value.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- 
- namespace plugins {
- 
diff --git a/chromium/patches/patch-components_policy_BUILD.gn b/chromium/patches/patch-components_policy_BUILD.gn
deleted file mode 100644
index 5005a78f09..0000000000
--- a/chromium/patches/patch-components_policy_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/policy/BUILD.gn.orig	2020-07-15 18:55:55.000000000 +0000
-+++ components/policy/BUILD.gn
-@@ -19,7 +19,7 @@ gen_policy_templates_local = false
- # enable these flags (but don't check that in!).
- gen_policy_templates_common = true
- gen_policy_templates_win = is_win
--gen_policy_templates_linux = is_linux
-+gen_policy_templates_linux = is_linux || is_bsd
- gen_policy_templates_android = is_android
- gen_policy_templates_mac = is_mac
- gen_policy_templates_chromeos = is_chromeos
diff --git a/chromium/patches/patch-components_policy_core_browser_policy__pref__mapping__test.cc b/chromium/patches/patch-components_policy_core_browser_policy__pref__mapping__test.cc
new file mode 100644
index 0000000000..4bbf8970ee
--- /dev/null
+++ b/chromium/patches/patch-components_policy_core_browser_policy__pref__mapping__test.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/core/browser/policy_pref_mapping_test.cc.orig	2024-07-24 02:44:34.776601300 +0000
++++ components/policy/core/browser/policy_pref_mapping_test.cc
+@@ -411,7 +411,7 @@ class PolicyTestCase {
+     const std::string os("chromeos_lacros");
+ #elif BUILDFLAG(IS_IOS)
+     const std::string os("ios");
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     const std::string os("linux");
+ #elif BUILDFLAG(IS_MAC)
+     const std::string os("mac");
diff --git a/chromium/patches/patch-components_policy_core_common_BUILD.gn b/chromium/patches/patch-components_policy_core_common_BUILD.gn
deleted file mode 100644
index a9c3e13e21..0000000000
--- a/chromium/patches/patch-components_policy_core_common_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- components/policy/core/common/BUILD.gn.orig	2020-07-15 18:55:55.000000000 +0000
-+++ components/policy/core/common/BUILD.gn
-@@ -204,7 +204,7 @@ jumbo_source_set("internal") {
-   }
- 
-   # Compile on Linux for fuzzer and since code is reused on Chrome OS.
--  if (is_win || is_linux) {
-+  if (is_win || is_linux || is_bsd) {
-     sources += [
-       "preg_parser.cc",
-       "preg_parser.h",
-@@ -403,7 +403,7 @@ source_set("unit_tests") {
-     "schema_unittest.cc",
-     "values_util_unittest.cc",
-   ]
--  if (is_win || is_linux) {
-+  if (is_win || is_linux || is_bsd) {
-     sources += [
-       "preg_parser_unittest.cc",
-       "registry_dict_unittest.cc",
-@@ -459,7 +459,7 @@ source_set("unit_tests") {
-       configs += [ "//build/config/compiler:enable_arc" ]
-     }
-   }
--  if (is_win || is_linux) {
-+  if (is_win || is_linux || is_bsd) {
-     # Needed by policy_loader_win_unittest.cc and preg_parser_unittest.cc
-     data = [ "//chrome/test/data/policy/" ]
-   }
-@@ -489,7 +489,7 @@ source_set("unit_tests") {
-   }
- }
- 
--if (is_win || is_linux) {
-+if (is_win || is_linux || is_bsd) {
-   fuzzer_test("preg_parser_fuzzer") {
-     sources = [ "preg_parser_fuzzer.cc" ]
-     seed_corpus = "//chrome/test/data/policy/gpo/fuzzer_corpus"
diff --git a/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__client.cc b/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__client.cc
new file mode 100644
index 0000000000..dfcfc5bfd6
--- /dev/null
+++ b/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/core/common/cloud/cloud_policy_client.cc.orig	2024-07-24 02:44:34.780601700 +0000
++++ components/policy/core/common/cloud/cloud_policy_client.cc
+@@ -647,7 +647,7 @@ void CloudPolicyClient::FetchPolicy(Poli
+         fetch_request->set_invalidation_payload(invalidation_payload_);
+       }
+     }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     // Only set browser device identifier for CBCM Chrome cloud policy on
+     // desktop.
+     if (type_to_fetch.first ==
diff --git a/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__util.cc b/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__util.cc
index 7d8149e0c2..ac7fdd4023 100644
--- a/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__util.cc
+++ b/chromium/patches/patch-components_policy_core_common_cloud_cloud__policy__util.cc
@@ -1,62 +1,61 @@
 $NetBSD$
 
---- components/policy/core/common/cloud/cloud_policy_util.cc.orig	2020-07-15 18:55:55.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/core/common/cloud/cloud_policy_util.cc.orig	2024-07-24 02:44:34.784602000 +0000
 +++ components/policy/core/common/cloud/cloud_policy_util.cc
-@@ -16,7 +16,7 @@
- #include <wincred.h>
+@@ -20,7 +20,7 @@
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) || defined(OS_MACOSX)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) || defined(OS_MACOSX)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+-    BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
  #include <pwd.h>
  #include <sys/types.h>
  #include <unistd.h>
-@@ -31,7 +31,7 @@
+@@ -35,10 +35,15 @@
  #import <SystemConfiguration/SCDynamicStoreCopySpecific.h>
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  #include <limits.h>  // For HOST_NAME_MAX
  #endif
  
-@@ -62,7 +62,7 @@
- #include "base/system/sys_info.h"
- #endif
++#if BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
++#include <sys/param.h>
++#define HOST_NAME_MAX MAXHOSTNAMELEN
++#endif
++
+ #include <algorithm>
+ #include <utility>
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "base/system/sys_info.h"
- #endif
+@@ -88,7 +93,7 @@ namespace em = enterprise_management;
  
-@@ -76,6 +76,12 @@ std::string GetMachineName() {
+ std::string GetMachineName() {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   char hostname[HOST_NAME_MAX];
    if (gethostname(hostname, HOST_NAME_MAX) == 0)  // Success.
      return hostname;
-   return std::string();
-+#elif defined(OS_NETBSD)
-+  int len = sysconf(_SC_HOST_NAME_MAX);
-+  char hostname[len];
-+  if (gethostname(hostname, _SC_HOST_NAME_MAX) == 0)  // Success.
-+    return hostname;
-+  return std::string();
- #elif defined(OS_MACOSX)
- // TODO(crbug.com/1024115): Find a different replacement for -[NSHost
- // currentHost] on iOS.
-@@ -125,7 +131,7 @@ std::string GetMachineName() {
- }
+@@ -145,7 +150,7 @@ std::string GetMachineName() {
  
  std::string GetOSVersion() {
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
+-    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
    return base::SysInfo::OperatingSystemVersion();
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
    base::win::OSInfo::VersionNumber version_number =
-@@ -148,7 +154,7 @@ std::string GetOSArchitecture() {
+@@ -168,7 +173,7 @@ std::string GetOSArchitecture() {
  }
  
  std::string GetOSUsername() {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) || defined(OS_MACOSX)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) || defined(OS_MACOSX)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
    struct passwd* creds = getpwuid(getuid());
    if (!creds || !creds->pw_name)
      return std::string();
diff --git a/chromium/patches/patch-components_policy_core_common_policy__loader__common.cc b/chromium/patches/patch-components_policy_core_common_policy__loader__common.cc
new file mode 100644
index 0000000000..472bf1e576
--- /dev/null
+++ b/chromium/patches/patch-components_policy_core_common_policy__loader__common.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/core/common/policy_loader_common.cc.orig	2024-07-24 02:44:34.800603600 +0000
++++ components/policy/core/common/policy_loader_common.cc
+@@ -46,7 +46,7 @@ const char* kSensitivePolicies[] = {
+     key::kDefaultSearchProviderEnabled,
+     key::kSafeBrowsingEnabled,
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     key::kAutoOpenFileTypes,
+     key::kHomepageIsNewTabPage,
+     key::kPasswordProtectionChangePasswordURL,
+@@ -56,7 +56,7 @@ const char* kSensitivePolicies[] = {
+     key::kSafeBrowsingAllowlistDomains,
+     key::kSiteSearchSettings,
+ #endif
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     key::kCommandLineFlagSecurityWarningsEnabled,
+ #endif
+ #if !BUILDFLAG(IS_IOS)
diff --git a/chromium/patches/patch-components_policy_core_common_policy__paths.cc b/chromium/patches/patch-components_policy_core_common_policy__paths.cc
new file mode 100644
index 0000000000..d4ef28f65e
--- /dev/null
+++ b/chromium/patches/patch-components_policy_core_common_policy__paths.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/core/common/policy_paths.cc.orig	2024-07-24 02:44:34.804604000 +0000
++++ components/policy/core/common/policy_paths.cc
+@@ -17,6 +17,10 @@ namespace policy {
+ const char kPolicyPath[] = "/etc/opt/chrome/policies";
+ #elif BUILDFLAG(GOOGLE_CHROME_FOR_TESTING_BRANDING)
+ const char kPolicyPath[] = "/etc/opt/chrome_for_testing/policies";
++#elif BUILDFLAG(IS_FREEBSD)
++const char kPolicyPath[] = "/usr/local/etc/chromium/policies";
++#elif BUILDFLAG(IS_NETBSD)
++const char kPolicyPath[] = "@PKG_SYSCONFBASE@/chromium/policies";
+ #else
+ const char kPolicyPath[] = "/etc/chromium/policies";
+ #endif  // BUILDFLAG(GOOGLE_CHROME_BRANDING)
diff --git a/chromium/patches/patch-components_policy_core_common_policy__utils.cc b/chromium/patches/patch-components_policy_core_common_policy__utils.cc
new file mode 100644
index 0000000000..a905140e25
--- /dev/null
+++ b/chromium/patches/patch-components_policy_core_common_policy__utils.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/core/common/policy_utils.cc.orig	2024-07-24 02:44:34.804604000 +0000
++++ components/policy/core/common/policy_utils.cc
+@@ -28,7 +28,7 @@ bool IsPolicyTestingEnabled(PrefService*
+     return true;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (channel == version_info::Channel::DEV) {
+     return true;
+   }
diff --git a/chromium/patches/patch-components_policy_core_common_schema.cc b/chromium/patches/patch-components_policy_core_common_schema.cc
deleted file mode 100644
index aec5bc3107..0000000000
--- a/chromium/patches/patch-components_policy_core_common_schema.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/policy/core/common/schema.cc.orig	2020-07-08 21:40:40.000000000 +0000
-+++ components/policy/core/common/schema.cc
-@@ -24,7 +24,7 @@
- #include "base/strings/stringprintf.h"
- #include "components/policy/core/common/json_schema_constants.h"
- #include "components/policy/core/common/schema_internal.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- 
- namespace schema = json_schema_constants;
- 
diff --git a/chromium/patches/patch-components_policy_tools_generate__policy__source.py b/chromium/patches/patch-components_policy_tools_generate__policy__source.py
index f699987f32..a290eb03cc 100644
--- a/chromium/patches/patch-components_policy_tools_generate__policy__source.py
+++ b/chromium/patches/patch-components_policy_tools_generate__policy__source.py
@@ -1,23 +1,20 @@
 $NetBSD$
 
---- components/policy/tools/generate_policy_source.py.orig	2020-07-08 21:40:40.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/policy/tools/generate_policy_source.py.orig	2024-07-24 02:44:35.108633300 +0000
 +++ components/policy/tools/generate_policy_source.py
-@@ -38,7 +38,8 @@ PLATFORM_STRINGS = {
+@@ -38,9 +38,9 @@ PLATFORM_STRINGS = {
+     'ios': ['ios'],
+     'fuchsia': ['fuchsia'],
      'chrome.win': ['win'],
-     'chrome.linux': ['linux'],
+-    'chrome.linux': ['linux'],
++    'chrome.linux': ['linux', 'openbsd', 'freebsd', 'netbsd'],
      'chrome.mac': ['mac'],
 -    'chrome.*': ['win', 'mac', 'linux'],
-+    'chrome.netbsd': ['netbsd'],
-+    'chrome.*': ['win', 'mac', 'linux', 'netbsd'],
-     'chrome.win7': ['win']
++    'chrome.*': ['win', 'mac', 'linux', 'openbsd', 'freebsd', 'netbsd'],
+     'chrome.win7': ['win'],
  }
  
-@@ -305,7 +306,7 @@ def main():
-       '--target-platform',
-       dest='target_platform',
-       help='the platform the generated code should run on - can be one of'
--      '(win, mac, linux, chromeos, fuchsia)',
-+      '(win, mac, linux, chromeos, fuchsia, netbsd)',
-       metavar='PLATFORM')
-   parser.add_argument(
-       '--policy-templates-file',
diff --git a/chromium/patches/patch-components_power__metrics_BUILD.gn b/chromium/patches/patch-components_power__metrics_BUILD.gn
new file mode 100644
index 0000000000..1b1d9230fb
--- /dev/null
+++ b/chromium/patches/patch-components_power__metrics_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/power_metrics/BUILD.gn.orig	2024-07-24 02:44:35.128635400 +0000
++++ components/power_metrics/BUILD.gn
+@@ -41,7 +41,7 @@ static_library("power_metrics") {
+     ldflags = [ "/DELAYLOAD:setupapi.dll" ]
+   }
+ 
+-  if (is_linux || is_chromeos) {
++  if ((is_linux && !is_bsd) || is_chromeos) {
+     sources += [
+       "energy_metrics_provider_linux.cc",
+       "energy_metrics_provider_linux.h",
diff --git a/chromium/patches/patch-components_power__metrics_energy__metrics__provider.cc b/chromium/patches/patch-components_power__metrics_energy__metrics__provider.cc
new file mode 100644
index 0000000000..48aab7b3bf
--- /dev/null
+++ b/chromium/patches/patch-components_power__metrics_energy__metrics__provider.cc
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/power_metrics/energy_metrics_provider.cc.orig	2024-07-24 02:44:35.128635400 +0000
++++ components/power_metrics/energy_metrics_provider.cc
+@@ -9,6 +9,8 @@
+ #include "components/power_metrics/energy_metrics_provider_win.h"
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ #include "components/power_metrics/energy_metrics_provider_linux.h"
++#elif BUILDFLAG(IS_BSD)
++#include "base/notreached.h"
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+ namespace power_metrics {
+@@ -22,6 +24,9 @@ std::unique_ptr<EnergyMetricsProvider> E
+   return EnergyMetricsProviderWin::Create();
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+   return EnergyMetricsProviderLinux::Create();
++#elif BUILDFLAG(IS_BSD)
++  NOTIMPLEMENTED();
++  return nullptr;
+ #else
+   return nullptr;
+ #endif  // BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-components_previews_core_previews__features.cc b/chromium/patches/patch-components_previews_core_previews__features.cc
deleted file mode 100644
index 1d4ad1c851..0000000000
--- a/chromium/patches/patch-components_previews_core_previews__features.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/previews/core/previews_features.cc.orig	2020-07-08 21:40:40.000000000 +0000
-+++ components/previews/core/previews_features.cc
-@@ -14,7 +14,7 @@ namespace features {
- // are enabled are controlled by other features.
- const base::Feature kPreviews {
-   "Previews",
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
-       // Previews allowed for Android (but also allow on Linux for dev/debug).
-       base::FEATURE_ENABLED_BY_DEFAULT
- #else   // !defined(OS_ANDROID) || defined(OS_LINUX)
diff --git a/chromium/patches/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc b/chromium/patches/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc
new file mode 100644
index 0000000000..5730ca02f6
--- /dev/null
+++ b/chromium/patches/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/safe_browsing/content/common/file_type_policies_unittest.cc.orig	2024-07-24 02:44:35.296651600 +0000
++++ components/safe_browsing/content/common/file_type_policies_unittest.cc
+@@ -139,7 +139,7 @@ TEST_F(FileTypePoliciesTest, UnpackResou
+   EXPECT_EQ(DownloadFileType::FULL_PING, file_type.ping_setting());
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   EXPECT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE,
+             file_type.platform_settings(0).danger_level());
+   EXPECT_EQ(DownloadFileType::DISALLOW_AUTO_OPEN,
diff --git a/chromium/patches/patch-components_safe__browsing_content_resources_gen__file__type__proto.py b/chromium/patches/patch-components_safe__browsing_content_resources_gen__file__type__proto.py
new file mode 100644
index 0000000000..ea45afa30a
--- /dev/null
+++ b/chromium/patches/patch-components_safe__browsing_content_resources_gen__file__type__proto.py
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/safe_browsing/content/resources/gen_file_type_proto.py.orig	2024-07-24 02:44:35.300652000 +0000
++++ components/safe_browsing/content/resources/gen_file_type_proto.py
+@@ -38,6 +38,9 @@ def PlatformTypes():
+         "fuchsia":
+         download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_FUCHSIA,
+         "linux": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
++        "openbsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
++        "freebsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
++        "netbsd": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_LINUX,
+         "mac": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_MAC,
+         "win": download_file_types_pb2.DownloadFileType.PLATFORM_TYPE_WINDOWS,
+     }
+@@ -181,7 +184,7 @@ class DownloadFileTypeProtoGenerator(Bin
+             '-t',
+             '--type',
+             help='The platform type. One of android, chromeos, ' +
+-            'linux, mac, win')
++            'linux, mac, win, openbsd, freebsd, netbsd')
+ 
+     def AddExtraCommandLineArgsForVirtualEnvRun(self, opts, command):
+         if opts.type is not None:
diff --git a/chromium/patches/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc b/chromium/patches/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc
new file mode 100644
index 0000000000..1e30d2d511
--- /dev/null
+++ b/chromium/patches/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc.orig	2024-07-24 02:44:35.308652900 +0000
++++ components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc
+@@ -118,7 +118,7 @@ std::ostream& operator<<(std::ostream& o
+ PlatformType GetCurrentPlatformType() {
+ #if BUILDFLAG(IS_WIN)
+   return WINDOWS_PLATFORM;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   return LINUX_PLATFORM;
+ #elif BUILDFLAG(IS_IOS)
+   return IOS_PLATFORM;
diff --git a/chromium/patches/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc b/chromium/patches/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc
new file mode 100644
index 0000000000..93db645b03
--- /dev/null
+++ b/chromium/patches/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc.orig	2024-07-24 02:44:35.316653500 +0000
++++ components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc
+@@ -108,7 +108,7 @@ RTLookupRequest::OSType GetRTLookupReque
+   return RTLookupRequest::OS_TYPE_FUCHSIA;
+ #elif BUILDFLAG(IS_IOS)
+   return RTLookupRequest::OS_TYPE_IOS;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return RTLookupRequest::OS_TYPE_LINUX;
+ #elif BUILDFLAG(IS_MAC)
+   return RTLookupRequest::OS_TYPE_MAC;
diff --git a/chromium/patches/patch-components_safe__browsing_core_common_features.cc b/chromium/patches/patch-components_safe__browsing_core_common_features.cc
new file mode 100644
index 0000000000..7139fd309f
--- /dev/null
+++ b/chromium/patches/patch-components_safe__browsing_core_common_features.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/safe_browsing/core/common/features.cc.orig	2024-07-24 02:44:35.324654300 +0000
++++ components/safe_browsing/core/common/features.cc
+@@ -168,7 +168,7 @@ BASE_FEATURE(kGooglePlayProtectPrompt,
+ BASE_FEATURE(kHashPrefixRealTimeLookups,
+              "SafeBrowsingHashPrefixRealTimeLookups",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_IOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
+@@ -253,7 +253,7 @@ constexpr base::FeatureParam<int> kRefer
+ BASE_FEATURE(kSafeBrowsingAsyncRealTimeCheck,
+              "SafeBrowsingAsyncRealTimeCheck",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-components_safe__browsing_core_resources_BUILD.gn b/chromium/patches/patch-components_safe__browsing_core_resources_BUILD.gn
deleted file mode 100644
index 7fc81b2510..0000000000
--- a/chromium/patches/patch-components_safe__browsing_core_resources_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/safe_browsing/core/resources/BUILD.gn.orig	2020-06-25 09:31:28.000000000 +0000
-+++ components/safe_browsing/core/resources/BUILD.gn
-@@ -30,6 +30,8 @@ action("make_file_types_protobuf") {
-     target_arch = "mac"
-   } else if (is_linux) {
-     target_arch = "linux"
-+  } else if (is_netbsd) {
-+    target_arch = "netbsd"
-   } else {
-     # This will cause the script to fail.
-     target_arch = "unknown_target_arch"
diff --git a/chromium/patches/patch-components_safe__browsing_core_resources_gen__file__type__proto.py b/chromium/patches/patch-components_safe__browsing_core_resources_gen__file__type__proto.py
deleted file mode 100644
index 093dd972e9..0000000000
--- a/chromium/patches/patch-components_safe__browsing_core_resources_gen__file__type__proto.py
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
---- components/safe_browsing/core/resources/gen_file_type_proto.py.orig	2020-07-08 21:40:41.000000000 +0000
-+++ components/safe_browsing/core/resources/gen_file_type_proto.py
-@@ -31,6 +31,7 @@ def PlatformTypes():
-     "android": download_file_types_pb2.DownloadFileType.PLATFORM_ANDROID,
-     "chromeos": download_file_types_pb2.DownloadFileType.PLATFORM_CHROME_OS,
-     "linux": download_file_types_pb2.DownloadFileType.PLATFORM_LINUX,
-+    "netbsd": download_file_types_pb2.DownloadFileType.PLATFORM_LINUX,
-     "mac": download_file_types_pb2.DownloadFileType.PLATFORM_MAC,
-     "win": download_file_types_pb2.DownloadFileType.PLATFORM_WINDOWS,
-   }
-@@ -169,7 +170,7 @@ class DownloadFileTypeProtoGenerator(Bin
-                       'Outfile must have a %d for version and %s for platform.')
-     parser.add_option('-t', '--type',
-                       help='The platform type. One of android, chromeos, ' +
--                      'linux, mac, win')
-+                      'linux, mac, win, netbsd')
- 
-   def AddExtraCommandLineArgsForVirtualEnvRun(self, opts, command):
-     if opts.type is not None:
diff --git a/chromium/patches/patch-components_search__engines_search__engine__choice_search__engine__choice__service.cc b/chromium/patches/patch-components_search__engines_search__engine__choice_search__engine__choice__service.cc
new file mode 100644
index 0000000000..1b1c1840e6
--- /dev/null
+++ b/chromium/patches/patch-components_search__engines_search__engine__choice_search__engine__choice__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/search_engines/search_engine_choice/search_engine_choice_service.cc.orig	2024-07-24 02:44:35.344656200 +0000
++++ components/search_engines/search_engine_choice/search_engine_choice_service.cc
+@@ -580,7 +580,7 @@ void SearchEngineChoiceService::ProcessP
+ 
+ int SearchEngineChoiceService::GetCountryIdInternal() {
+   // `country_codes::kCountryIDAtInstall` may not be set yet.
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // On Android, ChromeOS and Linux, `country_codes::kCountryIDAtInstall` is
+   // computed asynchronously using platform-specific signals, and may not be
+   // available yet.
diff --git a/chromium/patches/patch-components_search__engines_template__url__service.cc b/chromium/patches/patch-components_search__engines_template__url__service.cc
new file mode 100644
index 0000000000..383fcb9e10
--- /dev/null
+++ b/chromium/patches/patch-components_search__engines_template__url__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/search_engines/template_url_service.cc.orig	2024-07-24 02:44:35.348656700 +0000
++++ components/search_engines/template_url_service.cc
+@@ -3121,7 +3121,7 @@ bool TemplateURLService::MatchesDefaultS
+ std::unique_ptr<EnterpriseSiteSearchManager>
+ TemplateURLService::GetEnterpriseSiteSearchManager(PrefService* prefs) {
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   return base::FeatureList::IsEnabled(omnibox::kSiteSearchSettingsPolicy)
+              ? std::make_unique<EnterpriseSiteSearchManager>(
+                    prefs, base::BindRepeating(
diff --git a/chromium/patches/patch-components_security__interstitials_content_captive__portal__blocking__page.cc b/chromium/patches/patch-components_security__interstitials_content_captive__portal__blocking__page.cc
deleted file mode 100644
index 66e9beba0b..0000000000
--- a/chromium/patches/patch-components_security__interstitials_content_captive__portal__blocking__page.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- components/security_interstitials/content/captive_portal_blocking_page.cc.orig	2020-07-08 21:40:41.000000000 +0000
-+++ components/security_interstitials/content/captive_portal_blocking_page.cc
-@@ -106,7 +106,7 @@ std::string CaptivePortalBlockingPage::G
-   wifi_service->GetConnectedNetworkSSID(&ssid, &error);
-   if (!error.empty())
-     return std::string();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   ssid = net::GetWifiSSID();
- #elif defined(OS_ANDROID)
-   ssid = net::android::GetWifiSSID();
-@@ -236,4 +236,4 @@ void CaptivePortalBlockingPage::CommandR
-       NOTREACHED() << "Command " << cmd
-                    << " isn't handled by the captive portal interstitial.";
-   }
--}
-\ No newline at end of file
-+}
diff --git a/chromium/patches/patch-components_security__interstitials_content_utils.cc b/chromium/patches/patch-components_security__interstitials_content_utils.cc
index 5f0dfa2991..ca00bdf7cd 100644
--- a/chromium/patches/patch-components_security__interstitials_content_utils.cc
+++ b/chromium/patches/patch-components_security__interstitials_content_utils.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/security_interstitials/content/utils.cc.orig	2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/security_interstitials/content/utils.cc.orig	2024-07-24 02:44:35.360657700 +0000
 +++ components/security_interstitials/content/utils.cc
-@@ -31,7 +31,7 @@ void LaunchDateAndTimeSettings() {
- #if defined(OS_ANDROID)
+@@ -38,7 +38,7 @@ void LaunchDateAndTimeSettings() {
+ #if BUILDFLAG(IS_ANDROID)
    JNIEnv* env = base::android::AttachCurrentThread();
    Java_DateAndTimeSettingsHelper_openDateAndTimeSettings(env);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    struct ClockCommand {
      const char* const pathname;
      const char* const argument;
diff --git a/chromium/patches/patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc b/chromium/patches/patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc
new file mode 100644
index 0000000000..fa7ddeb14d
--- /dev/null
+++ b/chromium/patches/patch-components_segmentation__platform_embedder_default__model_cross__device__user__segment.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/segmentation_platform/embedder/default_model/cross_device_user_segment.cc.orig	2024-07-24 02:44:35.372659000 +0000
++++ components/segmentation_platform/embedder/default_model/cross_device_user_segment.cc
+@@ -148,7 +148,7 @@ void CrossDeviceUserSegment::ExecuteMode
+ // Check for current device type and subtract it from the device count
+ // calculation.
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   desktop_count -= 1;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
+   if (ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET) {
diff --git a/chromium/patches/patch-components_services_font_BUILD.gn b/chromium/patches/patch-components_services_font_BUILD.gn
deleted file mode 100644
index f2d1edfec7..0000000000
--- a/chromium/patches/patch-components_services_font_BUILD.gn
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD$
-
---- components/services/font/BUILD.gn.orig	2020-06-25 09:31:28.000000000 +0000
-+++ components/services/font/BUILD.gn
-@@ -26,12 +26,12 @@ source_set("lib") {
- 
-   public_deps = [ "//skia" ]
- 
--  if (is_linux && enable_plugins) {
-+  if ((is_linux || is_bsd) && enable_plugins) {
-     deps += [ ":ppapi_fontconfig_matching" ]
-   }
- }
- 
--if (is_linux && enable_plugins) {
-+if ((is_linux || is_bsd) && enable_plugins) {
-   source_set("ppapi_fontconfig_matching") {
-     sources = [
-       "ppapi_fontconfig_matching.cc",
diff --git a/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc b/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc
index 46f5478890..b247c25f97 100644
--- a/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc
+++ b/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.cc.orig	2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.cc.orig	2024-07-24 02:44:35.428664400 +0000
 +++ components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.cc
-@@ -15,7 +15,7 @@
+@@ -22,7 +22,7 @@
  
- #if defined(OS_WIN)
+ #if BUILDFLAG(IS_WIN)
  #include "content/public/child/dwrite_font_proxy_init_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "components/services/font/public/cpp/font_loader.h"
  #endif
  
-@@ -35,7 +35,7 @@ PaintPreviewCompositorCollectionImpl::Pa
+@@ -79,7 +79,7 @@ PaintPreviewCompositorCollectionImpl::Pa
      // Initialize font access for Skia.
- #if defined(OS_WIN)
+ #if BUILDFLAG(IS_WIN)
    content::InitializeDWriteFontProxy();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    mojo::PendingRemote<font_service::mojom::FontService> font_service;
    content::UtilityThread::Get()->BindHostReceiver(
        font_service.InitWithNewPipeAndPassReceiver());
-@@ -54,7 +54,7 @@ PaintPreviewCompositorCollectionImpl::Pa
-   // encoding to PNG or we could provide our own codec implementations.
+@@ -102,7 +102,7 @@ PaintPreviewCompositorCollectionImpl::Pa
+                              base::BindOnce([] { skia::DefaultFontMgr(); }));
  
    // Sanity check that fonts are working.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // No WebSandbox is provided on Linux so the local fonts aren't accessible.
    // This is fine since since the subsetted fonts are provided in the SkPicture.
    // However, we still need to check that the SkFontMgr starts as it is used by
diff --git a/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h b/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h
deleted file mode 100644
index 62fc7e2c99..0000000000
--- a/chromium/patches/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.h.orig	2020-07-08 21:40:41.000000000 +0000
-+++ components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.h
-@@ -20,7 +20,7 @@
- #include "mojo/public/cpp/bindings/pending_receiver.h"
- #include "mojo/public/cpp/bindings/receiver.h"
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "components/services/font/public/cpp/font_loader.h"
- #include "third_party/skia/include/core/SkRefCnt.h"
- #endif
-@@ -74,7 +74,7 @@ class PaintPreviewCompositorCollectionIm
-                  std::unique_ptr<PaintPreviewCompositorImpl>>
-       compositors_;
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   sk_sp<font_service::FontLoader> font_loader_;
- #endif
- 
diff --git a/chromium/patches/patch-components_signin_features.gni b/chromium/patches/patch-components_signin_features.gni
deleted file mode 100644
index 12b4869c80..0000000000
--- a/chromium/patches/patch-components_signin_features.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/signin/features.gni.orig	2020-07-15 18:55:55.000000000 +0000
-+++ components/signin/features.gni
-@@ -3,7 +3,7 @@
- # found in the LICENSE file.
- 
- # Dice is supported on the platform (but not necessarily enabled).
--enable_dice_support = (is_linux && !is_chromeos) || is_mac || is_win
-+enable_dice_support = ((is_linux || is_bsd) && !is_chromeos) || is_mac || is_win
- 
- # Mirror is enabled and other account consistency mechanisms are not available.
- enable_mirror = is_android || is_ios
diff --git a/chromium/patches/patch-components_signin_public_base_signin__switches.cc b/chromium/patches/patch-components_signin_public_base_signin__switches.cc
new file mode 100644
index 0000000000..76e855d493
--- /dev/null
+++ b/chromium/patches/patch-components_signin_public_base_signin__switches.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/signin/public/base/signin_switches.cc.orig	2024-07-24 02:44:35.496671000 +0000
++++ components/signin/public/base/signin_switches.cc
+@@ -129,11 +129,11 @@ bool IsExplicitBrowserSigninUIOnDesktopE
+ }
+ 
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+ 
+ // Desktop and Android are being launched (enabled by default), iOS is pending.
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #define MINOR_MODE_FEATURE_DEFAULT_STATUS base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ #define MINOR_MODE_FEATURE_DEFAULT_STATUS base::FEATURE_DISABLED_BY_DEFAULT
+@@ -147,7 +147,7 @@ constexpr int kMinorModeRestrictionsFetc
+ #if BUILDFLAG(IS_ANDROID)
+     // Based on Signin.AccountCapabilities.UserVisibleLatency
+     1000;
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+     // Based on Signin.SyncOptIn.PreSyncConfirmationLatency
+     1000;
+ #elif BUILDFLAG(IS_IOS)
diff --git a/chromium/patches/patch-components_signin_public_base_signin__switches.h b/chromium/patches/patch-components_signin_public_base_signin__switches.h
new file mode 100644
index 0000000000..64550452f0
--- /dev/null
+++ b/chromium/patches/patch-components_signin_public_base_signin__switches.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/signin/public/base/signin_switches.h.orig	2024-07-24 02:44:35.496671000 +0000
++++ components/signin/public/base/signin_switches.h
+@@ -112,7 +112,7 @@ bool IsExplicitBrowserSigninUIOnDesktopE
+ 
+ // Controls the view mode for (history) sync screen.
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(SIGNIN_SWITCHES)
+ BASE_DECLARE_FEATURE(kMinorModeRestrictionsForHistorySyncOptIn);
+ 
diff --git a/chromium/patches/patch-components_soda_soda__util.cc b/chromium/patches/patch-components_soda_soda__util.cc
new file mode 100644
index 0000000000..89044f2ba6
--- /dev/null
+++ b/chromium/patches/patch-components_soda_soda__util.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/soda/soda_util.cc.orig	2024-07-24 02:44:35.512672400 +0000
++++ components/soda/soda_util.cc
+@@ -20,7 +20,7 @@
+ #include "base/win/windows_version.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_X86_FAMILY)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_X86_FAMILY)
+ #include "base/cpu.h"
+ #endif
+ 
+@@ -45,7 +45,7 @@ bool IsSupportedChromeOS() {
+ }
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool IsSupportedLinux() {
+ #if defined(ARCH_CPU_X86_FAMILY)
+   // Check if the CPU has the required instruction set to run the Speech
+@@ -76,7 +76,7 @@ bool IsSupportedWin() {
+ bool IsOnDeviceSpeechRecognitionSupported() {
+ #if BUILDFLAG(IS_CHROMEOS)
+   return IsSupportedChromeOS();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return IsSupportedLinux();
+ #elif BUILDFLAG(IS_WIN)
+   return IsSupportedWin();
diff --git a/chromium/patches/patch-components_startup__metric__utils_common_startup__metric__utils.cc b/chromium/patches/patch-components_startup__metric__utils_common_startup__metric__utils.cc
new file mode 100644
index 0000000000..b184099f52
--- /dev/null
+++ b/chromium/patches/patch-components_startup__metric__utils_common_startup__metric__utils.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/startup_metric_utils/common/startup_metric_utils.cc.orig	2024-07-24 02:44:35.524673700 +0000
++++ components/startup_metric_utils/common/startup_metric_utils.cc
+@@ -85,7 +85,7 @@ base::TimeTicks CommonStartupMetricRecor
+   // Enabling this logic on OS X causes a significant performance regression.
+   // TODO(crbug.com/40464036): Remove IS_APPLE ifdef once priority changes are
+   // ignored on Mac main thread.
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
+   static bool statics_initialized = false;
+   if (!statics_initialized) {
+     statics_initialized = true;
diff --git a/chromium/patches/patch-components_storage__monitor_BUILD.gn b/chromium/patches/patch-components_storage__monitor_BUILD.gn
index 29dd2bc57f..9eccfdb810 100644
--- a/chromium/patches/patch-components_storage__monitor_BUILD.gn
+++ b/chromium/patches/patch-components_storage__monitor_BUILD.gn
@@ -1,25 +1,26 @@
 $NetBSD$
 
---- components/storage_monitor/BUILD.gn.orig	2020-06-25 09:31:28.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/storage_monitor/BUILD.gn.orig	2024-07-24 02:44:35.524673700 +0000
 +++ components/storage_monitor/BUILD.gn
-@@ -79,6 +79,11 @@ static_library("storage_monitor") {
-     } else {
-       sources += [ "storage_monitor_dummy.cc" ]
+@@ -77,7 +77,7 @@ static_library("storage_monitor") {
+       deps += [ "//services/device/public/mojom" ]
      }
-+  } else if (is_netbsd) {
-+    sources += [
-+      "storage_monitor_netbsd.cc",
-+      "storage_monitor_netbsd.h",
-+    ]
-   }
- 
-   if (use_udev) {
-@@ -154,7 +159,7 @@ source_set("unit_tests") {
-         "mtp_manager_client_chromeos_unittest.cc",
+   } else if (is_linux || is_chromeos_lacros) {
+-    if (use_udev) {
++    if (use_udev && !is_bsd) {
+       sources += [
+         "mtab_watcher_linux.cc",
+         "mtab_watcher_linux.h",
+@@ -184,7 +184,7 @@ source_set("unit_tests") {
          "storage_monitor_chromeos_unittest.cc",
        ]
--    } else if (is_linux) {
-+    } else if (is_linux || is_bsd) {
+     }
+-  } else if (is_linux || is_chromeos_lacros) {
++  } else if ((is_linux || is_chromeos_lacros) && !is_bsd) {
+     if (use_udev) {
        sources += [ "storage_monitor_linux_unittest.cc" ]
      }
-   }
diff --git a/chromium/patches/patch-components_storage__monitor_removable__device__constants.cc b/chromium/patches/patch-components_storage__monitor_removable__device__constants.cc
index c859bdb270..2242dca128 100644
--- a/chromium/patches/patch-components_storage__monitor_removable__device__constants.cc
+++ b/chromium/patches/patch-components_storage__monitor_removable__device__constants.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/storage_monitor/removable_device_constants.cc.orig	2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/storage_monitor/removable_device_constants.cc.orig	2024-07-24 02:44:35.528674100 +0000
 +++ components/storage_monitor/removable_device_constants.cc
 @@ -10,7 +10,7 @@ namespace storage_monitor {
  const char kFSUniqueIdPrefix[] = "UUID:";
  const char kVendorModelSerialPrefix[] = "VendorModelSerial:";
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  const char kVendorModelVolumeStoragePrefix[] = "VendorModelVolumeStorage:";
  #endif
  
diff --git a/chromium/patches/patch-components_storage__monitor_removable__device__constants.h b/chromium/patches/patch-components_storage__monitor_removable__device__constants.h
index 3f658d9db0..6c3259d0b4 100644
--- a/chromium/patches/patch-components_storage__monitor_removable__device__constants.h
+++ b/chromium/patches/patch-components_storage__monitor_removable__device__constants.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/storage_monitor/removable_device_constants.h.orig	2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/storage_monitor/removable_device_constants.h.orig	2024-07-24 02:44:35.528674100 +0000
 +++ components/storage_monitor/removable_device_constants.h
-@@ -15,7 +15,7 @@ namespace storage_monitor {
+@@ -14,7 +14,7 @@ namespace storage_monitor {
  extern const char kFSUniqueIdPrefix[];
  extern const char kVendorModelSerialPrefix[];
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  extern const char kVendorModelVolumeStoragePrefix[];
  #endif
  
diff --git a/chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.cc b/chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.cc
deleted file mode 100644
index 32f822cae2..0000000000
--- a/chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.cc
+++ /dev/null
@@ -1,59 +0,0 @@
-$NetBSD$
-
---- components/storage_monitor/storage_monitor_netbsd.cc.orig	2020-07-12 14:12:07.439398430 +0000
-+++ components/storage_monitor/storage_monitor_netbsd.cc
-@@ -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.
-+
-+// StorageMonitorNetBSD implementation.
-+
-+#include "components/storage_monitor/storage_monitor_netbsd.h"
-+
-+#include <stdio.h>
-+
-+#include <list>
-+
-+#include "base/bind.h"
-+#include "base/metrics/histogram.h"
-+#include "base/process/kill.h"
-+#include "base/process/launch.h"
-+#include "base/stl_util.h"
-+#include "base/strings/string_number_conversions.h"
-+#include "base/strings/string_util.h"
-+#include "base/strings/utf_string_conversions.h"
-+#include "components/storage_monitor/media_storage_util.h"
-+#include "components/storage_monitor/removable_device_constants.h"
-+#include "components/storage_monitor/storage_info.h"
-+
-+using content::BrowserThread;
-+
-+namespace storage_monitor {
-+
-+namespace {
-+
-+}  // namespace
-+
-+StorageMonitorNetBSD::StorageMonitorNetBSD() {
-+  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-+}
-+
-+StorageMonitorNetBSD::~StorageMonitorNetBSD() {
-+  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-+}
-+
-+void StorageMonitorNetBSD::Init() {
-+}
-+
-+bool StorageMonitorNetBSD::GetStorageInfoForPath(
-+    const base::FilePath& path,
-+    StorageInfo* device_info) const {
-+  return false; // TODO
-+}
-+
-+StorageMonitor* StorageMonitor::CreateInternal() {
-+  return new StorageMonitorNetBSD();
-+}
-+
-+} // namespace storage_monitor
diff --git a/chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.h b/chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.h
deleted file mode 100644
index 2fe4837c13..0000000000
--- a/chromium/patches/patch-components_storage__monitor_storage__monitor__netbsd.h
+++ /dev/null
@@ -1,50 +0,0 @@
-$NetBSD$
-
---- components/storage_monitor/storage_monitor_netbsd.h.orig	2020-07-12 14:12:09.343916180 +0000
-+++ components/storage_monitor/storage_monitor_netbsd.h
-@@ -0,0 +1,45 @@
-+// 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.
-+
-+// StorageMonitorNetBSD processes mount point change events, notifies listeners
-+// about the addition and deletion of media devices, and answers queries about
-+// mounted devices.
-+// StorageMonitorNetBSD lives on the UI thread, and uses ???
-+// the FILE thread to get mount point change events.
-+
-+#ifndef COMPONENTS_STORAGE_MONITOR_STORAGE_MONITOR_NETBSD_H_
-+#define COMPONENTS_STORAGE_MONITOR_STORAGE_MONITOR_NETBSD_H_
-+
-+#include <map>
-+#include <string>
-+
-+#include "base/compiler_specific.h"
-+#include "base/files/file_path.h"
-+#include "base/files/file_path_watcher.h"
-+#include "base/memory/weak_ptr.h"
-+#include "components/storage_monitor/storage_monitor.h"
-+#include "content/public/browser/browser_thread.h"
-+
-+namespace storage_monitor {
-+
-+class StorageMonitorNetBSD : public StorageMonitor {
-+ public:
-+  // Should only be called by browser start up code.
-+  // Use StorageMonitor::GetInstance() instead.
-+  explicit StorageMonitorNetBSD();
-+  virtual ~StorageMonitorNetBSD();
-+
-+  // Must be called for StorageMonitorNetBSD to work.
-+  virtual void Init() override;
-+ private:
-+  // StorageMonitor implementation.
-+  virtual bool GetStorageInfoForPath(const base::FilePath& path,
-+                                     StorageInfo* device_info) const override;
-+
-+  DISALLOW_COPY_AND_ASSIGN(StorageMonitorNetBSD);
-+};
-+
-+} // namespace storage_monitor
-+
-+#endif  // COMPONENTS_STORAGE_MONITOR_STORAGE_MONITOR_FREEBSD_H_
diff --git a/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc b/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc
new file mode 100644
index 0000000000..acadf12f3c
--- /dev/null
+++ b/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__metrics__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/supervised_user/core/browser/supervised_user_metrics_service.cc.orig	2024-07-24 02:44:35.884708600 +0000
++++ components/supervised_user/core/browser/supervised_user_metrics_service.cc
+@@ -47,7 +47,7 @@ SupervisedUserMetricsService::Supervised
+       extensions_metrics_delegate_(std::move(extensions_metrics_delegate)) {
+   DCHECK(pref_service_);
+   DCHECK(url_filter_);
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   CHECK(extensions_metrics_delegate_)
+       << "Extensions metrics delegate must exist on Win/Linux/Mac";
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__preferences.cc b/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__preferences.cc
new file mode 100644
index 0000000000..d89d9e57ef
--- /dev/null
+++ b/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__preferences.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/supervised_user/core/browser/supervised_user_preferences.cc.orig	2024-07-24 02:44:35.888709000 +0000
++++ components/supervised_user/core/browser/supervised_user_preferences.cc
+@@ -153,7 +153,7 @@ void RegisterProfilePrefs(PrefRegistrySi
+       static_cast<int>(FirstTimeInterstitialBannerState::kUnknown));
+   registry->RegisterBooleanPref(prefs::kChildAccountStatusKnown, false);
+ #if BUILDFLAG(ENABLE_EXTENSIONS) && \
+-    (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX))
++    (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+   registry->RegisterIntegerPref(
+       prefs::kLocallyParentApprovedExtensionsMigrationState,
+       static_cast<int>(
diff --git a/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__service.cc b/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__service.cc
new file mode 100644
index 0000000000..0d65618f63
--- /dev/null
+++ b/chromium/patches/patch-components_supervised__user_core_browser_supervised__user__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/supervised_user/core/browser/supervised_user_service.cc.orig	2024-07-24 02:44:35.888709000 +0000
++++ components/supervised_user/core/browser/supervised_user_service.cc
+@@ -175,7 +175,7 @@ FirstTimeInterstitialBannerState Supervi
+     const FirstTimeInterstitialBannerState original_state) {
+   FirstTimeInterstitialBannerState target_state = original_state;
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_IOS)
++    BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+   if (original_state != FirstTimeInterstitialBannerState::kSetupComplete &&
+       can_show_first_time_interstitial_banner_) {
+     target_state = FirstTimeInterstitialBannerState::kNeedToShow;
diff --git a/chromium/patches/patch-components_supervised__user_core_common_features.cc b/chromium/patches/patch-components_supervised__user_core_common_features.cc
new file mode 100644
index 0000000000..2d7b2cbb9e
--- /dev/null
+++ b/chromium/patches/patch-components_supervised__user_core_common_features.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/supervised_user/core/common/features.cc.orig	2024-07-24 02:44:35.892709300 +0000
++++ components/supervised_user/core/common/features.cc
+@@ -59,7 +59,7 @@ BASE_FEATURE(kUpdatedSupervisedUserExten
+              "UpdatedSupervisedUserExtensionApprovalStrings",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop,
+              "EnableExtensionsPermissionsForSupervisedUsersOnDesktop",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -74,7 +74,7 @@ bool IsSupervisedUserSkipParentApprovalT
+ #if BUILDFLAG(IS_CHROMEOS)
+   return base::FeatureList::IsEnabled(
+       kEnableSupervisedUserSkipParentApprovalToInstallExtensions);
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   bool skipParentApprovalEnabled = base::FeatureList::IsEnabled(
+       kEnableSupervisedUserSkipParentApprovalToInstallExtensions);
+   bool permissionExtensionsForSupervisedUsersEnabled =
+@@ -101,7 +101,7 @@ BASE_FEATURE(kCustomWebSignInInterceptFo
+              "CustomWebSignInInterceptForSupervisedUsers",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kHideGuestModeForSupervisedUsers,
+              "HideGuestModeForSupervisedUsers",
+              base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-components_supervised__user_core_common_features.h b/chromium/patches/patch-components_supervised__user_core_common_features.h
new file mode 100644
index 0000000000..76321341c3
--- /dev/null
+++ b/chromium/patches/patch-components_supervised__user_core_common_features.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/supervised_user/core/common/features.h.orig	2024-07-24 02:44:35.892709300 +0000
++++ components/supervised_user/core/common/features.h
+@@ -25,7 +25,7 @@ BASE_DECLARE_FEATURE(
+ // Applies new informative strings during the parental extension approval flow.
+ BASE_DECLARE_FEATURE(kUpdatedSupervisedUserExtensionApprovalStrings);
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ BASE_DECLARE_FEATURE(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop);
+ #endif
+ 
+@@ -53,7 +53,7 @@ bool IsSupervisedUserSkipParentApprovalT
+ // Only affects Desktop platforms.
+ BASE_DECLARE_FEATURE(kCustomWebSignInInterceptForSupervisedUsers);
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // This hides the following guest mode entry points for supervised users:
+ //
+ // * In the Profile menu for supervised profiles
diff --git a/chromium/patches/patch-components_supervised__user_core_common_pref__names.h b/chromium/patches/patch-components_supervised__user_core_common_pref__names.h
new file mode 100644
index 0000000000..16431c19e3
--- /dev/null
+++ b/chromium/patches/patch-components_supervised__user_core_common_pref__names.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/supervised_user/core/common/pref_names.h.orig	2024-07-24 02:44:35.892709300 +0000
++++ components/supervised_user/core/common/pref_names.h
+@@ -137,7 +137,7 @@ inline constexpr char kFirstTimeIntersti
+     "profile.managed.banner_state";
+ 
+ #if BUILDFLAG(ENABLE_EXTENSIONS)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // An integer pref that stores the current state of the local extension
+ // parent approval migration when the feature
+ // `kEnableSupervisedUserSkipParentApprovalToInstallExtensions` becomes enabled.
diff --git a/chromium/patches/patch-components_sync__device__info_local__device__info__util.cc b/chromium/patches/patch-components_sync__device__info_local__device__info__util.cc
index 62f59a7df6..6377d6f4af 100644
--- a/chromium/patches/patch-components_sync__device__info_local__device__info__util.cc
+++ b/chromium/patches/patch-components_sync__device__info_local__device__info__util.cc
@@ -1,13 +1,35 @@
 $NetBSD$
 
---- components/sync_device_info/local_device_info_util.cc.orig	2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/sync_device_info/local_device_info_util.cc.orig	2024-07-24 02:44:35.980718000 +0000
 +++ components/sync_device_info/local_device_info_util.cc
-@@ -19,7 +19,7 @@ std::string GetPersonalizableDeviceNameI
+@@ -84,7 +84,7 @@ void OnMachineStatisticsLoaded(LocalDevi
  sync_pb::SyncEnums::DeviceType GetLocalDeviceType() {
- #if defined(OS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS)
    return sync_pb::SyncEnums_DeviceType_TYPE_CROS;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    return sync_pb::SyncEnums_DeviceType_TYPE_LINUX;
- #elif defined(OS_ANDROID) || defined(OS_IOS)
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
+   switch (ui::GetDeviceFormFactor()) {
+@@ -109,7 +109,7 @@ DeviceInfo::OsType GetLocalDeviceOSType(
+   return DeviceInfo::OsType::kChromeOsAsh;
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+   return DeviceInfo::OsType::kChromeOsLacros;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return DeviceInfo::OsType::kLinux;
+ #elif BUILDFLAG(IS_ANDROID)
+   return DeviceInfo::OsType::kAndroid;
+@@ -128,7 +128,7 @@ DeviceInfo::OsType GetLocalDeviceOSType(
+ 
+ DeviceInfo::FormFactor GetLocalDeviceFormFactor() {
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   return DeviceInfo::FormFactor::kDesktop;
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
    return ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET
diff --git a/chromium/patches/patch-components_sync__device__info_local__device__info__util__linux.cc b/chromium/patches/patch-components_sync__device__info_local__device__info__util__linux.cc
index e5d64fd09d..8a3238477f 100644
--- a/chromium/patches/patch-components_sync__device__info_local__device__info__util__linux.cc
+++ b/chromium/patches/patch-components_sync__device__info_local__device__info__util__linux.cc
@@ -1,17 +1,20 @@
 $NetBSD$
 
---- components/sync_device_info/local_device_info_util_linux.cc.orig	2020-07-15 18:55:55.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/sync_device_info/local_device_info_util_linux.cc.orig	2024-07-24 02:44:35.980718000 +0000
 +++ components/sync_device_info/local_device_info_util_linux.cc
-@@ -36,6 +36,12 @@ std::string GetChromeOSDeviceNameFromTyp
+@@ -9,6 +9,11 @@
+ 
+ #include "base/linux_util.h"
+ 
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++#include <sys/param.h>
++#define HOST_NAME_MAX MAXHOSTNAMELEN
++#endif
++
+ namespace syncer {
+ 
  std::string GetPersonalizableDeviceNameInternal() {
- #if defined(OS_CHROMEOS)
-   return GetChromeOSDeviceNameFromType();
-+#elif defined(__NetBSD__)
-+  int len = sysconf(_SC_HOST_NAME_MAX);
-+  char hostname[len];
-+  if (gethostname(hostname, _SC_HOST_NAME_MAX) == 0)  // Success.
-+    return hostname;
-+  return base::GetLinuxDistro();
- #else
-   char hostname[HOST_NAME_MAX];
-   if (gethostname(hostname, HOST_NAME_MAX) == 0)  // Success.
diff --git a/chromium/patches/patch-components_sync_base_sync__util.cc b/chromium/patches/patch-components_sync_base_sync__util.cc
new file mode 100644
index 0000000000..60724015ff
--- /dev/null
+++ b/chromium/patches/patch-components_sync_base_sync__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/sync/base/sync_util.cc.orig	2024-07-24 02:44:35.900710000 +0000
++++ components/sync/base/sync_util.cc
+@@ -45,6 +45,8 @@ std::string GetSystemString() {
+   system = "FREEBSD ";
+ #elif BUILDFLAG(IS_OPENBSD)
+   system = "OPENBSD ";
++#elif BUILDFLAG(IS_NETBSD)
++  system = "NETBSD ";
+ #elif BUILDFLAG(IS_MAC)
+   system = "MAC ";
+ #endif
diff --git a/chromium/patches/patch-components_system__cpu_cpu__probe.cc b/chromium/patches/patch-components_system__cpu_cpu__probe.cc
new file mode 100644
index 0000000000..e50897e52e
--- /dev/null
+++ b/chromium/patches/patch-components_system__cpu_cpu__probe.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/system_cpu/cpu_probe.cc.orig	2024-07-24 02:44:35.996719400 +0000
++++ components/system_cpu/cpu_probe.cc
+@@ -30,6 +30,9 @@ std::unique_ptr<CpuProbe> CpuProbe::Crea
+   return CpuProbeWin::Create();
+ #elif BUILDFLAG(IS_MAC)
+   return CpuProbeMac::Create();
++#elif BUILDFLAG(IS_BSD)
++  NOTIMPLEMENTED();
++  return nullptr;
+ #else
+   return nullptr;
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-components_translate_core_common_translate__util.cc b/chromium/patches/patch-components_translate_core_common_translate__util.cc
new file mode 100644
index 0000000000..058b676ff1
--- /dev/null
+++ b/chromium/patches/patch-components_translate_core_common_translate__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/translate/core/common/translate_util.cc.orig	2024-07-24 02:44:36.484766700 +0000
++++ components/translate/core/common/translate_util.cc
+@@ -21,7 +21,7 @@ const char kSecurityOrigin[] = "https://
+ BASE_FEATURE(kTFLiteLanguageDetectionEnabled,
+              "TFLiteLanguageDetectionEnabled",
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-components_update__client_update__query__params.cc b/chromium/patches/patch-components_update__client_update__query__params.cc
index 0c24d65a4b..ca1ca02046 100644
--- a/chromium/patches/patch-components_update__client_update__query__params.cc
+++ b/chromium/patches/patch-components_update__client_update__query__params.cc
@@ -1,10 +1,14 @@
 $NetBSD$
 
---- components/update_client/update_query_params.cc.orig	2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/update_client/update_query_params.cc.orig	2024-07-24 02:44:36.528771000 +0000
 +++ components/update_client/update_query_params.cc
-@@ -39,6 +39,10 @@ const char kOs[] =
+@@ -42,6 +42,10 @@ const char kOs[] =
      "fuchsia";
- #elif defined(OS_OPENBSD)
+ #elif BUILDFLAG(IS_OPENBSD)
      "openbsd";
 +#elif defined(OS_FREEBSD)
 +    "freebsd";
diff --git a/chromium/patches/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc b/chromium/patches/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc
index 7db771e985..bf7b5d020d 100644
--- a/chromium/patches/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc
+++ b/chromium/patches/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/url_formatter/spoof_checks/idn_spoof_checker.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/url_formatter/spoof_checks/idn_spoof_checker.cc.orig	2024-07-24 02:44:36.532771300 +0000
 +++ components/url_formatter/spoof_checks/idn_spoof_checker.cc
-@@ -291,7 +291,7 @@ IDNSpoofChecker::IDNSpoofChecker() {
+@@ -294,7 +294,7 @@ IDNSpoofChecker::IDNSpoofChecker() {
    // The ideal fix would be to change the omnibox font used for Thai. In
    // that case, the Linux-only list should be revisited and potentially
    // removed.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
         "[ทนบพรหเแ๐ดลปฟม]",
  #else
         "[บพเแ๐]",
diff --git a/chromium/patches/patch-components_url__matcher_regex__set__matcher.cc b/chromium/patches/patch-components_url__matcher_regex__set__matcher.cc
deleted file mode 100644
index 006ba5e022..0000000000
--- a/chromium/patches/patch-components_url__matcher_regex__set__matcher.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- components/url_matcher/regex_set_matcher.cc.orig	2020-07-08 21:40:41.000000000 +0000
-+++ components/url_matcher/regex_set_matcher.cc
-@@ -12,8 +12,8 @@
- #include "base/logging.h"
- #include "base/strings/string_util.h"
- #include "components/url_matcher/substring_set_matcher.h"
--#include "third_party/re2/src/re2/filtered_re2.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/filtered_re2.h>
-+#include <re2/re2.h>
- 
- namespace url_matcher {
- 
diff --git a/chromium/patches/patch-components_url__matcher_url__matcher__factory.cc b/chromium/patches/patch-components_url__matcher_url__matcher__factory.cc
deleted file mode 100644
index 0fe33c429c..0000000000
--- a/chromium/patches/patch-components_url__matcher_url__matcher__factory.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/url_matcher/url_matcher_factory.cc.orig	2020-07-08 21:40:41.000000000 +0000
-+++ components/url_matcher/url_matcher_factory.cc
-@@ -16,7 +16,7 @@
- #include "base/values.h"
- #include "components/url_matcher/url_matcher_constants.h"
- #include "components/url_matcher/url_matcher_helpers.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- 
- namespace url_matcher {
- 
diff --git a/chromium/patches/patch-components_user__education_views_help__bubble__view.cc b/chromium/patches/patch-components_user__education_views_help__bubble__view.cc
new file mode 100644
index 0000000000..542a03c85f
--- /dev/null
+++ b/chromium/patches/patch-components_user__education_views_help__bubble__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/user_education/views/help_bubble_view.cc.orig	2024-07-24 02:44:36.556773700 +0000
++++ components/user_education/views/help_bubble_view.cc
+@@ -997,7 +997,7 @@ gfx::Rect HelpBubbleView::GetAnchorRect(
+ void HelpBubbleView::OnBeforeBubbleWidgetInit(views::Widget::InitParams* params,
+                                               views::Widget* widget) const {
+   BubbleDialogDelegateView::OnBeforeBubbleWidgetInit(params, widget);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Help bubbles anchored to menus may be clipped to their anchors' bounds,
+   // resulting in visual errors, unless they use accelerated rendering. See
+   // crbug.com/1445770 for details. This also applies to bubbles anchored to
diff --git a/chromium/patches/patch-components_variations_service_variations__service.cc b/chromium/patches/patch-components_variations_service_variations__service.cc
new file mode 100644
index 0000000000..c097738cc7
--- /dev/null
+++ b/chromium/patches/patch-components_variations_service_variations__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/variations/service/variations_service.cc.orig	2024-07-24 02:44:36.728790300 +0000
++++ components/variations/service/variations_service.cc
+@@ -101,7 +101,7 @@ std::string GetPlatformString() {
+   return "android";
+ #elif BUILDFLAG(IS_FUCHSIA)
+   return "fuchsia";
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || BUILDFLAG(IS_SOLARIS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_BSD)
+   // Default BSD and SOLARIS to Linux to not break those builds, although these
+   // platforms are not officially supported by Chrome.
+   return "linux";
diff --git a/chromium/patches/patch-components_visited__url__ranking_public_url__visit__util.cc b/chromium/patches/patch-components_visited__url__ranking_public_url__visit__util.cc
new file mode 100644
index 0000000000..bd5855e175
--- /dev/null
+++ b/chromium/patches/patch-components_visited__url__ranking_public_url__visit__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/visited_url_ranking/public/url_visit_util.cc.orig	2024-07-24 02:44:36.752792600 +0000
++++ components/visited_url_ranking/public/url_visit_util.cc
+@@ -54,7 +54,7 @@ PlatformType GetPlatformInput() {
+   return PlatformType::kWindows;
+ #elif BUILDFLAG(IS_MAC)
+   return PlatformType::kMac;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return PlatformType::kLinux;
+ #elif BUILDFLAG(IS_IOS)
+   return PlatformType::kIos;
diff --git a/chromium/patches/patch-components_viz_common_features.cc b/chromium/patches/patch-components_viz_common_features.cc
index fc2f53d327..e327d03c9b 100644
--- a/chromium/patches/patch-components_viz_common_features.cc
+++ b/chromium/patches/patch-components_viz_common_features.cc
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- components/viz/common/features.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/common/features.cc.orig	2024-07-24 02:44:36.760793400 +0000
 +++ components/viz/common/features.cc
-@@ -20,7 +20,7 @@ const base::Feature kUseSkiaForGLReadbac
-                                           base::FEATURE_ENABLED_BY_DEFAULT};
+@@ -263,7 +263,7 @@ BASE_FEATURE(kBufferQueueImageSetPurgeab
+              "BufferQueueImageSetPurgeable",
+              base::FEATURE_ENABLED_BY_DEFAULT);
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // On platforms using SkiaOutputDeviceBufferQueue and not yet universally using
+ // SkiaRenderer-allocated images, when this is true SkiaRenderer will allocate
+ // and maintain a buffer queue of images for the root render pass, instead of
+@@ -559,7 +559,7 @@ bool ShouldOnBeginFrameThrottleVideo() {
+   return base::FeatureList::IsEnabled(features::kOnBeginFrameThrottleVideo);
+ }
  
- // Use the SkiaRenderer.
--#if defined(OS_LINUX) && !(defined(OS_CHROMEOS) || BUILDFLAG(IS_CHROMECAST))
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !(defined(OS_CHROMEOS) || BUILDFLAG(IS_CHROMECAST))
- const base::Feature kUseSkiaRenderer{"UseSkiaRenderer",
-                                      base::FEATURE_ENABLED_BY_DEFAULT};
- #else
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool ShouldRendererAllocateImages() {
+   return base::FeatureList::IsEnabled(kRendererAllocatesImages);
+ }
diff --git a/chromium/patches/patch-components_viz_common_features.h b/chromium/patches/patch-components_viz_common_features.h
new file mode 100644
index 0000000000..a677654339
--- /dev/null
+++ b/chromium/patches/patch-components_viz_common_features.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/common/features.h.orig	2024-07-24 02:44:36.760793400 +0000
++++ components/viz/common/features.h
+@@ -75,7 +75,7 @@ VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(k
+ VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kAllowUndamagedNonrootRenderPassToSkip);
+ VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(
+     kAllowForceMergeRenderPassWithRequireOverlayQuads);
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kRendererAllocatesImages);
+ #endif
+ VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kBufferQueueImageSetPurgeable);
+@@ -136,7 +136,7 @@ VIZ_COMMON_EXPORT std::optional<double> 
+ VIZ_COMMON_EXPORT std::optional<double> IsDynamicSchedulerEnabledForClients();
+ VIZ_COMMON_EXPORT int MaxOverlaysConsidered();
+ VIZ_COMMON_EXPORT bool ShouldOnBeginFrameThrottleVideo();
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ VIZ_COMMON_EXPORT bool ShouldRendererAllocateImages();
+ #endif
+ VIZ_COMMON_EXPORT bool IsOnBeginFrameAcksEnabled();
diff --git a/chromium/patches/patch-components_viz_common_gpu_dawn__context__provider.cc b/chromium/patches/patch-components_viz_common_gpu_dawn__context__provider.cc
deleted file mode 100644
index b16ebe0832..0000000000
--- a/chromium/patches/patch-components_viz_common_gpu_dawn__context__provider.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/viz/common/gpu/dawn_context_provider.cc.orig	2020-07-08 21:40:41.000000000 +0000
-+++ components/viz/common/gpu/dawn_context_provider.cc
-@@ -17,7 +17,7 @@ namespace {
- dawn_native::BackendType GetDefaultBackendType() {
- #if defined(OS_WIN)
-   return dawn_native::BackendType::D3D12;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   return dawn_native::BackendType::Vulkan;
- #else
-   NOTREACHED();
diff --git a/chromium/patches/patch-components_viz_host_host__display__client.cc b/chromium/patches/patch-components_viz_host_host__display__client.cc
index 88ebf75b32..e5add8d6bc 100644
--- a/chromium/patches/patch-components_viz_host_host__display__client.cc
+++ b/chromium/patches/patch-components_viz_host_host__display__client.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/viz/host/host_display_client.cc.orig	2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/host/host_display_client.cc.orig	2024-07-24 02:44:36.776795000 +0000
 +++ components/viz/host/host_display_client.cc
-@@ -56,7 +56,7 @@ void HostDisplayClient::CreateLayeredWin
+@@ -65,7 +65,7 @@ void HostDisplayClient::AddChildWindowTo
  }
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
  void HostDisplayClient::DidCompleteSwapWithNewSize(const gfx::Size& size) {
    NOTIMPLEMENTED();
  }
diff --git a/chromium/patches/patch-components_viz_host_host__display__client.h b/chromium/patches/patch-components_viz_host_host__display__client.h
index 90cf5abd82..ef8d15cbd3 100644
--- a/chromium/patches/patch-components_viz_host_host__display__client.h
+++ b/chromium/patches/patch-components_viz_host_host__display__client.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/viz/host/host_display_client.h.orig	2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/host/host_display_client.h.orig	2024-07-24 02:44:36.780795300 +0000
 +++ components/viz/host/host_display_client.h
-@@ -43,7 +43,7 @@ class VIZ_HOST_EXPORT HostDisplayClient 
-       mojo::PendingReceiver<mojom::LayeredWindowUpdater> receiver) override;
+@@ -52,7 +52,7 @@ class VIZ_HOST_EXPORT HostDisplayClient 
+   void AddChildWindowToBrowser(gpu::SurfaceHandle child_window) override;
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
    void DidCompleteSwapWithNewSize(const gfx::Size& size) override;
- #endif
+ #endif  // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
  
diff --git a/chromium/patches/patch-components_viz_service_display__embedder_skia__output__device__buffer__queue.cc b/chromium/patches/patch-components_viz_service_display__embedder_skia__output__device__buffer__queue.cc
new file mode 100644
index 0000000000..e2df18eb89
--- /dev/null
+++ b/chromium/patches/patch-components_viz_service_display__embedder_skia__output__device__buffer__queue.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/display_embedder/skia_output_device_buffer_queue.cc.orig	2024-07-24 02:44:36.812798500 +0000
++++ components/viz/service/display_embedder/skia_output_device_buffer_queue.cc
+@@ -174,7 +174,7 @@ SkiaOutputDeviceBufferQueue::SkiaOutputD
+   capabilities_.only_invalidates_damage_rect = false;
+   capabilities_.number_of_buffers = 3;
+ 
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   capabilities_.renderer_allocates_images =
+       ::features::ShouldRendererAllocateImages();
+ #else
diff --git a/chromium/patches/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc b/chromium/patches/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc
new file mode 100644
index 0000000000..eb17e462f2
--- /dev/null
+++ b/chromium/patches/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/display_embedder/skia_output_surface_impl.cc.orig	2024-07-24 02:44:36.816799000 +0000
++++ components/viz/service/display_embedder/skia_output_surface_impl.cc
+@@ -1546,7 +1546,7 @@ GrBackendFormat SkiaOutputSurfaceImpl::G
+                                             ->GetVulkanPhysicalDevice(),
+                                         VK_IMAGE_TILING_OPTIMAL, vk_format,
+                                         si_format, yuv_color_space, ycbcr_info);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     // Textures that were allocated _on linux_ with ycbcr info came from
+     // VaapiVideoDecoder, which exports using DRM format modifiers.
+     return GrBackendFormats::MakeVk(gr_ycbcr_info,
diff --git a/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.cc b/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.cc
index 9662415564..1c146e16a1 100644
--- a/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.cc
+++ b/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- components/viz/service/display_embedder/software_output_surface.cc.orig	2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/display_embedder/software_output_surface.cc.orig	2024-07-24 02:44:36.816799000 +0000
 +++ components/viz/service/display_embedder/software_output_surface.cc
-@@ -114,7 +114,7 @@ void SoftwareOutputSurface::SwapBuffersC
-   base::TimeTicks now = base::TimeTicks::Now();
-   base::TimeDelta interval_to_next_refresh =
+@@ -124,7 +124,7 @@ void SoftwareOutputSurface::SwapBuffersC
        now.SnappedToNextTick(refresh_timebase_, refresh_interval_) - now;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    if (needs_swap_size_notifications_)
      client_->DidSwapWithSize(pixel_size);
  #endif
-@@ -143,7 +143,7 @@ gfx::OverlayTransform SoftwareOutputSurf
-   return gfx::OVERLAY_TRANSFORM_NONE;
- }
+@@ -153,7 +153,7 @@ gfx::OverlayTransform SoftwareOutputSurf
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  void SoftwareOutputSurface::SetNeedsSwapSizeNotifications(
      bool needs_swap_size_notifications) {
    needs_swap_size_notifications_ = needs_swap_size_notifications;
diff --git a/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.h b/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.h
index 829c45d940..af5660dc78 100644
--- a/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.h
+++ b/chromium/patches/patch-components_viz_service_display__embedder_software__output__surface.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- components/viz/service/display_embedder/software_output_surface.h.orig	2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/display_embedder/software_output_surface.h.orig	2024-07-24 02:44:36.816799000 +0000
 +++ components/viz/service/display_embedder/software_output_surface.h
-@@ -49,7 +49,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputS
-       UpdateVSyncParametersCallback callback) override;
-   void SetDisplayTransformHint(gfx::OverlayTransform transform) override {}
+@@ -47,7 +47,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputS
    gfx::OverlayTransform GetDisplayTransform() override;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    void SetNeedsSwapSizeNotifications(
        bool needs_swap_size_notifications) override;
  #endif
-@@ -72,7 +72,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputS
-   std::queue<std::vector<ui::LatencyInfo>> stored_latency_info_;
-   ui::LatencyTracker latency_tracker_;
+@@ -70,7 +70,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputS
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    bool needs_swap_size_notifications_ = false;
  #endif
  
diff --git a/chromium/patches/patch-components_viz_service_display_skia__renderer.cc b/chromium/patches/patch-components_viz_service_display_skia__renderer.cc
new file mode 100644
index 0000000000..918a9175be
--- /dev/null
+++ b/chromium/patches/patch-components_viz_service_display_skia__renderer.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/display/skia_renderer.cc.orig	2024-07-24 02:44:36.804797600 +0000
++++ components/viz/service/display/skia_renderer.cc
+@@ -1422,7 +1422,7 @@ void SkiaRenderer::ClearFramebuffer() {
+   if (current_frame()->current_render_pass->has_transparent_background) {
+     ClearCanvas(SkColors::kTransparent);
+   } else {
+-#if DCHECK_IS_ON() && !BUILDFLAG(IS_LINUX)
++#if DCHECK_IS_ON() && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+     // On DEBUG builds, opaque render passes are cleared to blue
+     // to easily see regions that were not drawn on the screen.
+     // ClearCavas() call causes slight pixel difference, so linux-ref and
diff --git a/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc b/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc
index 8b070359aa..478414e1ae 100644
--- a/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc
+++ b/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc.orig	2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc.orig	2024-07-24 02:44:36.824799500 +0000
 +++ components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
-@@ -50,7 +50,7 @@ RootCompositorFrameSinkImpl::Create(
+@@ -111,7 +111,7 @@ RootCompositorFrameSinkImpl::Create(
    output_surface->SetNeedsSwapSizeNotifications(
        params->send_swap_size_notifications);
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
    // For X11, we need notify client about swap completion after resizing, so the
    // client can use it for synchronize with X11 WM.
    output_surface->SetNeedsSwapSizeNotifications(true);
-@@ -448,7 +448,7 @@ void RootCompositorFrameSinkImpl::Displa
- #if defined(OS_ANDROID)
-   if (display_client_)
+@@ -656,7 +656,7 @@ void RootCompositorFrameSinkImpl::Displa
+   if (display_client_ && enable_swap_completion_callback_) {
      display_client_->DidCompleteSwapWithSize(pixel_size);
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+   }
+-#elif BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
    if (display_client_ && pixel_size != last_swap_pixel_size_) {
      last_swap_pixel_size_ = pixel_size;
      display_client_->DidCompleteSwapWithNewSize(last_swap_pixel_size_);
diff --git a/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h b/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h
index ea9ca15049..b8a9d06c29 100644
--- a/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h
+++ b/chromium/patches/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h.orig	2020-07-08 21:40:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h.orig	2024-07-24 02:44:36.824799500 +0000
 +++ components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h
-@@ -157,7 +157,7 @@ class RootCompositorFrameSinkImpl : publ
-   base::TimeDelta preferred_frame_interval_ =
-       FrameRateDecider::UnspecifiedFrameInterval();
+@@ -209,7 +209,7 @@ class VIZ_SERVICE_EXPORT RootCompositorF
+   // See comments on `EvictionHandler`.
+   EvictionHandler eviction_handler_;
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
    gfx::Size last_swap_pixel_size_;
- #endif
+ #endif  // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
  
diff --git a/chromium/patches/patch-components_viz_test_fake__display__client.cc b/chromium/patches/patch-components_viz_test_fake__display__client.cc
new file mode 100644
index 0000000000..75cef9234a
--- /dev/null
+++ b/chromium/patches/patch-components_viz_test_fake__display__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/test/fake_display_client.cc.orig	2024-07-24 02:44:36.836800800 +0000
++++ components/viz/test/fake_display_client.cc
+@@ -27,7 +27,7 @@ void FakeDisplayClient::AddChildWindowTo
+     gpu::SurfaceHandle child_window) {}
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
+ void FakeDisplayClient::DidCompleteSwapWithNewSize(const gfx::Size& size) {}
+ #endif  // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
+ 
diff --git a/chromium/patches/patch-components_viz_test_fake__display__client.h b/chromium/patches/patch-components_viz_test_fake__display__client.h
new file mode 100644
index 0000000000..6826184b60
--- /dev/null
+++ b/chromium/patches/patch-components_viz_test_fake__display__client.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/test/fake_display_client.h.orig	2024-07-24 02:44:36.836800800 +0000
++++ components/viz/test/fake_display_client.h
+@@ -36,7 +36,7 @@ class FakeDisplayClient : public mojom::
+   void AddChildWindowToBrowser(gpu::SurfaceHandle child_window) override;
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
+   void DidCompleteSwapWithNewSize(const gfx::Size& size) override;
+ #endif  // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
+ 
diff --git a/chromium/patches/patch-components_viz_test_fake__output__surface.cc b/chromium/patches/patch-components_viz_test_fake__output__surface.cc
deleted file mode 100644
index 5af4860c83..0000000000
--- a/chromium/patches/patch-components_viz_test_fake__output__surface.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/viz/test/fake_output_surface.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ components/viz/test/fake_output_surface.cc
-@@ -111,7 +111,7 @@ gfx::OverlayTransform FakeOutputSurface:
-                                          : gfx::OVERLAY_TRANSFORM_NONE;
- }
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- void FakeOutputSurface::SetNeedsSwapSizeNotifications(
-     bool needs_swap_size_notifications) {}
- #endif
diff --git a/chromium/patches/patch-components_viz_test_fake__output__surface.h b/chromium/patches/patch-components_viz_test_fake__output__surface.h
deleted file mode 100644
index ac1a6f1bee..0000000000
--- a/chromium/patches/patch-components_viz_test_fake__output__surface.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/viz/test/fake_output_surface.h.orig	2020-07-08 21:40:42.000000000 +0000
-+++ components/viz/test/fake_output_surface.h
-@@ -82,7 +82,7 @@ class FakeOutputSurface : public OutputS
-       UpdateVSyncParametersCallback callback) override;
-   void SetDisplayTransformHint(gfx::OverlayTransform transform) override;
-   gfx::OverlayTransform GetDisplayTransform() override;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   void SetNeedsSwapSizeNotifications(
-       bool needs_swap_size_notifications) override;
- #endif
diff --git a/chromium/patches/patch-components_viz_test_mock__display__client.h b/chromium/patches/patch-components_viz_test_mock__display__client.h
index 5e17be0ad6..98a2606e33 100644
--- a/chromium/patches/patch-components_viz_test_mock__display__client.h
+++ b/chromium/patches/patch-components_viz_test_mock__display__client.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- components/viz/test/mock_display_client.h.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- components/viz/test/mock_display_client.h.orig	2024-07-24 02:44:36.836800800 +0000
 +++ components/viz/test/mock_display_client.h
-@@ -36,7 +36,7 @@ class MockDisplayClient : public mojom::
+@@ -43,7 +43,7 @@ class MockDisplayClient : public mojom::
    MOCK_METHOD1(SetWideColorEnabled, void(bool enabled));
    MOCK_METHOD1(SetPreferredRefreshRate, void(float refresh_rate));
  #endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
    MOCK_METHOD1(DidCompleteSwapWithNewSize, void(const gfx::Size&));
- #endif
+ #endif  // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
  
diff --git a/chromium/patches/patch-components_webcrypto_algorithms_test__helpers.cc b/chromium/patches/patch-components_webcrypto_algorithms_test__helpers.cc
deleted file mode 100644
index 0f863ded1a..0000000000
--- a/chromium/patches/patch-components_webcrypto_algorithms_test__helpers.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- components/webcrypto/algorithms/test_helpers.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ components/webcrypto/algorithms/test_helpers.cc
-@@ -25,7 +25,7 @@
- #include "components/webcrypto/status.h"
- #include "third_party/blink/public/platform/web_crypto_algorithm_params.h"
- #include "third_party/blink/public/platform/web_crypto_key_algorithm.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- 
- namespace webcrypto {
- 
diff --git a/chromium/patches/patch-content_app_BUILD.gn b/chromium/patches/patch-content_app_BUILD.gn
new file mode 100644
index 0000000000..b5aaf26d0c
--- /dev/null
+++ b/chromium/patches/patch-content_app_BUILD.gn
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/app/BUILD.gn.orig	2024-07-24 02:44:36.948811500 +0000
++++ content/app/BUILD.gn
+@@ -96,9 +96,9 @@ source_set("content_main_runner_app") {
+       "//chromeos/startup:constants",
+     ]
+   }
+-  if (build_tflite_with_xnnpack) {
+-    deps += [ "//third_party/cpuinfo" ]
+-  }
++#  if (build_tflite_with_xnnpack) {
++#    deps += [ "//third_party/cpuinfo" ]
++#  }
+ }
+ 
+ source_set("app") {
diff --git a/chromium/patches/patch-content_app_content__main.cc b/chromium/patches/patch-content_app_content__main.cc
new file mode 100644
index 0000000000..9518e9a25e
--- /dev/null
+++ b/chromium/patches/patch-content_app_content__main.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/app/content_main.cc.orig	2024-07-24 02:44:36.948811500 +0000
++++ content/app/content_main.cc
+@@ -206,7 +206,7 @@ RunContentProcess(ContentMainParams para
+ #endif
+     base::EnableTerminationOnOutOfMemory();
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     // The various desktop environments set this environment variable that
+     // allows the dbus client library to connect directly to the bus. When this
+     // variable is not set (test environments like xvfb-run), the dbus client
diff --git a/chromium/patches/patch-content_app_content__main__runner__impl.cc b/chromium/patches/patch-content_app_content__main__runner__impl.cc
index 05d5dddec8..6b22630858 100644
--- a/chromium/patches/patch-content_app_content__main__runner__impl.cc
+++ b/chromium/patches/patch-content_app_content__main__runner__impl.cc
@@ -1,40 +1,133 @@
 $NetBSD$
 
---- content/app/content_main_runner_impl.cc.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/app/content_main_runner_impl.cc.orig	2024-07-24 02:44:36.948811500 +0000
 +++ content/app/content_main_runner_impl.cc
-@@ -131,7 +131,7 @@
+@@ -149,18 +149,20 @@
+ #include "content/browser/posix_file_descriptor_info_impl.h"
+ #include "content/public/common/content_descriptors.h"
+ 
+-#if !BUILDFLAG(IS_MAC)
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
+ #include "content/public/common/zygote/zygote_fork_delegate_linux.h"
+ #endif
  
- #endif  // OS_POSIX || OS_FUCHSIA
+ #endif  // BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/files/file_path_watcher_inotify.h"
  #include "base/native_library.h"
  #include "base/rand_util.h"
  #include "content/public/common/zygote/sandbox_support_linux.h"
-@@ -300,7 +300,7 @@ void InitializeZygoteSandboxForBrowserPr
++#if !BUILDFLAG(IS_BSD)
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ #include "third_party/boringssl/src/include/openssl/crypto.h"
+ #include "third_party/webrtc_overrides/init_webrtc.h"  // nogncheck
+ 
+@@ -194,6 +196,10 @@
+ #include "media/base/media_switches.h"
+ #endif
+ 
++#if BUILDFLAG(IS_BSD)
++#include "base/system/sys_info.h"
++#endif
++
+ #if BUILDFLAG(IS_ANDROID)
+ #include "base/system/sys_info.h"
+ #include "content/browser/android/battery_metrics.h"
+@@ -389,7 +395,7 @@ void InitializeZygoteSandboxForBrowserPr
  }
- #endif  // BUILDFLAG(USE_ZYGOTE_HANDLE)
+ #endif  // BUILDFLAG(USE_ZYGOTE)
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  
- #if BUILDFLAG(ENABLE_PLUGINS)
+ #if BUILDFLAG(ENABLE_PPAPI)
  // Loads the (native) libraries but does not initialize them (i.e., does not
-@@ -472,7 +472,7 @@ int RunZygote(ContentMainDelegate* deleg
-   delegate->ZygoteStarting(&zygote_fork_delegates);
-   media::InitializeMediaLibrary();
+@@ -427,7 +433,10 @@ void PreloadLibraryCdms() {
+ 
+ void PreSandboxInit() {
+   // Ensure the /dev/urandom is opened.
++  // we use arc4random
++#if !BUILDFLAG(IS_BSD)
+   base::GetUrandomFD();
++#endif
+ 
+   // May use sysinfo(), sched_getaffinity(), and open various /sys/ and /proc/
+   // files.
+@@ -439,9 +448,16 @@ void PreSandboxInit() {
+   // https://boringssl.googlesource.com/boringssl/+/HEAD/SANDBOXING.md
+   CRYPTO_pre_sandbox_init();
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   PreSandboxInit();
++#if BUILDFLAG(IS_BSD)
++  // "cache" the amount of physical memory before pledge(2)
++  base::SysInfo::AmountOfPhysicalMemoryMB();
++#endif
++
++#if !BUILDFLAG(IS_BSD)
+   // Pre-read /proc/sys/fs/inotify/max_user_watches so it doesn't have to be
+   // allowed by the sandbox.
+   base::GetMaxNumberOfInotifyWatches();
++#endif
+ 
+ #if BUILDFLAG(ENABLE_PPAPI)
+   // Ensure access to the Pepper plugins before the sandbox is turned on.
+@@ -889,11 +905,10 @@ int ContentMainRunnerImpl::Initialize(Co
+                  base::GlobalDescriptors::kBaseDescriptor);
+ #endif  // !BUILDFLAG(IS_ANDROID)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+   g_fds->Set(kCrashDumpSignal,
+              kCrashDumpSignal + base::GlobalDescriptors::kBaseDescriptor);
+-#endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
+-        // BUILDFLAG(IS_OPENBSD)
++#endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+ #endif  // !BUILDFLAG(IS_WIN)
+ 
+@@ -1041,6 +1056,18 @@ int ContentMainRunnerImpl::Initialize(Co
+       process_type == switches::kZygoteProcess) {
+     PreSandboxInit();
+   }
++#elif BUILDFLAG(IS_BSD)
++  PreSandboxInit();
++#endif
++
++#if BUILDFLAG(IS_BSD)
++  if (process_type.empty()) {
++    sandbox::policy::SandboxLinux::Options sandbox_options;
++    sandbox::policy::SandboxLinux::GetInstance()->InitializeSandbox(
++        sandbox::policy::SandboxTypeFromCommandLine(
++            *base::CommandLine::ForCurrentProcess()),
++        sandbox::policy::SandboxLinux::PreSandboxHook(), sandbox_options);
++  }
  #endif
  
-@@ -616,7 +616,7 @@ int ContentMainRunnerImpl::Initialize(co
-                    base::GlobalDescriptors::kBaseDescriptor);
- #endif  // !OS_ANDROID
+   delegate_->SandboxInitialized(process_type);
+@@ -1114,7 +1141,7 @@ int NO_STACK_PROTECTOR ContentMainRunner
+           ->ReconfigureAfterFeatureListInit(process_type);
+     }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     // If dynamic Mojo Core is being used, ensure that it's loaded very early in
+     // the child/zygote process, before any sandbox is initialized. The library
+     // is not fully initialized with IPC support until a ChildProcess is later
+@@ -1150,6 +1177,11 @@ int NO_STACK_PROTECTOR ContentMainRunner
+ 
+   RegisterMainThreadFactories();
+ 
++#if BUILDFLAG(IS_BSD)
++  if (!process_type.empty())
++    PreSandboxInit();
++#endif 
++
+   if (process_type.empty())
+     return RunBrowser(std::move(main_params), start_minimal_browser);
  
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX)
-     g_fds->Set(service_manager::kCrashDumpSignal,
-                service_manager::kCrashDumpSignal +
-                    base::GlobalDescriptors::kBaseDescriptor);
diff --git a/chromium/patches/patch-content_browser_BUILD.gn b/chromium/patches/patch-content_browser_BUILD.gn
index 872c34a84f..06ee40cd76 100644
--- a/chromium/patches/patch-content_browser_BUILD.gn
+++ b/chromium/patches/patch-content_browser_BUILD.gn
@@ -1,71 +1,39 @@
 $NetBSD$
 
---- content/browser/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/BUILD.gn.orig	2024-07-24 02:44:36.956812400 +0000
 +++ content/browser/BUILD.gn
-@@ -2042,7 +2042,7 @@ jumbo_source_set("browser") {
-     deps += [ "//ui/events" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "font_service.cc",
-       "font_service.h",
-@@ -2058,6 +2058,12 @@ jumbo_source_set("browser") {
+@@ -2375,6 +2375,14 @@ source_set("browser") {
      ]
    }
  
-+  #if (is_bsd) {
-+  #  deps -= [
-+  #    "//services/service_manager/zygote",
-+  #  ]
-+  #}
++  if (is_bsd) {
++    sources += [
++      "file_system_access/file_path_watcher/file_path_watcher_bsd.cc",
++      "file_system_access/file_path_watcher/file_path_watcher_kqueue.cc",
++      "file_system_access/file_path_watcher/file_path_watcher_kqueue.h",
++    ]
++  }
 +
-   if (is_desktop_linux) {
-     sources += [ "speech/tts_linux.cc" ]
-     deps += [ "//third_party/speech-dispatcher" ]
-@@ -2079,7 +2085,7 @@ jumbo_source_set("browser") {
-     ]
-   }
- 
--  if (is_chromecast && is_linux) {
-+  if (is_chromecast && (is_linux || is_bsd)) {
+   if (is_linux || is_chromeos) {
      sources += [
-       "tracing/cast_tracing_agent.cc",
-       "tracing/cast_tracing_agent.h",
-@@ -2315,7 +2321,7 @@ jumbo_source_set("browser") {
-     } else if (use_pangocairo) {
-       sources += [ "renderer_host/pepper/pepper_truetype_font_list_pango.cc" ]
-     }
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       deps += [ "//components/services/font:ppapi_fontconfig_matching" ]
-     }
-   }
-@@ -2353,7 +2359,7 @@ jumbo_source_set("browser") {
-     }
-   }
- 
--  if (is_linux && use_aura) {
-+  if ((is_linux || is_bsd) && use_aura) {
-     deps += [ "//third_party/fontconfig" ]
-   }
- 
-@@ -2651,7 +2657,7 @@ jumbo_source_set("browser") {
-       "renderer_host/render_widget_host_view_event_handler.h",
-     ]
- 
--    if (is_linux && !is_chromeos) {
-+    if ((is_linux || is_bsd) && !is_chromeos) {
-       deps += [ "//ui/base/ime/linux" ]
-     }
-   } else {  # Not aura.
-@@ -2689,7 +2695,7 @@ jumbo_source_set("browser") {
-     ]
-   }
- 
--  if (is_linux && use_dbus) {
-+  if ((is_linux || is_bsd) && use_dbus) {
-     deps += [ "//dbus" ]
-   }
- 
+       "child_process_launcher_helper_linux.cc",
+@@ -2413,6 +2421,15 @@ source_set("browser") {
+     deps += [ "//media/mojo/mojom/stable:stable_video_decoder" ]
+   }
+ 
++  if (is_bsd) {
++    sources -= [
++      "file_system_access/file_path_watcher/file_path_watcher_inotify.cc",
++      "file_system_access/file_path_watcher/file_path_watcher_inotify.h",
++      "sandbox_ipc_linux.cc",
++      "sandbox_ipc_linux.h",
++    ]
++  }
++
+   if (is_chromeos) {
+     sources += [
+       "handwriting/handwriting_recognition_service_impl_cros.cc",
diff --git a/chromium/patches/patch-content_browser_audio_audio__service.cc b/chromium/patches/patch-content_browser_audio_audio__service.cc
new file mode 100644
index 0000000000..278fd9b205
--- /dev/null
+++ b/chromium/patches/patch-content_browser_audio_audio__service.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/audio/audio_service.cc.orig	2024-07-24 02:44:37.020818700 +0000
++++ content/browser/audio/audio_service.cc
+@@ -32,7 +32,7 @@
+ #if BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS)
+ #include "ui/display/util/edid_parser.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/display/display_util.h"
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+@@ -200,7 +200,7 @@ audio::mojom::AudioService& GetAudioServ
+         ->PostTaskAndReplyWithResult(
+             FROM_HERE, base::BindOnce(&ScanEdidBitstreams),
+             base::BindOnce(&LaunchAudioService, std::move(receiver)));
+-#elif BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) && BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+     LaunchAudioService(
+         std::move(receiver),
+         ConvertEdidBitstreams(display::DisplayUtil::GetAudioFormats()));
diff --git a/chromium/patches/patch-content_browser_browser__child__process__host__impl.cc b/chromium/patches/patch-content_browser_browser__child__process__host__impl.cc
new file mode 100644
index 0000000000..ede3b8b6eb
--- /dev/null
+++ b/chromium/patches/patch-content_browser_browser__child__process__host__impl.cc
@@ -0,0 +1,25 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/browser_child_process_host_impl.cc.orig	2024-07-24 02:44:37.044821000 +0000
++++ content/browser/browser_child_process_host_impl.cc
+@@ -330,6 +330,7 @@ void BrowserChildProcessHostImpl::Launch
+       switches::kMojoCoreLibraryPath,
+       switches::kPerfettoDisableInterning,
+       switches::kTraceToConsole,
++      switches::kDisableUnveil,
+   };
+   cmd_line->CopySwitchesFrom(browser_command_line, kForwardSwitches);
+ 
+@@ -658,7 +659,7 @@ void BrowserChildProcessHostImpl::OnProc
+           ->child_process());
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   child_thread_type_switcher_.SetPid(process.Pid());
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
diff --git a/chromium/patches/patch-content_browser_browser__child__process__host__impl.h b/chromium/patches/patch-content_browser_browser__child__process__host__impl.h
new file mode 100644
index 0000000000..bcb1e09456
--- /dev/null
+++ b/chromium/patches/patch-content_browser_browser__child__process__host__impl.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/browser_child_process_host_impl.h.orig	2024-07-24 02:44:37.044821000 +0000
++++ content/browser/browser_child_process_host_impl.h
+@@ -35,7 +35,7 @@
+ #include "base/win/object_watcher.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/browser/child_thread_type_switcher_linux.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+@@ -273,7 +273,7 @@ class BrowserChildProcessHostImpl
+   std::unique_ptr<tracing::SystemTracingService> system_tracing_service_;
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   ChildThreadTypeSwitcher child_thread_type_switcher_;
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
diff --git a/chromium/patches/patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc b/chromium/patches/patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc
new file mode 100644
index 0000000000..575d260ac9
--- /dev/null
+++ b/chromium/patches/patch-content_browser_browser__child__process__host__impl__receiver__bindings.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/browser_child_process_host_impl_receiver_bindings.cc.orig	2024-07-24 02:44:37.044821000 +0000
++++ content/browser/browser_child_process_host_impl_receiver_bindings.cc
+@@ -62,7 +62,7 @@ void BrowserChildProcessHostImpl::BindHo
+     }
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (auto r = receiver.As<mojom::ThreadTypeSwitcher>()) {
+     child_thread_type_switcher_.Bind(std::move(r));
+     return;
diff --git a/chromium/patches/patch-content_browser_browser__main__loop.cc b/chromium/patches/patch-content_browser_browser__main__loop.cc
index cb9637a37f..0f1dd33821 100644
--- a/chromium/patches/patch-content_browser_browser__main__loop.cc
+++ b/chromium/patches/patch-content_browser_browser__main__loop.cc
@@ -1,26 +1,43 @@
 $NetBSD$
 
---- content/browser/browser_main_loop.cc.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/browser_main_loop.cc.orig	2024-07-24 02:44:37.044821000 +0000
 +++ content/browser/browser_main_loop.cc
-@@ -240,6 +240,12 @@
+@@ -251,6 +251,12 @@
  #include "mojo/public/cpp/bindings/lib/test_random_mojo_delays.h"
  #endif
  
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
 +#include "content/browser/sandbox_host_linux.h"
-+#include "content/public/common/common_sandbox_support_linux.h"
-+#include "services/service_manager/sandbox/sandbox.h"
++#include "content/public/common/zygote/sandbox_support_linux.h"
++#include "sandbox/policy/sandbox.h"
 +#endif
 +
  // One of the linux specific headers defines this as a macro.
  #ifdef DestroyAll
  #undef DestroyAll
-@@ -611,7 +617,7 @@ int BrowserMainLoop::EarlyInitialization
- #endif  // !defined(OS_MACOSX)
+@@ -546,6 +552,12 @@ int BrowserMainLoop::EarlyInitialization
+   // by now since a thread to start the ServiceManager has been created
+   // before the browser main loop starts.
+   DCHECK(SandboxHostLinux::GetInstance()->IsInitialized());
++#elif BUILDFLAG(IS_BSD)
++  base::FileHandleMappingVector additional_remapped_fds;
++  base::LaunchOptions options;
++  SandboxHostLinux::GetInstance()->Init();
++  const int sfd = SandboxHostLinux::GetInstance()->GetChildSocket();
++  options.fds_to_remap.push_back(std::make_pair(sfd, GetSandboxFD()));
+ #endif
+ 
+   // GLib's spawning of new processes is buggy, so it's important that at this
+@@ -583,7 +595,7 @@ int BrowserMainLoop::EarlyInitialization
+   base::PlatformThread::SetCurrentThreadType(base::ThreadType::kCompositing);
  
- #if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \
--    defined(OS_ANDROID)
-+    defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_ANDROID)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
    // We use quite a few file descriptors for our IPC as well as disk the disk
-   // cache,and the default limit on the Mac is low (256), so bump it up.
+   // cache, and the default limit on Apple is low (256), so bump it up.
  
diff --git a/chromium/patches/patch-content_browser_child__process__launcher__helper.h b/chromium/patches/patch-content_browser_child__process__launcher__helper.h
new file mode 100644
index 0000000000..2086561946
--- /dev/null
+++ b/chromium/patches/patch-content_browser_child__process__launcher__helper.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/child_process_launcher_helper.h.orig	2024-07-24 02:44:37.064823000 +0000
++++ content/browser/child_process_launcher_helper.h
+@@ -297,7 +297,7 @@ class ChildProcessLauncherHelper
+   std::optional<base::ProcessId> process_id_ = std::nullopt;
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // The priority of the process. The state is stored to avoid changing the
+   // setting repeatedly.
+   std::optional<base::Process::Priority> priority_;
diff --git a/chromium/patches/patch-content_browser_child__process__launcher__helper__linux.cc b/chromium/patches/patch-content_browser_child__process__launcher__helper__linux.cc
index b8aad05cf2..2a4dcd3306 100644
--- a/chromium/patches/patch-content_browser_child__process__launcher__helper__linux.cc
+++ b/chromium/patches/patch-content_browser_child__process__launcher__helper__linux.cc
@@ -1,35 +1,107 @@
 $NetBSD$
 
---- content/browser/child_process_launcher_helper_linux.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/child_process_launcher_helper_linux.cc.orig	2024-07-24 02:44:37.064823000 +0000
 +++ content/browser/child_process_launcher_helper_linux.cc
-@@ -19,7 +19,9 @@
+@@ -22,7 +22,9 @@
  #include "content/public/common/result_codes.h"
  #include "content/public/common/sandboxed_process_launcher_delegate.h"
  #include "content/public/common/zygote/sandbox_support_linux.h"
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
  #include "content/public/common/zygote/zygote_handle.h"
 +#endif
- #include "services/service_manager/sandbox/linux/sandbox_linux.h"
+ #include "sandbox/policy/linux/sandbox_linux.h"
  
  namespace content {
-@@ -50,10 +52,12 @@ bool ChildProcessLauncherHelper::BeforeL
-   options->fds_to_remap = files_to_register.GetMappingWithIDAdjustment(
-       base::GlobalDescriptors::kBaseDescriptor);
- 
-+#if !defined(OS_BSD)
-   if (GetProcessType() == switches::kRendererProcess) {
-     const int sandbox_fd = SandboxHostLinux::GetInstance()->GetChildSocket();
-     options->fds_to_remap.push_back(std::make_pair(sandbox_fd, GetSandboxFD()));
-   }
+@@ -47,14 +49,20 @@ ChildProcessLauncherHelper::GetFilesToMa
+ }
+ 
+ bool ChildProcessLauncherHelper::IsUsingLaunchOptions() {
++#if !BUILDFLAG(IS_BSD)
+   return !GetZygoteForLaunch();
++#else
++  return true;
++#endif
+ }
+ 
+ bool ChildProcessLauncherHelper::BeforeLaunchOnLauncherThread(
+     PosixFileDescriptorInfo& files_to_register,
+     base::LaunchOptions* options) {
+   if (options) {
++#if !BUILDFLAG(IS_BSD)
+     DCHECK(!GetZygoteForLaunch());
++#endif
+     // Convert FD mapping to FileHandleMappingVector
+     options->fds_to_remap = files_to_register.GetMappingWithIDAdjustment(
+         base::GlobalDescriptors::kBaseDescriptor);
+@@ -66,7 +74,9 @@ bool ChildProcessLauncherHelper::BeforeL
+ 
+     options->environment = delegate_->GetEnvironment();
+   } else {
++#if !BUILDFLAG(IS_BSD)
+     DCHECK(GetZygoteForLaunch());
 +#endif
+     // Environment variables could be supported in the future, but are not
+     // currently supported when launching with the zygote.
+     DCHECK(delegate_->GetEnvironment().empty());
+@@ -83,6 +93,7 @@ ChildProcessLauncherHelper::LaunchProces
+     int* launch_result) {
+   *is_synchronous_launch = true;
+   Process process;
++#if !BUILDFLAG(IS_BSD)
+   ZygoteCommunication* zygote_handle = GetZygoteForLaunch();
+   if (zygote_handle) {
+     // TODO(crbug.com/40448989): If chrome supported multiple zygotes they could
+@@ -93,7 +104,6 @@ ChildProcessLauncherHelper::LaunchProces
+         GetProcessType());
+     *launch_result = LAUNCH_RESULT_SUCCESS;
+ 
+-#if !BUILDFLAG(IS_OPENBSD)
+     if (handle) {
+       // It could be a renderer process or an utility process.
+       int oom_score = content::kMiscOomScore;
+@@ -102,15 +112,17 @@ ChildProcessLauncherHelper::LaunchProces
+         oom_score = content::kLowestRendererOomScore;
+       ZygoteHostImpl::GetInstance()->AdjustRendererOOMScore(handle, oom_score);
+     }
+-#endif
  
-   options->environment = delegate_->GetEnvironment();
+     process.process = base::Process(handle);
+     process.zygote = zygote_handle;
+   } else {
++#endif
+     process.process = base::LaunchProcess(*command_line(), *options);
+     *launch_result = process.process.IsValid() ? LAUNCH_RESULT_SUCCESS
+                                                : LAUNCH_RESULT_FAILURE;
++#if !BUILDFLAG(IS_BSD)
+   }
++#endif
  
-@@ -141,13 +145,17 @@ void ChildProcessLauncherHelper::ForceNo
+ #if BUILDFLAG(IS_CHROMEOS)
+   process_id_ = process.process.Pid();
+@@ -134,10 +146,14 @@ ChildProcessTerminationInfo ChildProcess
+     const ChildProcessLauncherHelper::Process& process,
+     bool known_dead) {
+   ChildProcessTerminationInfo info;
++#if !BUILDFLAG(IS_BSD)
+   if (process.zygote) {
+     info.status = process.zygote->GetTerminationStatus(
+         process.process.Handle(), known_dead, &info.exit_code);
+   } else if (known_dead) {
++#else
++  if (known_dead) {
++#endif
+     info.status = base::GetKnownDeadTerminationStatus(process.process.Handle(),
+                                                       &info.exit_code);
+   } else {
+@@ -163,13 +179,17 @@ void ChildProcessLauncherHelper::ForceNo
    DCHECK(CurrentlyOnProcessLauncherTaskRunner());
-   process.process.Terminate(service_manager::RESULT_CODE_NORMAL_EXIT, false);
+   process.process.Terminate(RESULT_CODE_NORMAL_EXIT, false);
    // On POSIX, we must additionally reap the child.
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
    if (process.zygote) {
      // If the renderer was created via a zygote, we have to proxy the reaping
      // through the zygote process.
@@ -37,9 +109,23 @@ $NetBSD$
    } else {
 +#endif
      base::EnsureProcessTerminated(std::move(process.process));
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
    }
 +#endif
  }
  
  void ChildProcessLauncherHelper::SetProcessPriorityOnLauncherThread(
+@@ -182,11 +202,13 @@ void ChildProcessLauncherHelper::SetProc
+   }
+ }
+ 
++#if !BUILDFLAG(IS_BSD)
+ ZygoteCommunication* ChildProcessLauncherHelper::GetZygoteForLaunch() {
+   return base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kNoZygote)
+              ? nullptr
+              : delegate_->GetZygote();
+ }
++#endif
+ 
+ base::File OpenFileToShare(const base::FilePath& path,
+                            base::MemoryMappedFile::Region* region) {
diff --git a/chromium/patches/patch-content_browser_child__thread__type__switcher__linux.cc b/chromium/patches/patch-content_browser_child__thread__type__switcher__linux.cc
new file mode 100644
index 0000000000..805f7a49a8
--- /dev/null
+++ b/chromium/patches/patch-content_browser_child__thread__type__switcher__linux.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/child_thread_type_switcher_linux.cc.orig	2024-07-24 02:44:37.064823000 +0000
++++ content/browser/child_thread_type_switcher_linux.cc
+@@ -20,6 +20,9 @@ void SetThreadTypeOnLauncherThread(base:
+                                    base::ThreadType thread_type) {
+   DCHECK(CurrentlyOnProcessLauncherTaskRunner());
+ 
++#if BUILDFLAG(IS_BSD)
++  NOTIMPLEMENTED();
++#else
+   bool ns_pid_supported = false;
+   pid_t peer_tid = base::FindThreadID(peer_pid, ns_tid, &ns_pid_supported);
+   if (peer_tid == -1) {
+@@ -38,6 +41,7 @@ void SetThreadTypeOnLauncherThread(base:
+ 
+   base::PlatformThread::SetThreadType(peer_pid, peer_tid, thread_type,
+                                       base::IsViaIPC(true));
++#endif
+ }
+ 
+ }  // namespace
diff --git a/chromium/patches/patch-content_browser_compositor_viz__process__transport__factory.cc b/chromium/patches/patch-content_browser_compositor_viz__process__transport__factory.cc
index 5001724bb9..0fa822ee82 100644
--- a/chromium/patches/patch-content_browser_compositor_viz__process__transport__factory.cc
+++ b/chromium/patches/patch-content_browser_compositor_viz__process__transport__factory.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- content/browser/compositor/viz_process_transport_factory.cc.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/compositor/viz_process_transport_factory.cc.orig	2024-07-24 02:44:37.068823300 +0000
 +++ content/browser/compositor/viz_process_transport_factory.cc
-@@ -108,7 +108,7 @@ class HostDisplayClient : public viz::Ho
+@@ -110,7 +110,7 @@ class HostDisplayClient : public viz::Ho
    HostDisplayClient& operator=(const HostDisplayClient&) = delete;
  
    // viz::HostDisplayClient:
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
    void DidCompleteSwapWithNewSize(const gfx::Size& size) override {
      compositor_->OnCompleteSwapWithNewSize(size);
    }
diff --git a/chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.cc b/chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.cc
new file mode 100644
index 0000000000..78ea6bceb5
--- /dev/null
+++ b/chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/devtools/devtools_frontend_host_impl.cc.orig	2024-07-24 02:44:37.080824400 +0000
++++ content/browser/devtools/devtools_frontend_host_impl.cc
+@@ -27,7 +27,7 @@
+ #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
+ #include "ui/base/webui/resource_path.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "components/crash/content/browser/error_reporting/javascript_error_report.h"  // nogncheck
+ #include "components/crash/content/browser/error_reporting/js_error_report_processor.h"  // nogncheck
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -42,7 +42,7 @@ const char kCompatibilityScriptSourceURL
+     "\n//# "
+     "sourceURL=devtools://devtools/bundled/devtools_compatibility.js";
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Remove the pieces of the URL we don't want to send back with the error
+ // reports. In particular, do not send query or fragments as those can have
+ // privacy-sensitive information in them.
+@@ -112,7 +112,7 @@ DevToolsFrontendHostImpl::DevToolsFronte
+     const HandleMessageCallback& handle_message_callback)
+     : web_contents_(WebContents::FromRenderFrameHost(frame_host)),
+       handle_message_callback_(handle_message_callback) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   Observe(web_contents_);
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+   mojo::AssociatedRemote<blink::mojom::DevToolsFrontend> frontend;
+@@ -137,7 +137,7 @@ void DevToolsFrontendHostImpl::DispatchE
+   handle_message_callback_.Run(std::move(message));
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ void DevToolsFrontendHostImpl::OnDidAddMessageToConsole(
+     RenderFrameHost* source_frame,
+     blink::mojom::ConsoleMessageLevel log_level,
diff --git a/chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.h b/chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.h
new file mode 100644
index 0000000000..11826436d5
--- /dev/null
+++ b/chromium/patches/patch-content_browser_devtools_devtools__frontend__host__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/devtools/devtools_frontend_host_impl.h.orig	2024-07-24 02:44:37.080824400 +0000
++++ content/browser/devtools/devtools_frontend_host_impl.h
+@@ -34,7 +34,7 @@ class DevToolsFrontendHostImpl : public 
+ 
+   void BadMessageReceived() override;
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   void OnDidAddMessageToConsole(
+       RenderFrameHost* source_frame,
+       blink::mojom::ConsoleMessageLevel log_level,
diff --git a/chromium/patches/patch-content_browser_devtools_protocol_system__info__handler.cc b/chromium/patches/patch-content_browser_devtools_protocol_system__info__handler.cc
index d8c3d17104..fd1b38b71f 100644
--- a/chromium/patches/patch-content_browser_devtools_protocol_system__info__handler.cc
+++ b/chromium/patches/patch-content_browser_devtools_protocol_system__info__handler.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- content/browser/devtools/protocol/system_info_handler.cc.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/devtools/protocol/system_info_handler.cc.orig	2024-07-24 02:44:37.092825700 +0000
 +++ content/browser/devtools/protocol/system_info_handler.cc
-@@ -47,7 +47,7 @@ std::unique_ptr<SystemInfo::Size> GfxSiz
- // Give the GPU process a few seconds to provide GPU info.
- // Linux Debug builds need more time -- see Issue 796437 and 1046598.
+@@ -51,7 +51,7 @@ std::unique_ptr<SystemInfo::Size> GfxSiz
+ // 1046598, and 1153667.
  // Windows builds need more time -- see Issue 873112 and 1004472.
--#if (defined(OS_LINUX) && !defined(NDEBUG)) || defined(OS_WIN)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(NDEBUG)) || defined(OS_WIN)
- const int kGPUInfoWatchdogTimeoutMs = 30000;
+ // Mac builds need more time - see Issue angleproject:6182.
+-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !defined(NDEBUG)) || \
++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && !defined(NDEBUG)) || \
+     BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_OZONE)
+ static constexpr int kGPUInfoWatchdogTimeoutMultiplierOS = 3;
  #else
- const int kGPUInfoWatchdogTimeoutMs = 5000;
diff --git a/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h b/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h
new file mode 100644
index 0000000000..6ad85d3299
--- /dev/null
+++ b/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/file_system_access/file_path_watcher/file_path_watcher.h.orig	2024-07-24 02:44:37.112827500 +0000
++++ content/browser/file_system_access/file_path_watcher/file_path_watcher.h
+@@ -125,7 +125,7 @@ class CONTENT_EXPORT FilePathWatcher {
+     Type type = Type::kNonRecursive;
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+     // The callback will return the full path to a changed file instead of
+     // the watched path supplied as |path| when Watch is called.
+     // So the full path can be different from the watched path when a folder is
diff --git a/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc b/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc
new file mode 100644
index 0000000000..2cb1242a2d
--- /dev/null
+++ b/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__bsd.cc
@@ -0,0 +1,64 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/file_system_access/file_path_watcher/file_path_watcher_bsd.cc.orig	2024-08-01 14:08:57.817126478 +0000
++++ content/browser/file_system_access/file_path_watcher/file_path_watcher_bsd.cc
+@@ -0,0 +1,55 @@
++// Copyright 2024 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "content/browser/file_system_access/file_path_watcher/file_path_watcher.h"
++
++#include <memory>
++
++#include "base/memory/ptr_util.h"
++#include "build/build_config.h"
++#include "content/browser/file_system_access/file_path_watcher/file_path_watcher_kqueue.h"
++
++namespace content {
++
++namespace {
++
++class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate {
++ public:
++  FilePathWatcherImpl() = default;
++  FilePathWatcherImpl(const FilePathWatcherImpl&) = delete;
++  FilePathWatcherImpl& operator=(const FilePathWatcherImpl&) = delete;
++  ~FilePathWatcherImpl() override = default;
++
++  bool Watch(const base::FilePath& path,
++             Type type,
++             const FilePathWatcher::Callback& callback) override {
++    DCHECK(!impl_.get());
++    if (type == Type::kRecursive) {
++      if (!FilePathWatcher::RecursiveWatchAvailable()) {
++        return false;
++      }
++    } else {
++      impl_ = std::make_unique<FilePathWatcherKQueue>();
++    }
++    DCHECK(impl_.get());
++    return impl_->Watch(path, type, callback);
++  }
++
++  void Cancel() override {
++    if (impl_.get()) {
++      impl_->Cancel();
++    }
++    set_cancelled();
++  }
++
++ private:
++  std::unique_ptr<PlatformDelegate> impl_;
++};
++
++}  // namespace
++
++FilePathWatcher::FilePathWatcher()
++    : FilePathWatcher(std::make_unique<FilePathWatcherImpl>()) {}
++
++}  // namespace content
diff --git a/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h b/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h
new file mode 100644
index 0000000000..5c9630c5ef
--- /dev/null
+++ b/chromium/patches/patch-content_browser_file__system__access_file__path__watcher_file__path__watcher__kqueue.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/file_system_access/file_path_watcher/file_path_watcher_kqueue.h.orig	2024-07-24 02:44:37.116828000 +0000
++++ content/browser/file_system_access/file_path_watcher/file_path_watcher_kqueue.h
+@@ -5,6 +5,7 @@
+ #ifndef CONTENT_BROWSER_FILE_SYSTEM_ACCESS_FILE_PATH_WATCHER_FILE_PATH_WATCHER_KQUEUE_H_
+ #define CONTENT_BROWSER_FILE_SYSTEM_ACCESS_FILE_PATH_WATCHER_FILE_PATH_WATCHER_KQUEUE_H_
+ 
++#include <sys/time.h>
+ #include <sys/event.h>
+ 
+ #include <memory>
diff --git a/chromium/patches/patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc b/chromium/patches/patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc
new file mode 100644
index 0000000000..359b7382a0
--- /dev/null
+++ b/chromium/patches/patch-content_browser_file__system__access_file__system__access__local__path__watcher.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/file_system_access/file_system_access_local_path_watcher.cc.orig	2024-07-24 02:44:37.120828400 +0000
++++ content/browser/file_system_access/file_system_access_local_path_watcher.cc
+@@ -62,7 +62,7 @@ void FileSystemAccessLocalPathWatcher::I
+   FilePathWatcher::WatchOptions watch_options{
+       .type = scope().IsRecursive() ? FilePathWatcher::Type::kRecursive
+                                     : FilePathWatcher::Type::kNonRecursive,
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+       // Note: `report_modified_path` is also present on Android
+       // and Fuchsia. Update this switch if support for watching
+       // the local file system is added on those platforms.
diff --git a/chromium/patches/patch-content_browser_font__access_font__enumeration__data__source.cc b/chromium/patches/patch-content_browser_font__access_font__enumeration__data__source.cc
new file mode 100644
index 0000000000..8abdcff799
--- /dev/null
+++ b/chromium/patches/patch-content_browser_font__access_font__enumeration__data__source.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/font_access/font_enumeration_data_source.cc.orig	2024-07-24 02:44:37.128829000 +0000
++++ content/browser/font_access/font_enumeration_data_source.cc
+@@ -16,7 +16,7 @@
+ #include "content/browser/font_access/font_enumeration_data_source_win.h"
+ #elif BUILDFLAG(IS_APPLE)
+ #include "content/browser/font_access/font_enumeration_data_source_mac.h"
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/browser/font_access/font_enumeration_data_source_linux.h"
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+@@ -61,7 +61,7 @@ std::unique_ptr<FontEnumerationDataSourc
+   return std::make_unique<FontEnumerationDataSourceWin>();
+ #elif BUILDFLAG(IS_APPLE)
+   return std::make_unique<FontEnumerationDataSourceMac>();
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   return std::make_unique<FontEnumerationDataSourceLinux>();
+ #else
+   return std::make_unique<FontEnumerationDataSourceNull>();
+@@ -76,7 +76,7 @@ bool FontEnumerationDataSource::IsOsSupp
+   return true;
+ #elif BUILDFLAG(IS_APPLE)
+   return true;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   return true;
+ #else
+   return false;
diff --git a/chromium/patches/patch-content_browser_gpu_compositor__util.cc b/chromium/patches/patch-content_browser_gpu_compositor__util.cc
new file mode 100644
index 0000000000..03fc396995
--- /dev/null
+++ b/chromium/patches/patch-content_browser_gpu_compositor__util.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/compositor_util.cc.orig	2024-07-24 02:44:37.132829400 +0000
++++ content/browser/gpu/compositor_util.cc
+@@ -154,7 +154,7 @@ std::vector<GpuFeatureData> GetGpuFeatur
+       "video_decode",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE,
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+           !base::FeatureList::IsEnabled(media::kVaapiVideoDecodeLinux) ||
+ #endif  // BUILDFLAG(IS_LINUX)
+               command_line.HasSwitch(switches::kDisableAcceleratedVideoDecode)),
+@@ -166,7 +166,7 @@ std::vector<GpuFeatureData> GetGpuFeatur
+       "video_encode",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE,
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+           !base::FeatureList::IsEnabled(media::kVaapiVideoEncodeLinux)),
+ #else
+           command_line.HasSwitch(switches::kDisableAcceleratedVideoEncode)),
diff --git a/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.cc b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.cc
new file mode 100644
index 0000000000..ffbc571e86
--- /dev/null
+++ b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/gpu_data_manager_impl.cc.orig	2024-07-24 02:44:37.132829400 +0000
++++ content/browser/gpu/gpu_data_manager_impl.cc
+@@ -397,7 +397,7 @@ void GpuDataManagerImpl::OnDisplayMetric
+   private_->OnDisplayMetricsChanged(display, changed_metrics);
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool GpuDataManagerImpl::IsGpuMemoryBufferNV12Supported() {
+   base::AutoLock auto_lock(lock_);
+   return private_->IsGpuMemoryBufferNV12Supported();
diff --git a/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.h b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.h
new file mode 100644
index 0000000000..d5db8b118b
--- /dev/null
+++ b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/gpu_data_manager_impl.h.orig	2024-07-24 02:44:37.132829400 +0000
++++ content/browser/gpu/gpu_data_manager_impl.h
+@@ -219,7 +219,7 @@ class CONTENT_EXPORT GpuDataManagerImpl 
+   void OnDisplayMetricsChanged(const display::Display& display,
+                                uint32_t changed_metrics) override;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   bool IsGpuMemoryBufferNV12Supported();
+   void SetGpuMemoryBufferNV12Supported(bool supported);
+ #endif  // BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.cc b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.cc
new file mode 100644
index 0000000000..062a63e2b8
--- /dev/null
+++ b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/gpu_data_manager_impl_private.cc.orig	2024-07-24 02:44:37.136829900 +0000
++++ content/browser/gpu/gpu_data_manager_impl_private.cc
+@@ -1697,7 +1697,7 @@ void GpuDataManagerImplPrivate::RecordCo
+   UMA_HISTOGRAM_ENUMERATION("GPU.CompositingMode", compositing_mode);
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool GpuDataManagerImplPrivate::IsGpuMemoryBufferNV12Supported() {
+   return is_gpu_memory_buffer_NV12_supported_;
+ }
diff --git a/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.h b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.h
new file mode 100644
index 0000000000..4fa0b67ca2
--- /dev/null
+++ b/chromium/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/gpu_data_manager_impl_private.h.orig	2024-07-24 02:44:37.136829900 +0000
++++ content/browser/gpu/gpu_data_manager_impl_private.h
+@@ -150,7 +150,7 @@ class CONTENT_EXPORT GpuDataManagerImplP
+   void OnDisplayMetricsChanged(const display::Display& display,
+                                uint32_t changed_metrics);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   bool IsGpuMemoryBufferNV12Supported();
+   void SetGpuMemoryBufferNV12Supported(bool supported);
+ #endif  // BUILDFLAG(IS_LINUX)
+@@ -302,7 +302,7 @@ class CONTENT_EXPORT GpuDataManagerImplP
+   bool application_is_visible_ = true;
+ 
+   bool disable_gpu_compositing_ = false;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   bool is_gpu_memory_buffer_NV12_supported_ = false;
+ #endif  // BUILDFLAG(IS_LINUX)
+ };
diff --git a/chromium/patches/patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc b/chromium/patches/patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc
new file mode 100644
index 0000000000..ef6c72c98a
--- /dev/null
+++ b/chromium/patches/patch-content_browser_gpu_gpu__memory__buffer__manager__singleton.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/gpu_memory_buffer_manager_singleton.cc.orig	2024-07-24 02:44:37.136829900 +0000
++++ content/browser/gpu/gpu_memory_buffer_manager_singleton.cc
+@@ -54,7 +54,7 @@ scoped_refptr<base::SingleThreadTaskRunn
+ #endif
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool IsGpuMemoryBufferNV12Supported() {
+   static bool is_computed = false;
+   static bool supported = false;
+@@ -117,7 +117,7 @@ void GpuMemoryBufferManagerSingleton::On
+     SetNativeConfigurations(std::move(configs));
+   }
+ #endif  // BUILDFLAG(IS_OZONE_X11)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Dynamic check whether the NV12 format is supported as it may be
+   // inconsistent between the system GBM (Generic Buffer Management) and
+   // chromium miniGBM.
diff --git a/chromium/patches/patch-content_browser_gpu_gpu__process__host.cc b/chromium/patches/patch-content_browser_gpu_gpu__process__host.cc
index fc4ad719ca..a985636417 100644
--- a/chromium/patches/patch-content_browser_gpu_gpu__process__host.cc
+++ b/chromium/patches/patch-content_browser_gpu_gpu__process__host.cc
@@ -1,13 +1,25 @@
 $NetBSD$
 
---- content/browser/gpu/gpu_process_host.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/gpu/gpu_process_host.cc.orig	2024-07-24 02:44:37.136829900 +0000
 +++ content/browser/gpu/gpu_process_host.cc
-@@ -1117,7 +1117,7 @@ bool GpuProcessHost::LaunchGpuProcess() 
-   std::unique_ptr<base::CommandLine> cmd_line =
-       std::make_unique<base::CommandLine>(base::CommandLine::NO_PROGRAM);
- #else
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   int child_flags = gpu_launcher.empty() ? ChildProcessHost::CHILD_ALLOW_SELF
-                                          : ChildProcessHost::CHILD_NORMAL;
- #elif defined(OS_MACOSX)
+@@ -273,6 +273,7 @@ static const char* const kSwitchNames[] 
+     switches::kEnableLowEndDeviceMode,
+     switches::kDisableSkiaGraphite,
+     switches::kDisableLowEndDeviceMode,
++    switches::kDisableUnveil,
+     switches::kProfilingAtStart,
+     switches::kProfilingFile,
+     switches::kProfilingFlush,
+@@ -300,7 +301,7 @@ static const char* const kSwitchNames[] 
+     switches::kOzoneDumpFile,
+     switches::kEnableNativeGpuMemoryBuffers,
+ #endif
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     switches::kX11Display,
+     switches::kNoXshm,
+ #endif
diff --git a/chromium/patches/patch-content_browser_media_frameless__media__interface__proxy.h b/chromium/patches/patch-content_browser_media_frameless__media__interface__proxy.h
new file mode 100644
index 0000000000..dbf30efe59
--- /dev/null
+++ b/chromium/patches/patch-content_browser_media_frameless__media__interface__proxy.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/media/frameless_media_interface_proxy.h.orig	2024-07-24 02:44:37.216837600 +0000
++++ content/browser/media/frameless_media_interface_proxy.h
+@@ -19,7 +19,7 @@
+ #include "mojo/public/cpp/bindings/receiver_set.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "media/mojo/mojom/stable/stable_video_decoder.mojom.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+@@ -105,7 +105,7 @@ class FramelessMediaInterfaceProxy final
+   // Connections to the renderer.
+   mojo::ReceiverSet<media::mojom::InterfaceFactory> receivers_;
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Connection to the StableVideoDecoderFactory that lives in a utility
+   // process. This is only used for out-of-process video decoding and only when
+   // the FramelessMediaInterfaceProxy is created without a RenderProcessHost
diff --git a/chromium/patches/patch-content_browser_media_media__keys__listener__manager__impl.cc b/chromium/patches/patch-content_browser_media_media__keys__listener__manager__impl.cc
new file mode 100644
index 0000000000..6ad8e466f2
--- /dev/null
+++ b/chromium/patches/patch-content_browser_media_media__keys__listener__manager__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/media/media_keys_listener_manager_impl.cc.orig	2024-07-24 02:44:37.220838000 +0000
++++ content/browser/media/media_keys_listener_manager_impl.cc
+@@ -333,7 +333,7 @@ void MediaKeysListenerManagerImpl::Start
+     return;
+   }
+ 
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_WIN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) || BUILDFLAG(IS_WIN)
+   // Create SystemMediaControls with the SingletonHwnd.
+   browser_system_media_controls_ =
+       system_media_controls::SystemMediaControls::Create(
diff --git a/chromium/patches/patch-content_browser_memory_swap__metrics__driver__impl__linux.cc b/chromium/patches/patch-content_browser_memory_swap__metrics__driver__impl__linux.cc
deleted file mode 100644
index 7f39e55579..0000000000
--- a/chromium/patches/patch-content_browser_memory_swap__metrics__driver__impl__linux.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- content/browser/memory/swap_metrics_driver_impl_linux.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/browser/memory/swap_metrics_driver_impl_linux.cc
-@@ -43,6 +43,7 @@ SwapMetricsDriverImplLinux::~SwapMetrics
- 
- SwapMetricsDriver::SwapMetricsUpdateResult
- SwapMetricsDriverImplLinux::UpdateMetricsInternal(base::TimeDelta interval) {
-+#if !defined(OS_BSD)
-   base::VmStatInfo vmstat;
-   if (!base::GetVmStatInfo(&vmstat)) {
-     return SwapMetricsDriver::SwapMetricsUpdateResult::kSwapMetricsUpdateFailed;
-@@ -61,6 +62,9 @@ SwapMetricsDriverImplLinux::UpdateMetric
-   delegate_->OnSwapOutCount(out_counts, interval);
- 
-   return SwapMetricsDriver::SwapMetricsUpdateResult::kSwapMetricsUpdateSuccess;
-+#else
-+  return SwapMetricsDriver::SwapMetricsUpdateResult::kSwapMetricsUpdateFailed;
-+#endif
- }
- 
- }  // namespace content
diff --git a/chromium/patches/patch-content_browser_network__service__instance__impl.cc b/chromium/patches/patch-content_browser_network__service__instance__impl.cc
new file mode 100644
index 0000000000..e3a834c856
--- /dev/null
+++ b/chromium/patches/patch-content_browser_network__service__instance__impl.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/network_service_instance_impl.cc.orig	2024-07-24 02:44:37.244840400 +0000
++++ content/browser/network_service_instance_impl.cc
+@@ -82,7 +82,7 @@
+ #include "content/browser/network/network_service_process_tracker_win.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/browser/system_dns_resolution/system_dns_resolver.h"
+ #include "services/network/public/mojom/system_dns_resolution.mojom-forward.h"
+ #endif
+@@ -360,7 +360,7 @@ void CreateInProcessNetworkService(
+                                 std::move(receiver)));
+ }
+ 
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Runs a self-owned SystemDnsResolverMojoImpl. This is meant to run on a
+ // high-priority thread pool.
+ void RunSystemDnsResolverOnThreadPool(
+@@ -429,7 +429,7 @@ network::mojom::NetworkServiceParamsPtr 
+   }
+ #endif  // BUILDFLAG(IS_POSIX)
+ 
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (GetContentClient()
+           ->browser()
+           ->ShouldRunOutOfProcessSystemDnsResolution() &&
diff --git a/chromium/patches/patch-content_browser_ppapi__plugin__process__host.cc b/chromium/patches/patch-content_browser_ppapi__plugin__process__host.cc
deleted file mode 100644
index d3b06b30a7..0000000000
--- a/chromium/patches/patch-content_browser_ppapi__plugin__process__host.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/browser/ppapi_plugin_process_host.cc.orig	2020-07-08 21:41:48.000000000 +0000
-+++ content/browser/ppapi_plugin_process_host.cc
-@@ -365,7 +365,7 @@ bool PpapiPluginProcessHost::Init(const 
-   base::CommandLine::StringType plugin_launcher =
-       browser_command_line.GetSwitchValueNative(switches::kPpapiPluginLauncher);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   int flags = plugin_launcher.empty() ? ChildProcessHost::CHILD_ALLOW_SELF :
-                                         ChildProcessHost::CHILD_NORMAL;
- #elif defined(OS_MACOSX)
diff --git a/chromium/patches/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc b/chromium/patches/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc
index 4ceec006c7..d17dbf59e2 100644
--- a/chromium/patches/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc
+++ b/chromium/patches/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- content/browser/ppapi_plugin_process_host_receiver_bindings.cc.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/ppapi_plugin_process_host_receiver_bindings.cc.orig	2024-07-24 02:44:37.256841400 +0000
 +++ content/browser/ppapi_plugin_process_host_receiver_bindings.cc
 @@ -8,7 +8,7 @@
  
  #include "build/build_config.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "components/services/font/public/mojom/font_service.mojom.h"  // nogncheck
  #include "content/browser/font_service.h"  // nogncheck
  #endif
@@ -15,8 +19,8 @@ $NetBSD$
  
  void PpapiPluginProcessHost::BindHostReceiver(
      mojo::GenericPendingReceiver receiver) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (auto font_receiver = receiver.As<font_service::mojom::FontService>())
      ConnectToFontService(std::move(font_receiver));
  #endif
diff --git a/chromium/patches/patch-content_browser_renderer__host_delegated__frame__host.cc b/chromium/patches/patch-content_browser_renderer__host_delegated__frame__host.cc
new file mode 100644
index 0000000000..62088a979f
--- /dev/null
+++ b/chromium/patches/patch-content_browser_renderer__host_delegated__frame__host.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/delegated_frame_host.cc.orig	2024-07-24 02:44:37.296845400 +0000
++++ content/browser/renderer_host/delegated_frame_host.cc
+@@ -318,7 +318,7 @@ void DelegatedFrameHost::EmbedSurface(
+ 
+   if (!primary_surface_id ||
+       primary_surface_id->local_surface_id() != local_surface_id_) {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+     // On Windows and Linux, we would like to produce new content as soon as
+     // possible or the OS will create an additional black gutter. Until we can
+     // block resize on surface synchronization on these platforms, we will not
diff --git a/chromium/patches/patch-content_browser_renderer__host_input_input__device__change__observer.cc b/chromium/patches/patch-content_browser_renderer__host_input_input__device__change__observer.cc
index 5c674b8f10..576bc4fb7b 100644
--- a/chromium/patches/patch-content_browser_renderer__host_input_input__device__change__observer.cc
+++ b/chromium/patches/patch-content_browser_renderer__host_input_input__device__change__observer.cc
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- content/browser/renderer_host/input/input_device_change_observer.cc.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/input/input_device_change_observer.cc.orig	2024-07-24 02:44:37.304846000 +0000
 +++ content/browser/renderer_host/input/input_device_change_observer.cc
-@@ -10,7 +10,7 @@
+@@ -9,7 +9,7 @@
  
- #if defined(OS_WIN)
+ #if BUILDFLAG(IS_WIN)
  #include "ui/events/devices/input_device_observer_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "ui/events/devices/device_data_manager.h"
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
  #include "ui/events/devices/input_device_observer_android.h"
-@@ -22,7 +22,7 @@ InputDeviceChangeObserver::InputDeviceCh
+@@ -21,7 +21,7 @@ InputDeviceChangeObserver::InputDeviceCh
    render_view_host_impl_ = rvhi;
- #if defined(OS_WIN)
+ #if BUILDFLAG(IS_WIN)
    ui::InputDeviceObserverWin::GetInstance()->AddObserver(this);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    ui::DeviceDataManager::GetInstance()->AddObserver(this);
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
    ui::InputDeviceObserverAndroid::GetInstance()->AddObserver(this);
-@@ -32,7 +32,7 @@ InputDeviceChangeObserver::InputDeviceCh
+@@ -31,7 +31,7 @@ InputDeviceChangeObserver::InputDeviceCh
  InputDeviceChangeObserver::~InputDeviceChangeObserver() {
- #if defined(OS_WIN)
+ #if BUILDFLAG(IS_WIN)
    ui::InputDeviceObserverWin::GetInstance()->RemoveObserver(this);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    ui::DeviceDataManager::GetInstance()->RemoveObserver(this);
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
    ui::InputDeviceObserverAndroid::GetInstance()->RemoveObserver(this);
diff --git a/chromium/patches/patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc b/chromium/patches/patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc
new file mode 100644
index 0000000000..37fb257459
--- /dev/null
+++ b/chromium/patches/patch-content_browser_renderer__host_media_service__video__capture__device__launcher.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/media/service_video_capture_device_launcher.cc.orig	2024-07-24 02:44:37.320847700 +0000
++++ content/browser/renderer_host/media/service_video_capture_device_launcher.cc
+@@ -25,7 +25,7 @@
+ #include "media/base/media_switches.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "content/browser/gpu/gpu_data_manager_impl.h"
+ #endif
+ 
+@@ -173,7 +173,7 @@ void ServiceVideoCaptureDeviceLauncher::
+   }
+ #else
+   if (switches::IsVideoCaptureUseGpuMemoryBufferEnabled()) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     // On Linux, additionally check whether the NV12 GPU memory buffer is
+     // supported.
+     if (GpuDataManagerImpl::GetInstance()->IsGpuMemoryBufferNV12Supported())
diff --git a/chromium/patches/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc b/chromium/patches/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc
index 3388b44ffb..9743261f81 100644
--- a/chromium/patches/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc
+++ b/chromium/patches/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- content/browser/renderer_host/pepper/pepper_file_io_host.cc.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/pepper/pepper_file_io_host.cc.orig	2024-07-24 02:44:37.352850700 +0000
 +++ content/browser/renderer_host/pepper/pepper_file_io_host.cc
-@@ -433,7 +433,7 @@ void PepperFileIOHost::OnLocalFileOpened
+@@ -462,7 +462,7 @@ void PepperFileIOHost::OnLocalFileOpened
      ppapi::host::ReplyMessageContext reply_context,
      const base::FilePath& path,
      base::File::Error error_code) {
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Quarantining a file before its contents are available is only supported on
    // Windows and Linux.
    if (!FileOpenForWrite(open_flags_) || error_code != base::File::FILE_OK) {
-@@ -454,7 +454,7 @@ void PepperFileIOHost::OnLocalFileOpened
+@@ -496,7 +496,7 @@ void PepperFileIOHost::OnLocalFileOpened
  #endif
  }
  
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  void PepperFileIOHost::OnLocalFileQuarantined(
      ppapi::host::ReplyMessageContext reply_context,
      const base::FilePath& path,
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__message__filter.cc b/chromium/patches/patch-content_browser_renderer__host_render__message__filter.cc
deleted file mode 100644
index 99abead4a7..0000000000
--- a/chromium/patches/patch-content_browser_renderer__host_render__message__filter.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- content/browser/renderer_host/render_message_filter.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/browser/renderer_host/render_message_filter.cc
-@@ -70,7 +70,7 @@
- #if defined(OS_MACOSX)
- #include "ui/accelerated_widget_mac/window_resize_helper_mac.h"
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "base/linux_util.h"
- #include "base/threading/platform_thread.h"
- #endif
-@@ -117,7 +117,7 @@ void RenderMessageFilter::GenerateRoutin
-   std::move(callback).Run(render_widget_helper_->GetNextRoutingID());
- }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void RenderMessageFilter::SetThreadPriorityOnFileThread(
-     base::PlatformThreadId ns_tid,
-     base::ThreadPriority priority) {
-@@ -138,7 +138,7 @@ void RenderMessageFilter::SetThreadPrior
- }
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void RenderMessageFilter::SetThreadPriority(int32_t ns_tid,
-                                             base::ThreadPriority priority) {
-   constexpr base::TaskTraits kTraits = {
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__message__filter.h b/chromium/patches/patch-content_browser_renderer__host_render__message__filter.h
deleted file mode 100644
index e0497c032b..0000000000
--- a/chromium/patches/patch-content_browser_renderer__host_render__message__filter.h
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
---- content/browser/renderer_host/render_message_filter.h.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/browser/renderer_host/render_message_filter.h
-@@ -79,14 +79,14 @@ class CONTENT_EXPORT RenderMessageFilter
-   // mojom::RenderMessageFilter:
-   void GenerateRoutingID(GenerateRoutingIDCallback routing_id) override;
-   void HasGpuProcess(HasGpuProcessCallback callback) override;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   void SetThreadPriority(int32_t ns_tid,
-                          base::ThreadPriority priority) override;
- #endif
- 
-   void OnResolveProxy(const GURL& url, IPC::Message* reply_msg);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   void SetThreadPriorityOnFileThread(base::PlatformThreadId ns_tid,
-                                      base::ThreadPriority priority);
- #endif
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.cc b/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.cc
index 7e8ebcd134..4105c8e15f 100644
--- a/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.cc
+++ b/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.cc
@@ -1,76 +1,70 @@
 $NetBSD$
 
---- content/browser/renderer_host/render_process_host_impl.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/render_process_host_impl.cc.orig	2024-07-24 02:44:37.376853000 +0000
 +++ content/browser/renderer_host/render_process_host_impl.cc
-@@ -240,7 +240,7 @@
- #include "content/browser/gpu/gpu_data_manager_impl.h"
+@@ -224,7 +224,7 @@
+ #include "third_party/blink/public/mojom/android_font_lookup/android_font_lookup.mojom.h"
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include <sys/resource.h>
- #include <sys/time.h>
  
-@@ -1224,7 +1224,7 @@ static constexpr size_t kUnknownPlatform
+ #include "components/services/font/public/mojom/font_service.mojom.h"  // nogncheck
+@@ -965,7 +965,7 @@ static constexpr size_t kUnknownPlatform
  // to indicate failure and std::numeric_limits<size_t>::max() to indicate
  // unlimited.
  size_t GetPlatformProcessLimit() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    struct rlimit limit;
    if (getrlimit(RLIMIT_NPROC, &limit) != 0)
      return kUnknownPlatformProcessLimit;
-@@ -1329,7 +1329,7 @@ class RenderProcessHostImpl::IOThreadHos
+@@ -1151,7 +1151,7 @@ class RenderProcessHostImpl::IOThreadHos
+   IOThreadHostImpl& operator=(const IOThreadHostImpl& other) = delete;
+ 
+   void SetPid(base::ProcessId child_pid) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     child_thread_type_switcher_.SetPid(child_pid);
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+   }
+@@ -1172,7 +1172,7 @@ class RenderProcessHostImpl::IOThreadHos
          return;
      }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) {
        ConnectToFontService(std::move(font_receiver));
        return;
-@@ -1763,7 +1763,7 @@ bool RenderProcessHostImpl::Init() {
-   renderer_prefix =
-       browser_command_line.GetSwitchValueNative(switches::kRendererCmdPrefix);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   int flags = renderer_prefix.empty() ? ChildProcessHost::CHILD_ALLOW_SELF
-                                       : ChildProcessHost::CHILD_NORMAL;
- #elif defined(OS_MACOSX)
-@@ -3269,7 +3269,7 @@ void RenderProcessHostImpl::PropagateBro
-     service_manager::switches::kDisableInProcessStackTraces,
-     service_manager::switches::kDisableSeccompFilterSandbox,
-     service_manager::switches::kNoSandbox,
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-     switches::kDisableDevShmUsage,
- #endif
- #if defined(OS_MACOSX)
-@@ -3681,7 +3681,7 @@ void RenderProcessHostImpl::OnChannelCon
-     for (auto& observer : observers_)
-       observer.RenderProcessReady(this);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     // Provide /proc/{renderer pid}/status and statm files for
-     // MemoryUsageMonitor in blink.
-     ProvideStatusFileForRenderer();
-@@ -4983,7 +4983,7 @@ void RenderProcessHostImpl::OnProcessLau
-     for (auto& observer : observers_)
-       observer.RenderProcessReady(this);
+@@ -1266,7 +1266,7 @@ class RenderProcessHostImpl::IOThreadHos
+   std::unique_ptr<service_manager::BinderRegistry> binders_;
+   mojo::Receiver<mojom::ChildProcessHost> receiver_{this};
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     // Provide /proc/{renderer pid}/status and statm files for
-     // MemoryUsageMonitor in blink.
-     ProvideStatusFileForRenderer();
-@@ -5153,7 +5153,7 @@ void RenderProcessHost::InterceptBindHos
-   GetBindHostReceiverInterceptor() = std::move(callback);
- }
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   mojo::Remote<media::mojom::VideoEncodeAcceleratorProviderFactory>
+       video_encode_accelerator_factory_remote_;
+   ChildThreadTypeSwitcher child_thread_type_switcher_;
+@@ -3429,7 +3429,7 @@ void RenderProcessHostImpl::AppendRender
+             base::TimeTicks::UnixEpoch().since_origin().InMicroseconds()));
+   }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void RenderProcessHostImpl::ProvideStatusFileForRenderer() {
-   // We use ScopedAllowBlocking, because opening /proc/{pid}/status and
-   // /proc/{pid}/statm is not blocking call.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Append `kDisableVideoCaptureUseGpuMemoryBuffer` flag if there is no support
+   // for NV12 GPU memory buffer.
+   if (switches::IsVideoCaptureUseGpuMemoryBufferEnabled() &&
+@@ -3487,6 +3487,7 @@ void RenderProcessHostImpl::PropagateBro
+     switches::kDisableSpeechAPI,
+     switches::kDisableThreadedCompositing,
+     switches::kDisableTouchDragDrop,
++    switches::kDisableUnveil,
+     switches::kDisableV8IdleTasks,
+     switches::kDisableVideoCaptureUseGpuMemoryBuffer,
+     switches::kDisableWebGLImageChromium,
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.h b/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.h
index 38a77d3ce0..c52b12d56f 100644
--- a/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.h
+++ b/chromium/patches/patch-content_browser_renderer__host_render__process__host__impl.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- content/browser/renderer_host/render_process_host_impl.h.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/render_process_host_impl.h.orig	2024-07-24 02:44:37.376853000 +0000
 +++ content/browser/renderer_host/render_process_host_impl.h
-@@ -951,7 +951,7 @@ class CONTENT_EXPORT RenderProcessHostIm
-   // if the request isn't handled on the IO thread.
-   void OnBindHostReceiver(mojo::GenericPendingReceiver receiver);
+@@ -594,7 +594,7 @@ class CONTENT_EXPORT RenderProcessHostIm
+   // Sets this RenderProcessHost to be guest only. For Testing only.
+   void SetForGuestsOnlyForTesting();
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Provides /proc/{renderer pid}/status and statm files for the renderer,
-   // because the files are required to calculate the renderer's private
-   // footprint on Chromium Linux. Regarding MacOS X and Windows, we have
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
+   // Launch the zygote early in the browser startup.
+   static void EarlyZygoteLaunch();
+ #endif  // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__view__host__impl.cc b/chromium/patches/patch-content_browser_renderer__host_render__view__host__impl.cc
index 63845ebdea..85e61587fe 100644
--- a/chromium/patches/patch-content_browser_renderer__host_render__view__host__impl.cc
+++ b/chromium/patches/patch-content_browser_renderer__host_render__view__host__impl.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- content/browser/renderer_host/render_view_host_impl.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/render_view_host_impl.cc.orig	2024-07-24 02:44:37.380853400 +0000
 +++ content/browser/renderer_host/render_view_host_impl.cc
-@@ -230,7 +230,7 @@ void RenderViewHostImpl::GetPlatformSpec
+@@ -273,7 +273,7 @@ void RenderViewHostImpl::GetPlatformSpec
        display::win::ScreenWin::GetSystemMetricsInDIP(SM_CYVSCROLL);
    prefs->arrow_bitmap_width_horizontal_scroll_bar_in_dips =
        display::win::ScreenWin::GetSystemMetricsInDIP(SM_CXHSCROLL);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   prefs->system_font_family_name = gfx::Font().GetFontName();
- #elif defined(OS_FUCHSIA)
-   // Make Blink's "focus ring" invisible. The focus ring is a hairline border
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+   if (command_line->HasSwitch(switches::kSystemFontFamily)) {
+     prefs->system_font_family_name =
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc b/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc
index 685d5fcc61..12a57c9392 100644
--- a/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc
+++ b/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc
@@ -1,45 +1,53 @@
 $NetBSD$
 
---- content/browser/renderer_host/render_widget_host_view_aura.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/render_widget_host_view_aura.cc.orig	2024-07-24 02:44:37.384853800 +0000
 +++ content/browser/renderer_host/render_widget_host_view_aura.cc
-@@ -110,11 +110,11 @@
+@@ -120,7 +120,7 @@
  #include "ui/gfx/gdi_util.h"
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
  #include "content/browser/accessibility/browser_accessibility_auralinux.h"
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/base/ime/linux/text_edit_command_auralinux.h"  // nogncheck
- #include "ui/base/ime/linux/text_edit_key_bindings_delegate_auralinux.h"  // nogncheck
- #endif
-@@ -489,7 +489,7 @@ gfx::NativeViewAccessible RenderWidgetHo
-   if (manager)
-     return ToBrowserAccessibilityWin(manager->GetRoot())->GetCOM();
+ #include "ui/base/ime/linux/text_edit_command_auralinux.h"
+ #include "ui/base/ime/text_input_flags.h"
+@@ -469,7 +469,7 @@ gfx::NativeViewAccessible RenderWidgetHo
+     return ToBrowserAccessibilityWin(manager->GetBrowserAccessibilityRoot())
+         ->GetCOM();
  
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    BrowserAccessibilityManager* manager =
        host()->GetOrCreateRootBrowserAccessibilityManager();
-   if (manager && manager->GetRoot())
-@@ -2150,7 +2150,7 @@ bool RenderWidgetHostViewAura::NeedsInpu
+   if (manager && manager->GetBrowserAccessibilityRoot())
+@@ -1730,7 +1730,7 @@ bool RenderWidgetHostViewAura::ShouldDoL
+   return host() && host()->delegate() && host()->delegate()->ShouldDoLearning();
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool RenderWidgetHostViewAura::SetCompositionFromExistingText(
+     const gfx::Range& range,
+     const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) {
+@@ -2558,7 +2558,7 @@ bool RenderWidgetHostViewAura::NeedsInpu
  }
  
  bool RenderWidgetHostViewAura::NeedsMouseCapture() {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    return NeedsInputGrab();
  #else
    return false;
-@@ -2326,7 +2326,7 @@ void RenderWidgetHostViewAura::ForwardKe
+@@ -2742,7 +2742,7 @@ void RenderWidgetHostViewAura::ForwardKe
    if (!target_host)
      return;
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   ui::TextEditKeyBindingsDelegateAuraLinux* keybinding_delegate =
-       ui::GetTextEditKeyBindingsDelegate();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   auto* linux_ui = ui::LinuxUi::instance();
    std::vector<ui::TextEditCommandAuraLinux> commands;
+   if (!event.skip_if_unhandled && linux_ui && event.os_event &&
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.h b/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.h
new file mode 100644
index 0000000000..4e7bded782
--- /dev/null
+++ b/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/render_widget_host_view_aura.h.orig	2024-07-24 02:44:37.384853800 +0000
++++ content/browser/renderer_host/render_widget_host_view_aura.h
+@@ -260,7 +260,7 @@ class CONTENT_EXPORT RenderWidgetHostVie
+   ukm::SourceId GetClientSourceForMetrics() const override;
+   bool ShouldDoLearning() override;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   bool SetCompositionFromExistingText(
+       const gfx::Range& range,
+       const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override;
diff --git a/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc b/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
index 08c3e94ce5..d9dbb4bd79 100644
--- a/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
+++ b/chromium/patches/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- content/browser/renderer_host/render_widget_host_view_event_handler.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/renderer_host/render_widget_host_view_event_handler.cc.orig	2024-07-24 02:44:37.392854700 +0000
 +++ content/browser/renderer_host/render_widget_host_view_event_handler.cc
-@@ -653,7 +653,7 @@ bool RenderWidgetHostViewEventHandler::C
+@@ -596,7 +596,7 @@ bool RenderWidgetHostViewEventHandler::C
    if (event->type() == ui::ET_MOUSE_EXITED) {
      if (mouse_locked || selection_popup)
        return false;
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      // Don't forward the mouse leave message which is received when the context
      // menu is displayed by the page. This confuses the page and causes state
      // changes.
diff --git a/chromium/patches/patch-content_browser_sandbox__host__linux.cc b/chromium/patches/patch-content_browser_sandbox__host__linux.cc
new file mode 100644
index 0000000000..4ed7e52390
--- /dev/null
+++ b/chromium/patches/patch-content_browser_sandbox__host__linux.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/sandbox_host_linux.cc.orig	2024-07-24 02:44:37.408856200 +0000
++++ content/browser/sandbox_host_linux.cc
+@@ -45,6 +45,7 @@ void SandboxHostLinux::Init() {
+   // Instead, it replies on a temporary socket provided by the caller.
+   PCHECK(0 == shutdown(browser_socket, SHUT_WR)) << "shutdown";
+ 
++#if !BUILDFLAG(IS_BSD) 
+   int pipefds[2];
+   CHECK(0 == pipe(pipefds));
+   const int child_lifeline_fd = pipefds[0];
+@@ -55,6 +56,7 @@ void SandboxHostLinux::Init() {
+   ipc_thread_ = std::make_unique<base::DelegateSimpleThread>(
+       ipc_handler_.get(), "sandbox_ipc_thread");
+   ipc_thread_->Start();
++#endif
+ }
+ 
+ }  // namespace content
diff --git a/chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor.cc b/chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor.cc
deleted file mode 100644
index 821863b806..0000000000
--- a/chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/browser/scheduler/responsiveness/jank_monitor.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/browser/scheduler/responsiveness/jank_monitor.cc
-@@ -322,7 +322,7 @@ void JankMonitor::ThreadExecutionState::
-     // in context menus, among others). Simply ignore the mismatches for now.
-     // See https://crbug.com/929813 for the details of why the mismatch
-     // happens.
--#if !defined(OS_CHROMEOS) && defined(OS_LINUX) && defined(USE_OZONE)
-+#if !defined(OS_CHROMEOS) && (defined(OS_LINUX) || defined(OS_BSD)) && defined(USE_OZONE)
-     task_execution_metadata_.clear();
- #endif
-     return;
diff --git a/chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc b/chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc
new file mode 100644
index 0000000000..fa1576c498
--- /dev/null
+++ b/chromium/patches/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/scheduler/responsiveness/jank_monitor_impl.cc.orig	2024-07-24 02:44:37.408856200 +0000
++++ content/browser/scheduler/responsiveness/jank_monitor_impl.cc
+@@ -340,7 +340,7 @@ void JankMonitorImpl::ThreadExecutionSta
+     // in context menus, among others). Simply ignore the mismatches for now.
+     // See https://crbug.com/929813 for the details of why the mismatch
+     // happens.
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) && \
+     BUILDFLAG(IS_OZONE)
+     task_execution_metadata_.clear();
+ #endif
diff --git a/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.cc b/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.cc
index 148b660004..700e8f5c8d 100644
--- a/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.cc
+++ b/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- content/browser/scheduler/responsiveness/native_event_observer.cc.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/scheduler/responsiveness/native_event_observer.cc.orig	2024-07-24 02:44:37.408856200 +0000
 +++ content/browser/scheduler/responsiveness/native_event_observer.cc
 @@ -15,7 +15,7 @@
  
  #include "ui/events/platform/platform_event_source.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "ui/aura/env.h"
  #include "ui/events/event.h"
  #endif
@@ -15,8 +19,8 @@ $NetBSD$
    DeregisterObserver();
  }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  void NativeEventObserver::RegisterObserver() {
    aura::Env::GetInstance()->AddWindowEventDispatcherObserver(this);
  }
diff --git a/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.h b/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.h
index 024abbbb84..c7ed25af47 100644
--- a/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.h
+++ b/chromium/patches/patch-content_browser_scheduler_responsiveness_native__event__observer.h
@@ -1,49 +1,53 @@
 $NetBSD$
 
---- content/browser/scheduler/responsiveness/native_event_observer.h.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/scheduler/responsiveness/native_event_observer.h.orig	2024-07-24 02:44:37.408856200 +0000
 +++ content/browser/scheduler/responsiveness/native_event_observer.h
-@@ -14,7 +14,7 @@
+@@ -16,7 +16,7 @@
  #include "content/public/browser/native_event_processor_observer_mac.h"
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "ui/aura/window_event_dispatcher_observer.h"
  #endif
  
-@@ -39,7 +39,7 @@ namespace responsiveness {
+@@ -41,7 +41,7 @@ namespace responsiveness {
  class CONTENT_EXPORT NativeEventObserver
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_MAC)
      : public NativeEventProcessorObserver
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      : public aura::WindowEventDispatcherObserver
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
      : public base::MessagePumpForUI::Observer
-@@ -56,7 +56,7 @@ class CONTENT_EXPORT NativeEventObserver
+@@ -58,7 +58,7 @@ class CONTENT_EXPORT NativeEventObserver
    NativeEventObserver(WillRunEventCallback will_run_event_callback,
                        DidRunEventCallback did_run_event_callback);
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   ~NativeEventObserver() override;
- #else
-   virtual ~NativeEventObserver();
-@@ -68,7 +68,7 @@ class CONTENT_EXPORT NativeEventObserver
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ 
+   NativeEventObserver(const NativeEventObserver&) = delete;
+   NativeEventObserver& operator=(const NativeEventObserver&) = delete;
+@@ -74,7 +74,7 @@ class CONTENT_EXPORT NativeEventObserver
    // Exposed for tests.
    void WillRunNativeEvent(const void* opaque_identifier) override;
    void DidRunNativeEvent(const void* opaque_identifier) override;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // aura::WindowEventDispatcherObserver overrides:
    void OnWindowEventDispatcherStartedProcessing(
        aura::WindowEventDispatcher* dispatcher,
-@@ -85,7 +85,7 @@ class CONTENT_EXPORT NativeEventObserver
+@@ -91,7 +91,7 @@ class CONTENT_EXPORT NativeEventObserver
    void RegisterObserver();
    void DeregisterObserver();
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    struct EventInfo {
-     const void* unique_id;
+     raw_ptr<const void> unique_id;
    };
diff --git a/chromium/patches/patch-content_browser_utility__process__host.cc b/chromium/patches/patch-content_browser_utility__process__host.cc
index 88946b1c0b..0aac05f905 100644
--- a/chromium/patches/patch-content_browser_utility__process__host.cc
+++ b/chromium/patches/patch-content_browser_utility__process__host.cc
@@ -1,22 +1,87 @@
 $NetBSD$
 
---- content/browser/utility_process_host.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/utility_process_host.cc.orig	2024-07-24 02:44:37.484863500 +0000
 +++ content/browser/utility_process_host.cc
-@@ -275,7 +275,7 @@ UtilityProcessHost::UtilityProcessHost()
+@@ -61,7 +61,7 @@
+ #include "content/browser/v8_snapshot_files.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/files/file_util.h"
+ #include "base/files/scoped_file.h"
+ #include "base/pickle.h"
+@@ -74,7 +74,7 @@
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "base/task/sequenced_task_runner.h"
+ #include "components/viz/host/gpu_client.h"
+ #include "media/capture/capture_switches.h"
+@@ -85,7 +85,7 @@ namespace content {
+ 
+ namespace {
  
- UtilityProcessHost::UtilityProcessHost(std::unique_ptr<Client> client)
-     : sandbox_type_(service_manager::SandboxType::kUtility),
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-       child_flags_(ChildProcessHost::CHILD_ALLOW_SELF),
- #else
-       child_flags_(ChildProcessHost::CHILD_NORMAL),
-@@ -487,7 +487,7 @@ bool UtilityProcessHost::StartProcess() 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ base::ScopedFD PassNetworkContextParentDirs(
+     std::vector<base::FilePath> network_context_parent_dirs) {
+   base::Pickle pickle;
+@@ -150,7 +150,7 @@ UtilityProcessHost::UtilityProcessHost(s
+       started_(false),
+       name_(u"utility process"),
+       file_data_(std::make_unique<ChildProcessLauncherFileData>()),
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+       allowed_gpu_(false),
+       gpu_client_(nullptr, base::OnTaskRunnerDeleter(nullptr)),
+ #endif
+@@ -209,7 +209,7 @@ void UtilityProcessHost::SetPreloadLibra
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+ void UtilityProcessHost::SetAllowGpuClient() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   allowed_gpu_ = true;
+ #endif
+ }
+@@ -349,7 +349,7 @@ bool UtilityProcessHost::StartProcess() 
        switches::kMuteAudio,
        switches::kUseFileForFakeAudioCapture,
-       switches::kAgcStartupMinVolume,
--#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_SOLARIS)
-+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) || \
+-    BUILDFLAG(IS_SOLARIS)
++    BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_NETBSD)
        switches::kAlsaInputDevice,
        switches::kAlsaOutputDevice,
  #endif
+@@ -408,7 +408,7 @@ bool UtilityProcessHost::StartProcess() 
+     file_data_->files_to_preload.merge(GetV8SnapshotFilesToPreload(*cmd_line));
+ #endif  // BUILDFLAG(IS_POSIX)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     // The network service should have access to the parent directories
+     // necessary for its usage.
+     if (sandbox_type_ == sandbox::mojom::Sandbox::kNetwork) {
+@@ -419,13 +419,13 @@ bool UtilityProcessHost::StartProcess() 
+     }
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+     // Pass `kVideoCaptureUseGpuMemoryBuffer` flag to video capture service only
+     // when the video capture use GPU memory buffer enabled.
+     if (metrics_name_ == video_capture::mojom::VideoCaptureService::Name_) {
+       bool pass_gpu_buffer_flag =
+           switches::IsVideoCaptureUseGpuMemoryBufferEnabled();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       // Check if NV12 GPU memory buffer supported at the same time.
+       pass_gpu_buffer_flag =
+           pass_gpu_buffer_flag &&
diff --git a/chromium/patches/patch-content_browser_utility__process__host.h b/chromium/patches/patch-content_browser_utility__process__host.h
new file mode 100644
index 0000000000..43b643f7a3
--- /dev/null
+++ b/chromium/patches/patch-content_browser_utility__process__host.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/utility_process_host.h.orig	2024-07-24 02:44:37.484863500 +0000
++++ content/browser/utility_process_host.h
+@@ -33,7 +33,7 @@ namespace base {
+ class Thread;
+ }  // namespace base
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ namespace viz {
+ class GpuClient;
+ }  // namespace viz
+@@ -200,7 +200,7 @@ class CONTENT_EXPORT UtilityProcessHost
+   };
+   LaunchState launch_state_ = LaunchState::kLaunchInProgress;
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   bool allowed_gpu_;
+   std::unique_ptr<viz::GpuClient, base::OnTaskRunnerDeleter> gpu_client_;
+ #endif
diff --git a/chromium/patches/patch-content_browser_utility__process__host__receiver__bindings.cc b/chromium/patches/patch-content_browser_utility__process__host__receiver__bindings.cc
index 5d8e485a94..61c4e103e9 100644
--- a/chromium/patches/patch-content_browser_utility__process__host__receiver__bindings.cc
+++ b/chromium/patches/patch-content_browser_utility__process__host__receiver__bindings.cc
@@ -1,22 +1,39 @@
 $NetBSD$
 
---- content/browser/utility_process_host_receiver_bindings.cc.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/utility_process_host_receiver_bindings.cc.orig	2024-07-24 02:44:37.484863500 +0000
 +++ content/browser/utility_process_host_receiver_bindings.cc
-@@ -10,7 +10,7 @@
+@@ -10,12 +10,12 @@
  #include "content/public/browser/content_browser_client.h"
  #include "content/public/common/content_client.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "components/services/font/public/mojom/font_service.mojom.h"  // nogncheck
  #include "content/browser/font_service.h"  // nogncheck
  #endif
-@@ -19,7 +19,7 @@ namespace content {
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "components/viz/host/gpu_client.h"
+ #include "content/public/browser/gpu_client.h"
+ #endif
+@@ -24,13 +24,13 @@ namespace content {
  
  void UtilityProcessHost::BindHostReceiver(
      mojo::GenericPendingReceiver receiver) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) {
      ConnectToFontService(std::move(font_receiver));
      return;
+   }
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   if (allowed_gpu_) {
+     // TODO(crbug.com/328099369) Remove once all clients get this directly.
+     if (auto gpu_receiver = receiver.As<viz::mojom::Gpu>()) {
diff --git a/chromium/patches/patch-content_browser_utility__sandbox__delegate.cc b/chromium/patches/patch-content_browser_utility__sandbox__delegate.cc
new file mode 100644
index 0000000000..ddf4a2dd24
--- /dev/null
+++ b/chromium/patches/patch-content_browser_utility__sandbox__delegate.cc
@@ -0,0 +1,34 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/utility_sandbox_delegate.cc.orig	2024-07-24 02:44:37.484863500 +0000
++++ content/browser/utility_sandbox_delegate.cc
+@@ -67,10 +67,10 @@ UtilitySandboxedProcessLauncherDelegate:
+ #if BUILDFLAG(IS_FUCHSIA)
+       sandbox_type_ == sandbox::mojom::Sandbox::kVideoCapture ||
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+       sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoDecoding ||
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+       sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoEncoding ||
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -127,10 +127,10 @@ ZygoteCommunication* UtilitySandboxedPro
+   // process upon startup.
+   if (sandbox_type_ == sandbox::mojom::Sandbox::kNetwork ||
+       sandbox_type_ == sandbox::mojom::Sandbox::kOnDeviceModelExecution ||
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+       sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoDecoding ||
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+       sandbox_type_ == sandbox::mojom::Sandbox::kHardwareVideoEncoding ||
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chromium/patches/patch-content_browser_v8__snapshot__files.cc b/chromium/patches/patch-content_browser_v8__snapshot__files.cc
index 3c0ce3b7a9..11fe03bdad 100644
--- a/chromium/patches/patch-content_browser_v8__snapshot__files.cc
+++ b/chromium/patches/patch-content_browser_v8__snapshot__files.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- content/browser/v8_snapshot_files.cc.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/v8_snapshot_files.cc.orig	2024-07-24 02:44:37.484863500 +0000
 +++ content/browser/v8_snapshot_files.cc
-@@ -10,7 +10,7 @@
- namespace content {
- 
- std::map<std::string, base::FilePath> GetV8SnapshotFilesToPreload() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #if defined(USE_V8_CONTEXT_SNAPSHOT)
-   return {{kV8ContextSnapshotDataDescriptor,
-            base::FilePath(FILE_PATH_LITERAL("v8_context_snapshot.bin"))}};
+@@ -17,7 +17,7 @@ namespace content {
+ std::map<std::string, absl::variant<base::FilePath, base::ScopedFD>>
+ GetV8SnapshotFilesToPreload(base::CommandLine& process_command_line) {
+   std::map<std::string, absl::variant<base::FilePath, base::ScopedFD>> files;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(USE_V8_CONTEXT_SNAPSHOT)
+   files[kV8ContextSnapshotDataDescriptor] = base::FilePath(
+       FILE_PATH_LITERAL(BUILDFLAG(V8_CONTEXT_SNAPSHOT_FILENAME)));
diff --git a/chromium/patches/patch-content_browser_web__contents_web__contents__view__aura.cc b/chromium/patches/patch-content_browser_web__contents_web__contents__view__aura.cc
new file mode 100644
index 0000000000..785974ab74
--- /dev/null
+++ b/chromium/patches/patch-content_browser_web__contents_web__contents__view__aura.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/web_contents/web_contents_view_aura.cc.orig	2024-07-24 02:44:37.496864800 +0000
++++ content/browser/web_contents/web_contents_view_aura.cc
+@@ -174,7 +174,7 @@ class WebDragSourceAura : public content
+   raw_ptr<aura::Window> window_;
+ };
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ // Fill out the OSExchangeData with a file contents, synthesizing a name if
+ // necessary.
+ void PrepareDragForFileContents(const DropData& drop_data,
+@@ -258,7 +258,7 @@ void PrepareDragData(const DropData& dro
+   if (!drop_data.download_metadata.empty())
+     PrepareDragForDownload(drop_data, provider, web_contents);
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   // We set the file contents before the URL because the URL also sets file
+   // contents (to a .URL shortcut).  We want to prefer file content data over
+   // a shortcut so we add it first.
+@@ -1333,7 +1333,7 @@ void WebContentsViewAura::OnMouseEvent(u
+     // Linux window managers like to handle raise-on-click themselves.  If we
+     // raise-on-click manually, this may override user settings that prevent
+     // focus-stealing.
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+     // It is possible for the web-contents to be destroyed while it is being
+     // activated. Use a weak-ptr to track whether that happened or not.
+     // More in https://crbug.com/1040725
diff --git a/chromium/patches/patch-content_browser_web__contents_web__contents__view__aura__unittest.cc b/chromium/patches/patch-content_browser_web__contents_web__contents__view__aura__unittest.cc
new file mode 100644
index 0000000000..b02685b8d9
--- /dev/null
+++ b/chromium/patches/patch-content_browser_web__contents_web__contents__view__aura__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/web_contents/web_contents_view_aura_unittest.cc.orig	2024-07-24 02:44:37.496864800 +0000
++++ content/browser/web_contents/web_contents_view_aura_unittest.cc
+@@ -97,7 +97,7 @@ class TestDragDropClient : public aura::
+     drag_drop_data_ = std::move(data);
+     return DragOperation::kCopy;
+   }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   void UpdateDragImage(const gfx::ImageSkia& image,
+                        const gfx::Vector2d& offset) override {}
+ #endif
diff --git a/chromium/patches/patch-content_browser_webui_shared__resources__data__source.cc b/chromium/patches/patch-content_browser_webui_shared__resources__data__source.cc
deleted file mode 100644
index 1b2554ec67..0000000000
--- a/chromium/patches/patch-content_browser_webui_shared__resources__data__source.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/browser/webui/shared_resources_data_source.cc.orig	2020-07-08 21:41:48.000000000 +0000
-+++ content/browser/webui/shared_resources_data_source.cc
-@@ -135,7 +135,7 @@ const std::map<int, std::string> CreateM
-         {IDR_MOJO_TEXT_DIRECTION_MOJOM_LITE_JS,
-          "mojo/mojo/public/mojom/base/text_direction.mojom-lite.js"},
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_ANDROID)
-+    defined(OS_ANDROID) || defined(OS_BSD)
-         {IDR_MOJO_TIME_MOJOM_HTML,
-          "mojo/mojo/public/mojom/base/time.mojom.html"},
-         {IDR_MOJO_TIME_MOJOM_LITE_JS,
diff --git a/chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.cc b/chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.cc
new file mode 100644
index 0000000000..3a8284c3b1
--- /dev/null
+++ b/chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/webui/web_ui_main_frame_observer.cc.orig	2024-07-24 02:44:37.528867700 +0000
++++ content/browser/webui/web_ui_main_frame_observer.cc
+@@ -13,7 +13,7 @@
+ #include "content/public/browser/navigation_handle.h"
+ #include "content/public/browser/web_ui_controller.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/feature_list.h"
+ #include "base/functional/callback_helpers.h"
+ #include "base/logging.h"
+@@ -31,7 +31,7 @@ namespace content {
+ 
+ namespace {
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Remove the pieces of the URL we don't want to send back with the error
+ // reports. In particular, do not send query or fragments as those can have
+ // privacy-sensitive information in them.
+@@ -55,7 +55,7 @@ WebUIMainFrameObserver::WebUIMainFrameOb
+ 
+ WebUIMainFrameObserver::~WebUIMainFrameObserver() = default;
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ void WebUIMainFrameObserver::OnDidAddMessageToConsole(
+     RenderFrameHost* source_frame,
+     blink::mojom::ConsoleMessageLevel log_level,
+@@ -167,7 +167,7 @@ void WebUIMainFrameObserver::ReadyToComm
+ 
+ // TODO(crbug.com/40149439) This is currently disabled due to Windows DLL
+ // thunking issues. Fix & re-enable.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   MaybeEnableWebUIJavaScriptErrorReporting(navigation_handle);
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ }
diff --git a/chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.h b/chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.h
new file mode 100644
index 0000000000..a7e6f1a0cd
--- /dev/null
+++ b/chromium/patches/patch-content_browser_webui_web__ui__main__frame__observer.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/webui/web_ui_main_frame_observer.h.orig	2024-07-24 02:44:37.528867700 +0000
++++ content/browser/webui/web_ui_main_frame_observer.h
+@@ -44,7 +44,7 @@ class CONTENT_EXPORT WebUIMainFrameObser
+ 
+ // TODO(crbug.com/40149439) This is currently disabled due to Windows DLL
+ // thunking issues. Fix & re-enable.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // On official Google builds, capture and report JavaScript error messages on
+   // WebUI surfaces back to Google. This allows us to fix JavaScript errors and
+   // exceptions.
+@@ -60,7 +60,7 @@ class CONTENT_EXPORT WebUIMainFrameObser
+   void ReadyToCommitNavigation(NavigationHandle* navigation_handle) override;
+ 
+  private:
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   void MaybeEnableWebUIJavaScriptErrorReporting(
+       NavigationHandle* navigation_handle);
+ 
diff --git a/chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.cc b/chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.cc
new file mode 100644
index 0000000000..13174f3d91
--- /dev/null
+++ b/chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.cc
@@ -0,0 +1,87 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/zygote_host/zygote_host_impl_linux.cc.orig	2024-07-24 02:44:37.540869000 +0000
++++ content/browser/zygote_host/zygote_host_impl_linux.cc
+@@ -18,8 +18,10 @@
+ #include "build/chromeos_buildflags.h"
+ #include "content/common/zygote/zygote_commands_linux.h"
+ #include "content/common/zygote/zygote_communication_linux.h"
++#if !BUILDFLAG(IS_BSD)
+ #include "content/common/zygote/zygote_handle_impl_linux.h"
+ #include "content/public/common/zygote/zygote_handle.h"
++#endif
+ #include "sandbox/linux/services/credentials.h"
+ #include "sandbox/linux/services/namespace_sandbox.h"
+ #include "sandbox/linux/suid/client/setuid_sandbox_host.h"
+@@ -37,6 +39,7 @@ namespace content {
+ 
+ namespace {
+ 
++#if !BUILDFLAG(IS_BSD)
+ // Receive a fixed message on fd and return the sender's PID.
+ // Returns true if the message received matches the expected message.
+ bool ReceiveFixedMessage(int fd,
+@@ -58,6 +61,7 @@ bool ReceiveFixedMessage(int fd,
+     return false;
+   return true;
+ }
++#endif
+ 
+ }  // namespace
+ 
+@@ -67,9 +71,13 @@ ZygoteHost* ZygoteHost::GetInstance() {
+ }
+ 
+ ZygoteHostImpl::ZygoteHostImpl()
++#if !BUILDFLAG(IS_BSD)
+     : use_namespace_sandbox_(false),
+       use_suid_sandbox_(false),
+       use_suid_sandbox_for_adj_oom_score_(false),
++#else
++    :
++#endif
+       sandbox_binary_(),
+       zygote_pids_lock_(),
+       zygote_pids_() {}
+@@ -82,6 +90,7 @@ ZygoteHostImpl* ZygoteHostImpl::GetInsta
+ }
+ 
+ void ZygoteHostImpl::Init(const base::CommandLine& command_line) {
++#if !BUILDFLAG(IS_BSD)
+   if (command_line.HasSwitch(sandbox::policy::switches::kNoSandbox)) {
+     return;
+   }
+@@ -132,6 +141,7 @@ void ZygoteHostImpl::Init(const base::Co
+            "you can try using --"
+         << sandbox::policy::switches::kNoSandbox << ".";
+   }
++#endif
+ }
+ 
+ void ZygoteHostImpl::AddZygotePid(pid_t pid) {
+@@ -156,6 +166,7 @@ pid_t ZygoteHostImpl::LaunchZygote(
+     base::CommandLine* cmd_line,
+     base::ScopedFD* control_fd,
+     base::FileHandleMappingVector additional_remapped_fds) {
++#if !BUILDFLAG(IS_BSD)
+   int fds[2];
+   CHECK_EQ(0, socketpair(AF_UNIX, SOCK_SEQPACKET | SOCK_CLOEXEC, 0, fds));
+   CHECK(base::UnixDomainSocket::EnableReceiveProcessId(fds[0]));
+@@ -224,9 +235,12 @@ pid_t ZygoteHostImpl::LaunchZygote(
+ 
+   AddZygotePid(pid);
+   return pid;
++#else
++  return 0;
++#endif
+ }
+ 
+-#if !BUILDFLAG(IS_OPENBSD)
++#if !BUILDFLAG(IS_BSD)
+ void ZygoteHostImpl::AdjustRendererOOMScore(base::ProcessHandle pid,
+                                             int score) {
+   // 1) You can't change the oom_score_adj of a non-dumpable process
diff --git a/chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.h b/chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.h
new file mode 100644
index 0000000000..961f8e1730
--- /dev/null
+++ b/chromium/patches/patch-content_browser_zygote__host_zygote__host__impl__linux.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/browser/zygote_host/zygote_host_impl_linux.h.orig	2024-07-24 02:44:37.540869000 +0000
++++ content/browser/zygote_host/zygote_host_impl_linux.h
+@@ -47,12 +47,14 @@ class CONTENT_EXPORT ZygoteHostImpl : pu
+                      base::ScopedFD* control_fd,
+                      base::FileHandleMappingVector additional_remapped_fds);
+ 
++#if !BUILDFLAG(IS_BSD)
+   void AdjustRendererOOMScore(base::ProcessHandle process_handle,
+                               int score) override;
+ #if BUILDFLAG(IS_CHROMEOS)
+   void ReinitializeLogging(uint32_t logging_dest,
+                            base::PlatformFile log_file_fd) override;
+ #endif  // BUILDFLAG(IS_CHROMEOS)
++#endif
+ 
+   bool HasZygote() { return !zygote_pids_.empty(); }
+ 
+@@ -67,9 +69,11 @@ class CONTENT_EXPORT ZygoteHostImpl : pu
+ 
+   int renderer_sandbox_status_;
+ 
++#if !BUILDFLAG(IS_BSD)
+   bool use_namespace_sandbox_;
+   bool use_suid_sandbox_;
+   bool use_suid_sandbox_for_adj_oom_score_;
++#endif
+   std::string sandbox_binary_;
+ 
+   // This lock protects the |zygote_pids_| set.
diff --git a/chromium/patches/patch-content_child_BUILD.gn b/chromium/patches/patch-content_child_BUILD.gn
index 88ed9bc05e..1273667872 100644
--- a/chromium/patches/patch-content_child_BUILD.gn
+++ b/chromium/patches/patch-content_child_BUILD.gn
@@ -1,25 +1,22 @@
 $NetBSD$
 
---- content/child/BUILD.gn.orig	2020-07-15 18:55:57.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/child/BUILD.gn.orig	2024-07-24 02:44:37.540869000 +0000
 +++ content/child/BUILD.gn
-@@ -143,13 +143,19 @@ target(link_target_type, "child") {
+@@ -130,6 +130,13 @@ target(link_target_type, "child") {
      ]
    }
  
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [
-       "//components/services/font/public/cpp",
-       "//components/services/font/public/mojom",
-     ]
-   }
- 
-+  #if (is_bsd) {
-+  #  deps -= [
-+  #    "//services/service_manager/zygote",
-+  #  ]
-+  #}
++  if (is_bsd) {
++    sources -= [
++      "sandboxed_process_thread_type_handler.cc",
++      "sandboxed_process_thread_type_handler.h",
++    ]
++  }
 +
    if (is_win) {
-     libs = [ "dwrite.lib" ]
-   }
+     sources += [
+       "dwrite_font_proxy/dwrite_font_proxy_init_impl_win.cc",
diff --git a/chromium/patches/patch-content_child_child__process.cc b/chromium/patches/patch-content_child_child__process.cc
new file mode 100644
index 0000000000..223210c053
--- /dev/null
+++ b/chromium/patches/patch-content_child_child__process.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/child/child_process.cc.orig	2024-07-24 02:44:37.540869000 +0000
++++ content/child/child_process.cc
+@@ -35,7 +35,7 @@
+ #include "content/common/android/cpu_time_metrics.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/child/sandboxed_process_thread_type_handler.h"
+ #endif
+ 
+@@ -70,7 +70,7 @@ ChildProcess::ChildProcess(base::ThreadT
+                                thread_pool_init_params)
+     : resetter_(&child_process, this, nullptr),
+       io_thread_(std::make_unique<ChildIOThread>()) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   const base::CommandLine& command_line =
+       *base::CommandLine::ForCurrentProcess();
+   const bool is_embedded_in_browser_process =
+@@ -199,7 +199,7 @@ void ChildProcess::set_main_thread(Child
+   main_thread_.reset(thread);
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ void ChildProcess::SetIOThreadType(base::ThreadType thread_type) {
+   if (!io_thread_) {
+     return;
diff --git a/chromium/patches/patch-content_child_child__process.h b/chromium/patches/patch-content_child_child__process.h
new file mode 100644
index 0000000000..79a3d191eb
--- /dev/null
+++ b/chromium/patches/patch-content_child_child__process.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/child/child_process.h.orig	2024-07-24 02:44:37.540869000 +0000
++++ content/child/child_process.h
+@@ -79,7 +79,7 @@ class CONTENT_EXPORT ChildProcess {
+     return io_thread_runner_.get();
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Changes the thread type of the child process IO thread.
+   void SetIOThreadType(base::ThreadType thread_type);
+ #endif
diff --git a/chromium/patches/patch-content_common_BUILD.gn b/chromium/patches/patch-content_common_BUILD.gn
index 4db10900fe..179fd11392 100644
--- a/chromium/patches/patch-content_common_BUILD.gn
+++ b/chromium/patches/patch-content_common_BUILD.gn
@@ -1,26 +1,42 @@
 $NetBSD$
 
---- content/common/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/common/BUILD.gn.orig	2024-07-24 02:44:37.544869400 +0000
 +++ content/common/BUILD.gn
-@@ -319,6 +319,12 @@ source_set("common") {
-     set_sources_assignment_filter(sources_assignment_filter)
+@@ -421,19 +421,28 @@ source_set("common") {
    }
  
-+  if (is_bsd) {
-+    sources -= [
-+      "common_sandbox_support_linux.cc",
-+    ]
-+  }
-+
-   if (is_mac) {
+   if (is_linux || is_chromeos) {
+-    sources += [
+-      "gpu_pre_sandbox_hook_linux.cc",
+-      "gpu_pre_sandbox_hook_linux.h",
+-    ]
++    if (is_bsd) {
++      sources += [
++        "gpu_pre_sandbox_hook_bsd.cc",
++        "gpu_pre_sandbox_hook_bsd.h",
++      ]
++    } else {
++      sources += [
++        "gpu_pre_sandbox_hook_linux.cc",
++        "gpu_pre_sandbox_hook_linux.h",
++      ]
++    }
+     public_deps += [ "//sandbox/policy" ]
      deps += [
-       ":mac_helpers",
-@@ -471,7 +477,7 @@ mojom("mojo_bindings") {
-   if (enable_ipc_logging) {
-     enabled_features += [ "ipc_logging" ]
-   }
--  if (is_linux || is_chromeos) {
-+  if (is_linux || is_chromeos || is_bsd) {
-     enabled_features += [ "supports_thread_priorities" ]
-   }
-   if (use_clang_profiling_inside_sandbox) {
+       ":sandbox_support_linux",
+       "//media/gpu:buildflags",
+       "//sandbox/linux:sandbox_services",
+-      "//sandbox/linux:seccomp_bpf",
+       "//sandbox/policy:chromecast_sandbox_allowlist_buildflags",
+       "//third_party/fontconfig",
+     ]
++    if (use_seccomp_bpf) {
++      deps += [ "//sandbox/linux:seccomp_bpf" ]
++    }
+     if (use_v4l2_codec) {
+       deps += [ "//media/gpu/v4l2" ]
+     }
diff --git a/chromium/patches/patch-content_common_common__sandbox__support__linux.cc b/chromium/patches/patch-content_common_common__sandbox__support__linux.cc
deleted file mode 100644
index 03c45cf10c..0000000000
--- a/chromium/patches/patch-content_common_common__sandbox__support__linux.cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- content/common/common_sandbox_support_linux.cc.orig	2020-07-15 18:55:57.000000000 +0000
-+++ content/common/common_sandbox_support_linux.cc
-@@ -5,6 +5,7 @@
- #include "content/public/common/common_sandbox_support_linux.h"
- 
- #include <sys/stat.h>
-+#include <unistd.h>
- 
- #include <limits>
- #include <memory>
diff --git a/chromium/patches/patch-content_common_features.cc b/chromium/patches/patch-content_common_features.cc
new file mode 100644
index 0000000000..ecc27902c9
--- /dev/null
+++ b/chromium/patches/patch-content_common_features.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/common/features.cc.orig	2024-07-24 02:44:37.552870000 +0000
++++ content/common/features.cc
+@@ -173,7 +173,7 @@ BASE_FEATURE(kEnableBackForwardCacheForO
+              base::FEATURE_ENABLED_BY_DEFAULT);
+ 
+ // Enables error reporting for JS errors inside DevTools frontend host
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kEnableDevToolsJsErrorReporting,
+              "EnableDevToolsJsErrorReporting",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -294,7 +294,7 @@ BASE_FEATURE(kGroupNIKByJoiningOrigin,
+ // process and having browser process handle adjusting thread properties (nice
+ // value, c-group, latency sensitivity...) for children which have sandbox
+ // restrictions.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ BASE_FEATURE(kHandleChildThreadTypeChangesInBrowser,
+              "HandleChildThreadTypeChangesInBrowser",
+              base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-content_common_features.gni b/chromium/patches/patch-content_common_features.gni
deleted file mode 100644
index 757462ad0b..0000000000
--- a/chromium/patches/patch-content_common_features.gni
+++ /dev/null
@@ -1,10 +0,0 @@
-$NetBSD$
-
---- content/common/features.gni.orig	2020-07-15 18:55:57.000000000 +0000
-+++ content/common/features.gni
-@@ -13,4 +13,4 @@ declare_args() {
-   allow_critical_memory_pressure_handling_in_foreground = is_chromecast
- }
- 
--enable_screen_capture = is_linux || is_mac || is_win || is_android
-+enable_screen_capture = is_linux || is_mac || is_win || is_android || is_bsd
diff --git a/chromium/patches/patch-content_common_features.h b/chromium/patches/patch-content_common_features.h
new file mode 100644
index 0000000000..9ddeb18dcb
--- /dev/null
+++ b/chromium/patches/patch-content_common_features.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/common/features.h.orig	2024-07-24 02:44:37.552870000 +0000
++++ content/common/features.h
+@@ -37,7 +37,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kDoc
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kEnableBackForwardCacheForScreenReader);
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(
+     kEnableBackForwardCacheForOngoingSubframeNavigation);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kEnableDevToolsJsErrorReporting);
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kEmbeddingRequiresOptIn);
+@@ -71,7 +71,7 @@ CONTENT_EXPORT extern const base::Featur
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kGpuInfoCollectionSeparatePrefetch);
+ #endif
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kGroupNIKByJoiningOrigin);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ CONTENT_EXPORT BASE_DECLARE_FEATURE(kHandleChildThreadTypeChangesInBrowser);
+ #endif
+ #if BUILDFLAG(IS_ANDROID)
diff --git a/chromium/patches/patch-content_common_font__list__unittest.cc b/chromium/patches/patch-content_common_font__list__unittest.cc
new file mode 100644
index 0000000000..65ea400678
--- /dev/null
+++ b/chromium/patches/patch-content_common_font__list__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/common/font_list_unittest.cc.orig	2024-07-24 02:44:37.552870000 +0000
++++ content/common/font_list_unittest.cc
+@@ -48,7 +48,7 @@ TEST(FontList, GetFontList) {
+         EXPECT_TRUE(HasFontWithName(fonts, "MS Gothic", "MS Gothic"));
+         EXPECT_TRUE(HasFontWithName(fonts, "Segoe UI", "Segoe UI"));
+         EXPECT_TRUE(HasFontWithName(fonts, "Verdana", "Verdana"));
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+         EXPECT_TRUE(HasFontWithName(fonts, "Arimo", "Arimo"));
+ #else
+         EXPECT_TRUE(HasFontWithName(fonts, "Arial", "Arial"));
diff --git a/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.cc b/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.cc
new file mode 100644
index 0000000000..7703d795f2
--- /dev/null
+++ b/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.cc
@@ -0,0 +1,77 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/common/gpu_pre_sandbox_hook_bsd.cc.orig	2024-08-01 14:08:57.889339657 +0000
++++ content/common/gpu_pre_sandbox_hook_bsd.cc
+@@ -0,0 +1,68 @@
++// Copyright 2023 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "content/common/gpu_pre_sandbox_hook_bsd.h"
++
++#include <dlfcn.h>
++#include <errno.h>
++#include <sys/stat.h>
++
++#include <memory>
++#include <sstream>
++#include <utility>
++#include <vector>
++
++#include "base/base_paths.h"
++#include "base/files/file_enumerator.h"
++#include "base/files/file_path.h"
++#include "base/files/scoped_file.h"
++#include "base/functional/bind.h"
++#include "base/logging.h"
++#include "base/path_service.h"
++#include "base/strings/stringprintf.h"
++#include "build/build_config.h"
++#include "build/buildflag.h"
++#include "build/chromeos_buildflags.h"
++#include "content/public/common/content_switches.h"
++#include "media/gpu/buildflags.h"
++
++namespace content {
++namespace {
++
++constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE;
++
++void LoadVulkanLibraries() {
++  // Try to preload Vulkan libraries. Failure is not an error as not all may be
++  // present.
++  const char* kLibraries[] = {
++      "libvulkan.so",
++      "libvulkan_intel.so",
++      "libvulkan_intel_hasvk.so",
++      "libvulkan_radeon.so",
++  };
++  for (const auto* library : kLibraries) {
++    dlopen(library, dlopen_flag);
++  }
++}
++
++bool LoadLibrariesForGpu(
++    const sandbox::policy::SandboxSeccompBPF::Options& options) {
++  LoadVulkanLibraries();
++
++  return true;
++}
++
++}  // namespace
++
++bool GpuPreSandboxHook(sandbox::policy::SandboxLinux::Options options) {
++  if (!LoadLibrariesForGpu(options))
++    return false;
++
++  // TODO(tsepez): enable namspace sandbox here once crashes are understood.
++
++  errno = 0;
++  return true;
++}
++
++}  // namespace content
diff --git a/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.h b/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.h
new file mode 100644
index 0000000000..8ba1911cc6
--- /dev/null
+++ b/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__bsd.h
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/common/gpu_pre_sandbox_hook_bsd.h.orig	2024-08-01 14:08:57.890177474 +0000
++++ content/common/gpu_pre_sandbox_hook_bsd.h
+@@ -0,0 +1,20 @@
++// Copyright 2017 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_BSD_H_
++#define CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_BSD_H_
++
++#include "base/component_export.h"
++#include "sandbox/policy/sandbox.h"
++
++namespace content {
++
++// A pre-sandbox hook to use on Linux-based systems in sandboxed processes that
++// require general GPU usage.
++COMPONENT_EXPORT(GPU_PRE_SANDBOX_HOOK)
++bool GpuPreSandboxHook(sandbox::policy::SandboxLinux::Options options);
++
++}  // namespace content
++
++#endif  // CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_BSD_H_
diff --git a/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__linux.h b/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__linux.h
new file mode 100644
index 0000000000..fbcce2df31
--- /dev/null
+++ b/chromium/patches/patch-content_common_gpu__pre__sandbox__hook__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/common/gpu_pre_sandbox_hook_linux.h.orig	2024-07-24 02:44:37.552870000 +0000
++++ content/common/gpu_pre_sandbox_hook_linux.h
+@@ -5,8 +5,13 @@
+ #ifndef CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_LINUX_H_
+ #define CONTENT_COMMON_GPU_PRE_SANDBOX_HOOK_LINUX_H_
+ 
++#include "build/build_config.h"
+ #include "base/component_export.h"
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ 
+ namespace content {
+ 
diff --git a/chromium/patches/patch-content_common_mojo__core__library__support.cc b/chromium/patches/patch-content_common_mojo__core__library__support.cc
new file mode 100644
index 0000000000..1098dda5e9
--- /dev/null
+++ b/chromium/patches/patch-content_common_mojo__core__library__support.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/common/mojo_core_library_support.cc.orig	2024-07-24 02:44:37.564871300 +0000
++++ content/common/mojo_core_library_support.cc
+@@ -15,7 +15,7 @@ bool IsMojoCoreSharedLibraryEnabled() {
+ }
+ 
+ std::optional<base::FilePath> GetMojoCoreSharedLibraryPath() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   const base::CommandLine& command_line =
+       *base::CommandLine::ForCurrentProcess();
+   if (!command_line.HasSwitch(switches::kMojoCoreLibraryPath))
diff --git a/chromium/patches/patch-content_common_user__agent.cc b/chromium/patches/patch-content_common_user__agent.cc
new file mode 100644
index 0000000000..a88f69628e
--- /dev/null
+++ b/chromium/patches/patch-content_common_user__agent.cc
@@ -0,0 +1,43 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/common/user_agent.cc.orig	2024-07-24 02:44:37.568871700 +0000
++++ content/common/user_agent.cc
+@@ -45,7 +45,7 @@ std::string GetUserAgentPlatform() {
+   return "";
+ #elif BUILDFLAG(IS_MAC)
+   return "Macintosh; ";
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   return "X11; ";  // strange, but that's what Firefox uses
+ #elif BUILDFLAG(IS_ANDROID)
+   return "Linux; ";
+@@ -71,7 +71,7 @@ std::string GetUnifiedPlatform() {
+   return "Windows NT 10.0; Win64; x64";
+ #elif BUILDFLAG(IS_FUCHSIA)
+   return "Fuchsia";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return "X11; Linux x86_64";
+ #elif BUILDFLAG(IS_IOS)
+   if (ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET) {
+@@ -296,6 +296,16 @@ std::string BuildOSCpuInfoFromOSVersionA
+                       "Android %s", os_version.c_str()
+ #elif BUILDFLAG(IS_FUCHSIA)
+                       "Fuchsia"
++#elif BUILDFLAG(IS_BSD)
++#if defined(__x86_64__)
++                      "Linux x86_64; %s %s",
++#elif defined(__aarch64__)
++                      "Linux aarch64; %s %s",
++#else
++                      "Linux i686; %s %s",
++#endif
++                      unixinfo.sysname,  // e.g. Linux
++                      cpu_type.c_str()   // e.g. i686
+ #elif BUILDFLAG(IS_IOS)
+                       "CPU %s OS %s like Mac OS X", cpu_type.c_str(),
+                       os_version.c_str()
diff --git a/chromium/patches/patch-content_gpu_BUILD.gn b/chromium/patches/patch-content_gpu_BUILD.gn
deleted file mode 100644
index 9a55c15346..0000000000
--- a/chromium/patches/patch-content_gpu_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- content/gpu/BUILD.gn.orig	2020-06-25 09:31:29.000000000 +0000
-+++ content/gpu/BUILD.gn
-@@ -104,7 +104,7 @@ target(link_target_type, "gpu_sources") 
-     deps += [ "//media/mojo/services" ]
-   }
- 
--  if (is_linux || is_mac || is_win) {
-+  if (is_linux || is_mac || is_win || is_bsd) {
-     deps += [ "//sandbox" ]
-   }
- 
-@@ -130,7 +130,7 @@ target(link_target_type, "gpu_sources") 
- 
-   # Use DRI on desktop Linux builds.
-   if (current_cpu != "s390x" && current_cpu != "ppc64" && is_desktop_linux &&
--      (!is_chromecast || is_cast_desktop_build)) {
-+      (!is_chromecast || is_cast_desktop_build) && !is_bsd) {
-     configs += [ "//build/config/linux/dri" ]
-   }
- }
diff --git a/chromium/patches/patch-content_gpu_gpu__child__thread.cc b/chromium/patches/patch-content_gpu_gpu__child__thread.cc
new file mode 100644
index 0000000000..ae1713706c
--- /dev/null
+++ b/chromium/patches/patch-content_gpu_gpu__child__thread.cc
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/gpu/gpu_child_thread.cc.orig	2024-07-24 02:44:37.572872200 +0000
++++ content/gpu/gpu_child_thread.cc
+@@ -58,7 +58,7 @@
+ #include "third_party/skia/include/ports/SkFontConfigInterface.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/child/sandboxed_process_thread_type_handler.h"
+ #endif
+ 
+@@ -142,7 +142,8 @@ void GpuChildThread::Init(const base::Ti
+ 
+   viz_main_.gpu_service()->set_start_time(process_start_time);
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++// XXX BSD
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+   SandboxedProcessThreadTypeHandler::NotifyMainChildThreadCreated();
+ #endif
+ 
diff --git a/chromium/patches/patch-content_gpu_gpu__main.cc b/chromium/patches/patch-content_gpu_gpu__main.cc
index 672d188fa5..b6db5a46d0 100644
--- a/chromium/patches/patch-content_gpu_gpu__main.cc
+++ b/chromium/patches/patch-content_gpu_gpu__main.cc
@@ -1,49 +1,79 @@
 $NetBSD$
 
---- content/gpu/gpu_main.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/gpu/gpu_main.cc.orig	2024-07-24 02:44:37.572872200 +0000
 +++ content/gpu/gpu_main.cc
-@@ -85,7 +85,7 @@
- #include "ui/gfx/x/x11_types.h"                          // nogncheck
+@@ -94,10 +94,14 @@
+ #include "sandbox/win/src/sandbox.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/child/sandboxed_process_thread_type_handler.h"
+ #include "content/common/gpu_pre_sandbox_hook_linux.h"
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ #include "sandbox/policy/sandbox_type.h"
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "content/gpu/gpu_sandbox_hook_linux.h"
- #include "content/public/common/sandbox_init.h"
- #include "services/service_manager/sandbox/linux/sandbox_linux.h"
-@@ -109,7 +109,7 @@ namespace content {
+@@ -116,7 +120,7 @@ namespace content {
  
  namespace {
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  bool StartSandboxLinux(gpu::GpuWatchdogThread*,
                         const gpu::GPUInfo*,
                         const gpu::GpuPreferences&);
-@@ -162,7 +162,7 @@ class ContentSandboxHelper : public gpu:
+@@ -174,7 +178,7 @@ class ContentSandboxHelper : public gpu:
    bool EnsureSandboxInitialized(gpu::GpuWatchdogThread* watchdog_thread,
                                  const gpu::GPUInfo* gpu_info,
                                  const gpu::GpuPreferences& gpu_prefs) override {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      return StartSandboxLinux(watchdog_thread, gpu_info, gpu_prefs);
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
      return StartSandboxWindows(sandbox_info_);
-@@ -297,7 +297,7 @@ int GpuMain(const MainFunctionParams& pa
+@@ -283,7 +287,7 @@ int GpuMain(MainFunctionParams parameter
+           std::make_unique<base::SingleThreadTaskExecutor>(
                gpu_preferences.message_pump_type);
      }
- #endif
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #error "Unsupported Linux platform."
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_MAC)
      // Cross-process CoreAnimation requires a CFRunLoop to function at all, and
-@@ -450,7 +450,7 @@ int GpuMain(const MainFunctionParams& pa
+@@ -305,7 +309,8 @@ int GpuMain(MainFunctionParams parameter
+ 
+   base::PlatformThread::SetName("CrGpuMain");
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++// XXX BSD
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+   // Thread type delegate of the process should be registered before
+   // thread type change below for the main thread and for thread pool in
+   // ChildProcess constructor.
+@@ -435,7 +440,7 @@ int GpuMain(MainFunctionParams parameter
  
  namespace {
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  bool StartSandboxLinux(gpu::GpuWatchdogThread* watchdog_thread,
                         const gpu::GPUInfo* gpu_info,
                         const gpu::GpuPreferences& gpu_prefs) {
+@@ -475,7 +480,7 @@ bool StartSandboxLinux(gpu::GpuWatchdogT
+   sandbox_options.accelerated_video_encode_enabled =
+       !gpu_prefs.disable_accelerated_video_encode;
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Video decoding of many video streams can use thousands of FDs as well as
+   // Exo clients like Lacros.
+   // See https://crbug.com/1417237
diff --git a/chromium/patches/patch-content_gpu_gpu__sandbox__hook__linux.cc b/chromium/patches/patch-content_gpu_gpu__sandbox__hook__linux.cc
deleted file mode 100644
index 0f2081b1cd..0000000000
--- a/chromium/patches/patch-content_gpu_gpu__sandbox__hook__linux.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-$NetBSD$
-
---- content/gpu/gpu_sandbox_hook_linux.cc.orig	2020-07-24 02:37:55.000000000 +0000
-+++ content/gpu/gpu_sandbox_hook_linux.cc
-@@ -98,8 +98,13 @@ static const char kLibV4lEncPluginPath[]
-     "/usr/lib/libv4l/plugins/libv4l-encplugin.so";
- #endif
- 
-+#if defined(OS_LINUX)
- constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE;
-+#else
-+constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL;
-+#endif
- 
-+#if !defined(OS_BSD)
- void AddV4L2GpuWhitelist(
-     std::vector<BrokerFilePermission>* permissions,
-     const service_manager::SandboxSeccompBPF::Options& options) {
-@@ -356,8 +361,10 @@ std::vector<BrokerFilePermission> FilePe
-   AddStandardGpuWhiteList(&permissions);
-   return permissions;
- }
-+#endif
- 
- void LoadArmGpuLibraries() {
-+#if !defined(OS_BSD)
-   // Preload the Mali library.
-   if (UseChromecastSandboxWhitelist()) {
-     for (const char* path : kWhitelistedChromecastPaths) {
-@@ -372,6 +379,7 @@ void LoadArmGpuLibraries() {
-     // Preload the Tegra V4L2 (video decode acceleration) library.
-     dlopen(kLibTegraPath, dlopen_flag);
-   }
-+#endif
- }
- 
- bool LoadAmdGpuLibraries() {
-@@ -411,12 +419,14 @@ void LoadV4L2Libraries(
- }
- 
- void LoadChromecastV4L2Libraries() {
-+#if !defined(OS_BSD)
-   for (const char* path : kWhitelistedChromecastPaths) {
-     const std::string library_path(std::string(path) +
-                                    std::string("libvpcodec.so"));
-     if (dlopen(library_path.c_str(), dlopen_flag))
-       break;
-   }
-+#endif
- }
- 
- bool LoadLibrariesForGpu(
-@@ -438,6 +448,7 @@ bool LoadLibrariesForGpu(
-   return true;
- }
- 
-+#if !defined(OS_BSD)
- sandbox::syscall_broker::BrokerCommandSet CommandSetForGPU(
-     const service_manager::SandboxLinux::Options& options) {
-   sandbox::syscall_broker::BrokerCommandSet command_set;
-@@ -459,13 +470,18 @@ bool BrokerProcessPreSandboxHook(
-   service_manager::SetProcessTitleFromCommandLine(nullptr);
-   return true;
- }
-+#endif
- 
- }  // namespace
- 
- bool GpuProcessPreSandboxHook(service_manager::SandboxLinux::Options options) {
-+#if defined(OS_BSD)
-+  NOTIMPLEMENTED();
-+#else
-   service_manager::SandboxLinux::GetInstance()->StartBrokerProcess(
-       CommandSetForGPU(options), FilePermissionsForGpu(options),
-       base::BindOnce(BrokerProcessPreSandboxHook), options);
-+#endif
- 
-   if (!LoadLibrariesForGpu(options))
-     return false;
diff --git a/chromium/patches/patch-content_ppapi__plugin_BUILD.gn b/chromium/patches/patch-content_ppapi__plugin_BUILD.gn
deleted file mode 100644
index b206cb7bb0..0000000000
--- a/chromium/patches/patch-content_ppapi__plugin_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/ppapi_plugin/BUILD.gn.orig	2020-07-15 18:55:57.000000000 +0000
-+++ content/ppapi_plugin/BUILD.gn
-@@ -67,7 +67,7 @@ source_set("ppapi_plugin_sources") {
-     "//ui/gfx/geometry",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//components/services/font/public/cpp" ]
-   }
- 
diff --git a/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc b/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc
index 4613f520ac..6df9911226 100644
--- a/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc
+++ b/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- content/ppapi_plugin/ppapi_blink_platform_impl.cc.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/ppapi_plugin/ppapi_blink_platform_impl.cc.orig	2024-07-24 02:44:37.572872200 +0000
 +++ content/ppapi_plugin/ppapi_blink_platform_impl.cc
-@@ -19,7 +19,7 @@
+@@ -21,7 +21,7 @@
  
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_MAC)
  #include "content/child/child_process_sandbox_support_impl_mac.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "content/child/child_process_sandbox_support_impl_linux.h"
  #include "mojo/public/cpp/bindings/pending_remote.h"
  #endif
-@@ -34,7 +34,7 @@ typedef struct CGFont* CGFontRef;
+@@ -36,7 +36,7 @@ typedef struct CGFont* CGFontRef;
  namespace content {
  
  PpapiBlinkPlatformImpl::PpapiBlinkPlatformImpl() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    mojo::PendingRemote<font_service::mojom::FontService> font_service;
    ChildThread::Get()->BindHostReceiver(
        font_service.InitWithNewPipeAndPassReceiver());
-@@ -52,7 +52,7 @@ PpapiBlinkPlatformImpl::~PpapiBlinkPlatf
+@@ -55,7 +55,7 @@ PpapiBlinkPlatformImpl::~PpapiBlinkPlatf
  void PpapiBlinkPlatformImpl::Shutdown() {}
  
  blink::WebSandboxSupport* PpapiBlinkPlatformImpl::GetSandboxSupport() {
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    return sandbox_support_.get();
  #else
    return nullptr;
diff --git a/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h b/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h
index 440714016f..a3f02abfb5 100644
--- a/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h
+++ b/chromium/patches/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h
@@ -1,27 +1,17 @@
 $NetBSD$
 
---- content/ppapi_plugin/ppapi_blink_platform_impl.h.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/ppapi_plugin/ppapi_blink_platform_impl.h.orig	2024-07-24 02:44:37.572872200 +0000
 +++ content/ppapi_plugin/ppapi_blink_platform_impl.h
-@@ -13,7 +13,7 @@
- #include "build/build_config.h"
- #include "content/child/blink_platform_impl.h"
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "components/services/font/public/cpp/font_loader.h"
- #include "third_party/skia/include/core/SkRefCnt.h"
- #endif
-@@ -36,11 +36,11 @@ class PpapiBlinkPlatformImpl : public Bl
-   blink::WebThemeEngine* ThemeEngine() override;
+@@ -36,7 +36,7 @@ class PpapiBlinkPlatformImpl : public Bl
+   blink::WebString DefaultLocale() override;
  
   private:
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    std::unique_ptr<blink::WebSandboxSupport> sandbox_support_;
  #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   sk_sp<font_service::FontLoader> font_loader_;
- #endif
- 
+ };
diff --git a/chromium/patches/patch-content_ppapi__plugin_ppapi__plugin__main.cc b/chromium/patches/patch-content_ppapi__plugin_ppapi__plugin__main.cc
new file mode 100644
index 0000000000..c0a1d3185b
--- /dev/null
+++ b/chromium/patches/patch-content_ppapi__plugin_ppapi__plugin__main.cc
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/ppapi_plugin/ppapi_plugin_main.cc.orig	2024-07-24 02:44:37.572872200 +0000
++++ content/ppapi_plugin/ppapi_plugin_main.cc
+@@ -52,6 +52,11 @@
+ #include "gin/v8_initializer.h"
+ #endif
+ 
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#include "sandbox/policy/sandbox_type.h"
++#endif
++
+ #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
+ #include <stdlib.h>
+ #endif
+@@ -141,7 +146,7 @@ int PpapiPluginMain(MainFunctionParams p
+   gin::V8Initializer::LoadV8Snapshot();
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD)
+   sandbox::policy::SandboxLinux::GetInstance()->InitializeSandbox(
+       sandbox::policy::SandboxTypeFromCommandLine(command_line),
+       sandbox::policy::SandboxLinux::PreSandboxHook(),
diff --git a/chromium/patches/patch-content_public_app_content__main__delegate.cc b/chromium/patches/patch-content_public_app_content__main__delegate.cc
deleted file mode 100644
index 8330c682b8..0000000000
--- a/chromium/patches/patch-content_public_app_content__main__delegate.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/app/content_main_delegate.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/public/app/content_main_delegate.cc
-@@ -24,7 +24,7 @@ int ContentMainDelegate::RunProcess(
-   return -1;
- }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- 
- void ContentMainDelegate::ZygoteStarting(
-     std::vector<std::unique_ptr<ZygoteForkDelegate>>* delegates) {}
diff --git a/chromium/patches/patch-content_public_app_content__main__delegate.h b/chromium/patches/patch-content_public_app_content__main__delegate.h
deleted file mode 100644
index d4d71af64e..0000000000
--- a/chromium/patches/patch-content_public_app_content__main__delegate.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/app/content_main_delegate.h.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/public/app/content_main_delegate.h
-@@ -60,7 +60,7 @@ class CONTENT_EXPORT ContentMainDelegate
-   // Called right before the process exits.
-   virtual void ProcessExiting(const std::string& process_type) {}
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Tells the embedder that the zygote process is starting, and allows it to
-   // specify one or more zygote delegates if it wishes by storing them in
-   // |*delegates|.
diff --git a/chromium/patches/patch-content_public_browser_content__browser__client.cc b/chromium/patches/patch-content_public_browser_content__browser__client.cc
new file mode 100644
index 0000000000..af060eb122
--- /dev/null
+++ b/chromium/patches/patch-content_public_browser_content__browser__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/public/browser/content_browser_client.cc.orig	2024-07-24 02:44:37.624877200 +0000
++++ content/public/browser/content_browser_client.cc
+@@ -1307,7 +1307,7 @@ bool ContentBrowserClient::ShouldRunOutO
+ // that can be adequately sandboxed.
+ // Currently Android's network service will not run out of process or sandboxed,
+ // so OutOfProcessSystemDnsResolution is not currently enabled on Android.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return true;
+ #else
+   return false;
diff --git a/chromium/patches/patch-content_public_browser_service__process__host.cc b/chromium/patches/patch-content_public_browser_service__process__host.cc
new file mode 100644
index 0000000000..b38a6b3929
--- /dev/null
+++ b/chromium/patches/patch-content_public_browser_service__process__host.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/public/browser/service_process_host.cc.orig	2024-07-24 02:44:37.648879500 +0000
++++ content/public/browser/service_process_host.cc
+@@ -70,7 +70,7 @@ ServiceProcessHost::Options::WithPreload
+ 
+ ServiceProcessHost::Options& ServiceProcessHost::Options::WithGpuClient(
+     base::PassKey<ServiceProcessHostGpuClient> passkey) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   allow_gpu_client = true;
+ #endif
+   return *this;
diff --git a/chromium/patches/patch-content_public_browser_zygote__host_zygote__host__linux.h b/chromium/patches/patch-content_public_browser_zygote__host_zygote__host__linux.h
new file mode 100644
index 0000000000..e5989034f6
--- /dev/null
+++ b/chromium/patches/patch-content_public_browser_zygote__host_zygote__host__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/public/browser/zygote_host/zygote_host_linux.h.orig	2024-07-24 02:44:37.660880600 +0000
++++ content/public/browser/zygote_host/zygote_host_linux.h
+@@ -35,11 +35,13 @@ class ZygoteHost {
+   // after the first render has been forked.
+   virtual int GetRendererSandboxStatus() = 0;
+ 
++#if !BUILDFLAG(IS_BSD)
+   // Adjust the OOM score of the given renderer's PID.  The allowed
+   // range for the score is [0, 1000], where higher values are more
+   // likely to be killed by the OOM killer.
+   virtual void AdjustRendererOOMScore(base::ProcessHandle process_handle,
+                                       int score) = 0;
++#endif
+ 
+ #if BUILDFLAG(IS_CHROMEOS)
+   // Reinitialize logging for the Zygote processes. Needed on ChromeOS, which
diff --git a/chromium/patches/patch-content_public_common_child__process__host.h b/chromium/patches/patch-content_public_common_child__process__host.h
deleted file mode 100644
index d740178eae..0000000000
--- a/chromium/patches/patch-content_public_common_child__process__host.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/common/child_process_host.h.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/public/common/child_process_host.h
-@@ -80,7 +80,7 @@ class CONTENT_EXPORT ChildProcessHost : 
-     // No special behavior requested.
-     CHILD_NORMAL = 0,
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     // Indicates that the child execed after forking may be execced from
-     // /proc/self/exe rather than using the "real" app path. This prevents
-     // autoupdate from confusing us if it changes the file out from under us.
diff --git a/chromium/patches/patch-content_public_common_common__param__traits__macros.h b/chromium/patches/patch-content_public_common_common__param__traits__macros.h
deleted file mode 100644
index 0761bea9d5..0000000000
--- a/chromium/patches/patch-content_public_common_common__param__traits__macros.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/common/common_param_traits_macros.h.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/public/common/common_param_traits_macros.h
-@@ -315,7 +315,7 @@ IPC_STRUCT_TRAITS_BEGIN(blink::mojom::Re
-   IPC_STRUCT_TRAITS_MEMBER(accept_languages)
-   IPC_STRUCT_TRAITS_MEMBER(disable_client_blocked_error_page)
-   IPC_STRUCT_TRAITS_MEMBER(plugin_fullscreen_allowed)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   IPC_STRUCT_TRAITS_MEMBER(system_font_family_name)
- #endif
- #if defined(OS_WIN)
diff --git a/chromium/patches/patch-content_public_common_content__constants.cc b/chromium/patches/patch-content_public_common_content__constants.cc
deleted file mode 100644
index 40be4f3620..0000000000
--- a/chromium/patches/patch-content_public_common_content__constants.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/common/content_constants.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/public/common/content_constants.cc
-@@ -46,7 +46,7 @@ const int kDefaultDetachableCancelDelayM
- const char kCorsExemptPurposeHeaderName[] = "Purpose";
- const char kCorsExemptRequestedWithHeaderName[] = "X-Requested-With";
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const int kLowestRendererOomScore = 300;
- const int kHighestRendererOomScore = 1000;
- 
diff --git a/chromium/patches/patch-content_public_common_content__constants.h b/chromium/patches/patch-content_public_common_content__constants.h
deleted file mode 100644
index 012efd3bef..0000000000
--- a/chromium/patches/patch-content_public_common_content__constants.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/common/content_constants.h.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/public/common/content_constants.h
-@@ -65,7 +65,7 @@ CONTENT_EXPORT extern const int kDefault
- CONTENT_EXPORT extern const char kCorsExemptPurposeHeaderName[];
- CONTENT_EXPORT extern const char kCorsExemptRequestedWithHeaderName[];
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // The OOM score adj constants
- // The highest and lowest assigned OOM score adjustment (oom_score_adj) for
- // renderers and extensions used by the OomPriority Manager.
diff --git a/chromium/patches/patch-content_public_common_content__features.cc b/chromium/patches/patch-content_public_common_content__features.cc
index caa1d06956..90ddc1f788 100644
--- a/chromium/patches/patch-content_public_common_content__features.cc
+++ b/chromium/patches/patch-content_public_common_content__features.cc
@@ -1,31 +1,41 @@
 $NetBSD$
 
---- content/public/common/content_features.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/public/common/content_features.cc.orig	2024-07-24 02:44:37.660880600 +0000
 +++ content/public/common/content_features.cc
-@@ -48,7 +48,7 @@ const base::Feature kAudioServiceLaunchO
- const base::Feature kAudioServiceOutOfProcess {
-   "AudioServiceOutOfProcess",
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
-       base::FEATURE_ENABLED_BY_DEFAULT
+@@ -36,7 +36,7 @@ BASE_FEATURE(kAudioServiceOutOfProcess,
+ // TODO(crbug.com/40118868): Remove !IS_CHROMEOS_LACROS once lacros starts being
+ // built with OS_CHROMEOS instead of OS_LINUX.
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
+-    (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS))
++    (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+              base::FEATURE_ENABLED_BY_DEFAULT
  #else
-       base::FEATURE_DISABLED_BY_DEFAULT
-@@ -727,7 +727,7 @@ const base::Feature kWebAssemblyThreads 
- };
- 
- // Enable WebAssembly trap handler.
--#if (defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX)) && \
-+#if (defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD)) && \
-     defined(ARCH_CPU_X86_64)
- const base::Feature kWebAssemblyTrapHandler{"WebAssemblyTrapHandler",
-                                             base::FEATURE_ENABLED_BY_DEFAULT};
-@@ -757,7 +757,7 @@ const base::Feature kWebAuth{"WebAuthent
- // https://w3c.github.io/webauthn
- const base::Feature kWebAuthCable {
-   "WebAuthenticationCable",
--#if !defined(OS_CHROMEOS) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && (defined(OS_LINUX) || defined(OS_BSD))
-       base::FEATURE_DISABLED_BY_DEFAULT
+              base::FEATURE_DISABLED_BY_DEFAULT
+@@ -1090,9 +1090,9 @@ BASE_FEATURE(kWebAssemblyTiering,
+ BASE_FEATURE(kWebAssemblyTrapHandler,
+              "WebAssemblyTrapHandler",
+ #if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ||  \
+-      BUILDFLAG(IS_MAC)) &&                                                  \
++      BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)) &&                                                  \
+      defined(ARCH_CPU_X86_64)) ||                                            \
+-    ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)) && \
++    ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)) && \
+      defined(ARCH_CPU_ARM64))
+              base::FEATURE_ENABLED_BY_DEFAULT
  #else
-       base::FEATURE_ENABLED_BY_DEFAULT
+@@ -1129,7 +1129,11 @@ BASE_FEATURE(kWebUICodeCache,
+ 
+ // Controls whether the WebUSB API is enabled:
+ // https://wicg.github.io/webusb
++#if BUILDFLAG(IS_BSD)
++BASE_FEATURE(kWebUsb, "WebUSB", base::FEATURE_DISABLED_BY_DEFAULT);
++#else
+ BASE_FEATURE(kWebUsb, "WebUSB", base::FEATURE_ENABLED_BY_DEFAULT);
++#endif
+ 
+ // Controls whether the WebXR Device API is enabled.
+ BASE_FEATURE(kWebXr, "WebXR", base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-content_public_common_content__switches.cc b/chromium/patches/patch-content_public_common_content__switches.cc
index edde05746b..dcde1680b6 100644
--- a/chromium/patches/patch-content_public_common_content__switches.cc
+++ b/chromium/patches/patch-content_public_common_content__switches.cc
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- content/public/common/content_switches.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/public/common/content_switches.cc.orig	2024-07-24 02:44:37.664881000 +0000
 +++ content/public/common/content_switches.cc
-@@ -975,7 +975,7 @@ const char kEnableAggressiveDOMStorageFl
- // Enable indication that browser is controlled by automation.
- const char kEnableAutomation[] = "enable-automation";
+@@ -352,6 +352,8 @@ const char kEnableIsolatedWebAppsInRende
+ // builds.
+ const char kEnableLogging[]                 = "enable-logging";
+ 
++const char kDisableUnveil[]                 = "disable-unveil";
++
+ // Enables the type, downlinkMax attributes of the NetInfo API. Also, enables
+ // triggering of change attribute of the NetInfo API when there is a change in
+ // the connection type.
+@@ -993,7 +995,7 @@ const char kPreventResizingContentsForTe
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  // Allows sending text-to-speech requests to speech-dispatcher, a common
  // Linux speech service. Because it's buggy, the user must explicitly
  // enable it so that visiting a random webpage can't cause instability.
diff --git a/chromium/patches/patch-content_public_common_content__switches.h b/chromium/patches/patch-content_public_common_content__switches.h
index 41c996bab5..53e5431ca8 100644
--- a/chromium/patches/patch-content_public_common_content__switches.h
+++ b/chromium/patches/patch-content_public_common_content__switches.h
@@ -1,13 +1,25 @@
 $NetBSD$
 
---- content/public/common/content_switches.h.orig	2020-07-08 21:40:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/public/common/content_switches.h.orig	2024-07-24 02:44:37.664881000 +0000
 +++ content/public/common/content_switches.h
-@@ -267,7 +267,7 @@ CONTENT_EXPORT extern const char kRemote
- CONTENT_EXPORT extern const char kRendererWaitForJavaDebugger[];
- #endif
+@@ -111,6 +111,7 @@ CONTENT_EXPORT extern const char kEnable
+ CONTENT_EXPORT extern const char kEnableIsolatedWebAppsInRenderer[];
+ CONTENT_EXPORT extern const char kEnableLCDText[];
+ CONTENT_EXPORT extern const char kEnableLogging[];
++CONTENT_EXPORT extern const char kDisableUnveil[];
+ CONTENT_EXPORT extern const char kEnableNetworkInformationDownlinkMax[];
+ CONTENT_EXPORT extern const char kEnableCanvas2DLayers[];
+ CONTENT_EXPORT extern const char kEnablePluginPlaceholderTesting[];
+@@ -270,7 +271,7 @@ CONTENT_EXPORT extern const char kPreven
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  CONTENT_EXPORT extern const char kEnableSpeechDispatcher[];
+ CONTENT_EXPORT extern const char kLLVMProfileFile[];
  #endif
- 
diff --git a/chromium/patches/patch-content_public_common_use__zoom__for__dsf__policy.cc b/chromium/patches/patch-content_public_common_use__zoom__for__dsf__policy.cc
deleted file mode 100644
index f57b294952..0000000000
--- a/chromium/patches/patch-content_public_common_use__zoom__for__dsf__policy.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/common/use_zoom_for_dsf_policy.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/public/common/use_zoom_for_dsf_policy.cc
-@@ -25,7 +25,7 @@ const base::Feature kUseZoomForDsfEnable
- #endif
- 
- bool IsUseZoomForDSFEnabledByDefault() {
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
-   return true;
- #elif defined(OS_WIN) || defined(OS_ANDROID)
-   return base::FeatureList::IsEnabled(kUseZoomForDsfEnabledByDefault);
diff --git a/chromium/patches/patch-content_public_common_zygote_features.gni b/chromium/patches/patch-content_public_common_zygote_features.gni
new file mode 100644
index 0000000000..ea335897a0
--- /dev/null
+++ b/chromium/patches/patch-content_public_common_zygote_features.gni
@@ -0,0 +1,14 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/public/common/zygote/features.gni.orig	2024-07-24 02:44:37.668881400 +0000
++++ content/public/common/zygote/features.gni
+@@ -2,4 +2,4 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+ 
+-use_zygote = is_posix && !is_android && !is_apple
++use_zygote = is_posix && !is_android && !is_mac && !is_bsd
diff --git a/chromium/patches/patch-content_public_test_browser__test__base.cc b/chromium/patches/patch-content_public_test_browser__test__base.cc
deleted file mode 100644
index ca7d837ab2..0000000000
--- a/chromium/patches/patch-content_public_test_browser__test__base.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- content/public/test/browser_test_base.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/public/test/browser_test_base.cc
-@@ -73,7 +73,7 @@
- #include "ui/gl/gl_implementation.h"
- #include "ui/gl/gl_switches.h"
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "ui/platform_window/common/platform_window_defaults.h"  // nogncheck
- #endif
- 
-@@ -185,7 +185,7 @@ BrowserTestBase::BrowserTestBase()
-          "a new browser test suite that runs on Android, please add it to "
-          "//build/android/pylib/gtest/gtest_test_instance.py.";
-   g_instance_already_created = true;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   ui::test::EnableTestConfigForPlatformWindows();
- #endif
- 
diff --git a/chromium/patches/patch-content_public_test_content__browser__test.cc b/chromium/patches/patch-content_public_test_content__browser__test.cc
deleted file mode 100644
index 508f44c12d..0000000000
--- a/chromium/patches/patch-content_public_test_content__browser__test.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- content/public/test/content_browser_test.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/public/test/content_browser_test.cc
-@@ -25,7 +25,7 @@
- #include "base/mac/foundation_util.h"
- #endif
- 
--#if !defined(OS_CHROMEOS) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && (defined(OS_LINUX) || defined(OS_BSD))
- #include "ui/base/ime/init/input_method_initializer.h"
- #endif
- 
-@@ -82,7 +82,7 @@ void ContentBrowserTest::SetUp() {
- #endif
- 
-   // LinuxInputMethodContextFactory has to be initialized.
--#if !defined(OS_CHROMEOS) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && (defined(OS_LINUX) || defined(OS_BSD))
-   ui::InitializeInputMethodForTesting();
- #endif
- 
-@@ -95,7 +95,7 @@ void ContentBrowserTest::TearDown() {
-   BrowserTestBase::TearDown();
- 
-   // LinuxInputMethodContextFactory has to be shutdown.
--#if !defined(OS_CHROMEOS) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && (defined(OS_LINUX) || defined(OS_BSD))
-   ui::ShutdownInputMethodForTesting();
- #endif
- }
diff --git a/chromium/patches/patch-content_public_test_mock__render__thread.cc b/chromium/patches/patch-content_public_test_mock__render__thread.cc
deleted file mode 100644
index 6e1cf11ef2..0000000000
--- a/chromium/patches/patch-content_public_test_mock__render__thread.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/public/test/mock_render_thread.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/public/test/mock_render_thread.cc
-@@ -51,7 +51,7 @@ class MockRenderMessageFilterImpl : publ
-     std::move(callback).Run(false);
-   }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   void SetThreadPriority(int32_t platform_thread_id,
-                          base::ThreadPriority thread_priority) override {}
- #endif
diff --git a/chromium/patches/patch-content_renderer_BUILD.gn b/chromium/patches/patch-content_renderer_BUILD.gn
deleted file mode 100644
index 88f48f4644..0000000000
--- a/chromium/patches/patch-content_renderer_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- content/renderer/BUILD.gn.orig	2020-07-08 21:41:48.000000000 +0000
-+++ content/renderer/BUILD.gn
-@@ -452,7 +452,7 @@ target(link_target_type, "renderer") {
-     ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//components/services/font/public/cpp" ]
-   }
- 
-@@ -658,7 +658,7 @@ target(link_target_type, "renderer") {
-     deps += [ "//printing" ]
-   }
- 
--  if (is_linux || is_android) {
-+  if (is_linux || is_android || is_bsd) {
-     deps += [ "//sandbox:sandbox_buildflags" ]
-   }
- 
diff --git a/chromium/patches/patch-content_renderer_media_audio_audio__device__factory.cc b/chromium/patches/patch-content_renderer_media_audio_audio__device__factory.cc
deleted file mode 100644
index 7e91c8e23c..0000000000
--- a/chromium/patches/patch-content_renderer_media_audio_audio__device__factory.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/renderer/media/audio/audio_device_factory.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/renderer/media/audio/audio_device_factory.cc
-@@ -37,7 +37,7 @@ AudioDeviceFactory* AudioDeviceFactory::
- namespace {
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- // Due to driver deadlock issues on Windows (http://crbug/422522) there is a
- // chance device authorization response is never received from the browser side.
- // In this case we will time out, to avoid renderer hang forever waiting for
diff --git a/chromium/patches/patch-content_renderer_media_gpu_gpu__video__accelerator__factories__impl.cc b/chromium/patches/patch-content_renderer_media_gpu_gpu__video__accelerator__factories__impl.cc
new file mode 100644
index 0000000000..c893643bca
--- /dev/null
+++ b/chromium/patches/patch-content_renderer_media_gpu_gpu__video__accelerator__factories__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc.orig	2024-07-24 02:44:37.708885200 +0000
++++ content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
+@@ -47,7 +47,7 @@ bool UseSingleNV12() {
+ #else
+   static BASE_FEATURE(kUseSingleNV12ForSoftwareGMB,
+                       "UseSingleNV12ForSoftwareGMB",
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+                       base::FEATURE_ENABLED_BY_DEFAULT);
+ #else
+                       base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-content_renderer_render__process__impl.cc b/chromium/patches/patch-content_renderer_render__process__impl.cc
deleted file mode 100644
index 7b13aa0ec1..0000000000
--- a/chromium/patches/patch-content_renderer_render__process__impl.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- content/renderer/render_process_impl.cc.orig	2020-07-08 21:40:42.000000000 +0000
-+++ content/renderer/render_process_impl.cc
-@@ -44,7 +44,7 @@
- #if defined(OS_WIN)
- #include "base/win/win_util.h"
- #endif
--#if defined(OS_LINUX) && defined(ARCH_CPU_X86_64)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && defined(ARCH_CPU_X86_64)
- #include "v8/include/v8-wasm-trap-handler-posix.h"
- #endif
- namespace {
-@@ -161,7 +161,7 @@ RenderProcessImpl::RenderProcessImpl()
- 
-   SetV8FlagIfNotFeature(features::kWebAssemblyTrapHandler,
-                         "--no-wasm-trap-handler");
--#if defined(OS_LINUX) && defined(ARCH_CPU_X86_64)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && defined(ARCH_CPU_X86_64)
-   if (base::FeatureList::IsEnabled(features::kWebAssemblyTrapHandler)) {
-     base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
-     if (!command_line->HasSwitch(
diff --git a/chromium/patches/patch-content_renderer_render__thread__impl.cc b/chromium/patches/patch-content_renderer_render__thread__impl.cc
index b44f8eef8a..0e5b304bca 100644
--- a/chromium/patches/patch-content_renderer_render__thread__impl.cc
+++ b/chromium/patches/patch-content_renderer_render__thread__impl.cc
@@ -1,35 +1,44 @@
 $NetBSD$
 
---- content/renderer/render_thread_impl.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/renderer/render_thread_impl.cc.orig	2024-07-24 02:44:37.732887500 +0000
 +++ content/renderer/render_thread_impl.cc
-@@ -177,6 +177,12 @@
+@@ -213,6 +213,8 @@
  
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_APPLE)
  #include <malloc/malloc.h>
-+#elif defined(OS_BSD)
++#elif BUILDFLAG(IS_BSD)
 +#include <stdlib.h>
-+#include <stddef.h>
-+#include <stdint.h>
-+#include <sys/param.h>
-+#include <sys/sysctl.h>
  #else
  #include <malloc.h>
  #endif
-@@ -752,7 +758,7 @@ void RenderThreadImpl::Init() {
-   DCHECK(parsed_num_raster_threads) << string_value;
-   DCHECK_GT(num_raster_threads, 0);
+@@ -999,7 +1001,7 @@ media::GpuVideoAcceleratorFactories* Ren
+                              kGpuStreamIdMedia, kGpuStreamPriorityMedia);
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   categorized_worker_pool_->SetBackgroundingCallback(
-       main_thread_scheduler_->DefaultTaskRunner(),
-       base::BindOnce(
-@@ -775,7 +781,7 @@ void RenderThreadImpl::Init() {
-   base::DiscardableMemoryAllocator::SetInstance(
-       discardable_memory_allocator_.get());
+   const bool enable_video_decode_accelerator =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       base::FeatureList::IsEnabled(media::kVaapiVideoDecodeLinux) &&
+ #endif  // BUILDFLAG(IS_LINUX)
+       !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode) &&
+@@ -1008,7 +1010,7 @@ media::GpuVideoAcceleratorFactories* Ren
+        gpu::kGpuFeatureStatusEnabled);
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   if (base::FeatureList::IsEnabled(
-           blink::features::kBlinkCompositorUseDisplayThreadPriority)) {
-     render_message_filter()->SetThreadPriority(
+   const bool enable_video_encode_accelerator =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       base::FeatureList::IsEnabled(media::kVaapiVideoEncodeLinux) &&
+ #else
+       !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoEncode) &&
+@@ -1760,7 +1762,7 @@ std::unique_ptr<CodecFactory> RenderThre
+     bool enable_video_encode_accelerator) {
+   mojo::PendingRemote<media::mojom::VideoEncodeAcceleratorProvider>
+       vea_provider;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (base::FeatureList::IsEnabled(media::kUseOutOfProcessVideoEncoding)) {
+     BindHostReceiver(vea_provider.InitWithNewPipeAndPassReceiver());
+   } else {
diff --git a/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.cc b/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.cc
index 36683d401c..336cba8886 100644
--- a/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.cc
+++ b/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.cc
@@ -1,49 +1,51 @@
 $NetBSD$
 
---- content/renderer/renderer_blink_platform_impl.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/renderer/renderer_blink_platform_impl.cc.orig	2024-07-24 02:44:37.736888000 +0000
 +++ content/renderer/renderer_blink_platform_impl.cc
-@@ -97,7 +97,7 @@
+@@ -120,7 +120,7 @@
  
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_MAC)
  #include "content/child/child_process_sandbox_support_impl_mac.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "content/child/child_process_sandbox_support_impl_linux.h"
+ #include "content/child/sandboxed_process_thread_type_handler.h"
+ #endif
+@@ -190,13 +190,13 @@ RendererBlinkPlatformImpl::RendererBlink
+       is_locked_to_site_(false),
+       main_thread_scheduler_(main_thread_scheduler),
+       next_frame_sink_id_(uint32_t{std::numeric_limits<int32_t>::max()} + 1) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   sk_sp<font_service::FontLoader> font_loader;
  #endif
- 
-@@ -169,7 +169,7 @@ RendererBlinkPlatformImpl::RendererBlink
  
    // RenderThread may not exist in some tests.
    if (RenderThreadImpl::current()) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      mojo::PendingRemote<font_service::mojom::FontService> font_service;
      RenderThreadImpl::current()->BindHostReceiver(
          font_service.InitWithNewPipeAndPassReceiver());
-@@ -179,7 +179,7 @@ RendererBlinkPlatformImpl::RendererBlink
+@@ -205,7 +205,7 @@ RendererBlinkPlatformImpl::RendererBlink
  #endif
    }
  
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    if (sandboxEnabled()) {
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_MAC)
      sandbox_support_ = std::make_unique<WebSandboxSupportMac>();
-@@ -261,7 +261,7 @@ RendererBlinkPlatformImpl::CreateNetwork
- 
- void RendererBlinkPlatformImpl::SetDisplayThreadPriority(
-     base::PlatformThreadId thread_id) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   if (RenderThreadImpl* render_thread = RenderThreadImpl::current()) {
-     render_thread->render_message_filter()->SetThreadPriority(
-         thread_id, base::ThreadPriority::DISPLAY);
-@@ -274,7 +274,7 @@ blink::BlameContext* RendererBlinkPlatfo
- }
+@@ -266,7 +266,7 @@ void RendererBlinkPlatformImpl::SetThrea
+ #endif
  
  blink::WebSandboxSupport* RendererBlinkPlatformImpl::GetSandboxSupport() {
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    return sandbox_support_.get();
  #else
    // These platforms do not require sandbox support.
diff --git a/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.h b/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.h
index 6735d237f8..1c92c5e0a4 100644
--- a/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.h
+++ b/chromium/patches/patch-content_renderer_renderer__blink__platform__impl.h
@@ -1,31 +1,17 @@
 $NetBSD$
 
---- content/renderer/renderer_blink_platform_impl.h.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/renderer/renderer_blink_platform_impl.h.orig	2024-07-24 02:44:37.736888000 +0000
 +++ content/renderer/renderer_blink_platform_impl.h
-@@ -30,7 +30,7 @@
- #include "third_party/blink/public/mojom/cache_storage/cache_storage.mojom.h"
- #include "third_party/blink/public/mojom/loader/code_cache.mojom.h"
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "components/services/font/public/cpp/font_loader.h"  // nogncheck
- #include "third_party/skia/include/core/SkRefCnt.h"           // nogncheck
- #endif
-@@ -218,7 +218,7 @@ class CONTENT_EXPORT RendererBlinkPlatfo
-   // Return the mojo interface for making CodeCache calls.
-   blink::mojom::CodeCacheHost& GetCodeCacheHost();
+@@ -248,7 +248,7 @@ class CONTENT_EXPORT RendererBlinkPlatfo
+   void Collect3DContextInformation(blink::Platform::GraphicsInfo* gl_info,
+                                    const gpu::GPUInfo& gpu_info) const;
  
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    std::unique_ptr<blink::WebSandboxSupport> sandbox_support_;
  #endif
  
-@@ -239,7 +239,7 @@ class CONTENT_EXPORT RendererBlinkPlatfo
-   mojo::PendingRemote<blink::mojom::CodeCacheHost> code_cache_host_remote_;
-   mojo::SharedRemote<blink::mojom::CodeCacheHost> code_cache_host_;
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   sk_sp<font_service::FontLoader> font_loader_;
- #endif
- 
diff --git a/chromium/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc b/chromium/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc
index f5d9e41910..4bfbc63e4c 100644
--- a/chromium/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc
+++ b/chromium/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc
@@ -1,20 +1,24 @@
 $NetBSD$
 
---- content/renderer/renderer_main_platform_delegate_linux.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/renderer/renderer_main_platform_delegate_linux.cc.orig	2024-07-24 02:44:37.736888000 +0000
 +++ content/renderer/renderer_main_platform_delegate_linux.cc
-@@ -30,6 +30,7 @@ void RendererMainPlatformDelegate::Platf
- }
- 
- bool RendererMainPlatformDelegate::EnableSandbox() {
-+#if !defined(OS_BSD)
-   // The setuid sandbox is started in the zygote process: zygote_main_linux.cc
-   // https://chromium.googlesource.com/chromium/src/+/master/docs/linux/suid_sandbox.md
-   //
-@@ -66,6 +67,7 @@ bool RendererMainPlatformDelegate::Enabl
+@@ -44,6 +44,7 @@ bool RendererMainPlatformDelegate::Enabl
+   // any renderer has been started.
+   // Here, we test that the status of SeccompBpf in the renderer is consistent
+   // with what SandboxLinux::GetStatus() said we would do.
++#if !BUILDFLAG(IS_BSD)
+   auto* linux_sandbox = sandbox::policy::SandboxLinux::GetInstance();
+   if (linux_sandbox->GetStatus() & sandbox::policy::SandboxLinux::kSeccompBPF) {
+     CHECK(linux_sandbox->seccomp_bpf_started());
+@@ -65,6 +66,7 @@ bool RendererMainPlatformDelegate::Enabl
+     CHECK_EQ(errno, EPERM);
    }
  #endif  // __x86_64__
- 
 +#endif
+ 
    return true;
  }
- 
diff --git a/chromium/patches/patch-content_shell_BUILD.gn b/chromium/patches/patch-content_shell_BUILD.gn
index 289b9d3d9b..f6f6807cdd 100644
--- a/chromium/patches/patch-content_shell_BUILD.gn
+++ b/chromium/patches/patch-content_shell_BUILD.gn
@@ -1,48 +1,12 @@
 $NetBSD$
 
---- content/shell/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/shell/BUILD.gn.orig	2024-07-24 02:44:37.760890200 +0000
 +++ content/shell/BUILD.gn
-@@ -226,7 +226,7 @@ static_library("content_shell_app") {
-     "//content/public/app",
-     "//v8",
-   ]
--  if (!is_fuchsia) {
-+  if (!is_fuchsia && !is_bsd) {
-     deps += [
-       "//components/crash/core/app",
-       "//components/crash/core/app:test_support",
-@@ -490,6 +490,12 @@ static_library("content_shell_lib") {
-     deps += [ "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.ui.policy" ]
-   }
- 
-+  if (is_bsd) {
-+    deps -= [
-+      "//components/crash/content/browser",
-+    ]
-+  }
-+
-   if (enable_plugins) {
-     deps += [
-       "//cc/paint",
-@@ -597,7 +603,7 @@ static_library("content_shell_lib") {
-     ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//build/config/freetype" ]
-   }
- 
-@@ -778,7 +784,7 @@ if (is_android) {
-           [ "//third_party/crashpad/crashpad/handler:crashpad_handler" ]
-     }
- 
--    if (is_linux && !is_component_build) {
-+    if ((is_linux || is_bsd) && !is_component_build) {
-       # Set rpath to find our own libfreetype even in a non-component build.
-       configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-     }
-@@ -1066,7 +1072,7 @@ group("content_shell_crash_test") {
+@@ -1099,7 +1099,7 @@ group("content_shell_crash_test") {
    if (is_win) {
      data_deps += [ "//build/win:copy_cdb_to_output" ]
    }
diff --git a/chromium/patches/patch-content_shell_app_shell__main__delegate.cc b/chromium/patches/patch-content_shell_app_shell__main__delegate.cc
index 6d9e5ec27f..8fc013e29a 100644
--- a/chromium/patches/patch-content_shell_app_shell__main__delegate.cc
+++ b/chromium/patches/patch-content_shell_app_shell__main__delegate.cc
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- content/shell/app/shell_main_delegate.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/shell/app/shell_main_delegate.cc.orig	2024-07-24 02:44:37.768891000 +0000
 +++ content/shell/app/shell_main_delegate.cc
-@@ -181,7 +181,7 @@ bool ShellMainDelegate::BasicStartupComp
- }
- 
- void ShellMainDelegate::PreSandboxStartup() {
--#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX))
-+#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || (defined(OS_LINUX) || defined(OS_BSD))
-   // Create an instance of the CPU class to parse /proc/cpuinfo and cache
-   // cpu_brand info.
-   base::CPU cpu_info;
-@@ -200,7 +200,7 @@ void ShellMainDelegate::PreSandboxStartu
+@@ -281,7 +281,7 @@ void ShellMainDelegate::PreSandboxStartu
      // Reporting for sub-processes will be initialized in ZygoteForked.
-     if (process_type != service_manager::switches::kZygoteProcess) {
+     if (process_type != switches::kZygoteProcess) {
        crash_reporter::InitializeCrashpad(process_type.empty(), process_type);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
        crash_reporter::SetFirstChanceExceptionHandler(
            v8::TryHandleWebAssemblyTrapPosix);
  #endif
diff --git a/chromium/patches/patch-content_shell_browser_shell__browser__context.cc b/chromium/patches/patch-content_shell_browser_shell__browser__context.cc
deleted file mode 100644
index 1f7f9ea85c..0000000000
--- a/chromium/patches/patch-content_shell_browser_shell__browser__context.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- content/shell/browser/shell_browser_context.cc.orig	2020-07-08 21:41:48.000000000 +0000
-+++ content/shell/browser/shell_browser_context.cc
-@@ -31,7 +31,7 @@
- 
- #if defined(OS_WIN)
- #include "base/base_paths_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #include "base/nix/xdg_util.h"
- #elif defined(OS_MACOSX)
- #include "base/base_paths_mac.h"
-@@ -106,7 +106,7 @@ void ShellBrowserContext::InitWhileIOAll
- #if defined(OS_WIN)
-   CHECK(base::PathService::Get(base::DIR_LOCAL_APP_DATA, &path_));
-   path_ = path_.Append(std::wstring(L"content_shell"));
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   std::unique_ptr<base::Environment> env(base::Environment::Create());
-   base::FilePath config_dir(
-       base::nix::GetXDGDirectory(env.get(),
diff --git a/chromium/patches/patch-content_shell_browser_shell__browser__main__parts.cc b/chromium/patches/patch-content_shell_browser_shell__browser__main__parts.cc
index ccd955afcb..c02cbfe6af 100644
--- a/chromium/patches/patch-content_shell_browser_shell__browser__main__parts.cc
+++ b/chromium/patches/patch-content_shell_browser_shell__browser__main__parts.cc
@@ -1,22 +1,53 @@
 $NetBSD$
 
---- content/shell/browser/shell_browser_main_parts.cc.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/shell/browser/shell_browser_main_parts.cc.orig	2024-07-24 02:44:37.772891500 +0000
 +++ content/shell/browser/shell_browser_main_parts.cc
-@@ -50,7 +50,7 @@
- #if defined(USE_AURA) && defined(USE_X11)
- #include "ui/events/devices/x11/touch_factory_x11.h"  // nogncheck
+@@ -51,7 +51,7 @@
+ #include "net/base/network_change_notifier.h"
  #endif
--#if !defined(OS_CHROMEOS) && defined(USE_AURA) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
+ 
+-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
  #include "ui/base/ime/init/input_method_initializer.h"
  #endif
- #if defined(OS_CHROMEOS)
-@@ -137,7 +137,7 @@ int ShellBrowserMainParts::PreEarlyIniti
-   if (!features::IsUsingOzonePlatform())
-     ui::SetDefaultX11ErrorHandlers();
+ 
+@@ -68,7 +68,7 @@
+ #include "chromeos/lacros/dbus/lacros_dbus_thread_manager.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"          // nogncheck
+ #include "ui/linux/linux_ui_factory.h"  // nogncheck
  #endif
--#if !defined(OS_CHROMEOS) && defined(USE_AURA) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
+@@ -139,7 +139,7 @@ void ShellBrowserMainParts::PostCreateMa
+ }
+ 
+ int ShellBrowserMainParts::PreEarlyInitialization() {
+-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
    ui::InitializeInputMethodForTesting();
  #endif
- #if defined(OS_ANDROID)
+ #if BUILDFLAG(IS_ANDROID)
+@@ -168,7 +168,7 @@ void ShellBrowserMainParts::ToolkitIniti
+   if (switches::IsRunWebTestsSwitchPresent())
+     return;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   ui::LinuxUi::SetInstance(ui::GetDefaultLinuxUi());
+ #endif
+ }
+@@ -215,7 +215,7 @@ void ShellBrowserMainParts::PostMainMess
+   ShellDevToolsManagerDelegate::StopHttpHandler();
+   browser_context_.reset();
+   off_the_record_browser_context_.reset();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   ui::LinuxUi::SetInstance(nullptr);
+ #endif
+   performance_manager_lifetime_.reset();
diff --git a/chromium/patches/patch-content_shell_browser_shell__paths.cc b/chromium/patches/patch-content_shell_browser_shell__paths.cc
new file mode 100644
index 0000000000..aa76a03d2b
--- /dev/null
+++ b/chromium/patches/patch-content_shell_browser_shell__paths.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/shell/browser/shell_paths.cc.orig	2024-07-24 02:44:37.776892000 +0000
++++ content/shell/browser/shell_paths.cc
+@@ -13,7 +13,7 @@
+ 
+ #if BUILDFLAG(IS_FUCHSIA)
+ #include "base/fuchsia/file_utils.h"
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/nix/xdg_util.h"
+ #endif
+ 
+@@ -25,7 +25,7 @@ bool GetDefaultUserDataDirectory(base::F
+ #if BUILDFLAG(IS_WIN)
+   CHECK(base::PathService::Get(base::DIR_LOCAL_APP_DATA, result));
+   *result = result->Append(std::wstring(L"content_shell"));
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   std::unique_ptr<base::Environment> env(base::Environment::Create());
+   base::FilePath config_dir(base::nix::GetXDGDirectory(
+       env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir));
diff --git a/chromium/patches/patch-content_shell_browser_web__test_web__test__browser__context.cc b/chromium/patches/patch-content_shell_browser_web__test_web__test__browser__context.cc
deleted file mode 100644
index 9a435a00dd..0000000000
--- a/chromium/patches/patch-content_shell_browser_web__test_web__test__browser__context.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/shell/browser/web_test/web_test_browser_context.cc.orig	2020-07-08 21:41:48.000000000 +0000
-+++ content/shell/browser/web_test/web_test_browser_context.cc
-@@ -26,7 +26,7 @@
- 
- #if defined(OS_WIN)
- #include "base/base_paths_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #include "base/nix/xdg_util.h"
- #elif defined(OS_MACOSX)
- #include "base/base_paths_mac.h"
diff --git a/chromium/patches/patch-content_shell_browser_web__test_web__test__browser__main__parts.cc b/chromium/patches/patch-content_shell_browser_web__test_web__test__browser__main__parts.cc
deleted file mode 100644
index 2366ec3bd7..0000000000
--- a/chromium/patches/patch-content_shell_browser_web__test_web__test__browser__main__parts.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/shell/browser/web_test/web_test_browser_main_parts.cc.orig	2020-07-08 21:40:43.000000000 +0000
-+++ content/shell/browser/web_test/web_test_browser_main_parts.cc
-@@ -37,7 +37,7 @@
- #if defined(USE_AURA) && defined(USE_X11)
- #include "ui/events/devices/x11/touch_factory_x11.h"  // nogncheck
- #endif
--#if !defined(OS_CHROMEOS) && defined(USE_AURA) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- #include "ui/base/ime/init/input_method_initializer.h"
- #endif
- 
diff --git a/chromium/patches/patch-content_shell_renderer_shell__content__renderer__client.cc b/chromium/patches/patch-content_shell_renderer_shell__content__renderer__client.cc
new file mode 100644
index 0000000000..ba2ad3eba4
--- /dev/null
+++ b/chromium/patches/patch-content_shell_renderer_shell__content__renderer__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/shell/renderer/shell_content_renderer_client.cc.orig	2024-07-24 02:44:37.780892100 +0000
++++ content/shell/renderer/shell_content_renderer_client.cc
+@@ -54,7 +54,7 @@
+ #include "media/base/media_switches.h"
+ #endif
+ 
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+     (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM64))
+ #define ENABLE_WEB_ASSEMBLY_TRAP_HANDLER_LINUX
+ #include "base/debug/stack_trace.h"
diff --git a/chromium/patches/patch-content_shell_renderer_web__test_test__runner.cc b/chromium/patches/patch-content_shell_renderer_web__test_test__runner.cc
deleted file mode 100644
index 248f2f0eb5..0000000000
--- a/chromium/patches/patch-content_shell_renderer_web__test_test__runner.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- content/shell/renderer/web_test/test_runner.cc.orig	2020-07-08 21:41:48.000000000 +0000
-+++ content/shell/renderer/web_test/test_runner.cc
-@@ -80,7 +80,7 @@
- #include "ui/gfx/skia_util.h"
- #include "ui/gfx/test/icc_profiles.h"
- 
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- #include "third_party/blink/public/platform/web_font_render_style.h"
- #endif
- 
-@@ -2198,7 +2198,7 @@ void TestRunner::Reset() {
-   drag_image_.reset();
- 
-   blink::WebSecurityPolicy::ClearOriginAccessList();
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
-   blink::WebFontRenderStyle::SetSubpixelPositioning(false);
- #endif
-   blink::ResetDomainRelaxationForTest();
-@@ -2782,7 +2782,7 @@ void TestRunner::AddOriginAccessAllowLis
- }
- 
- void TestRunner::SetTextSubpixelPositioning(bool value) {
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
-   // Since FontConfig doesn't provide a variable to control subpixel
-   // positioning, we'll fall back to setting it globally for all fonts.
-   blink::WebFontRenderStyle::SetSubpixelPositioning(value);
diff --git a/chromium/patches/patch-content_shell_utility_shell__content__utility__client.cc b/chromium/patches/patch-content_shell_utility_shell__content__utility__client.cc
new file mode 100644
index 0000000000..0d428b773b
--- /dev/null
+++ b/chromium/patches/patch-content_shell_utility_shell__content__utility__client.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/shell/utility/shell_content_utility_client.cc.orig	2024-07-24 02:44:37.780892100 +0000
++++ content/shell/utility/shell_content_utility_client.cc
+@@ -38,7 +38,7 @@
+ #include "sandbox/policy/sandbox.h"
+ #include "services/test/echo/echo_service.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/test/sandbox_status_service.h"
+ #endif
+ 
+@@ -187,7 +187,7 @@ void ShellContentUtilityClient::ExposeIn
+   binders->Add<mojom::PowerMonitorTest>(
+       base::BindRepeating(&PowerMonitorTestImpl::MakeSelfOwnedReceiver),
+       base::SingleThreadTaskRunner::GetCurrentDefault());
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (register_sandbox_status_helper_) {
+     binders->Add<content::mojom::SandboxStatusService>(
+         base::BindRepeating(
diff --git a/chromium/patches/patch-content_test_BUILD.gn b/chromium/patches/patch-content_test_BUILD.gn
index fd2e3bf85a..b8ade6f2e8 100644
--- a/chromium/patches/patch-content_test_BUILD.gn
+++ b/chromium/patches/patch-content_test_BUILD.gn
@@ -1,98 +1,17 @@
 $NetBSD$
 
---- content/test/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/test/BUILD.gn.orig	2024-07-24 02:44:37.780892100 +0000
 +++ content/test/BUILD.gn
-@@ -585,7 +585,7 @@ jumbo_static_library("test_support") {
-     ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//ui/platform_window/common" ]
-   }
- 
-@@ -1316,7 +1316,7 @@ test("content_browsertests") {
-     }
-   }
- 
--  if (is_android || is_linux || is_mac || is_win) {
-+  if (is_android || is_linux || is_mac || is_win || is_bsd) {
-     data += [
-       "$root_out_dir/content_shell.pak",
-       "data/",
-@@ -1324,7 +1324,7 @@ test("content_browsertests") {
-     ]
-   }
- 
--  if (is_linux || is_mac || is_win) {
-+  if (is_linux || is_mac || is_win || is_bsd) {
-     sources += [
-       "../browser/media/capture/content_capture_device_browsertest_base.cc",
-       "../browser/media/capture/content_capture_device_browsertest_base.h",
-@@ -1386,7 +1386,7 @@ test("content_browsertests") {
-     configs += [ "//build/config/win:delayloads" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "../browser/utility_process_sandbox_browsertest.cc",
-       "../browser/zygote_host/zygote_browsertest.cc",
-@@ -1396,6 +1396,12 @@ test("content_browsertests") {
-       "//ui/gfx:test_support",
-     ]
- 
-+    if (is_bsd) {
-+      sources -= [
-+        "../browser/utility_process_sandbox_browsertest.cc",
-+      ]
-+    }
-+
-     if (use_atk) {
-       sources += [
-         "../browser/accessibility/accessibility_auralinux_browsertest.cc",
-@@ -1524,7 +1530,7 @@ test("content_browsertests") {
-     data_deps += [ "//ppapi:ppapi_tests" ]
-   }
- 
--  if ((is_win || is_chromeos || is_linux) && !is_tsan) {
-+  if ((is_win || is_chromeos || is_linux || is_bsd) && !is_tsan) {
-     # NOTE: We don't bother to build these tests when TSan is enabled, because
-     # they can't properly launch a child content_shell in that environment.
-     sources += [ "../browser/launch_as_mojo_client_browsertest.cc" ]
-@@ -1599,7 +1605,7 @@ static_library("run_all_unittests") {
-     ":test_support",
-     "//base/test:test_support",
+@@ -1685,7 +1685,7 @@ test("content_browsertests") {
+     "../test/url_loader_interceptor_browsertest.cc",
    ]
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//services/service_manager/embedder:set_process_title_linux" ]
-   }
- }
-@@ -2073,7 +2079,7 @@ test("content_unittests") {
-         [ "../browser/accessibility/browser_accessibility_android_unittest.cc" ]
-   }
- 
--  if (is_android || is_linux || is_mac || is_win || is_fuchsia) {
-+  if (is_android || is_linux || is_mac || is_win || is_fuchsia || is_bsd) {
-     data = [
-       "$root_out_dir/content_shell.pak",
-       "data/",
-@@ -2279,7 +2285,7 @@ test("content_unittests") {
-     }
-   }
  
 -  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     if (use_dbus) {
-       deps += [ "//dbus:test_support" ]
-     }
-@@ -2420,7 +2426,7 @@ test("content_unittests") {
-     deps += [ "//ui/gfx/x" ]
++  if ((is_linux) && !is_bsd) {
+     sources += [ "../browser/network/address_map_linux_browsertest.cc" ]
    }
  
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [ "../../services/service_manager/embedder/set_process_title_linux_unittest.cc" ]
-     deps += [ "//services/service_manager/embedder:set_process_title_linux" ]
-   }
diff --git a/chromium/patches/patch-content_test_content__test__suite.cc b/chromium/patches/patch-content_test_content__test__suite.cc
deleted file mode 100644
index a255efec71..0000000000
--- a/chromium/patches/patch-content_test_content__test__suite.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- content/test/content_test_suite.cc.orig	2020-07-08 21:40:43.000000000 +0000
-+++ content/test/content_test_suite.cc
-@@ -83,6 +83,7 @@ void ContentTestSuite::Initialize() {
-   // to initialize GL, so don't do it here.
-   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
-   bool is_child_process = command_line->HasSwitch(switches::kTestChildProcess);
-+#if !defined(OS_BSD)
-   if (!is_child_process) {
-     gl::GLSurfaceTestSupport::InitializeNoExtensionsOneOff();
-     auto* gpu_feature_info = gpu::GetTestGpuThreadHolder()->GetGpuFeatureInfo();
-@@ -90,6 +91,7 @@ void ContentTestSuite::Initialize() {
-         gpu_feature_info->disabled_extensions);
-     gl::init::InitializeExtensionSettingsOneOffPlatform();
-   }
-+#endif
-   testing::TestEventListeners& listeners =
-       testing::UnitTest::GetInstance()->listeners();
-   listeners.Append(new TestInitializationListener);
diff --git a/chromium/patches/patch-content_utility_BUILD.gn b/chromium/patches/patch-content_utility_BUILD.gn
deleted file mode 100644
index 0235d2084b..0000000000
--- a/chromium/patches/patch-content_utility_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- content/utility/BUILD.gn.orig	2020-07-15 18:55:57.000000000 +0000
-+++ content/utility/BUILD.gn
-@@ -85,7 +85,7 @@ jumbo_source_set("utility") {
-     deps += [ "//services/proxy_resolver:lib" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//content/utility/speech:speech_recognition_sandbox_hook" ]
-   }
- 
diff --git a/chromium/patches/patch-content_utility_services.cc b/chromium/patches/patch-content_utility_services.cc
new file mode 100644
index 0000000000..848a2df7e4
--- /dev/null
+++ b/chromium/patches/patch-content_utility_services.cc
@@ -0,0 +1,105 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/services.cc.orig	2024-07-24 02:44:38.328945400 +0000
++++ content/utility/services.cc
+@@ -74,7 +74,7 @@
+ extern sandbox::TargetServices* g_utility_target_services;
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "media/mojo/services/mojo_video_encode_accelerator_provider_factory.h"
+ #include "sandbox/linux/services/libc_interceptor.h"
+ #include "sandbox/policy/mojom/sandbox.mojom.h"
+@@ -97,7 +97,7 @@ extern sandbox::TargetServices* g_utilit
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH) && (BUILDFLAG(USE_VAAPI) ||
+         // BUILDFLAG(USE_V4L2_CODEC))
+ 
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)) && \
+     (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
+ #include "content/common/features.h"
+ #include "media/mojo/services/stable_video_decoder_factory_process_service.h"  // nogncheck
+@@ -115,13 +115,13 @@ extern sandbox::TargetServices* g_utilit
+ #endif  // BUILDFLAG(ENABLE_ACCESSIBILITY_SERVICE)
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || \
+-    BUILDFLAG(ENABLE_VIDEO_EFFECTS)
++    BUILDFLAG(ENABLE_VIDEO_EFFECTS) || BUILDFLAG(IS_BSD)
+ #include "services/viz/public/cpp/gpu/gpu.h"
+ #include "services/viz/public/mojom/gpu.mojom.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+         // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(ENABLE_VIDEO_EFFECTS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "media/capture/capture_switches.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+         // BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -239,7 +239,7 @@ auto RunAudio(mojo::PendingReceiver<audi
+       << "task_policy_set TASK_QOS_POLICY";
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   auto* command_line = base::CommandLine::ForCurrentProcess();
+   if (sandbox::policy::SandboxTypeFromCommandLine(*command_line) ==
+       sandbox::mojom::Sandbox::kNoSandbox) {
+@@ -328,7 +328,7 @@ auto RunVideoCapture(
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+   auto service = std::make_unique<UtilityThreadVideoCaptureServiceImpl>(
+       std::move(receiver), base::SingleThreadTaskRunner::GetCurrentDefault());
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+   {
+ #else
+@@ -384,7 +384,7 @@ auto RunOOPArcVideoAcceleratorFactorySer
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH) && (BUILDFLAG(USE_VAAPI) ||
+         // BUILDFLAG(USE_V4L2_CODEC))
+ 
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)) && \
+     (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
+ auto RunStableVideoDecoderFactoryProcessService(
+     mojo::PendingReceiver<
+@@ -395,7 +395,7 @@ auto RunStableVideoDecoderFactoryProcess
+ #endif  // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) &&
+         // (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ auto RunVideoEncodeAcceleratorProviderFactory(
+     mojo::PendingReceiver<media::mojom::VideoEncodeAcceleratorProviderFactory>
+         receiver) {
+@@ -418,7 +418,7 @@ void RegisterIOThreadServices(mojo::Serv
+   // loop of type IO that can get notified when pipes have data.
+   services.Add(RunNetworkService);
+ 
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)) && \
+     (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
+   if (base::FeatureList::IsEnabled(
+           features::kRunStableVideoDecoderFactoryProcessServiceOnIOThread)) {
+@@ -470,7 +470,7 @@ void RegisterMainThreadServices(mojo::Se
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH) && (BUILDFLAG(USE_VAAPI) ||
+         // BUILDFLAG(USE_V4L2_CODEC))
+ 
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)) && \
+     (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
+   if (!base::FeatureList::IsEnabled(
+           features::kRunStableVideoDecoderFactoryProcessServiceOnIOThread)) {
+@@ -479,7 +479,7 @@ void RegisterMainThreadServices(mojo::Se
+ #endif  // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)) &&
+         // (BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC))
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   services.Add(RunVideoEncodeAcceleratorProviderFactory);
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
diff --git a/chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc b/chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc
new file mode 100644
index 0000000000..2f1256940a
--- /dev/null
+++ b/chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc
@@ -0,0 +1,43 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/speech/speech_recognition_sandbox_hook_linux.cc.orig	2024-07-24 02:44:38.328945400 +0000
++++ content/utility/speech/speech_recognition_sandbox_hook_linux.cc
+@@ -12,11 +12,14 @@
+ #include "sandbox/linux/syscall_broker/broker_command.h"
+ #include "sandbox/linux/syscall_broker/broker_file_permission.h"
+ 
++#if !BUILDFLAG(IS_BSD)
+ using sandbox::syscall_broker::BrokerFilePermission;
+ using sandbox::syscall_broker::MakeBrokerCommandSet;
++#endif
+ 
+ namespace speech {
+ 
++#if !BUILDFLAG(IS_BSD)
+ namespace {
+ 
+ // Gets the file permissions required by the Speech On-Device API (SODA).
+@@ -50,9 +53,11 @@ std::vector<BrokerFilePermission> GetSod
+ }
+ 
+ }  // namespace
++#endif
+ 
+ bool SpeechRecognitionPreSandboxHook(
+     sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(ENABLE_SODA_INTEGRATION_TESTS)
+   base::FilePath test_binary_path = GetSodaTestBinaryPath();
+   DVLOG(0) << "SODA test binary path: " << test_binary_path.value().c_str();
+@@ -75,6 +80,7 @@ bool SpeechRecognitionPreSandboxHook(
+                                }),
+                                GetSodaFilePermissions(), options);
+   instance->EngageNamespaceSandboxIfPossible();
++#endif
+ 
+   return true;
+ }
diff --git a/chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h b/chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h
new file mode 100644
index 0000000000..e6a351834f
--- /dev/null
+++ b/chromium/patches/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/speech/speech_recognition_sandbox_hook_linux.h.orig	2024-07-24 02:44:38.328945400 +0000
++++ content/utility/speech/speech_recognition_sandbox_hook_linux.h
+@@ -5,7 +5,13 @@
+ #ifndef CONTENT_UTILITY_SPEECH_SPEECH_RECOGNITION_SANDBOX_HOOK_LINUX_H_
+ #define CONTENT_UTILITY_SPEECH_SPEECH_RECOGNITION_SANDBOX_HOOK_LINUX_H_
+ 
++#include "build/build_config.h"
++
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ 
+ namespace speech {
+ 
diff --git a/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc b/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc
index 849e2451bc..45292ac54c 100644
--- a/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc
+++ b/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- content/utility/utility_blink_platform_with_sandbox_support_impl.cc.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/utility_blink_platform_with_sandbox_support_impl.cc.orig	2024-07-24 02:44:38.328945400 +0000
 +++ content/utility/utility_blink_platform_with_sandbox_support_impl.cc
 @@ -9,7 +9,7 @@
  
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_MAC)
  #include "content/child/child_process_sandbox_support_impl_mac.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "content/child/child_process_sandbox_support_impl_linux.h"
  #endif
  
@@ -15,17 +19,17 @@ $NetBSD$
  
  UtilityBlinkPlatformWithSandboxSupportImpl::
      UtilityBlinkPlatformWithSandboxSupportImpl() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    mojo::PendingRemote<font_service::mojom::FontService> font_service;
    UtilityThread::Get()->BindHostReceiver(
        font_service.InitWithNewPipeAndPassReceiver());
-@@ -34,7 +34,7 @@ UtilityBlinkPlatformWithSandboxSupportIm
+@@ -35,7 +35,7 @@ UtilityBlinkPlatformWithSandboxSupportIm
  
  blink::WebSandboxSupport*
  UtilityBlinkPlatformWithSandboxSupportImpl::GetSandboxSupport() {
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    return sandbox_support_.get();
  #else
    return nullptr;
diff --git a/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h b/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h
index 743207947d..c4b25d62b1 100644
--- a/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h
+++ b/chromium/patches/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h
@@ -1,26 +1,17 @@
 $NetBSD$
 
---- content/utility/utility_blink_platform_with_sandbox_support_impl.h.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/utility_blink_platform_with_sandbox_support_impl.h.orig	2024-07-24 02:44:38.328945400 +0000
 +++ content/utility/utility_blink_platform_with_sandbox_support_impl.h
-@@ -11,7 +11,7 @@
- #include "build/build_config.h"
- #include "third_party/blink/public/platform/platform.h"
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "components/services/font/public/cpp/font_loader.h"  // nogncheck
- #include "third_party/skia/include/core/SkRefCnt.h"           // nogncheck
- #endif
-@@ -33,10 +33,10 @@ class UtilityBlinkPlatformWithSandboxSup
+@@ -33,7 +33,7 @@ class UtilityBlinkPlatformWithSandboxSup
    blink::WebSandboxSupport* GetSandboxSupport() override;
  
   private:
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    std::unique_ptr<blink::WebSandboxSupport> sandbox_support_;
  #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   sk_sp<font_service::FontLoader> font_loader_;
- #endif
- 
+ };
diff --git a/chromium/patches/patch-content_utility_utility__main.cc b/chromium/patches/patch-content_utility_utility__main.cc
new file mode 100644
index 0000000000..e3418b9369
--- /dev/null
+++ b/chromium/patches/patch-content_utility_utility__main.cc
@@ -0,0 +1,134 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/utility_main.cc.orig	2024-07-24 02:44:38.328945400 +0000
++++ content/utility/utility_main.cc
+@@ -36,17 +36,21 @@
+ #include "services/screen_ai/buildflags/buildflags.h"
+ #include "services/tracing/public/cpp/trace_startup.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/file_descriptor_store.h"
+ #include "base/files/file_util.h"
+ #include "base/pickle.h"
+ #include "content/child/sandboxed_process_thread_type_handler.h"
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "content/common/gpu_pre_sandbox_hook_linux.h"
++#endif
+ #include "content/public/common/content_descriptor_keys.h"
+ #include "content/utility/speech/speech_recognition_sandbox_hook_linux.h"
+ #include "gpu/config/gpu_info_collector.h"
+ #include "media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h"
++#if !BUILDFLAG(IS_BSD)
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ #include "services/audio/audio_sandbox_hook_linux.h"
+ #include "services/network/network_sandbox_hook_linux.h"
+ // gn check is not smart enough to realize that this include only applies to
+@@ -58,10 +62,15 @@
+ #endif
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+ 
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#include "content/common/gpu_pre_sandbox_hook_bsd.h"
++#endif
++
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ #include "chromeos/ash/components/assistant/buildflags.h"
+ #include "chromeos/ash/services/ime/ime_sandbox_hook.h"
+@@ -73,7 +82,7 @@
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+ #if (BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) && \
+-     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)))
++     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)))
+ #include "services/screen_ai/public/cpp/utilities.h"  // nogncheck
+ #include "services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h"  // nogncheck
+ #endif
+@@ -100,7 +109,7 @@ namespace content {
+ 
+ namespace {
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::vector<std::string> GetNetworkContextsParentDirectories() {
+   base::MemoryMappedFile::Region region;
+   base::ScopedFD read_pipe_fd = base::FileDescriptorStore::GetInstance().TakeFD(
+@@ -127,9 +136,10 @@ std::vector<std::string> GetNetworkConte
+   return dirs;
+ }
+ 
++#if !BUILDFLAG(IS_BSD)
+ bool ShouldUseAmdGpuPolicy(sandbox::mojom::Sandbox sandbox_type) {
+   const bool obtain_gpu_info =
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+       sandbox_type == sandbox::mojom::Sandbox::kHardwareVideoDecoding ||
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+       sandbox_type == sandbox::mojom::Sandbox::kHardwareVideoEncoding;
+@@ -144,6 +154,7 @@ bool ShouldUseAmdGpuPolicy(sandbox::mojo
+ 
+   return false;
+ }
++#endif
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+ #if BUILDFLAG(IS_WIN)
+@@ -241,7 +252,8 @@ int UtilityMain(MainFunctionParams param
+     CHECK(on_device_model::OnDeviceModelService::PreSandboxInit());
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++// XXX BSD
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+   // Thread type delegate of the process should be registered before first
+   // thread type change in ChildProcess constructor. It also needs to be
+   // registered before the process has multiple threads, which may race with
+@@ -253,7 +265,7 @@ int UtilityMain(MainFunctionParams param
+   }
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Initializes the sandbox before any threads are created.
+   // TODO(jorgelo): move this after GTK initialization when we enable a strict
+   // Seccomp-BPF policy.
+@@ -291,7 +303,7 @@ int UtilityMain(MainFunctionParams param
+                              screen_ai::GetBinaryPathSwitch()));
+       break;
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+     case sandbox::mojom::Sandbox::kHardwareVideoDecoding:
+       pre_sandbox_hook =
+           base::BindOnce(&media::HardwareVideoDecodingPreSandboxHook);
+@@ -318,6 +330,7 @@ int UtilityMain(MainFunctionParams param
+     default:
+       break;
+   }
++#if !BUILDFLAG(IS_BSD)
+   if (!sandbox::policy::IsUnsandboxedSandboxType(sandbox_type) &&
+       (parameters.zygote_child || !pre_sandbox_hook.is_null())) {
+     sandbox_options.use_amd_specific_policies =
+@@ -325,6 +338,11 @@ int UtilityMain(MainFunctionParams param
+     sandbox::policy::Sandbox::Initialize(
+         sandbox_type, std::move(pre_sandbox_hook), sandbox_options);
+   }
++#else
++  sandbox::policy::Sandbox::Initialize(
++      sandbox_type, std::move(pre_sandbox_hook),
++      sandbox::policy::SandboxLinux::Options());
++#endif
+ 
+   // Start the HangWatcher now that the sandbox is engaged, if it hasn't
+   // already been started.
diff --git a/chromium/patches/patch-content_utility_utility__thread__impl.cc b/chromium/patches/patch-content_utility_utility__thread__impl.cc
new file mode 100644
index 0000000000..70fd524121
--- /dev/null
+++ b/chromium/patches/patch-content_utility_utility__thread__impl.cc
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/utility/utility_thread_impl.cc.orig	2024-07-24 02:44:38.328945400 +0000
++++ content/utility/utility_thread_impl.cc
+@@ -31,7 +31,7 @@
+ #include "mojo/public/cpp/bindings/pending_receiver.h"
+ #include "mojo/public/cpp/bindings/service_factory.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "content/child/sandboxed_process_thread_type_handler.h"
+ #endif
+ 
+@@ -251,7 +251,8 @@ void UtilityThreadImpl::Init() {
+ 
+   GetContentClient()->utility()->UtilityThreadStarted();
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++// XXX BSD
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD)
+   SandboxedProcessThreadTypeHandler::NotifyMainChildThreadCreated();
+ #endif
+ 
diff --git a/chromium/patches/patch-content_zygote_BUILD.gn b/chromium/patches/patch-content_zygote_BUILD.gn
index 7f15ff33d9..ed412669b9 100644
--- a/chromium/patches/patch-content_zygote_BUILD.gn
+++ b/chromium/patches/patch-content_zygote_BUILD.gn
@@ -1,26 +1,17 @@
 $NetBSD$
 
---- content/zygote/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/zygote/BUILD.gn.orig	2024-07-24 02:44:38.344946900 +0000
 +++ content/zygote/BUILD.gn
 @@ -5,7 +5,7 @@
  import("//build/config/nacl/config.gni")
  import("//content/public/common/zygote/features.gni")
  
--if (is_linux) {
-+if (is_linux || is_bsd) {
+-if (is_linux || is_chromeos) {
++if ((is_linux || is_chromeos) && !is_bsd) {
    source_set("zygote") {
      sources = [
        "zygote_linux.cc",
-@@ -26,6 +26,12 @@ if (is_linux) {
-     ]
- 
-     configs += [ "//content:content_implementation" ]
-+
-+    if (is_bsd) {
-+      sources -= [
-+        "zygote_linux.cc",
-+      ]
-+    }
-   }
- } else {
-   group("zygote") {
diff --git a/chromium/patches/patch-content_zygote_zygote__linux.cc b/chromium/patches/patch-content_zygote_zygote__linux.cc
new file mode 100644
index 0000000000..7ced53eb55
--- /dev/null
+++ b/chromium/patches/patch-content_zygote_zygote__linux.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/zygote/zygote_linux.cc.orig	2024-07-24 02:44:38.344946900 +0000
++++ content/zygote/zygote_linux.cc
+@@ -1,6 +1,7 @@
+ // Copyright 2012 The Chromium Authors
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
++#if 0
+ 
+ #ifdef UNSAFE_BUFFERS_BUILD
+ // TODO(crbug.com/342213636): Remove this and spanify to fix the errors.
+@@ -723,3 +724,4 @@ void Zygote::HandleReinitializeLoggingRe
+ }
+ 
+ }  // namespace content
++#endif
diff --git a/chromium/patches/patch-content_zygote_zygote__main__linux.cc b/chromium/patches/patch-content_zygote_zygote__main__linux.cc
index c9a572b05f..092d51cf06 100644
--- a/chromium/patches/patch-content_zygote_zygote__main__linux.cc
+++ b/chromium/patches/patch-content_zygote_zygote__main__linux.cc
@@ -1,32 +1,64 @@
 $NetBSD$
 
---- content/zygote/zygote_main_linux.cc.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- content/zygote/zygote_main_linux.cc.orig	2024-07-24 02:44:38.344946900 +0000
 +++ content/zygote/zygote_main_linux.cc
 @@ -11,7 +11,9 @@
  #include <stddef.h>
  #include <stdint.h>
  #include <string.h>
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
  #include <sys/prctl.h>
 +#endif
  #include <sys/socket.h>
  #include <sys/types.h>
  #include <unistd.h>
-@@ -100,6 +102,9 @@ static bool CreateInitProcessReaper(
- // created through the setuid sandbox.
- static bool EnterSuidSandbox(sandbox::SetuidSandboxClient* setuid_sandbox,
-                              base::OnceClosure post_fork_parent_callback) {
-+#if defined(OS_BSD)
-+  return false;
-+#else
-   DCHECK(setuid_sandbox);
-   DCHECK(setuid_sandbox->IsSuidSandboxChild());
+@@ -41,7 +43,9 @@
+ #include "sandbox/linux/services/thread_helpers.h"
+ #include "sandbox/linux/suid/client/setuid_sandbox_client.h"
+ #include "sandbox/policy/linux/sandbox_debug_handling_linux.h"
++#if !BUILDFLAG(IS_BSD)
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ #include "sandbox/policy/sandbox.h"
+ #include "sandbox/policy/switches.h"
+ #include "third_party/icu/source/i18n/unicode/timezone.h"
+@@ -50,11 +54,13 @@ namespace content {
+ 
+ namespace {
+ 
++#if !BUILDFLAG(IS_BSD)
+ void CloseFds(const std::vector<int>& fds) {
+   for (const auto& it : fds) {
+     PCHECK(0 == IGNORE_EINTR(close(it)));
+   }
+ }
++#endif
+ 
+ base::OnceClosure ClosureFromTwoClosures(base::OnceClosure one,
+                                          base::OnceClosure two) {
+@@ -157,9 +163,11 @@ static void EnterLayerOneSandbox(sandbox
+     CHECK(!using_layer1_sandbox);
+   }
+ }
++#endif
  
-@@ -132,6 +137,7 @@ static bool EnterSuidSandbox(sandbox::Se
+ bool ZygoteMain(
+     std::vector<std::unique_ptr<ZygoteForkDelegate>> fork_delegates) {
++#if !BUILDFLAG(IS_BSD)
+   sandbox::SetAmZygoteOrRenderer(true, GetSandboxFD());
  
-   CHECK(service_manager::SandboxDebugHandling::SetDumpableStatusAndHandlers());
-   return true;
+   auto* linux_sandbox = sandbox::policy::SandboxLinux::GetInstance();
+@@ -224,6 +232,9 @@ bool ZygoteMain(
+ 
+   // This function call can return multiple times, once per fork().
+   return zygote.ProcessRequests();
++#else
++  return false;
 +#endif
  }
  
- static void DropAllCapabilities(int proc_fd) {
+ }  // namespace content
diff --git a/chromium/patches/patch-device_bluetooth_bluetooth__adapter.cc b/chromium/patches/patch-device_bluetooth_bluetooth__adapter.cc
new file mode 100644
index 0000000000..532deb040a
--- /dev/null
+++ b/chromium/patches/patch-device_bluetooth_bluetooth__adapter.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- device/bluetooth/bluetooth_adapter.cc.orig	2024-07-24 02:44:38.388951000 +0000
++++ device/bluetooth/bluetooth_adapter.cc
+@@ -32,7 +32,7 @@ namespace device {
+ BluetoothAdapter::ServiceOptions::ServiceOptions() = default;
+ BluetoothAdapter::ServiceOptions::~ServiceOptions() = default;
+ 
+-#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) && \
++#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) && \
+     !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX)
+ // static
+ scoped_refptr<BluetoothAdapter> BluetoothAdapter::CreateAdapter() {
diff --git a/chromium/patches/patch-device_bluetooth_cast__bluetooth.gni b/chromium/patches/patch-device_bluetooth_cast__bluetooth.gni
new file mode 100644
index 0000000000..0c6bda659c
--- /dev/null
+++ b/chromium/patches/patch-device_bluetooth_cast__bluetooth.gni
@@ -0,0 +1,15 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- device/bluetooth/cast_bluetooth.gni.orig	2024-07-24 02:44:38.412953400 +0000
++++ device/bluetooth/cast_bluetooth.gni
+@@ -2,5 +2,5 @@ import("//build/config/features.gni")
+ 
+ declare_args() {
+   force_cast_bluetooth = false
+-  use_bluez = (is_linux && !is_castos && use_dbus) || is_chromeos
++  use_bluez = use_dbus && !is_bsd
+ }
diff --git a/chromium/patches/patch-device_fido_fido__discovery__factory.cc b/chromium/patches/patch-device_fido_fido__discovery__factory.cc
new file mode 100644
index 0000000000..c4f04782b9
--- /dev/null
+++ b/chromium/patches/patch-device_fido_fido__discovery__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- device/fido/fido_discovery_factory.cc.orig	2024-07-24 02:44:38.472959300 +0000
++++ device/fido/fido_discovery_factory.cc
+@@ -127,7 +127,7 @@ std::vector<std::unique_ptr<FidoDiscover
+ 
+ std::optional<std::unique_ptr<FidoDiscoveryBase>>
+ FidoDiscoveryFactory::MaybeCreateEnclaveDiscovery() {
+-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (!base::FeatureList::IsEnabled(kWebAuthnEnclaveAuthenticator) ||
+       !enclave_ui_request_stream_ || !network_context_factory_) {
+     return std::nullopt;
diff --git a/chromium/patches/patch-device_gamepad_BUILD.gn b/chromium/patches/patch-device_gamepad_BUILD.gn
index 8782902ba1..a4db453ffe 100644
--- a/chromium/patches/patch-device_gamepad_BUILD.gn
+++ b/chromium/patches/patch-device_gamepad_BUILD.gn
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- device/gamepad/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- device/gamepad/BUILD.gn.orig	2024-07-24 02:44:38.496961600 +0000
 +++ device/gamepad/BUILD.gn
-@@ -111,7 +111,7 @@ component("gamepad") {
-         [ "/wd4267" ]  # conversion from 'size_t' (64 bit) to 'type'(32 bit).
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     if (use_udev) {
-       deps += [ "//device/udev_linux" ]
-     } else {
+@@ -99,7 +99,7 @@ component("gamepad") {
+       "hid_writer_linux.cc",
+       "hid_writer_linux.h",
+     ]
+-    if (use_udev) {
++    if (use_udev && !is_bsd) {
+       sources += [
+         "gamepad_device_linux.cc",
+         "gamepad_device_linux.h",
diff --git a/chromium/patches/patch-device_gamepad_gamepad__provider.cc b/chromium/patches/patch-device_gamepad_gamepad__provider.cc
index e83e6e1c1f..74560457b1 100644
--- a/chromium/patches/patch-device_gamepad_gamepad__provider.cc
+++ b/chromium/patches/patch-device_gamepad_gamepad__provider.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- device/gamepad/gamepad_provider.cc.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- device/gamepad/gamepad_provider.cc.orig	2024-07-24 02:44:38.500962000 +0000
 +++ device/gamepad/gamepad_provider.cc
-@@ -147,7 +147,7 @@ void GamepadProvider::Initialize(std::un
+@@ -219,7 +219,7 @@ void GamepadProvider::Initialize(std::un
  
    if (!polling_thread_)
-     polling_thread_.reset(new base::Thread("Gamepad polling thread"));
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+     polling_thread_ = std::make_unique<base::Thread>("Gamepad polling thread");
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // On Linux, the data fetcher needs to watch file descriptors, so the message
    // loop needs to be a libevent loop.
    const base::MessagePumpType kMessageLoopType = base::MessagePumpType::IO;
diff --git a/chromium/patches/patch-device_gamepad_hid__writer__linux.cc b/chromium/patches/patch-device_gamepad_hid__writer__linux.cc
index 95411c5e6c..9b5b5026e4 100644
--- a/chromium/patches/patch-device_gamepad_hid__writer__linux.cc
+++ b/chromium/patches/patch-device_gamepad_hid__writer__linux.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- device/gamepad/hid_writer_linux.cc.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- device/gamepad/hid_writer_linux.cc.orig	2024-07-24 02:44:38.500962000 +0000
 +++ device/gamepad/hid_writer_linux.cc
-@@ -4,6 +4,8 @@
- 
- #include "device/gamepad/hid_writer_linux.h"
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
  
 +#include <unistd.h>
 +
- #include "base/posix/eintr_wrapper.h"
+ #include "device/gamepad/hid_writer_linux.h"
  
- namespace device {
+ #include <unistd.h>
diff --git a/chromium/patches/patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc b/chromium/patches/patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc
new file mode 100644
index 0000000000..fa8b4867c7
--- /dev/null
+++ b/chromium/patches/patch-extensions_browser_api_api__browser__context__keyed__service__factories.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/browser/api/api_browser_context_keyed_service_factories.cc.orig	2024-07-24 02:44:38.784989600 +0000
++++ extensions/browser/api/api_browser_context_keyed_service_factories.cc
+@@ -102,7 +102,7 @@ void EnsureApiBrowserContextKeyedService
+ #endif
+   MessageService::GetFactoryInstance();
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_MAC)
++    BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   NetworkingPrivateEventRouterFactory::GetInstance();
+ #endif
+   OffscreenDocumentManager::GetFactory();
diff --git a/chromium/patches/patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc b/chromium/patches/patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc
deleted file mode 100644
index e7d3ae4f11..0000000000
--- a/chromium/patches/patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- extensions/browser/api/declarative_webrequest/webrequest_action.cc.orig	2020-07-08 21:40:43.000000000 +0000
-+++ extensions/browser/api/declarative_webrequest/webrequest_action.cc
-@@ -28,7 +28,7 @@
- #include "extensions/common/extension.h"
- #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
- #include "net/http/http_util.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- 
- using extension_web_request_api_helpers::EventResponseDelta;
- 
diff --git a/chromium/patches/patch-extensions_browser_api_management_management__api.cc b/chromium/patches/patch-extensions_browser_api_management_management__api.cc
new file mode 100644
index 0000000000..f13988e88b
--- /dev/null
+++ b/chromium/patches/patch-extensions_browser_api_management_management__api.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/browser/api/management/management_api.cc.orig	2024-07-24 02:44:38.816992500 +0000
++++ extensions/browser/api/management/management_api.cc
+@@ -280,7 +280,7 @@ bool PlatformSupportsApprovalFlowForExte
+ #if BUILDFLAG(IS_CHROMEOS)
+   // ChromeOS devices have this feature already shipped.
+   return true;
+-#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#elif BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   return base::FeatureList::IsEnabled(
+       supervised_user::kEnableExtensionsPermissionsForSupervisedUsersOnDesktop);
+ #else
diff --git a/chromium/patches/patch-extensions_browser_api_messaging_message__service.cc b/chromium/patches/patch-extensions_browser_api_messaging_message__service.cc
index a33adcb5f5..25019e9da0 100644
--- a/chromium/patches/patch-extensions_browser_api_messaging_message__service.cc
+++ b/chromium/patches/patch-extensions_browser_api_messaging_message__service.cc
@@ -1,31 +1,26 @@
 $NetBSD$
 
---- extensions/browser/api/messaging/message_service.cc.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/browser/api/messaging/message_service.cc.orig	2024-07-24 02:44:38.820993000 +0000
 +++ extensions/browser/api/messaging/message_service.cc
-@@ -61,7 +61,7 @@ namespace {
- 
+@@ -71,7 +71,7 @@ namespace {
  const char kReceivingEndDoesntExistError[] =
      "Could not establish connection. Receiving end does not exist.";
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  const char kMissingPermissionError[] =
      "Access to native messaging requires nativeMessaging permission.";
  const char kProhibitedByPoliciesError[] =
-@@ -391,7 +391,7 @@ void MessageService::OpenChannelToNative
-   if (!opener_port->IsValidPort())
+@@ -541,7 +541,7 @@ void MessageService::OpenChannelToNative
      return;
  
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    bool has_permission = extension->permissions_data()->HasAPIPermission(
-       APIPermission::kNativeMessaging);
+       mojom::APIPermissionID::kNativeMessaging);
    if (!has_permission) {
-@@ -441,7 +441,7 @@ void MessageService::OpenChannelToNative
-   channel->opener->IncrementLazyKeepaliveCount();
- 
-   AddChannel(std::move(channel), receiver_port_id);
--#else  // !(defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX))
-+#else  // !(defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)) || defined(OS_BSD)
-   const char kNativeMessagingNotSupportedError[] =
-       "Native Messaging is not supported on this platform.";
-   opener_port->DispatchOnDisconnect(kNativeMessagingNotSupportedError);
diff --git a/chromium/patches/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc b/chromium/patches/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc
index 039de0a44a..94e46f2fec 100644
--- a/chromium/patches/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc
+++ b/chromium/patches/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- extensions/browser/api/networking_private/networking_private_delegate_factory.cc.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/browser/api/networking_private/networking_private_delegate_factory.cc.orig	2024-07-24 02:44:38.824993400 +0000
 +++ extensions/browser/api/networking_private/networking_private_delegate_factory.cc
-@@ -11,7 +11,7 @@
- 
- #if defined(OS_CHROMEOS)
+@@ -14,7 +14,7 @@
  #include "extensions/browser/api/networking_private/networking_private_chromeos.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+ #include "extensions/browser/api/networking_private/networking_private_lacros.h"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
  #include "extensions/browser/api/networking_private/networking_private_linux.h"
- #elif defined(OS_WIN) || defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
  #include "components/wifi/wifi_service.h"
-@@ -61,7 +61,7 @@ KeyedService* NetworkingPrivateDelegateF
-   NetworkingPrivateDelegate* delegate;
- #if defined(OS_CHROMEOS)
-   delegate = new NetworkingPrivateChromeOS(browser_context);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   delegate = new NetworkingPrivateLinux();
- #elif defined(OS_WIN) || defined(OS_MACOSX)
+@@ -67,7 +67,7 @@ NetworkingPrivateDelegateFactory::BuildS
+   delegate = std::make_unique<NetworkingPrivateChromeOS>(browser_context);
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+   delegate = std::make_unique<NetworkingPrivateLacros>(browser_context);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   delegate = std::make_unique<NetworkingPrivateLinux>();
+ #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
    std::unique_ptr<wifi::WiFiService> wifi_service(wifi::WiFiService::Create());
diff --git a/chromium/patches/patch-extensions_browser_api_web__request_form__data__parser.cc b/chromium/patches/patch-extensions_browser_api_web__request_form__data__parser.cc
deleted file mode 100644
index 9561c491ca..0000000000
--- a/chromium/patches/patch-extensions_browser_api_web__request_form__data__parser.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- extensions/browser/api/web_request/form_data_parser.cc.orig	2020-07-08 21:40:43.000000000 +0000
-+++ extensions/browser/api/web_request/form_data_parser.cc
-@@ -16,7 +16,7 @@
- #include "base/values.h"
- #include "net/base/escape.h"
- #include "net/http/http_request_headers.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- 
- using base::DictionaryValue;
- using base::ListValue;
diff --git a/chromium/patches/patch-extensions_browser_browser__context__keyed__service__factories.cc b/chromium/patches/patch-extensions_browser_browser__context__keyed__service__factories.cc
deleted file mode 100644
index f1498a1fd6..0000000000
--- a/chromium/patches/patch-extensions_browser_browser__context__keyed__service__factories.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- extensions/browser/browser_context_keyed_service_factories.cc.orig	2020-07-08 21:40:43.000000000 +0000
-+++ extensions/browser/browser_context_keyed_service_factories.cc
-@@ -92,7 +92,7 @@ void EnsureBrowserContextKeyedServiceFac
- #if defined(OS_CHROMEOS)
-   NetworkingConfigServiceFactory::GetInstance();
- #endif
--#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD)
-   NetworkingPrivateEventRouterFactory::GetInstance();
- #endif
-   PowerAPI::GetFactoryInstance();
diff --git a/chromium/patches/patch-extensions_common_api___permission__features.json b/chromium/patches/patch-extensions_common_api___permission__features.json
index e0f3452f4c..522004b948 100644
--- a/chromium/patches/patch-extensions_common_api___permission__features.json
+++ b/chromium/patches/patch-extensions_common_api___permission__features.json
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- extensions/common/api/_permission_features.json.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/common/api/_permission_features.json.orig	2024-07-24 02:44:38.905001200 +0000
 +++ extensions/common/api/_permission_features.json
-@@ -135,7 +135,7 @@
+@@ -138,7 +138,7 @@
      {
        "channel": "stable",
        "extension_types": ["platform_app"],
--      "platforms": ["chromeos", "win", "mac", "linux"],
-+      "platforms": ["chromeos", "win", "mac", "linux", "netbsd"],
-       "whitelist": [
+-      "platforms": ["chromeos", "lacros", "win", "mac", "linux"],
++      "platforms": ["chromeos", "lacros", "win", "mac", "linux", "openbsd", "freebsd", "netbsd"],
+       "allowlist": [
          "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80",  // http://crbug.com/387169
          "A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE",  // http://crbug.com/387169
-@@ -478,7 +478,7 @@
+@@ -432,7 +432,7 @@
    }, {
      "channel": "stable",
      "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
--    "platforms": ["chromeos", "mac", "win", "linux"],
-+    "platforms": ["chromeos", "mac", "win", "linux", "netbsd"],
-     "whitelist": [
+-    "platforms": ["chromeos", "mac", "win", "linux", "fuchsia"],
++    "platforms": ["chromeos", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd", "netbsd"],
+     "allowlist": [
        "0DE0F05680A4A056BCEC864ED8DDA84296F82B40",  // http://crbug.com/434651
        "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80",  // http://crbug.com/293683
-@@ -509,7 +509,7 @@
+@@ -476,7 +476,7 @@
    "networkingPrivate": {
      "channel": "stable",
      "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
--    "platforms": ["chromeos", "mac", "win", "linux"],
-+    "platforms": ["chromeos", "mac", "win", "linux", "netbsd"],
-     "whitelist": [
+-    "platforms": ["chromeos", "lacros", "mac", "win", "linux", "fuchsia"],
++    "platforms": ["chromeos", "lacros", "mac", "win", "linux", "fuchsia", "openbsd", "freebsd", "netbsd"],
+     "allowlist": [
        // DO NOT ADD ANY MORE ENTRIES HERE.
        // networkingPrivate is being migrated to networking.onc.
diff --git a/chromium/patches/patch-extensions_common_api_runtime.json b/chromium/patches/patch-extensions_common_api_runtime.json
index ec58e182bd..4009f7cbe4 100644
--- a/chromium/patches/patch-extensions_common_api_runtime.json
+++ b/chromium/patches/patch-extensions_common_api_runtime.json
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- extensions/common/api/runtime.json.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/common/api/runtime.json.orig	2024-07-24 02:44:38.913002000 +0000
 +++ extensions/common/api/runtime.json
-@@ -68,7 +68,7 @@
-         "id": "PlatformOs",
-         "type": "string",
-         "description": "The operating system chrome is running on.",
--        "enum": ["mac", "win", "android", "cros", "linux", "openbsd"]
-+        "enum": ["mac", "win", "android", "cros", "linux", "openbsd", "freebsd", "netbsd"]
+@@ -86,6 +86,8 @@
+             {"name": "cros", "description": "Specifies the Chrome operating system."},
+             {"name": "linux", "description": "Specifies the Linux operating system."},
+             {"name": "openbsd", "description": "Specifies the OpenBSD operating system."},
++            {"name": "freebsd", "description": "Specifies the FreeBSD operating system."},
++            {"name": "netbsd", "description": "Specifies the NetBSD operating system."},
+             {"name": "fuchsia", "description": "Specifies the Fuchsia operating system."}
+         ]
        },
-       {
-         "id": "PlatformArch",
diff --git a/chromium/patches/patch-extensions_common_command.cc b/chromium/patches/patch-extensions_common_command.cc
new file mode 100644
index 0000000000..82d28b7703
--- /dev/null
+++ b/chromium/patches/patch-extensions_common_command.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/common/command.cc.orig	2024-07-24 02:44:38.917002200 +0000
++++ extensions/common/command.cc
+@@ -283,7 +283,7 @@ std::string Command::CommandPlatform() {
+   return values::kKeybindingPlatformMac;
+ #elif BUILDFLAG(IS_CHROMEOS)
+   return values::kKeybindingPlatformChromeOs;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return values::kKeybindingPlatformLinux;
+ #elif BUILDFLAG(IS_FUCHSIA)
+   // TODO(crbug.com/40220501): Change this once we decide what string should be
diff --git a/chromium/patches/patch-extensions_common_feature__switch.cc b/chromium/patches/patch-extensions_common_feature__switch.cc
deleted file mode 100644
index 861f34920d..0000000000
--- a/chromium/patches/patch-extensions_common_feature__switch.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- extensions/common/feature_switch.cc.orig	2020-07-08 21:40:43.000000000 +0000
-+++ extensions/common/feature_switch.cc
-@@ -39,7 +39,7 @@ class CommonSwitches {
-                          FeatureSwitch::DEFAULT_ENABLED),
-         load_media_router_component_extension(
-             kLoadMediaRouterComponentExtensionFlag,
--#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
-+#if BUILDFLAG(GOOGLE_CHROME_BRANDING) || defined(OS_BSD)
-             FeatureSwitch::DEFAULT_ENABLED)
- #else
-             FeatureSwitch::DEFAULT_DISABLED)
diff --git a/chromium/patches/patch-extensions_common_features_feature.cc b/chromium/patches/patch-extensions_common_features_feature.cc
index f7d940b7d5..0a174c825d 100644
--- a/chromium/patches/patch-extensions_common_features_feature.cc
+++ b/chromium/patches/patch-extensions_common_features_feature.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- extensions/common/features/feature.cc.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/common/features/feature.cc.orig	2024-07-24 02:44:38.925003000 +0000
 +++ extensions/common/features/feature.cc
-@@ -20,7 +20,7 @@ namespace extensions {
- Feature::Platform Feature::GetCurrentPlatform() {
- #if defined(OS_CHROMEOS)
-   return CHROMEOS_PLATFORM;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   return LINUX_PLATFORM;
- #elif defined(OS_MACOSX)
-   return MACOSX_PLATFORM;
+@@ -34,6 +34,8 @@ Feature::Platform Feature::GetCurrentPla
+   return WIN_PLATFORM;
+ #elif BUILDFLAG(IS_FUCHSIA)
+   return FUCHSIA_PLATFORM;
++#elif BUILDFLAG(IS_BSD)
++  return LINUX_PLATFORM;
+ #else
+   return UNSPECIFIED_PLATFORM;
+ #endif
diff --git a/chromium/patches/patch-extensions_common_image__util.cc b/chromium/patches/patch-extensions_common_image__util.cc
deleted file mode 100644
index 0a844ed824..0000000000
--- a/chromium/patches/patch-extensions_common_image__util.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- extensions/common/image_util.cc.orig	2020-07-08 21:40:43.000000000 +0000
-+++ extensions/common/image_util.cc
-@@ -20,7 +20,7 @@
- #include "base/strings/stringprintf.h"
- #include "base/time/time.h"
- #include "base/timer/elapsed_timer.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- #include "third_party/skia/include/core/SkBitmap.h"
- #include "third_party/skia/include/core/SkCanvas.h"
- #include "third_party/skia/include/core/SkColor.h"
diff --git a/chromium/patches/patch-extensions_common_stack__frame.cc b/chromium/patches/patch-extensions_common_stack__frame.cc
deleted file mode 100644
index 29fa0494e6..0000000000
--- a/chromium/patches/patch-extensions_common_stack__frame.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- extensions/common/stack_frame.cc.orig	2020-07-08 21:40:43.000000000 +0000
-+++ extensions/common/stack_frame.cc
-@@ -7,7 +7,7 @@
- #include <string>
- 
- #include "base/strings/utf_string_conversions.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- 
- namespace extensions {
- 
diff --git a/chromium/patches/patch-extensions_renderer_bindings_api__binding__util.cc b/chromium/patches/patch-extensions_renderer_bindings_api__binding__util.cc
index b99b7671b3..8f891874c0 100644
--- a/chromium/patches/patch-extensions_renderer_bindings_api__binding__util.cc
+++ b/chromium/patches/patch-extensions_renderer_bindings_api__binding__util.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- extensions/renderer/bindings/api_binding_util.cc.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/renderer/bindings/api_binding_util.cc.orig	2024-07-24 02:44:38.957006200 +0000
 +++ extensions/renderer/bindings/api_binding_util.cc
-@@ -130,6 +130,8 @@ std::string GetPlatformString() {
+@@ -132,7 +132,7 @@ std::string GetPlatformString() {
+   return "lacros";
+ #elif BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_CHROMEOS_LACROS)
+   return "chromeos";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return "linux";
+ #elif BUILDFLAG(IS_MAC)
    return "mac";
- #elif defined(OS_WIN)
-   return "win";
-+#elif defined(OS_NETBSD)
-+  return "netbsd";
- #else
-   NOTREACHED();
-   return std::string();
diff --git a/chromium/patches/patch-extensions_renderer_bindings_argument__spec.cc b/chromium/patches/patch-extensions_renderer_bindings_argument__spec.cc
new file mode 100644
index 0000000000..f25fa8191b
--- /dev/null
+++ b/chromium/patches/patch-extensions_renderer_bindings_argument__spec.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/renderer/bindings/argument_spec.cc.orig	2024-07-24 02:44:38.961006600 +0000
++++ extensions/renderer/bindings/argument_spec.cc
+@@ -18,6 +18,8 @@
+ #include "gin/data_object_builder.h"
+ #include "gin/dictionary.h"
+ 
++#include <cmath>
++
+ namespace extensions {
+ 
+ namespace {
diff --git a/chromium/patches/patch-extensions_shell_BUILD.gn b/chromium/patches/patch-extensions_shell_BUILD.gn
deleted file mode 100644
index 1e94b02de9..0000000000
--- a/chromium/patches/patch-extensions_shell_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- extensions/shell/BUILD.gn.orig	2020-07-08 21:40:43.000000000 +0000
-+++ extensions/shell/BUILD.gn
-@@ -12,7 +12,7 @@ import("//testing/test.gni")
- import("//tools/grit/grit_rule.gni")
- import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
- 
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   import("//build/linux/extract_symbols.gni")
- }
- 
-@@ -195,7 +195,7 @@ source_set("app_shell_lib") {
-     }
-   }
- 
--  if (is_desktop_linux) {
-+  if (is_desktop_linux && !is_bsd) {
-     sources += [
-       "app/shell_crash_reporter_client.cc",
-       "app/shell_crash_reporter_client.h",
diff --git a/chromium/patches/patch-extensions_shell_app_shell__main__delegate.cc b/chromium/patches/patch-extensions_shell_app_shell__main__delegate.cc
index c68dc020fe..221520cc54 100644
--- a/chromium/patches/patch-extensions_shell_app_shell__main__delegate.cc
+++ b/chromium/patches/patch-extensions_shell_app_shell__main__delegate.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- extensions/shell/app/shell_main_delegate.cc.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/shell/app/shell_main_delegate.cc.orig	2024-07-24 02:44:38.989009100 +0000
 +++ extensions/shell/app/shell_main_delegate.cc
-@@ -38,7 +38,7 @@
- 
- #if defined(OS_WIN)
+@@ -43,7 +43,7 @@
+ #if BUILDFLAG(IS_WIN)
  #include "base/base_paths_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+ #include "base/process/process_info.h"
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "base/nix/xdg_util.h"
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_MAC)
  #include "base/base_paths_mac.h"
-@@ -70,7 +70,7 @@ base::FilePath GetDataPath() {
-     return cmd_line->GetSwitchValuePath(switches::kContentShellDataPath);
+@@ -63,7 +63,7 @@ base::FilePath GetDataPath() {
+   }
  
    base::FilePath data_dir;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    std::unique_ptr<base::Environment> env(base::Environment::Create());
    data_dir = base::nix::GetXDGDirectory(
        env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir);
diff --git a/chromium/patches/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc b/chromium/patches/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc
index 952ef08eef..2a329f6c86 100644
--- a/chromium/patches/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc
+++ b/chromium/patches/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc.orig	2024-07-24 02:44:38.989009100 +0000
 +++ extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc
-@@ -45,7 +45,7 @@ void ShellRuntimeAPIDelegate::OpenURL(co
+@@ -44,7 +44,7 @@ void ShellRuntimeAPIDelegate::OpenURL(co
  bool ShellRuntimeAPIDelegate::GetPlatformInfo(PlatformInfo* info) {
- #if defined(OS_CHROMEOS)
-   info->os = api::runtime::PLATFORM_OS_CROS;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   info->os = api::runtime::PLATFORM_OS_LINUX;
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+   info->os = api::runtime::PlatformOs::kCros;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   info->os = api::runtime::PlatformOs::kLinux;
  #endif
    return true;
diff --git a/chromium/patches/patch-extensions_shell_browser_shell__browser__main__parts.cc b/chromium/patches/patch-extensions_shell_browser_shell__browser__main__parts.cc
new file mode 100644
index 0000000000..4e67bcc2cb
--- /dev/null
+++ b/chromium/patches/patch-extensions_shell_browser_shell__browser__main__parts.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/shell/browser/shell_browser_main_parts.cc.orig	2024-07-24 02:44:38.989009100 +0000
++++ extensions/shell/browser/shell_browser_main_parts.cc
+@@ -150,7 +150,7 @@ void ShellBrowserMainParts::PostCreateMa
+       switches::kAppShellAllowRoaming)) {
+     network_controller_->SetCellularAllowRoaming(true);
+   }
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   // app_shell doesn't need GTK, so the fake input method context can work.
+   // See crbug.com/381852 and revision fb69f142.
+   // TODO(michaelpg): Verify this works for target environments.
diff --git a/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.cc b/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.cc
index 5f2f9bf2a9..25a671ce87 100644
--- a/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.cc
+++ b/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.cc
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- extensions/shell/browser/shell_extensions_api_client.cc.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/shell/browser/shell_extensions_api_client.cc.orig	2024-07-24 02:44:38.993009600 +0000
 +++ extensions/shell/browser/shell_extensions_api_client.cc
-@@ -16,7 +16,7 @@
- #include "extensions/shell/browser/shell_virtual_keyboard_delegate.h"
- #include "extensions/shell/browser/shell_web_view_guest_delegate.h"
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "extensions/shell/browser/api/file_system/shell_file_system_delegate.h"
- #endif
- 
-@@ -52,7 +52,7 @@ ShellExtensionsAPIClient::CreateDisplayI
-   return std::make_unique<ShellDisplayInfoProvider>();
- }
+@@ -58,7 +58,7 @@ ShellExtensionsAPIClient::CreateDisplayI
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  FileSystemDelegate* ShellExtensionsAPIClient::GetFileSystemDelegate() {
    if (!file_system_delegate_)
      file_system_delegate_ = std::make_unique<ShellFileSystemDelegate>();
diff --git a/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.h b/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.h
index f06deebf68..5d0050226b 100644
--- a/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.h
+++ b/chromium/patches/patch-extensions_shell_browser_shell__extensions__api__client.h
@@ -1,21 +1,26 @@
 $NetBSD$
 
---- extensions/shell/browser/shell_extensions_api_client.h.orig	2020-07-08 21:40:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- extensions/shell/browser/shell_extensions_api_client.h.orig	2024-07-24 02:44:38.993009600 +0000
 +++ extensions/shell/browser/shell_extensions_api_client.h
-@@ -32,14 +32,14 @@ class ShellExtensionsAPIClient : public 
-       content::BrowserContext* browser_context) const override;
-   std::unique_ptr<DisplayInfoProvider> CreateDisplayInfoProvider()
+@@ -36,7 +36,7 @@ class ShellExtensionsAPIClient : public 
        const override;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    FileSystemDelegate* GetFileSystemDelegate() override;
  #endif
    MessagingDelegate* GetMessagingDelegate() override;
-   FeedbackPrivateDelegate* GetFeedbackPrivateDelegate() override;
- 
+@@ -45,7 +45,7 @@ class ShellExtensionsAPIClient : public 
   private:
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    std::unique_ptr<FileSystemDelegate> file_system_delegate_;
  #endif
    std::unique_ptr<MessagingDelegate> messaging_delegate_;
diff --git a/chromium/patches/patch-google__apis_gcm_engine_heartbeat__manager.cc b/chromium/patches/patch-google__apis_gcm_engine_heartbeat__manager.cc
index 5686ca44c2..42f48140db 100644
--- a/chromium/patches/patch-google__apis_gcm_engine_heartbeat__manager.cc
+++ b/chromium/patches/patch-google__apis_gcm_engine_heartbeat__manager.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- google_apis/gcm/engine/heartbeat_manager.cc.orig	2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- google_apis/gcm/engine/heartbeat_manager.cc.orig	2024-07-24 02:44:39.101020000 +0000
 +++ google_apis/gcm/engine/heartbeat_manager.cc
-@@ -31,7 +31,7 @@ const int kMinClientHeartbeatIntervalMs 
+@@ -32,7 +32,7 @@ const int kMinClientHeartbeatIntervalMs 
  // Minimum time spent sleeping before we force a new heartbeat.
  const int kMinSuspendTimeMs = 1000 * 10; // 10 seconds.
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  // The period at which to check if the heartbeat time has passed. Used to
  // protect against platforms where the timer is delayed by the system being
  // suspended.  Only needed on linux because the other OSes provide a standard
@@ -15,17 +19,17 @@ $NetBSD$
        base::BindRepeating(&HeartbeatManager::OnHeartbeatTriggered,
                            weak_ptr_factory_.GetWeakPtr()));
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    // Windows, Mac, Android, iOS, and Chrome OS all provide a way to be notified
    // when the system is suspending or resuming.  The only one that does not is
    // Linux so we need to poll to check for missed heartbeats.
-@@ -216,7 +216,7 @@ void HeartbeatManager::CheckForMissedHea
+@@ -214,7 +214,7 @@ void HeartbeatManager::CheckForMissedHea
      return;
    }
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    // Otherwise check again later.
    io_task_runner_->PostDelayedTask(
        FROM_HERE,
diff --git a/chromium/patches/patch-gpu_BUILD.gn b/chromium/patches/patch-gpu_BUILD.gn
deleted file mode 100644
index 865f7449bd..0000000000
--- a/chromium/patches/patch-gpu_BUILD.gn
+++ /dev/null
@@ -1,47 +0,0 @@
-$NetBSD$
-
---- gpu/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ gpu/BUILD.gn
-@@ -157,7 +157,7 @@ if (!use_static_angle) {
-       libs += [ "android" ]
-       deps += [ "//ui/android:ui_java" ]
-     }
--    if (is_linux && !is_component_build) {
-+    if ((is_linux || is_bsd) && !is_component_build) {
-       configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-     }
-   }
-@@ -583,7 +583,7 @@ test("gpu_unittests") {
-     ]
-   }
- 
--  if (is_linux || use_ozone) {
-+  if (is_linux || use_ozone || is_bsd) {
-     sources += [
-       "ipc/common/gpu_memory_buffer_impl_native_pixmap_unittest.cc",
-       "ipc/service/gpu_memory_buffer_factory_native_pixmap_unittest.cc",
-@@ -603,13 +603,13 @@ test("gpu_unittests") {
-     ]
-   }
- 
--  if (is_linux || is_android || is_chromeos) {
-+  if (is_linux || is_android || is_chromeos || is_bsd) {
-     sources += [ "command_buffer/service/gpu_fence_manager_unittest.cc" ]
-   }
- 
-   # TODO(geofflang): Run passthrough command decoder unittests on more platforms
-   # once initialization of ANGLE's NULL context is supported
--  if ((is_win || (is_linux && !use_ozone)) && !is_asan) {
-+  if ((is_win || ((is_linux || is_bsd) && !use_ozone)) && !is_asan) {
-     sources += [
-       "command_buffer/service/gles2_cmd_decoder_passthrough_unittest_buffers.cc",
-       "command_buffer/service/gles2_cmd_decoder_passthrough_unittest_commands.cc",
-@@ -761,7 +761,7 @@ fuzzer_test("gpu_fuzzer") {
-   libfuzzer_options = [ "max_len=16384" ]
- }
- 
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   fuzzer_test("gpu_angle_fuzzer") {
-     sources = [ "command_buffer/tests/fuzzer_main.cc" ]
- 
diff --git a/chromium/patches/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc b/chromium/patches/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc
index ca2d9500fa..1c1dc576b9 100644
--- a/chromium/patches/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc
+++ b/chromium/patches/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- gpu/command_buffer/common/gpu_memory_buffer_support.cc.orig	2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/common/gpu_memory_buffer_support.cc.orig	2024-07-24 02:44:39.145024300 +0000
 +++ gpu/command_buffer/common/gpu_memory_buffer_support.cc
-@@ -55,7 +55,7 @@ bool IsImageSizeValidForGpuMemoryBufferF
- uint32_t GetPlatformSpecificTextureTarget() {
- #if defined(OS_MACOSX)
+@@ -182,7 +182,7 @@ uint32_t GetPlatformSpecificTextureTarge
+ #if BUILDFLAG(IS_MAC)
    return macos_specific_texture_target;
--#elif defined(OS_ANDROID) || defined(OS_LINUX)
-+#elif defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+ #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
    return GL_TEXTURE_EXTERNAL_OES;
- #elif defined(OS_WIN) || defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_IOS)
    return GL_TEXTURE_2D;
-@@ -85,7 +85,7 @@ GPU_EXPORT uint32_t GetBufferTextureTarg
- 
- GPU_EXPORT bool NativeBufferNeedsPlatformSpecificTextureTarget(
-     gfx::BufferFormat format) {
--#if defined(USE_OZONE) || defined(OS_LINUX)
-+#if defined(USE_OZONE) || defined(OS_LINUX) || defined(OS_BSD)
+@@ -209,7 +209,7 @@ GPU_EXPORT bool NativeBufferNeedsPlatfor
+     gfx::BufferFormat format,
+     gfx::BufferPlane plane) {
+ #if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
    // Always use GL_TEXTURE_2D as the target for RGB textures.
    // https://crbug.com/916728
    if (format == gfx::BufferFormat::R_8 || format == gfx::BufferFormat::RG_88 ||
diff --git a/chromium/patches/patch-gpu_command__buffer_service_BUILD.gn b/chromium/patches/patch-gpu_command__buffer_service_BUILD.gn
deleted file mode 100644
index 80dc5afbe7..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_service_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/service/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ gpu/command_buffer/service/BUILD.gn
-@@ -331,7 +331,7 @@ target(link_target_type, "gles2_sources"
-       "//gpu/vulkan",
-     ]
- 
--    if (is_linux || is_fuchsia || is_android || is_win) {
-+    if (is_linux || is_fuchsia || is_android || is_win || is_bsd) {
-       sources += [
-         "external_vk_image_backing.cc",
-         "external_vk_image_backing.h",
-@@ -355,7 +355,7 @@ target(link_target_type, "gles2_sources"
-       ]
-     }
- 
--    if (is_linux && use_dawn) {
-+    if ((is_linux || is_bsd) && use_dawn) {
-       sources += [
-         "external_vk_image_dawn_representation.cc",
-         "external_vk_image_dawn_representation.h",
diff --git a/chromium/patches/patch-gpu_command__buffer_service_dawn__context__provider.cc b/chromium/patches/patch-gpu_command__buffer_service_dawn__context__provider.cc
new file mode 100644
index 0000000000..5eb542b3cc
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_dawn__context__provider.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/dawn_context_provider.cc.orig	2024-07-24 02:44:39.157025600 +0000
++++ gpu/command_buffer/service/dawn_context_provider.cc
+@@ -163,7 +163,7 @@ wgpu::BackendType DawnContextProvider::G
+   return base::FeatureList::IsEnabled(features::kSkiaGraphiteDawnUseD3D12)
+              ? wgpu::BackendType::D3D12
+              : wgpu::BackendType::D3D11;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   return wgpu::BackendType::Vulkan;
+ #elif BUILDFLAG(IS_APPLE)
+   return wgpu::BackendType::Metal;
diff --git a/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.cc b/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.cc
deleted file mode 100644
index 4ced76b74b..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/service/external_vk_image_backing.cc.orig	2020-07-08 21:41:48.000000000 +0000
-+++ gpu/command_buffer/service/external_vk_image_backing.cc
-@@ -28,7 +28,7 @@
- #include "ui/gl/gl_version_info.h"
- #include "ui/gl/scoped_binders.h"
- 
--#if defined(OS_LINUX) && BUILDFLAG(USE_DAWN)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(USE_DAWN)
- #include "gpu/command_buffer/service/external_vk_image_dawn_representation.h"
- #endif
- 
-@@ -475,7 +475,7 @@ std::unique_ptr<SharedImageRepresentatio
- ExternalVkImageBacking::ProduceDawn(SharedImageManager* manager,
-                                     MemoryTypeTracker* tracker,
-                                     WGPUDevice wgpuDevice) {
--#if defined(OS_LINUX) && BUILDFLAG(USE_DAWN)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(USE_DAWN)
-   auto wgpu_format = viz::ToWGPUFormat(format());
- 
-   if (wgpu_format == WGPUTextureFormat_Undefined) {
-@@ -507,7 +507,7 @@ GLuint ExternalVkImageBacking::ProduceGL
-   gl::GLApi* api = gl::g_current_gl_context;
-   base::Optional<ScopedDedicatedMemoryObject> memory_object;
-   if (!use_separate_gl_texture()) {
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
-     auto memory_fd = image_->GetMemoryFd();
-     if (!memory_fd.is_valid())
-       return 0;
diff --git a/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.h b/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.h
deleted file mode 100644
index d784232d05..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__backing.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/service/external_vk_image_backing.h.orig	2020-07-08 21:41:48.000000000 +0000
-+++ gpu/command_buffer/service/external_vk_image_backing.h
-@@ -154,7 +154,7 @@ class ExternalVkImageBacking final : pub
- 
-  private:
- 
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
-   // Extract file descriptor from image
-   int GetMemoryFd(const GrVkImageInfo& image_info);
- #endif
diff --git a/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__gl__representation.cc b/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__gl__representation.cc
deleted file mode 100644
index 469042db09..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_service_external__vk__image__gl__representation.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/service/external_vk_image_gl_representation.cc.orig	2020-07-08 21:41:48.000000000 +0000
-+++ gpu/command_buffer/service/external_vk_image_gl_representation.cc
-@@ -179,7 +179,7 @@ GLuint ExternalVkImageGLRepresentationSh
-     SemaphoreHandle handle) {
-   if (!handle.is_valid())
-     return 0;
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
-   if (handle.vk_handle_type() !=
-       VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT) {
-     DLOG(ERROR) << "Importing semaphore handle of unexpected type:"
diff --git a/chromium/patches/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc b/chromium/patches/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc
new file mode 100644
index 0000000000..1ab4befed9
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/gles2_cmd_decoder.cc.orig	2024-07-24 02:44:39.169026600 +0000
++++ gpu/command_buffer/service/gles2_cmd_decoder.cc
+@@ -2955,7 +2955,7 @@ GLES2Decoder* GLES2Decoder::Create(
+   }
+ 
+ // Allow linux to run fuzzers.
+-#if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return new GLES2DecoderImpl(client, command_buffer_service, outputter, group);
+ #else
+   LOG(FATAL) << "Validating command decoder is not supported.";
diff --git a/chromium/patches/patch-gpu_command__buffer_service_program__manager.cc b/chromium/patches/patch-gpu_command__buffer_service_program__manager.cc
deleted file mode 100644
index ecfc312f49..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_service_program__manager.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/service/program_manager.cc.orig	2020-07-08 21:40:44.000000000 +0000
-+++ gpu/command_buffer/service/program_manager.cc
-@@ -30,7 +30,7 @@
- #include "gpu/command_buffer/service/program_cache.h"
- #include "gpu/command_buffer/service/shader_manager.h"
- #include "gpu/config/gpu_preferences.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- #include "ui/gl/gl_version_info.h"
- #include "ui/gl/progress_reporter.h"
- 
diff --git a/chromium/patches/patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc b/chromium/patches/patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc
new file mode 100644
index 0000000000..ebcd4152e2
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_shared__image_angle__vulkan__image__backing__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc.orig	2024-07-24 02:44:39.201029800 +0000
++++ gpu/command_buffer/service/shared_image/angle_vulkan_image_backing_factory.cc
+@@ -21,7 +21,7 @@ namespace {
+ // TODO(penghuang): verify the scanout is the right usage for video playback.
+ // crbug.com/1280798
+ constexpr uint32_t kSupportedUsage =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     SHARED_IMAGE_USAGE_SCANOUT |
+ #endif
+     SHARED_IMAGE_USAGE_GLES2_READ | SHARED_IMAGE_USAGE_GLES2_WRITE |
diff --git a/chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc b/chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc
new file mode 100644
index 0000000000..726d999a5f
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/shared_image/external_vk_image_backing.cc.orig	2024-07-24 02:44:39.209030600 +0000
++++ gpu/command_buffer/service/shared_image/external_vk_image_backing.cc
+@@ -51,7 +51,7 @@
+ #include "ui/gl/gl_version_info.h"
+ #include "ui/gl/scoped_binders.h"
+ 
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DAWN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN)
+ #include "gpu/command_buffer/service/shared_image/external_vk_image_dawn_representation.h"
+ #if BUILDFLAG(DAWN_ENABLE_BACKEND_OPENGLES)
+ #include "gpu/command_buffer/service/shared_image/dawn_gl_texture_representation.h"
+@@ -696,7 +696,7 @@ std::unique_ptr<DawnImageRepresentation>
+     wgpu::BackendType backend_type,
+     std::vector<wgpu::TextureFormat> view_formats,
+     scoped_refptr<SharedContextState> context_state) {
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DAWN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN)
+   auto wgpu_format = ToDawnFormat(format());
+ 
+   if (wgpu_format == wgpu::TextureFormat::Undefined) {
diff --git a/chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc b/chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc
new file mode 100644
index 0000000000..36fa26814e
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_shared__image_external__vk__image__backing__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.cc.orig	2024-07-24 02:44:39.209030600 +0000
++++ gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.cc
+@@ -147,7 +147,7 @@ bool IsFormatSupported(viz::SharedImageF
+ }  // namespace
+ 
+ constexpr uint32_t kSupportedUsage =
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_DAWN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN)
+     SHARED_IMAGE_USAGE_WEBGPU_READ | SHARED_IMAGE_USAGE_WEBGPU_WRITE |
+     SHARED_IMAGE_USAGE_WEBGPU_SWAP_CHAIN_TEXTURE |
+     SHARED_IMAGE_USAGE_WEBGPU_STORAGE_TEXTURE |
diff --git a/chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc b/chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc
new file mode 100644
index 0000000000..140afc29fb
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/shared_image/shared_image_factory.cc.orig	2024-07-24 02:44:39.213031000 +0000
++++ gpu/command_buffer/service/shared_image/shared_image_factory.cc
+@@ -160,7 +160,7 @@ gfx::GpuMemoryBufferType GetNativeBuffer
+   return gfx::GpuMemoryBufferType::IO_SURFACE_BUFFER;
+ #elif BUILDFLAG(IS_ANDROID)
+   return gfx::GpuMemoryBufferType::ANDROID_HARDWARE_BUFFER;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   return gfx::GpuMemoryBufferType::NATIVE_PIXMAP;
+ #elif BUILDFLAG(IS_WIN)
+   return gfx::GpuMemoryBufferType::DXGI_SHARED_HANDLE;
diff --git a/chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc b/chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc
new file mode 100644
index 0000000000..4db4103c43
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_shared__image_shared__image__manager.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/shared_image/shared_image_manager.cc.orig	2024-07-24 02:44:39.217031200 +0000
++++ gpu/command_buffer/service/shared_image/shared_image_manager.cc
+@@ -571,7 +571,7 @@ bool SharedImageManager::SupportsScanout
+   return true;
+ #elif BUILDFLAG(IS_ANDROID)
+   return base::AndroidHardwareBufferCompat::IsSupportAvailable();
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   return ui::OzonePlatform::GetInstance()
+       ->GetPlatformRuntimeProperties()
+       .supports_native_pixmaps;
diff --git a/chromium/patches/patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc b/chromium/patches/patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc
new file mode 100644
index 0000000000..69948f4b48
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_shared__image_wrapped__sk__image__backing.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/shared_image/wrapped_sk_image_backing.cc.orig	2024-07-24 02:44:39.217031200 +0000
++++ gpu/command_buffer/service/shared_image/wrapped_sk_image_backing.cc
+@@ -214,7 +214,7 @@ bool WrappedSkImageBacking::Initialize(c
+ 
+     constexpr GrRenderable is_renderable = GrRenderable::kYes;
+     constexpr GrProtected is_protected = GrProtected::kNo;
+-#if DCHECK_IS_ON() && !BUILDFLAG(IS_LINUX)
++#if DCHECK_IS_ON() && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+     // Blue for single-planar and magenta-ish for multi-planar.
+     SkColor4f fallback_color =
+         format().is_single_plane() ? SkColors::kBlue : SkColors::kWhite;
diff --git a/chromium/patches/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc b/chromium/patches/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc
new file mode 100644
index 0000000000..0c23bdf6ed
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/service/webgpu_decoder_impl.cc.orig	2024-07-24 02:44:39.225032000 +0000
++++ gpu/command_buffer/service/webgpu_decoder_impl.cc
+@@ -1294,7 +1294,7 @@ WGPUFuture WebGPUDecoderImpl::RequestAda
+     force_fallback_adapter = true;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (!shared_context_state_->GrContextIsVulkan() &&
+       !shared_context_state_->IsGraphiteDawnVulkan() &&
+       use_webgpu_adapter_ != WebGPUAdapterName::kOpenGLES) {
+@@ -1967,7 +1967,7 @@ WebGPUDecoderImpl::AssociateMailboxDawn(
+   }
+ 
+ #if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_APPLE) && \
+-    !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_LINUX)
++    !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+   if (usage & wgpu::TextureUsage::StorageBinding) {
+     LOG(ERROR) << "AssociateMailbox: wgpu::TextureUsage::StorageBinding is NOT "
+                   "supported yet on this platform.";
diff --git a/chromium/patches/patch-gpu_command__buffer_tests_gl__copy__texture__CHROMIUM__unittest.cc b/chromium/patches/patch-gpu_command__buffer_tests_gl__copy__texture__CHROMIUM__unittest.cc
deleted file mode 100644
index bcf225eb65..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_tests_gl__copy__texture__CHROMIUM__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc.orig	2020-07-08 21:40:44.000000000 +0000
-+++ gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc
-@@ -643,7 +643,7 @@ class GLCopyTextureCHROMIUMES3Test : pub
- 
-   bool ShouldSkipNorm16() const {
-     DCHECK(!ShouldSkipTest());
--#if (defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)) && \
-+#if (defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)) && \
-     (defined(ARCH_CPU_X86) || defined(ARCH_CPU_X86_64))
-     // Make sure it's tested; it is safe to assume that the flag is always true
-     // on desktop.
diff --git a/chromium/patches/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc b/chromium/patches/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc
new file mode 100644
index 0000000000..c430d6edf5
--- /dev/null
+++ b/chromium/patches/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc.orig	2024-07-24 02:44:39.229032500 +0000
++++ gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc
+@@ -27,7 +27,7 @@
+ #include "ui/gfx/half_float.h"
+ #include "ui/gl/test/gl_test_support.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.h"
+ #include "ui/gfx/linux/client_native_pixmap_factory_dmabuf.h"
+ #endif
+@@ -70,7 +70,7 @@ class GpuMemoryBufferTest : public testi
+   GLManager gl_;
+ };
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ class GpuMemoryBufferTestEGL : public testing::Test,
+                                public gpu::GpuCommandBufferTestEGL {
+  public:
diff --git a/chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.cc b/chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.cc
deleted file mode 100644
index 38f957510d..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/tests/gl_test_utils.cc.orig	2020-07-08 21:40:44.000000000 +0000
-+++ gpu/command_buffer/tests/gl_test_utils.cc
-@@ -24,7 +24,7 @@
- #include "ui/gl/gl_version_info.h"
- #include "ui/gl/init/gl_factory.h"
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "ui/gl/gl_image_native_pixmap.h"
- #endif
- 
-@@ -446,7 +446,7 @@ void GpuCommandBufferTestEGL::RestoreGLD
-   window_system_binding_info_ = gl::GLWindowSystemBindingInfo();
- }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- scoped_refptr<gl::GLImageNativePixmap>
- GpuCommandBufferTestEGL::CreateGLImageNativePixmap(gfx::BufferFormat format,
-                                                    gfx::Size size,
diff --git a/chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.h b/chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.h
deleted file mode 100644
index b39f382e44..0000000000
--- a/chromium/patches/patch-gpu_command__buffer_tests_gl__test__utils.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/command_buffer/tests/gl_test_utils.h.orig	2020-07-08 21:40:44.000000000 +0000
-+++ gpu/command_buffer/tests/gl_test_utils.h
-@@ -120,7 +120,7 @@ class GpuCommandBufferTestEGL {
-     return gfx::HasExtension(gl_extensions_, extension);
-   }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Create GLImageNativePixmap filled in with the given pixels.
-   scoped_refptr<gl::GLImageNativePixmap> CreateGLImageNativePixmap(
-       gfx::BufferFormat format,
diff --git a/chromium/patches/patch-gpu_config_BUILD.gn b/chromium/patches/patch-gpu_config_BUILD.gn
deleted file mode 100644
index dcc4991174..0000000000
--- a/chromium/patches/patch-gpu_config_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/config/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ gpu/config/BUILD.gn
-@@ -216,7 +216,7 @@ jumbo_source_set("config_sources") {
-   if (is_mac) {
-     libs = [ "OpenGL.framework" ]
-   }
--  if (is_linux || is_mac) {
-+  if (is_linux || is_mac || is_bsd) {
-     deps += [ "//third_party/angle:angle_gpu_info_util" ]
-   }
-   if (use_x11) {
diff --git a/chromium/patches/patch-gpu_config_gpu__control__list.cc b/chromium/patches/patch-gpu_config_gpu__control__list.cc
index fabb4104a2..8b76ace39c 100644
--- a/chromium/patches/patch-gpu_config_gpu__control__list.cc
+++ b/chromium/patches/patch-gpu_config_gpu__control__list.cc
@@ -1,31 +1,26 @@
 $NetBSD$
 
---- gpu/config/gpu_control_list.cc.orig	2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/config/gpu_control_list.cc.orig	2024-07-24 02:44:39.237033400 +0000
 +++ gpu/config/gpu_control_list.cc
-@@ -17,7 +17,7 @@
- #include "base/values.h"
- #include "build/build_config.h"
- #include "gpu/config/gpu_util.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
- 
- namespace gpu {
- namespace {
-@@ -248,7 +248,7 @@ bool GpuControlList::More::GLVersionInfo
+@@ -276,7 +276,7 @@ bool GpuControlList::More::GLVersionInfo
  GpuControlList::GLType GpuControlList::More::GetDefaultGLType() {
- #if defined(OS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS)
    return kGLTypeGL;
--#elif defined(OS_LINUX) || defined(OS_OPENBSD)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    return kGLTypeGL;
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_MAC)
    return kGLTypeGL;
-@@ -754,7 +754,7 @@ GpuControlList::OsType GpuControlList::G
+@@ -810,7 +810,7 @@ GpuControlList::OsType GpuControlList::G
    return kOsAndroid;
- #elif defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_FUCHSIA)
    return kOsFuchsia;
--#elif defined(OS_LINUX) || defined(OS_OPENBSD)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    return kOsLinux;
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_MAC)
    return kOsMacosx;
diff --git a/chromium/patches/patch-gpu_config_gpu__finch__features.cc b/chromium/patches/patch-gpu_config_gpu__finch__features.cc
new file mode 100644
index 0000000000..12f739be4e
--- /dev/null
+++ b/chromium/patches/patch-gpu_config_gpu__finch__features.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/config/gpu_finch_features.cc.orig	2024-07-24 02:44:39.241033600 +0000
++++ gpu/config/gpu_finch_features.cc
+@@ -157,7 +157,7 @@ const base::FeatureParam<std::string>
+ BASE_FEATURE(kDefaultEnableGpuRasterization,
+              "DefaultEnableGpuRasterization",
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
+@@ -170,7 +170,7 @@ BASE_FEATURE(kCanvasOopRasterization,
+              "CanvasOopRasterization",
+ #if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_WIN) ||         \
+     (BUILDFLAG(IS_MAC) && defined(ARCH_CPU_ARM64)) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-gpu_config_gpu__info__collector.cc b/chromium/patches/patch-gpu_config_gpu__info__collector.cc
new file mode 100644
index 0000000000..504c99969b
--- /dev/null
+++ b/chromium/patches/patch-gpu_config_gpu__info__collector.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/config/gpu_info_collector.cc.orig	2024-07-24 02:44:39.241033600 +0000
++++ gpu/config/gpu_info_collector.cc
+@@ -364,7 +364,7 @@ void ReportWebGPUAdapterMetrics(dawn::na
+ void ReportWebGPUSupportMetrics(dawn::native::Instance* instance) {
+   static BASE_FEATURE(kCollectWebGPUSupportMetrics,
+                       "CollectWebGPUSupportMetrics",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+                       base::FEATURE_DISABLED_BY_DEFAULT);
+ #else
+                       base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chromium/patches/patch-gpu_config_gpu__test__config.cc b/chromium/patches/patch-gpu_config_gpu__test__config.cc
index c456fe347d..449e0eac82 100644
--- a/chromium/patches/patch-gpu_config_gpu__test__config.cc
+++ b/chromium/patches/patch-gpu_config_gpu__test__config.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- gpu/config/gpu_test_config.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/config/gpu_test_config.cc.orig	2024-07-24 02:44:39.241033600 +0000
 +++ gpu/config/gpu_test_config.cc
-@@ -25,7 +25,7 @@ namespace {
- GPUTestConfig::OS GetCurrentOS() {
- #if defined(OS_CHROMEOS)
+@@ -29,7 +29,7 @@ GPUTestConfig::OS GetCurrentOS() {
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
    return GPUTestConfig::kOsChromeOS;
--#elif defined(OS_LINUX) || defined(OS_OPENBSD)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+ #elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \
+-    BUILDFLAG(IS_OPENBSD)
++    BUILDFLAG(IS_BSD)
    return GPUTestConfig::kOsLinux;
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
    int32_t major_version = 0;
diff --git a/chromium/patches/patch-gpu_gles2__conform__support_BUILD.gn b/chromium/patches/patch-gpu_gles2__conform__support_BUILD.gn
deleted file mode 100644
index 8698421c85..0000000000
--- a/chromium/patches/patch-gpu_gles2__conform__support_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/gles2_conform_support/BUILD.gn.orig	2020-07-15 18:55:58.000000000 +0000
-+++ gpu/gles2_conform_support/BUILD.gn
-@@ -59,7 +59,7 @@ executable("gles2_conform_support") {
-     "//gpu/gles2_conform_support/egl",
-     "//ui/gl",
-   ]
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "native/egl_native_aura.cc",
-       "native/egl_native_x11.cc",
diff --git a/chromium/patches/patch-gpu_gles2__conform__support_native_BUILD.gn b/chromium/patches/patch-gpu_gles2__conform__support_native_BUILD.gn
deleted file mode 100644
index 9c1993b124..0000000000
--- a/chromium/patches/patch-gpu_gles2__conform__support_native_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/gles2_conform_support/native/BUILD.gn.orig	2020-07-15 18:55:58.000000000 +0000
-+++ gpu/gles2_conform_support/native/BUILD.gn
-@@ -20,7 +20,7 @@ source_set("native") {
-     "//gpu/gles2_conform_support/egl",
-     "//ui/gl",
-   ]
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "egl_native_aura.cc",
-       "egl_native_x11.cc",
diff --git a/chromium/patches/patch-gpu_ipc_common_BUILD.gn b/chromium/patches/patch-gpu_ipc_common_BUILD.gn
deleted file mode 100644
index 80c6cccbc2..0000000000
--- a/chromium/patches/patch-gpu_ipc_common_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/ipc/common/BUILD.gn.orig	2020-07-24 02:37:56.000000000 +0000
-+++ gpu/ipc/common/BUILD.gn
-@@ -93,7 +93,7 @@ source_set("ipc_common_sources") {
-       "gpu_memory_buffer_impl_dxgi.h",
-     ]
-   }
--  if (is_linux || use_ozone) {
-+  if (is_linux || use_ozone || is_bsd) {
-     sources += [
-       "gpu_memory_buffer_impl_native_pixmap.cc",
-       "gpu_memory_buffer_impl_native_pixmap.h",
diff --git a/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.cc b/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.cc
index 552f8056ea..2f8c1218d4 100644
--- a/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.cc
+++ b/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.cc
@@ -1,49 +1,26 @@
 $NetBSD$
 
---- gpu/ipc/common/gpu_memory_buffer_support.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/ipc/common/gpu_memory_buffer_support.cc.orig	2024-07-24 02:44:39.253034800 +0000
 +++ gpu/ipc/common/gpu_memory_buffer_support.cc
-@@ -15,7 +15,7 @@
- #include "gpu/ipc/common/gpu_memory_buffer_impl_io_surface.h"
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "ui/gfx/client_native_pixmap_factory.h"
- #include "ui/gfx/linux/client_native_pixmap_factory_dmabuf.h"
- #endif
-@@ -25,7 +25,7 @@
+@@ -26,7 +26,7 @@
  #include "ui/ozone/public/ozone_platform.h"
  #endif
  
--#if defined(USE_OZONE) || defined(OS_LINUX)
-+#if defined(USE_OZONE) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.h"
  #endif
  
-@@ -43,7 +43,7 @@ namespace gpu {
- GpuMemoryBufferSupport::GpuMemoryBufferSupport() {
- #if defined(USE_OZONE)
-   client_native_pixmap_factory_ = ui::CreateClientNativePixmapFactoryOzone();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   client_native_pixmap_factory_.reset(
-       gfx::CreateClientNativePixmapFactoryDmabuf());
- #endif
-@@ -57,7 +57,7 @@ GpuMemoryBufferSupport::GetNativeGpuMemo
+@@ -56,7 +56,7 @@ GpuMemoryBufferSupport::GetNativeGpuMemo
    return gfx::IO_SURFACE_BUFFER;
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
    return gfx::ANDROID_HARDWARE_BUFFER;
--#elif defined(OS_LINUX) || defined(USE_OZONE)
-+#elif defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
    return gfx::NATIVE_PIXMAP;
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
    return gfx::DXGI_SHARED_HANDLE;
-@@ -182,7 +182,7 @@ GpuMemoryBufferSupport::CreateGpuMemoryB
-       return GpuMemoryBufferImplIOSurface::CreateFromHandle(
-           std::move(handle), size, format, usage, std::move(callback));
- #endif
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
-     case gfx::NATIVE_PIXMAP:
-       return GpuMemoryBufferImplNativePixmap::CreateFromHandle(
-           client_native_pixmap_factory(), std::move(handle), size, format,
diff --git a/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.h b/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.h
index 02dc379f0f..f445576042 100644
--- a/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.h
+++ b/chromium/patches/patch-gpu_ipc_common_gpu__memory__buffer__support.h
@@ -1,31 +1,17 @@
 $NetBSD$
 
---- gpu/ipc/common/gpu_memory_buffer_support.h.orig	2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/ipc/common/gpu_memory_buffer_support.h.orig	2024-07-24 02:44:39.253034800 +0000
 +++ gpu/ipc/common/gpu_memory_buffer_support.h
-@@ -16,7 +16,7 @@
+@@ -21,7 +21,7 @@
  #include "ui/gfx/geometry/size.h"
  #include "ui/gfx/gpu_memory_buffer.h"
  
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
  namespace gfx {
  class ClientNativePixmapFactory;
- }
-@@ -38,7 +38,7 @@ class GPU_EXPORT GpuMemoryBufferSupport 
-   bool IsNativeGpuMemoryBufferConfigurationSupported(gfx::BufferFormat format,
-                                                      gfx::BufferUsage usage);
- 
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
-   gfx::ClientNativePixmapFactory* client_native_pixmap_factory() {
-     return client_native_pixmap_factory_.get();
-   }
-@@ -62,7 +62,7 @@ class GPU_EXPORT GpuMemoryBufferSupport 
-       GpuMemoryBufferImpl::DestructionCallback callback);
- 
-  private:
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
-   std::unique_ptr<gfx::ClientNativePixmapFactory> client_native_pixmap_factory_;
- #endif
- 
+ }  // namespace gfx
diff --git a/chromium/patches/patch-gpu_ipc_service_BUILD.gn b/chromium/patches/patch-gpu_ipc_service_BUILD.gn
deleted file mode 100644
index 4fbf77af84..0000000000
--- a/chromium/patches/patch-gpu_ipc_service_BUILD.gn
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD$
-
---- gpu/ipc/service/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ gpu/ipc/service/BUILD.gn
-@@ -124,10 +124,10 @@ jumbo_component("service") {
-     ]
-     libs += [ "android" ]
-   }
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [ "image_transport_surface_linux.cc" ]
-   }
--  if (is_linux || use_ozone) {
-+  if (is_linux || use_ozone || is_bsd) {
-     sources += [
-       "gpu_memory_buffer_factory_native_pixmap.cc",
-       "gpu_memory_buffer_factory_native_pixmap.h",
diff --git a/chromium/patches/patch-gpu_ipc_service_gpu__init.cc b/chromium/patches/patch-gpu_ipc_service_gpu__init.cc
index 89f4683ead..6bb8e39a1e 100644
--- a/chromium/patches/patch-gpu_ipc_service_gpu__init.cc
+++ b/chromium/patches/patch-gpu_ipc_service_gpu__init.cc
@@ -1,85 +1,80 @@
 $NetBSD$
 
---- gpu/ipc/service/gpu_init.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/ipc/service/gpu_init.cc.orig	2024-07-24 02:44:39.265036000 +0000
 +++ gpu/ipc/service/gpu_init.cc
-@@ -94,7 +94,7 @@ void InitializePlatformOverlaySettings(G
- #endif
- }
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
- bool CanAccessNvidiaDeviceFile() {
-   bool res = true;
-   base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
-@@ -178,7 +178,7 @@ bool GpuInit::InitializeAndStartSandbox(
-     device_perf_info_ = device_perf_info;
-   }
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   if (gpu_info_.gpu.vendor_id == 0x10de &&  // NVIDIA
-       gpu_info_.gpu.driver_vendor == "NVIDIA" && !CanAccessNvidiaDeviceFile())
-     return false;
-@@ -230,7 +230,7 @@ bool GpuInit::InitializeAndStartSandbox(
-   delayed_watchdog_enable = true;
+@@ -398,7 +398,7 @@ bool GpuInit::InitializeAndStartSandbox(
+   enable_watchdog = false;
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // PreSandbox is mainly for resource handling and not related to the GPU
-   // driver, it doesn't need the GPU watchdog. The loadLibrary may take long
-   // time that killing and restarting the GPU process will not help.
-@@ -275,7 +275,7 @@ bool GpuInit::InitializeAndStartSandbox(
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   bool gpu_sandbox_start_early = gpu_preferences_.gpu_sandbox_start_early;
+ #else   // !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
+   // For some reasons MacOSX's VideoToolbox might crash when called after
+@@ -435,7 +435,7 @@ bool GpuInit::InitializeAndStartSandbox(
    }
  
    bool attempted_startsandbox = false;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // On Chrome OS ARM Mali, GPU driver userspace creates threads when
    // initializing a GL context, so start the sandbox early.
    // TODO(zmo): Need to collect OS version before this.
-@@ -307,7 +307,7 @@ bool GpuInit::InitializeAndStartSandbox(
-   }
-   if (gl_initialized && gl_use_swiftshader_ &&
-       gl::GetGLImplementation() != gl::kGLImplementationSwiftShaderGL) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly "
-             << "on Linux";
-     return false;
-@@ -340,7 +340,7 @@ bool GpuInit::InitializeAndStartSandbox(
-     }
+@@ -542,7 +542,7 @@ bool GpuInit::InitializeAndStartSandbox(
+     gpu_preferences_.gr_context_type = GrContextType::kGL;
    }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // The ContentSandboxHelper is currently the only one implementation of
    // GpuSandboxHelper and it has no dependency. Except on Linux where
    // VaapiWrapper checks the GL implementation to determine which display
-@@ -392,7 +392,7 @@ bool GpuInit::InitializeAndStartSandbox(
+@@ -624,7 +624,7 @@ bool GpuInit::InitializeAndStartSandbox(
            command_line, gpu_feature_info_,
            gpu_preferences_.disable_software_rasterizer, false);
        if (gl_use_swiftshader_) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
          VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly "
                  << "on Linux";
          return false;
-@@ -482,7 +482,7 @@ bool GpuInit::InitializeAndStartSandbox(
+@@ -780,7 +780,7 @@ bool GpuInit::InitializeAndStartSandbox(
  
-   InitializePlatformOverlaySettings(&gpu_info_);
+   InitializePlatformOverlaySettings(&gpu_info_, gpu_feature_info_);
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Driver may create a compatibility profile context when collect graphics
    // information on Linux platform. Try to collect graphics information
    // based on core profile context after disabling platform extensions.
-@@ -667,7 +667,7 @@ void GpuInit::InitializeInProcess(base::
+@@ -835,7 +835,7 @@ bool GpuInit::InitializeAndStartSandbox(
+       }
+     }
+   }
+-#if BUILDFLAG(IS_LINUX) || \
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+     (BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_CHROMEOS_DEVICE))
+   if (!gl_disabled && !gl_use_swiftshader_ && std::getenv("RUNNING_UNDER_RR")) {
+     // https://rr-project.org/ is a Linux-only record-and-replay debugger that
+@@ -1023,7 +1023,7 @@ void GpuInit::InitializeInProcess(base::
+   }
+   bool gl_disabled = gl::GetGLImplementation() == gl::kGLImplementationDisabled;
  
-   InitializePlatformOverlaySettings(&gpu_info_);
+-#if BUILDFLAG(IS_LINUX) || \
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+     (BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_CHROMEOS_DEVICE))
+   if (!gl_disabled && !gl_use_swiftshader_ && std::getenv("RUNNING_UNDER_RR")) {
+     // https://rr-project.org/ is a Linux-only record-and-replay debugger that
+@@ -1083,7 +1083,7 @@ void GpuInit::InitializeInProcess(base::
+     }
+   }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Driver may create a compatibility profile context when collect graphics
    // information on Linux platform. Try to collect graphics information
    // based on core profile context after disabling platform extensions.
diff --git a/chromium/patches/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc b/chromium/patches/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc
index 59e8df3599..f46dc9e634 100644
--- a/chromium/patches/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc
+++ b/chromium/patches/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- gpu/ipc/service/gpu_memory_buffer_factory.cc.orig	2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/ipc/service/gpu_memory_buffer_factory.cc.orig	2024-07-24 02:44:39.265036000 +0000
 +++ gpu/ipc/service/gpu_memory_buffer_factory.cc
-@@ -12,7 +12,7 @@
+@@ -13,7 +13,7 @@
  #include "gpu/ipc/service/gpu_memory_buffer_factory_io_surface.h"
  #endif
  
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
  #include "gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.h"
  #endif
  
-@@ -34,7 +34,7 @@ GpuMemoryBufferFactory::CreateNativeType
+@@ -36,7 +36,7 @@ GpuMemoryBufferFactory::CreateNativeType
    return std::make_unique<GpuMemoryBufferFactoryIOSurface>();
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
    return std::make_unique<GpuMemoryBufferFactoryAndroidHardwareBuffer>();
--#elif defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#elif defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
    return std::make_unique<GpuMemoryBufferFactoryNativePixmap>(
        vulkan_context_provider);
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.cc b/chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.cc
deleted file mode 100644
index 7ad6f80dae..0000000000
--- a/chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.cc
+++ /dev/null
@@ -1,58 +0,0 @@
-$NetBSD$
-
---- gpu/ipc/service/gpu_watchdog_thread.cc.orig	2020-07-08 21:41:48.000000000 +0000
-+++ gpu/ipc/service/gpu_watchdog_thread.cc
-@@ -54,7 +54,7 @@ const int kNewGpuTimeout = 17000;
- const int kNewGpuTimeout = 15000;
- #endif
- 
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
- const base::FilePath::CharType kTtyFilePath[] =
-     FILE_PATH_LITERAL("/sys/class/tty/tty0/active");
- #endif
-@@ -72,7 +72,7 @@ GpuWatchdogThreadImplV1::GpuWatchdogThre
-       arm_cpu_time_(),
- #endif
-       suspension_counter_(this)
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
-       ,
-       host_tty_(-1)
- #endif
-@@ -94,7 +94,7 @@ GpuWatchdogThreadImplV1::GpuWatchdogThre
-   DCHECK(result);
- #endif
- 
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
-   tty_file_ = base::OpenFile(base::FilePath(kTtyFilePath), "r");
-   UpdateActiveTTY();
-   host_tty_ = active_tty_;
-@@ -236,7 +236,7 @@ GpuWatchdogThreadImplV1::~GpuWatchdogThr
- 
-   base::PowerMonitor::RemoveObserver(this);
- 
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
-   if (tty_file_)
-     fclose(tty_file_);
- #endif
-@@ -385,7 +385,7 @@ void GpuWatchdogThreadImplV1::Deliberate
-     return;
- #endif
- 
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
-   // Don't crash if we're not on the TTY of our host X11 server.
-   UpdateActiveTTY();
-   if (host_tty_ != -1 && active_tty_ != -1 && host_tty_ != active_tty_) {
-@@ -541,7 +541,7 @@ base::ThreadTicks GpuWatchdogThreadImplV
- }
- #endif
- 
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
- void GpuWatchdogThreadImplV1::UpdateActiveTTY() {
-   last_active_tty_ = active_tty_;
- 
diff --git a/chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.h b/chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.h
deleted file mode 100644
index bec786503e..0000000000
--- a/chromium/patches/patch-gpu_ipc_service_gpu__watchdog__thread.h
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- gpu/ipc/service/gpu_watchdog_thread.h.orig	2020-07-08 21:40:44.000000000 +0000
-+++ gpu/ipc/service/gpu_watchdog_thread.h
-@@ -213,7 +213,7 @@ class GPU_IPC_SERVICE_EXPORT GpuWatchdog
-   base::ThreadTicks GetWatchedThreadTime();
- #endif
- 
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
-   void UpdateActiveTTY();
- #endif
- 
-@@ -261,7 +261,7 @@ class GPU_IPC_SERVICE_EXPORT GpuWatchdog
-   base::Time check_time_;
-   base::TimeTicks check_timeticks_;
- 
--#if defined(USE_X11)
-+#if defined(USE_X11) && !defined(OS_BSD)
-   FILE* tty_file_;
-   int host_tty_;
-   int active_tty_ = -1;
diff --git a/chromium/patches/patch-gpu_ipc_service_x__util.h b/chromium/patches/patch-gpu_ipc_service_x__util.h
new file mode 100644
index 0000000000..1d295a57aa
--- /dev/null
+++ b/chromium/patches/patch-gpu_ipc_service_x__util.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/ipc/service/x_util.h.orig	2024-07-24 02:44:39.269036300 +0000
++++ gpu/ipc/service/x_util.h
+@@ -12,7 +12,7 @@
+ #include "gpu/ipc/service/gpu_config.h"
+ #include "ui/base/ozone_buildflags.h"
+ 
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
+ 
+ namespace gpu {
+ 
diff --git a/chromium/patches/patch-gpu_khronos__glcts__support_BUILD.gn b/chromium/patches/patch-gpu_khronos__glcts__support_BUILD.gn
deleted file mode 100644
index 8e2e3e8a86..0000000000
--- a/chromium/patches/patch-gpu_khronos__glcts__support_BUILD.gn
+++ /dev/null
@@ -1,76 +0,0 @@
-$NetBSD$
-
---- gpu/khronos_glcts_support/BUILD.gn.orig	2020-07-15 18:55:58.000000000 +0000
-+++ gpu/khronos_glcts_support/BUILD.gn
-@@ -79,7 +79,7 @@ if (internal_khronos_glcts_tests) {
- 
-     public_configs = [ ":debase_config" ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       cflags_c = [ "-Wno-implicit-function-declaration" ]
-     }
-   }
-@@ -147,7 +147,7 @@ if (internal_khronos_glcts_tests) {
- 
-     public_configs = [ ":dethread_config" ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources += [
-         "//third_party/khronos_glcts/framework/delibs/dethread/unix/deMutexUnix.c",
-         "//third_party/khronos_glcts/framework/delibs/dethread/unix/deSemaphoreUnix.c",
-@@ -194,7 +194,7 @@ if (internal_khronos_glcts_tests) {
- 
-     public_configs = [ ":deutil_config" ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       cflags_c = [ "-Wno-string-conversion" ]
-     }
-   }
-@@ -306,7 +306,7 @@ if (internal_khronos_glcts_tests) {
- 
-     public_configs = [ ":qphelper_config" ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       cflags_c = [ "-Wno-string-conversion" ]
-     }
-   }
-@@ -394,7 +394,7 @@ if (internal_khronos_glcts_tests) {
- 
-     public_configs = [ ":tcutil_config" ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       cflags_cc = [ "-Wno-int-to-pointer-cast" ]
-     }
-   }
-@@ -532,7 +532,7 @@ if (internal_khronos_glcts_tests) {
-       "//third_party/khronos:khronos_headers",
-     ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       cflags_cc = [ "-Wno-int-to-void-pointer-cast" ]
-     }
-   }
-@@ -611,7 +611,7 @@ if (internal_khronos_glcts_tests) {
- 
-     public_configs = [ ":glcts_common_config" ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       cflags_cc = [ "-Wno-string-conversion" ]
-     }
-   }
-@@ -819,7 +819,7 @@ if (internal_khronos_glcts_tests) {
- 
-     public_configs = [ ":gtf_es_config" ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       cflags_c = [
-         "-Wno-pointer-sign",
-         "-Wno-incompatible-pointer-types",
diff --git a/chromium/patches/patch-gpu_tools_compositor__model__bench_BUILD.gn b/chromium/patches/patch-gpu_tools_compositor__model__bench_BUILD.gn
deleted file mode 100644
index 21a8a71ad2..0000000000
--- a/chromium/patches/patch-gpu_tools_compositor__model__bench_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/tools/compositor_model_bench/BUILD.gn.orig	2020-07-15 18:55:58.000000000 +0000
-+++ gpu/tools/compositor_model_bench/BUILD.gn
-@@ -4,7 +4,7 @@
- 
- import("//build/config/ui.gni")
- 
--if (is_linux && use_x11 && current_cpu != "arm") {
-+if ((is_linux || is_bsd) && use_x11 && current_cpu != "arm") {
-   executable("compositor_model_bench") {
-     sources = [
-       "compositor_model_bench.cc",
diff --git a/chromium/patches/patch-gpu_vulkan_features.gni b/chromium/patches/patch-gpu_vulkan_features.gni
deleted file mode 100644
index 12c54b2668..0000000000
--- a/chromium/patches/patch-gpu_vulkan_features.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- gpu/vulkan/features.gni.orig	2020-07-23 02:28:04.152680184 +0000
-+++ gpu/vulkan/features.gni
-@@ -8,7 +8,7 @@ import("//build/config/ui.gni")
- # For details see declare_args() in build/config/BUILDCONFIG.gn.
- declare_args() {
-   # Enable experimental vulkan backend.
--  enable_vulkan = is_linux || is_android || is_fuchsia || is_win
-+  enable_vulkan = is_linux || is_android || is_fuchsia || is_win || is_bsd
- 
-   # Enable swiftshader vulkan. Disabling it can save build time, however
-   # --use-vulkan=swiftshader and some tests which use swiftshader vulkan will
diff --git a/chromium/patches/patch-gpu_vulkan_generate__bindings.py b/chromium/patches/patch-gpu_vulkan_generate__bindings.py
new file mode 100644
index 0000000000..5cb15a8d71
--- /dev/null
+++ b/chromium/patches/patch-gpu_vulkan_generate__bindings.py
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/generate_bindings.py.orig	2024-07-24 02:44:39.273036700 +0000
++++ gpu/vulkan/generate_bindings.py
+@@ -271,7 +271,7 @@ VULKAN_DEVICE_FUNCTIONS = [
+     ]
+   },
+   {
+-    'ifdef': 'BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)',
++    'ifdef': 'BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)',
+     'extension': 'VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME',
+     'functions': [
+       'vkGetImageDrmFormatModifierPropertiesEXT',
diff --git a/chromium/patches/patch-gpu_vulkan_semaphore__handle.cc b/chromium/patches/patch-gpu_vulkan_semaphore__handle.cc
new file mode 100644
index 0000000000..0d685ff8bc
--- /dev/null
+++ b/chromium/patches/patch-gpu_vulkan_semaphore__handle.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/semaphore_handle.cc.orig	2024-07-24 02:44:39.273036700 +0000
++++ gpu/vulkan/semaphore_handle.cc
+@@ -39,7 +39,7 @@ SemaphoreHandle::SemaphoreHandle(gfx::Gp
+   // https://fuchsia.dev/reference/fidl/fuchsia.ui.scenic.
+   Init(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,
+        fence_handle.Release());
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   Init(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR,
+        fence_handle.Release());
+ #elif BUILDFLAG(IS_POSIX)
+@@ -64,7 +64,7 @@ gfx::GpuFenceHandle SemaphoreHandle::ToG
+   // VkSemaphore, which can then be used to submit present work, see
+   // https://fuchsia.dev/reference/fidl/fuchsia.ui.scenic.
+   fence_handle.Adopt(TakeHandle());
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+   if (type_ == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR) {
+     fence_handle.Adopt(TakeHandle());
+   } else {
diff --git a/chromium/patches/patch-gpu_vulkan_vulkan__device__queue.cc b/chromium/patches/patch-gpu_vulkan_vulkan__device__queue.cc
new file mode 100644
index 0000000000..869011feb3
--- /dev/null
+++ b/chromium/patches/patch-gpu_vulkan_vulkan__device__queue.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/vulkan_device_queue.cc.orig	2024-07-24 02:44:39.273036700 +0000
++++ gpu/vulkan/vulkan_device_queue.cc
+@@ -149,7 +149,7 @@ bool VulkanDeviceQueue::Initialize(
+ 
+       // In dual-CPU cases, we cannot detect the active GPU correctly on Linux,
+       // so don't select GPU device based on the |gpu_info|.
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+     // If gpu_info is provided, the device should match it.
+     if (gpu_info && (device_properties.vendorID != gpu_info->gpu.vendor_id ||
+                      device_properties.deviceID != gpu_info->gpu.device_id)) {
+@@ -292,7 +292,7 @@ bool VulkanDeviceQueue::Initialize(
+   // Android, Fuchsia, Linux, and CrOS (VaapiVideoDecoder) need YCbCr sampler
+   // support.
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (!physical_device_info.feature_sampler_ycbcr_conversion) {
+     LOG(ERROR) << "samplerYcbcrConversion is not supported.";
+     return false;
diff --git a/chromium/patches/patch-gpu_vulkan_vulkan__device__queue.h b/chromium/patches/patch-gpu_vulkan_vulkan__device__queue.h
new file mode 100644
index 0000000000..2e29b28ba3
--- /dev/null
+++ b/chromium/patches/patch-gpu_vulkan_vulkan__device__queue.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/vulkan_device_queue.h.orig	2024-07-24 02:44:39.273036700 +0000
++++ gpu/vulkan/vulkan_device_queue.h
+@@ -179,7 +179,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanDev
+ #endif
+ 
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   VkPhysicalDeviceSamplerYcbcrConversionFeatures
+       sampler_ycbcr_conversion_features_{
+           VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES};
diff --git a/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.cc b/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.cc
index 87c0df94e5..010402e73c 100644
--- a/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.cc
+++ b/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- gpu/vulkan/vulkan_function_pointers.cc.orig	2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/vulkan_function_pointers.cc.orig	2024-07-24 02:44:39.273036700 +0000
 +++ gpu/vulkan/vulkan_function_pointers.cc
-@@ -862,7 +862,7 @@ bool VulkanFunctionPointers::BindDeviceF
+@@ -1297,7 +1297,7 @@ bool VulkanFunctionPointers::BindDeviceF
+     }
    }
- #endif  // defined(OS_ANDROID)
  
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (gfx::HasExtension(enabled_extensions,
-                         VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME)) {
-     vkGetSemaphoreFdKHR = reinterpret_cast<PFN_vkGetSemaphoreFdKHR>(
-@@ -906,7 +906,7 @@ bool VulkanFunctionPointers::BindDeviceF
-   }
- #endif  // defined(OS_WIN)
+                         VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME)) {
+     constexpr char kvkGetImageDrmFormatModifierPropertiesEXT[] =
+@@ -1498,7 +1498,7 @@ void VulkanFunctionPointers::ResetForTes
+   vkGetSwapchainImagesKHR = nullptr;
+   vkQueuePresentKHR = nullptr;
  
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
-   if (gfx::HasExtension(enabled_extensions,
-                         VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME)) {
-     vkGetMemoryFdKHR = reinterpret_cast<PFN_vkGetMemoryFdKHR>(
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   vkGetImageDrmFormatModifierPropertiesEXT = nullptr;
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ }
diff --git a/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.h b/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.h
index 13628b6afa..1f1c50d8fb 100644
--- a/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.h
+++ b/chromium/patches/patch-gpu_vulkan_vulkan__function__pointers.h
@@ -1,46 +1,32 @@
 $NetBSD$
 
---- gpu/vulkan/vulkan_function_pointers.h.orig	2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/vulkan_function_pointers.h.orig	2024-07-24 02:44:39.273036700 +0000
 +++ gpu/vulkan/vulkan_function_pointers.h
-@@ -234,7 +234,7 @@ struct COMPONENT_EXPORT(VULKAN) VulkanFu
-       vkGetAndroidHardwareBufferPropertiesANDROID;
- #endif  // defined(OS_ANDROID)
- 
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
-   VulkanFunction<PFN_vkGetSemaphoreFdKHR> vkGetSemaphoreFdKHR;
-   VulkanFunction<PFN_vkImportSemaphoreFdKHR> vkImportSemaphoreFdKHR;
- #endif  // defined(OS_LINUX) || defined(OS_ANDROID)
-@@ -245,7 +245,7 @@ struct COMPONENT_EXPORT(VULKAN) VulkanFu
-       vkImportSemaphoreWin32HandleKHR;
- #endif  // defined(OS_WIN)
- 
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
-   VulkanFunction<PFN_vkGetMemoryFdKHR> vkGetMemoryFdKHR;
-   VulkanFunction<PFN_vkGetMemoryFdPropertiesKHR> vkGetMemoryFdPropertiesKHR;
- #endif  // defined(OS_LINUX) || defined(OS_ANDROID)
-@@ -953,7 +953,7 @@ ALWAYS_INLINE VkResult vkGetAndroidHardw
- }
- #endif  // defined(OS_ANDROID)
+@@ -322,7 +322,7 @@ struct COMPONENT_EXPORT(VULKAN) VulkanFu
+   VulkanFunction<PFN_vkGetSwapchainImagesKHR> vkGetSwapchainImagesKHR;
+   VulkanFunction<PFN_vkQueuePresentKHR> vkQueuePresentKHR;
  
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- ALWAYS_INLINE VkResult
- vkGetSemaphoreFdKHR(VkDevice device,
-                     const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
-@@ -986,7 +986,7 @@ vkImportSemaphoreWin32HandleKHR(VkDevice
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   VulkanFunction<PFN_vkGetImageDrmFormatModifierPropertiesEXT>
+       vkGetImageDrmFormatModifierPropertiesEXT;
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -1336,7 +1336,7 @@ ALWAYS_INLINE VkResult vkQueuePresentKHR
+                                                              pPresentInfo);
  }
- #endif  // defined(OS_WIN)
  
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- ALWAYS_INLINE VkResult vkGetMemoryFdKHR(VkDevice device,
-                                         const VkMemoryGetFdInfoKHR* pGetFdInfo,
-                                         int* pFd) {
-@@ -1081,4 +1081,4 @@ ALWAYS_INLINE VkResult vkQueuePresentKHR
-                                                              pPresentInfo);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ ALWAYS_INLINE VkResult vkGetImageDrmFormatModifierPropertiesEXT(
+     VkDevice device,
+     VkImage image,
+@@ -1346,4 +1346,4 @@ ALWAYS_INLINE VkResult vkGetImageDrmForm
  }
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
  
 -#endif  // GPU_VULKAN_VULKAN_FUNCTION_POINTERS_H_
 \ No newline at end of file
diff --git a/chromium/patches/patch-gpu_vulkan_vulkan__image.h b/chromium/patches/patch-gpu_vulkan_vulkan__image.h
new file mode 100644
index 0000000000..937be6a3af
--- /dev/null
+++ b/chromium/patches/patch-gpu_vulkan_vulkan__image.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/vulkan_image.h.orig	2024-07-24 02:44:39.277037100 +0000
++++ gpu/vulkan/vulkan_image.h
+@@ -87,7 +87,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanIma
+       VkImageUsageFlags usage,
+       VkImageCreateFlags flags);
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   static std::unique_ptr<VulkanImage> CreateWithExternalMemoryAndModifiers(
+       VulkanDeviceQueue* device_queue,
+       const gfx::Size& size,
+@@ -199,7 +199,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanIma
+       VkImageTiling image_tiling,
+       uint32_t queue_family_index);
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   bool InitializeWithExternalMemoryAndModifiers(VulkanDeviceQueue* device_queue,
+                                                 const gfx::Size& size,
+                                                 VkFormat format,
diff --git a/chromium/patches/patch-gpu_vulkan_vulkan__util.cc b/chromium/patches/patch-gpu_vulkan_vulkan__util.cc
new file mode 100644
index 0000000000..a3df3d3d56
--- /dev/null
+++ b/chromium/patches/patch-gpu_vulkan_vulkan__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- gpu/vulkan/vulkan_util.cc.orig	2024-07-24 02:44:39.277037100 +0000
++++ gpu/vulkan/vulkan_util.cc
+@@ -468,7 +468,7 @@ bool CheckVulkanCompatibilities(
+     }
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) && !defined(OZONE_PLATFORM_IS_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !defined(OZONE_PLATFORM_IS_X11)
+   // Vulkan is only supported with X11 on Linux for now.
+   return false;
+ #else
diff --git a/chromium/patches/patch-headless_BUILD.gn b/chromium/patches/patch-headless_BUILD.gn
deleted file mode 100644
index 0aba6e2da5..0000000000
--- a/chromium/patches/patch-headless_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- headless/BUILD.gn.orig	2020-06-25 09:32:39.000000000 +0000
-+++ headless/BUILD.gn
-@@ -264,7 +264,7 @@ source_set("headless_shared_sources") {
-   sources += generated_devtools_api
-   sources += get_target_outputs(":protocol_sources")
- 
--  if (!is_fuchsia) {
-+  if (!is_fuchsia && !is_bsd) {
-     sources += [
-       "lib/headless_crash_reporter_client.cc",
-       "lib/headless_crash_reporter_client.h",
-@@ -284,7 +284,7 @@ source_set("headless_shared_sources") {
-     "//url",
-   ]
- 
--  if (!is_fuchsia) {
-+  if (!is_fuchsia && !is_bsd) {
-     deps += [ "//components/crash/content/browser" ]
-   }
-   if (is_component_build && is_win) {
-@@ -437,7 +437,7 @@ component("headless_non_renderer") {
-       "//v8",
-     ]
- 
--    if (!is_fuchsia) {
-+    if (!is_fuchsia && !is_bsd) {
-       deps += [ "//components/crash/content/browser" ]
-     }
-     if (is_win) {
-@@ -717,7 +717,7 @@ static_library("headless_shell_lib") {
-     public_deps += [ ":headless_non_renderer" ]
-   }
- 
--  if (!is_fuchsia) {
-+  if (!is_fuchsia && !is_bsd) {
-     deps += [ "//components/crash/content/browser" ]
-   }
- 
diff --git a/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts.h b/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts.h
deleted file mode 100644
index 55a71d702c..0000000000
--- a/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- headless/lib/browser/headless_browser_main_parts.h.orig	2020-07-15 18:55:58.000000000 +0000
-+++ headless/lib/browser/headless_browser_main_parts.h
-@@ -32,7 +32,7 @@ class HeadlessBrowserMainParts : public 
- #if defined(OS_MACOSX)
-   void PreMainMessageLoopStart() override;
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   void PostMainMessageLoopStart() override;
- #endif
-   void QuitMainMessageLoop();
diff --git a/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__linux.cc b/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__linux.cc
deleted file mode 100644
index d0cb841317..0000000000
--- a/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__linux.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- headless/lib/browser/headless_browser_main_parts_linux.cc.orig	2020-07-15 18:55:58.000000000 +0000
-+++ headless/lib/browser/headless_browser_main_parts_linux.cc
-@@ -10,7 +10,7 @@
- namespace headless {
- 
- void HeadlessBrowserMainParts::PostMainMessageLoopStart() {
--#if defined(USE_DBUS) && !defined(OS_CHROMEOS)
-+#if defined(USE_DBUS) && !defined(OS_CHROMEOS) && !defined(OS_BSD)
-   bluez::BluezDBusManager::Initialize(/*system_bus=*/nullptr);
- #endif
- }
diff --git a/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__posix.cc b/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__posix.cc
new file mode 100644
index 0000000000..914036a0a9
--- /dev/null
+++ b/chromium/patches/patch-headless_lib_browser_headless__browser__main__parts__posix.cc
@@ -0,0 +1,45 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- headless/lib/browser/headless_browser_main_parts_posix.cc.orig	2024-07-24 02:44:39.281037600 +0000
++++ headless/lib/browser/headless_browser_main_parts_posix.cc
+@@ -21,13 +21,13 @@
+ #include "content/public/browser/browser_thread.h"
+ #include "headless/lib/browser/headless_browser_impl.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/command_line.h"
+ #include "components/os_crypt/sync/key_storage_config_linux.h"
+ #include "components/os_crypt/sync/os_crypt.h"
+ #include "headless/public/switches.h"
+ 
+-#if defined(USE_DBUS)
++#if defined(USE_DBUS) && !BUILDFLAG(IS_BSD)
+ #include "device/bluetooth/dbus/bluez_dbus_manager.h"
+ #endif
+ 
+@@ -161,7 +161,7 @@ class BrowserShutdownHandler {
+ 
+ }  // namespace
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr char kProductName[] = "HeadlessChrome";
+ #endif
+ 
+@@ -169,9 +169,9 @@ void HeadlessBrowserMainParts::PostCreat
+   BrowserShutdownHandler::Install(base::BindOnce(
+       &HeadlessBrowserImpl::ShutdownWithExitCode, browser_->GetWeakPtr()));
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ 
+-#if defined(USE_DBUS)
++#if defined(USE_DBUS) && !BUILDFLAG(IS_BSD)
+   bluez::BluezDBusManager::Initialize(/*system_bus=*/nullptr);
+ #endif
+ 
diff --git a/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.cc b/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.cc
deleted file mode 100644
index 91c4c3e3cc..0000000000
--- a/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- headless/lib/browser/headless_content_browser_client.cc.orig	2020-07-08 21:41:48.000000000 +0000
-+++ headless/lib/browser/headless_content_browser_client.cc
-@@ -158,7 +158,7 @@ HeadlessContentBrowserClient::GetGenerat
-   return content::GeneratedCodeCacheSettings(true, 0, context->GetPath());
- }
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
- void HeadlessContentBrowserClient::GetAdditionalMappedFilesForChildProcess(
-     const base::CommandLine& command_line,
-     int child_process_id,
-@@ -241,7 +241,7 @@ void HeadlessContentBrowserClient::Appen
-                                             process_type, child_process_id);
-   }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Processes may only query perf_event_open with the BPF sandbox disabled.
-   if (old_command_line.HasSwitch(::switches::kEnableThreadInstructionCount) &&
-       old_command_line.HasSwitch(service_manager::switches::kNoSandbox)) {
diff --git a/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.h b/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.h
index f99555d5c8..dd77285a50 100644
--- a/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.h
+++ b/chromium/patches/patch-headless_lib_browser_headless__content__browser__client.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- headless/lib/browser/headless_content_browser_client.h.orig	2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- headless/lib/browser/headless_content_browser_client.h.orig	2024-07-24 02:44:39.281037600 +0000
 +++ headless/lib/browser/headless_content_browser_client.h
-@@ -29,7 +29,7 @@ class HeadlessContentBrowserClient : pub
-       override;
+@@ -45,7 +45,7 @@ class HeadlessContentBrowserClient : pub
+   CreateDevToolsManagerDelegate() override;
    content::GeneratedCodeCacheSettings GetGeneratedCodeCacheSettings(
        content::BrowserContext* context) override;
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
    void GetAdditionalMappedFilesForChildProcess(
        const base::CommandLine& command_line,
        int child_process_id,
diff --git a/chromium/patches/patch-headless_lib_browser_headless__request__context__manager.cc b/chromium/patches/patch-headless_lib_browser_headless__request__context__manager.cc
index 47a6832d81..2d4607f115 100644
--- a/chromium/patches/patch-headless_lib_browser_headless__request__context__manager.cc
+++ b/chromium/patches/patch-headless_lib_browser_headless__request__context__manager.cc
@@ -1,31 +1,17 @@
 $NetBSD$
 
---- headless/lib/browser/headless_request_context_manager.cc.orig	2020-07-08 21:40:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- headless/lib/browser/headless_request_context_manager.cc.orig	2024-07-24 02:44:39.281037600 +0000
 +++ headless/lib/browser/headless_request_context_manager.cc
-@@ -26,7 +26,7 @@ namespace headless {
- 
- namespace {
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- constexpr char kProductName[] = "HeadlessChrome";
- #endif
- 
-@@ -56,7 +56,7 @@ net::NetworkTrafficAnnotationTag GetProx
-   return traffic_annotation;
- }
+@@ -66,7 +66,7 @@ void SetCryptKeyOnce(const base::FilePat
+     return;
+   done_once = true;
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- ::network::mojom::CryptConfigPtr BuildCryptConfigOnce(
-     const base::FilePath& user_data_path) {
-   static bool done_once = false;
-@@ -213,7 +213,7 @@ HeadlessRequestContextManager::HeadlessR
-     proxy_config_monitor_ = std::make_unique<HeadlessProxyConfigMonitor>(
-         base::ThreadTaskRunnerHandle::Get());
-   }
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   auto crypt_config = BuildCryptConfigOnce(user_data_path_);
-   if (crypt_config)
-     content::GetNetworkService()->SetCryptConfig(std::move(crypt_config));
+-#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)) && defined(HEADLESS_USE_PREFS)
++#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(HEADLESS_USE_PREFS)
+   // The OSCrypt keys are process bound, so if network service is out of
+   // process, send it the required key if it is available.
+   if (content::IsOutOfProcessNetworkService()
diff --git a/chromium/patches/patch-headless_lib_browser_headless__web__contents__impl.cc b/chromium/patches/patch-headless_lib_browser_headless__web__contents__impl.cc
new file mode 100644
index 0000000000..6f1e1caa72
--- /dev/null
+++ b/chromium/patches/patch-headless_lib_browser_headless__web__contents__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- headless/lib/browser/headless_web_contents_impl.cc.orig	2024-07-24 02:44:39.281037600 +0000
++++ headless/lib/browser/headless_web_contents_impl.cc
+@@ -62,7 +62,7 @@ namespace headless {
+ namespace {
+ 
+ void UpdatePrefsFromSystemSettings(blink::RendererPreferences* prefs) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   content::UpdateFontRendererPreferencesFromSystemSettings(prefs);
+ #endif
+ 
diff --git a/chromium/patches/patch-headless_lib_headless__content__main__delegate.cc b/chromium/patches/patch-headless_lib_headless__content__main__delegate.cc
index 21f0fc5ae4..60dc8a5a8a 100644
--- a/chromium/patches/patch-headless_lib_headless__content__main__delegate.cc
+++ b/chromium/patches/patch-headless_lib_headless__content__main__delegate.cc
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- headless/lib/headless_content_main_delegate.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- headless/lib/headless_content_main_delegate.cc.orig	2024-07-24 02:44:39.285038000 +0000
 +++ headless/lib/headless_content_main_delegate.cc
-@@ -324,7 +324,7 @@ void HeadlessContentMainDelegate::InitCr
-     const base::CommandLine& command_line) {
-   if (command_line.HasSwitch(::switches::kDisableBreakpad))
-     return;
--#if defined(OS_FUCHSIA)
-+#if defined(OS_FUCHSIA) || defined(OS_BSD)
-   // TODO(fuchsia): Implement this when crash reporting/Breakpad are available
-   // in Fuchsia. (crbug.com/753619)
-   NOTIMPLEMENTED();
-@@ -405,7 +405,7 @@ int HeadlessContentMainDelegate::RunProc
-   return 0;
- }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- void SIGTERMProfilingShutdown(int signal) {
-   content::Profiling::Stop();
-   struct sigaction sigact;
+@@ -408,7 +408,7 @@ void HeadlessContentMainDelegate::InitCr
+   if (process_type != ::switches::kZygoteProcess) {
+     g_headless_crash_client.Pointer()->set_crash_dumps_dir(
+         command_line.GetSwitchValuePath(switches::kCrashDumpsDir));
+-#if !BUILDFLAG(IS_WIN)
++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD)
+     crash_reporter::InitializeCrashpad(process_type.empty(), process_type);
+ #endif  // !BUILDFLAG(IS_WIN)
+     crash_keys::SetSwitchesFromCommandLine(command_line, nullptr);
diff --git a/chromium/patches/patch-headless_lib_headless__content__main__delegate.h b/chromium/patches/patch-headless_lib_headless__content__main__delegate.h
deleted file mode 100644
index 0c9d8a52f1..0000000000
--- a/chromium/patches/patch-headless_lib_headless__content__main__delegate.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- headless/lib/headless_content_main_delegate.h.orig	2020-07-08 21:40:44.000000000 +0000
-+++ headless/lib/headless_content_main_delegate.h
-@@ -57,7 +57,7 @@ class HEADLESS_EXPORT HeadlessContentMai
- 
-   HeadlessBrowserImpl* browser() const { return browser_.get(); }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   void ZygoteForked() override;
- #endif
- 
diff --git a/chromium/patches/patch-headless_lib_headless__macros.h b/chromium/patches/patch-headless_lib_headless__macros.h
deleted file mode 100644
index 39d8ec0f88..0000000000
--- a/chromium/patches/patch-headless_lib_headless__macros.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- headless/lib/headless_macros.h.orig	2020-07-08 21:40:44.000000000 +0000
-+++ headless/lib/headless_macros.h
-@@ -7,7 +7,7 @@
- 
- #include "build/build_config.h"
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
- #define HEADLESS_USE_BREAKPAD
- #endif  // defined(OS_POSIX) && !defined(OS_MACOSX)
- 
diff --git a/chromium/patches/patch-ipc_ipc__channel.h b/chromium/patches/patch-ipc_ipc__channel.h
index c3220c25fa..92393a00fe 100644
--- a/chromium/patches/patch-ipc_ipc__channel.h
+++ b/chromium/patches/patch-ipc_ipc__channel.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ipc/ipc_channel.h.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ipc/ipc_channel.h.orig	2024-07-24 02:44:40.937198000 +0000
 +++ ipc/ipc_channel.h
-@@ -244,7 +244,7 @@ class COMPONENT_EXPORT(IPC) Channel : pu
+@@ -218,7 +218,7 @@ class COMPONENT_EXPORT(IPC) Channel : pu
    static std::string GenerateUniqueRandomChannelID();
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Sandboxed processes live in a PID namespace, so when sending the IPC hello
    // message from client to server we need to send the PID from the global
    // PID namespace.
diff --git a/chromium/patches/patch-ipc_ipc__channel__common.cc b/chromium/patches/patch-ipc_ipc__channel__common.cc
index 1d48325d0b..8f458e401f 100644
--- a/chromium/patches/patch-ipc_ipc__channel__common.cc
+++ b/chromium/patches/patch-ipc_ipc__channel__common.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ipc/ipc_channel_common.cc.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ipc/ipc_channel_common.cc.orig	2024-07-24 02:44:40.937198000 +0000
 +++ ipc/ipc_channel_common.cc
 @@ -10,7 +10,7 @@
  
  namespace IPC {
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  
  namespace {
  int g_global_pid = 0;
diff --git a/chromium/patches/patch-ipc_ipc__channel__mojo.cc b/chromium/patches/patch-ipc_ipc__channel__mojo.cc
index 6fa6938ed6..5bfd4853ac 100644
--- a/chromium/patches/patch-ipc_ipc__channel__mojo.cc
+++ b/chromium/patches/patch-ipc_ipc__channel__mojo.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ipc/ipc_channel_mojo.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ipc/ipc_channel_mojo.cc.orig	2024-07-24 02:44:40.937198000 +0000
 +++ ipc/ipc_channel_mojo.cc
-@@ -74,7 +74,7 @@ class MojoChannelFactory : public Channe
+@@ -105,7 +105,7 @@ class ThreadSafeChannelProxy : public mo
  };
  
  base::ProcessId GetSelfPID() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (int global_pid = Channel::GetGlobalPid())
      return global_pid;
- #endif  // OS_LINUX
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-ipc_ipc__message__utils.cc b/chromium/patches/patch-ipc_ipc__message__utils.cc
index 334b4777b6..78748176ad 100644
--- a/chromium/patches/patch-ipc_ipc__message__utils.cc
+++ b/chromium/patches/patch-ipc_ipc__message__utils.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ipc/ipc_message_utils.cc.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ipc/ipc_message_utils.cc.orig	2024-07-24 02:44:40.941198300 +0000
 +++ ipc/ipc_message_utils.cc
-@@ -356,7 +356,7 @@ void ParamTraits<unsigned int>::Log(cons
-   l->append(base::NumberToString(p));
+@@ -395,7 +395,7 @@ void ParamTraits<unsigned int>::Log(cons
  }
  
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FUCHSIA) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD) || \
-     (defined(OS_ANDROID) && defined(ARCH_CPU_64_BITS))
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_FUCHSIA) ||                                              \
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) ||                         \
+     (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS))
  void ParamTraits<long>::Log(const param_type& p, std::string* l) {
    l->append(base::NumberToString(p));
diff --git a/chromium/patches/patch-ipc_ipc__message__utils.h b/chromium/patches/patch-ipc_ipc__message__utils.h
index 898798f996..f64e715973 100644
--- a/chromium/patches/patch-ipc_ipc__message__utils.h
+++ b/chromium/patches/patch-ipc_ipc__message__utils.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ipc/ipc_message_utils.h.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ipc/ipc_message_utils.h.orig	2024-07-24 02:44:40.941198300 +0000
 +++ ipc/ipc_message_utils.h
-@@ -209,7 +209,7 @@ struct ParamTraits<unsigned int> {
- //   3) Android 64 bit and Fuchsia also have int64_t typedef'd to long.
+@@ -214,7 +214,7 @@ struct ParamTraits<unsigned int> {
  // Since we want to support Android 32<>64 bit IPC, as long as we don't have
  // these traits for 32 bit ARM then that'll catch any errors.
--#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FUCHSIA) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD) || \
-     (defined(OS_ANDROID) && defined(ARCH_CPU_64_BITS))
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_FUCHSIA) ||                                              \
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) ||                         \
+     (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS))
  template <>
  struct ParamTraits<long> {
diff --git a/chromium/patches/patch-media_BUILD.gn b/chromium/patches/patch-media_BUILD.gn
new file mode 100644
index 0000000000..180914062d
--- /dev/null
+++ b/chromium/patches/patch-media_BUILD.gn
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/BUILD.gn.orig	2024-07-24 02:44:40.949199200 +0000
++++ media/BUILD.gn
+@@ -96,6 +96,9 @@ config("media_config") {
+       defines += [ "DLOPEN_PULSEAUDIO" ]
+     }
+   }
++  if (use_sndio) {
++    defines += [ "USE_SNDIO" ]
++  }
+   if (use_cras) {
+     defines += [ "USE_CRAS" ]
+   }
diff --git a/chromium/patches/patch-media_audio_BUILD.gn b/chromium/patches/patch-media_audio_BUILD.gn
index 088c6a6794..9171658f70 100644
--- a/chromium/patches/patch-media_audio_BUILD.gn
+++ b/chromium/patches/patch-media_audio_BUILD.gn
@@ -1,13 +1,31 @@
 $NetBSD$
 
---- media/audio/BUILD.gn.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/BUILD.gn.orig	2024-07-24 02:44:40.949199200 +0000
 +++ media/audio/BUILD.gn
-@@ -232,7 +232,7 @@ source_set("audio") {
-     ]
+@@ -270,10 +270,21 @@ source_set("audio") {
+     deps += [ "//media/base/android:media_jni_headers" ]
    }
  
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !use_sndio) {
      sources += [ "linux/audio_manager_linux.cc" ]
    }
  
++  if (use_sndio) {
++    libs += [ "sndio" ]
++    sources += [
++      "sndio/audio_manager_sndio.cc",
++      "sndio/sndio_input.cc",
++      "sndio/sndio_input.h",
++      "sndio/sndio_output.cc",
++      "sndio/sndio_output.h"
++    ]
++   }
++
+   if (use_alsa) {
+     libs += [ "asound" ]
+     sources += [
diff --git a/chromium/patches/patch-media_audio_alsa_audio__manager__alsa.cc b/chromium/patches/patch-media_audio_alsa_audio__manager__alsa.cc
index 0a7e5f88bb..933899ec1c 100644
--- a/chromium/patches/patch-media_audio_alsa_audio__manager__alsa.cc
+++ b/chromium/patches/patch-media_audio_alsa_audio__manager__alsa.cc
@@ -1,54 +1,58 @@
 $NetBSD$
 
---- media/audio/alsa/audio_manager_alsa.cc.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/alsa/audio_manager_alsa.cc.orig	2024-07-24 02:44:40.953199600 +0000
 +++ media/audio/alsa/audio_manager_alsa.cc
-@@ -92,7 +92,9 @@ void AudioManagerAlsa::GetAlsaAudioDevic
+@@ -95,7 +95,9 @@ void AudioManagerAlsa::GetAlsaAudioDevic
    int card = -1;
  
-   // Loop through the sound cards to get ALSA device hints.
-+#if defined(OS_LINUX)
+   // Loop through the physical sound cards to get ALSA device hints.
++#if !BUILDFLAG(IS_BSD) 
    while (!wrapper_->CardNext(&card) && card >= 0) {
 +#endif
      void** hints = NULL;
      int error = wrapper_->DeviceNameHint(card, kPcmInterfaceName, &hints);
      if (!error) {
-@@ -104,7 +106,9 @@ void AudioManagerAlsa::GetAlsaAudioDevic
+@@ -107,7 +109,9 @@ void AudioManagerAlsa::GetAlsaAudioDevic
        DLOG(WARNING) << "GetAlsaAudioDevices: unable to get device hints: "
                      << wrapper_->StrError(error);
      }
-+#if defined(OS_LINUX)
++#if !BUILDFLAG(IS_BSD) 
    }
 +#endif
  }
  
  void AudioManagerAlsa::GetAlsaDevicesInfo(AudioManagerAlsa::StreamType type,
-@@ -187,7 +191,11 @@ bool AudioManagerAlsa::IsAlsaDeviceAvail
+@@ -190,7 +194,11 @@ bool AudioManagerAlsa::IsAlsaDeviceAvail
    // goes through software conversion if needed (e.g. incompatible
    // sample rate).
    // TODO(joi): Should we prefer "hw" instead?
-+#if defined(OS_LINUX)
-   static const char kDeviceTypeDesired[] = "plughw";
-+#else
++#if BUILDFLAG(IS_BSD)
 +  static const char kDeviceTypeDesired[] = "plug";
++#else
+   static const char kDeviceTypeDesired[] = "plughw";
 +#endif
    return strncmp(kDeviceTypeDesired, device_name,
-                  base::size(kDeviceTypeDesired) - 1) == 0;
+                  std::size(kDeviceTypeDesired) - 1) == 0;
  }
-@@ -209,7 +217,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDe
+@@ -242,7 +250,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDe
    // Loop through the sound cards.
-   // Don't use snd_device_name_hint(-1,..) since there is a access violation
+   // Don't use snd_device_name_hint(-1,..) since there is an access violation
    // inside this ALSA API with libasound.so.2.0.0.
-+#if defined(OS_LINUX)
++#if !BUILDFLAG(IS_BSD)
    while (!wrapper_->CardNext(&card) && (card >= 0) && !has_device) {
 +#endif
      int error = wrapper_->DeviceNameHint(card, kPcmInterfaceName, &hints);
      if (!error) {
        for (void** hint_iter = hints; *hint_iter != NULL; hint_iter++) {
-@@ -233,7 +243,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDe
+@@ -266,7 +276,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDe
        DLOG(WARNING) << "HasAnyAudioDevice: unable to get device hints: "
                      << wrapper_->StrError(error);
      }
-+#if defined(OS_LINUX)
++#if !BUILDFLAG(IS_BSD)
    }
 +#endif
  
diff --git a/chromium/patches/patch-media_audio_audio__features.cc b/chromium/patches/patch-media_audio_audio__features.cc
deleted file mode 100644
index 722343dd82..0000000000
--- a/chromium/patches/patch-media_audio_audio__features.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/audio/audio_features.cc.orig	2020-07-08 21:40:45.000000000 +0000
-+++ media/audio/audio_features.cc
-@@ -11,7 +11,7 @@ namespace features {
- // detected. It will be restarted when needed.
- const base::Feature kAudioServiceOutOfProcessKillAtHang{
-   "AudioServiceOutOfProcessKillAtHang",
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-       base::FEATURE_ENABLED_BY_DEFAULT
- #else
-       base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-media_audio_audio__input__device.cc b/chromium/patches/patch-media_audio_audio__input__device.cc
index 98ce4e64f7..bf87ee8e77 100644
--- a/chromium/patches/patch-media_audio_audio__input__device.cc
+++ b/chromium/patches/patch-media_audio_audio__input__device.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- media/audio/audio_input_device.cc.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/audio_input_device.cc.orig	2024-07-24 02:44:40.957199800 +0000
 +++ media/audio/audio_input_device.cc
-@@ -253,7 +253,7 @@ void AudioInputDevice::OnStreamCreated(
+@@ -264,7 +264,7 @@ void AudioInputDevice::OnStreamCreated(
  // here. See comments in AliveChecker and PowerObserverHelper for details and
  // todos.
    if (detect_dead_stream_ == DeadStreamDetection::kEnabled) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   const bool stop_at_first_alive_notification = true;
-   const bool pause_check_during_suspend = false;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     const bool stop_at_first_alive_notification = true;
+     const bool pause_check_during_suspend = false;
  #else
diff --git a/chromium/patches/patch-media_audio_audio__manager.cc b/chromium/patches/patch-media_audio_audio__manager.cc
deleted file mode 100644
index 78552ebc8d..0000000000
--- a/chromium/patches/patch-media_audio_audio__manager.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- media/audio/audio_manager.cc.orig	2020-07-08 21:40:45.000000000 +0000
-+++ media/audio/audio_manager.cc
-@@ -48,7 +48,7 @@ class AudioManagerHelper {
-   }
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   void set_app_name(const std::string& app_name) { app_name_ = app_name; }
-   const std::string& app_name() const { return app_name_; }
- #endif
-@@ -59,7 +59,7 @@ class AudioManagerHelper {
-   std::unique_ptr<base::win::ScopedCOMInitializer> com_initializer_for_testing_;
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   std::string app_name_;
- #endif
- 
-@@ -128,7 +128,7 @@ std::unique_ptr<AudioManager> AudioManag
-   return Create(std::move(audio_thread), GetHelper()->fake_log_factory());
- }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // static
- void AudioManager::SetGlobalAppName(const std::string& app_name) {
-   GetHelper()->set_app_name(app_name);
diff --git a/chromium/patches/patch-media_audio_audio__manager.h b/chromium/patches/patch-media_audio_audio__manager.h
deleted file mode 100644
index a2a40451f7..0000000000
--- a/chromium/patches/patch-media_audio_audio__manager.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/audio/audio_manager.h.orig	2020-07-08 21:40:45.000000000 +0000
-+++ media/audio/audio_manager.h
-@@ -60,7 +60,7 @@ class MEDIA_EXPORT AudioManager {
-   static std::unique_ptr<AudioManager> CreateForTesting(
-       std::unique_ptr<AudioThread> audio_thread);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Sets the name of the audio source as seen by external apps. Only actually
-   // used with PulseAudio as of this writing.
-   static void SetGlobalAppName(const std::string& app_name);
diff --git a/chromium/patches/patch-media_audio_audio__output__proxy__unittest.cc b/chromium/patches/patch-media_audio_audio__output__proxy__unittest.cc
new file mode 100644
index 0000000000..ac8819542e
--- /dev/null
+++ b/chromium/patches/patch-media_audio_audio__output__proxy__unittest.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/audio_output_proxy_unittest.cc.orig	2024-07-24 02:44:40.961200200 +0000
++++ media/audio/audio_output_proxy_unittest.cc
+@@ -443,7 +443,11 @@ class AudioOutputProxyTest : public test
+     // |stream| is closed at this point. Start() should reopen it again.
+     EXPECT_CALL(manager(), MakeAudioOutputStream(_, _, _))
+         .Times(2)
++#if BUILDFLAG(IS_BSD)
++        .WillRepeatedly(Return(static_cast<AudioOutputStream*>(NULL)));
++#else
+         .WillRepeatedly(Return(reinterpret_cast<AudioOutputStream*>(NULL)));
++#endif
+ 
+     EXPECT_CALL(callback_, OnError(_)).Times(2);
+ 
diff --git a/chromium/patches/patch-media_audio_pulse_pulse__util.cc b/chromium/patches/patch-media_audio_pulse_pulse__util.cc
new file mode 100644
index 0000000000..7ddf5d999a
--- /dev/null
+++ b/chromium/patches/patch-media_audio_pulse_pulse__util.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/pulse/pulse_util.cc.orig	2024-07-24 02:44:40.973201500 +0000
++++ media/audio/pulse/pulse_util.cc
+@@ -45,8 +45,12 @@ constexpr char kBrowserDisplayName[] = "
+ 
+ #if defined(DLOPEN_PULSEAUDIO)
+ static const base::FilePath::CharType kPulseLib[] =
++#if BUILDFLAG(IS_BSD)
++    FILE_PATH_LITERAL("libpulse.so");
++#else
+     FILE_PATH_LITERAL("libpulse.so.0");
+ #endif
++#endif
+ 
+ void DestroyMainloop(pa_threaded_mainloop* mainloop) {
+   pa_threaded_mainloop_stop(mainloop);
diff --git a/chromium/patches/patch-media_audio_sndio_audio__manager__sndio.cc b/chromium/patches/patch-media_audio_sndio_audio__manager__sndio.cc
new file mode 100644
index 0000000000..444f391441
--- /dev/null
+++ b/chromium/patches/patch-media_audio_sndio_audio__manager__sndio.cc
@@ -0,0 +1,222 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/sndio/audio_manager_sndio.cc.orig	2024-08-01 14:08:58.209213390 +0000
++++ media/audio/sndio/audio_manager_sndio.cc
+@@ -0,0 +1,213 @@
++// 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 "base/command_line.h"
++#include "base/metrics/histogram_macros.h"
++#include "base/memory/ptr_util.h"
++
++#include "media/audio/sndio/audio_manager_sndio.h"
++
++#include "media/audio/audio_device_description.h"
++#include "media/audio/audio_output_dispatcher.h"
++#if defined(USE_SNDIO)
++#include "media/audio/sndio/sndio_input.h"
++#include "media/audio/sndio/sndio_output.h"
++#endif
++#if defined(USE_PULSEAUDIO)
++#include "media/audio/pulse/audio_manager_pulse.h"
++#include "media/audio/pulse/pulse_util.h"
++#endif
++#if defined(USE_ALSA)
++#include "media/audio/alsa/audio_manager_alsa.h"
++#endif
++#include "media/audio/fake_audio_manager.h"
++#include "media/base/limits.h"
++#include "media/base/media_switches.h"
++
++namespace media {
++
++#if defined(USE_SNDIO)
++// Maximum number of output streams that can be open simultaneously.
++static const int kMaxOutputStreams = 50;
++
++// Default sample rate for input and output streams.
++static const int kDefaultSampleRate = 48000;
++
++void AddDefaultDevice(AudioDeviceNames* device_names) {
++  DCHECK(device_names->empty());
++  device_names->push_front(AudioDeviceName::CreateDefault());
++}
++
++bool AudioManagerSndio::HasAudioOutputDevices() {
++  return true;
++}
++
++bool AudioManagerSndio::HasAudioInputDevices() {
++  return true;
++}
++
++void AudioManagerSndio::GetAudioInputDeviceNames(
++    AudioDeviceNames* device_names) {
++  DCHECK(device_names->empty());
++  AddDefaultDevice(device_names);
++}
++
++void AudioManagerSndio::GetAudioOutputDeviceNames(
++    AudioDeviceNames* device_names) {
++  AddDefaultDevice(device_names);
++}
++
++#if defined(USE_SNDIO)
++const char* AudioManagerSndio::GetName() {
++  return "SNDIO";
++}
++#endif
++
++AudioParameters AudioManagerSndio::GetInputStreamParameters(
++    const std::string& device_id) {
++  static const int kDefaultInputBufferSize = 1024;
++
++  int user_buffer_size = GetUserBufferSize();
++  int buffer_size = user_buffer_size ?
++      user_buffer_size : kDefaultInputBufferSize;
++
++  return AudioParameters(
++      AudioParameters::AUDIO_PCM_LOW_LATENCY, ChannelLayoutConfig::Stereo(),
++      kDefaultSampleRate, buffer_size);
++}
++
++AudioManagerSndio::AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread,
++                                         AudioLogFactory* audio_log_factory)
++    : AudioManagerBase(std::move(audio_thread),
++                       audio_log_factory) {
++  DLOG(WARNING) << "AudioManagerSndio";
++  SetMaxOutputStreamsAllowed(kMaxOutputStreams);
++}
++
++AudioManagerSndio::~AudioManagerSndio() = default;
++
++AudioOutputStream* AudioManagerSndio::MakeLinearOutputStream(
++    const AudioParameters& params,
++    const LogCallback& log_callback) {
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
++  return MakeOutputStream(params);
++}
++
++AudioOutputStream* AudioManagerSndio::MakeLowLatencyOutputStream(
++    const AudioParameters& params,
++    const std::string& device_id,
++    const LogCallback& log_callback) {
++  DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!";
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
++  return MakeOutputStream(params);
++}
++
++AudioInputStream* AudioManagerSndio::MakeLinearInputStream(
++    const AudioParameters& params,
++    const std::string& device_id,
++    const LogCallback& log_callback) {
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
++  return MakeInputStream(params);
++}
++
++AudioInputStream* AudioManagerSndio::MakeLowLatencyInputStream(
++    const AudioParameters& params,
++    const std::string& device_id,
++    const LogCallback& log_callback) {
++  DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
++  return MakeInputStream(params);
++}
++
++AudioParameters AudioManagerSndio::GetPreferredOutputStreamParameters(
++    const std::string& output_device_id,
++    const AudioParameters& input_params) {
++  // TODO(tommi): Support |output_device_id|.
++  DLOG_IF(ERROR, !output_device_id.empty()) << "Not implemented!";
++  static const int kDefaultOutputBufferSize = 2048;
++
++  ChannelLayoutConfig channel_layout_config = ChannelLayoutConfig::Stereo();
++  int sample_rate = kDefaultSampleRate;
++  int buffer_size = kDefaultOutputBufferSize;
++  if (input_params.IsValid()) {
++    sample_rate = input_params.sample_rate();
++    channel_layout_config = input_params.channel_layout_config();
++    buffer_size = std::min(buffer_size, input_params.frames_per_buffer());
++  }
++
++  int user_buffer_size = GetUserBufferSize();
++  if (user_buffer_size)
++    buffer_size = user_buffer_size;
++
++  return AudioParameters(
++      AudioParameters::AUDIO_PCM_LOW_LATENCY,
++      channel_layout_config, sample_rate, buffer_size);
++}
++
++AudioInputStream* AudioManagerSndio::MakeInputStream(
++    const AudioParameters& params) {
++  DLOG(WARNING) << "MakeInputStream";
++  return new SndioAudioInputStream(this,
++             AudioDeviceDescription::kDefaultDeviceId, params);
++}
++
++AudioOutputStream* AudioManagerSndio::MakeOutputStream(
++    const AudioParameters& params) {
++  DLOG(WARNING) << "MakeOutputStream";
++  return new SndioAudioOutputStream(params, this);
++}
++#endif
++
++std::unique_ptr<media::AudioManager> CreateAudioManager(
++    std::unique_ptr<AudioThread> audio_thread,
++    AudioLogFactory* audio_log_factory) {
++  DLOG(WARNING) << "CreateAudioManager";
++
++  auto _ab = kAudioBackendParam.Get();
++
++  // For testing allow audio output to be disabled.
++  if (base::CommandLine::ForCurrentProcess()->HasSwitch(
++          switches::kDisableAudioOutput) ||
++	  !base::FeatureList::IsEnabled(media::kAudioBackend)) {
++    return std::make_unique<FakeAudioManager>(std::move(audio_thread),
++                                              audio_log_factory);
++  }
++
++#if defined(USE_PULSEAUDIO)
++  pa_threaded_mainloop* pa_mainloop = nullptr;
++  pa_context* pa_context = nullptr;
++  if (_ab != AudioBackend::kSndio && _ab != AudioBackend::kAlsa &&
++          pulse::InitPulse(&pa_mainloop, &pa_context)) {
++    return std::make_unique<AudioManagerPulse>(
++        std::move(audio_thread), audio_log_factory, pa_mainloop, pa_context);
++  } else if (_ab == AudioBackend::kAuto) {
++    LOG(WARNING) << "Falling back to SNDIO for audio output. PulseAudio is not "
++                    "available or could not be initialized.";
++  }
++#endif
++
++#if defined(USE_SNDIO)
++  if (_ab != AudioBackend::kPulseAudio && _ab != AudioBackend::kAlsa) {
++    return std::make_unique<AudioManagerSndio>(std::move(audio_thread),
++                                              audio_log_factory);
++  } else if (_ab == AudioBackend::kAuto) {
++    LOG(WARNING) << "Falling back to ALSA audio output. SNDIO is not "
++                    "available or could not be initialized.";
++  }
++#endif
++
++#if defined(USE_ALSA)
++  if (_ab != AudioBackend::kPulseAudio && _ab != AudioBackend::kSndio) {
++    return std::make_unique<AudioManagerAlsa>(std::move(audio_thread),
++                                              audio_log_factory);
++  } else if (_ab == AudioBackend::kAuto) {
++    LOG(WARNING) << "Falling back to fake audio output. ALSA is not "
++                    "available or could not be initialized.";
++  }
++#endif
++
++  return std::make_unique<FakeAudioManager>(std::move(audio_thread),
++                                            audio_log_factory);
++}
++
++}  // namespace media
diff --git a/chromium/patches/patch-media_audio_sndio_audio__manager__sndio.h b/chromium/patches/patch-media_audio_sndio_audio__manager__sndio.h
new file mode 100644
index 0000000000..d4a7a3f3a5
--- /dev/null
+++ b/chromium/patches/patch-media_audio_sndio_audio__manager__sndio.h
@@ -0,0 +1,75 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/sndio/audio_manager_sndio.h.orig	2024-08-01 14:08:58.209876324 +0000
++++ media/audio/sndio/audio_manager_sndio.h
+@@ -0,0 +1,66 @@
++// 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 MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
++#define MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
++
++#include <set>
++
++#include "base/compiler_specific.h"
++#include "base/memory/ref_counted.h"
++#include "base/threading/thread.h"
++#include "media/audio/audio_manager_base.h"
++
++namespace media {
++
++class MEDIA_EXPORT AudioManagerSndio : public AudioManagerBase {
++ public:
++  AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread,
++                   AudioLogFactory* audio_log_factory);
++
++  AudioManagerSndio(const AudioManagerSndio&) = delete;
++  AudioManagerSndio& operator=(const AudioManagerSndio&) = delete;
++
++  ~AudioManagerSndio() override;
++
++  // Implementation of AudioManager.
++  bool HasAudioOutputDevices() override;
++  bool HasAudioInputDevices() override;
++  void GetAudioInputDeviceNames(AudioDeviceNames* device_names) override;
++  void GetAudioOutputDeviceNames(AudioDeviceNames* device_names) override;
++  AudioParameters GetInputStreamParameters(
++      const std::string& device_id) override;
++  const char* GetName() override;
++
++  // Implementation of AudioManagerBase.
++  AudioOutputStream* MakeLinearOutputStream(
++      const AudioParameters& params,
++      const LogCallback& log_callback) override;
++  AudioOutputStream* MakeLowLatencyOutputStream(
++      const AudioParameters& params,
++      const std::string& device_id,
++      const LogCallback& log_callback) override;
++  AudioInputStream* MakeLinearInputStream(
++      const AudioParameters& params,
++      const std::string& device_id,
++      const LogCallback& log_callback) override;
++  AudioInputStream* MakeLowLatencyInputStream(
++      const AudioParameters& params,
++      const std::string& device_id,
++      const LogCallback& log_callback) override;
++
++ protected:
++  AudioParameters GetPreferredOutputStreamParameters(
++      const std::string& output_device_id,
++      const AudioParameters& input_params) override;
++
++ private:
++  // Called by MakeLinearOutputStream and MakeLowLatencyOutputStream.
++  AudioOutputStream* MakeOutputStream(const AudioParameters& params);
++  AudioInputStream* MakeInputStream(const AudioParameters& params);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
diff --git a/chromium/patches/patch-media_audio_sndio_sndio__input.cc b/chromium/patches/patch-media_audio_sndio_sndio__input.cc
new file mode 100644
index 0000000000..195b82b9cb
--- /dev/null
+++ b/chromium/patches/patch-media_audio_sndio_sndio__input.cc
@@ -0,0 +1,209 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/sndio/sndio_input.cc.orig	2024-08-01 14:08:58.210522496 +0000
++++ media/audio/sndio/sndio_input.cc
+@@ -0,0 +1,200 @@
++// 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 "media/base/audio_timestamp_helper.h"
++#include "media/audio/sndio/audio_manager_sndio.h"
++#include "media/audio/audio_manager.h"
++#include "media/audio/sndio/sndio_input.h"
++
++namespace media {
++
++static const SampleFormat kSampleFormat = kSampleFormatS16;
++
++void SndioAudioInputStream::OnMoveCallback(void *arg, int delta)
++{
++  SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg);
++
++  self->hw_delay += delta;
++}
++
++void *SndioAudioInputStream::ThreadEntry(void *arg) {
++  SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg);
++
++  self->ThreadLoop();
++  return NULL;
++}
++
++SndioAudioInputStream::SndioAudioInputStream(AudioManagerBase* manager,
++                                             const std::string& device_name,
++                                             const AudioParameters& params)
++    : manager(manager),
++      params(params),
++      audio_bus(AudioBus::Create(params)),
++      state(kClosed) {
++}
++
++SndioAudioInputStream::~SndioAudioInputStream() {
++  if (state != kClosed)
++    Close();
++}
++
++AudioInputStream::OpenOutcome SndioAudioInputStream::Open() {
++  struct sio_par par;
++  int sig;
++
++  if (state != kClosed)
++    return OpenOutcome::kFailed;
++
++  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
++      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
++    LOG(WARNING) << "Unsupported audio format.";
++    return OpenOutcome::kFailed;
++  }
++
++  sio_initpar(&par);
++  par.rate = params.sample_rate();
++  par.rchan = params.channels();
++  par.bits = SampleFormatToBitsPerChannel(kSampleFormat);
++  par.bps = par.bits / 8;
++  par.sig = sig = par.bits != 8 ? 1 : 0;
++  par.le = SIO_LE_NATIVE;
++  par.appbufsz = params.frames_per_buffer();
++
++  hdl = sio_open(SIO_DEVANY, SIO_REC, 0);
++
++  if (hdl == NULL) {
++    LOG(ERROR) << "Couldn't open audio device.";
++    return OpenOutcome::kFailed;
++  }
++
++  if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) {
++    LOG(ERROR) << "Couldn't set audio parameters.";
++    goto bad_close;
++  }
++
++  if (par.rate  != (unsigned int)params.sample_rate() ||
++      par.rchan != (unsigned int)params.channels() ||
++      par.bits  != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) ||
++      par.sig   != (unsigned int)sig ||
++      (par.bps > 1 && par.le != SIO_LE_NATIVE) ||
++      (par.bits != par.bps * 8)) {
++    LOG(ERROR) << "Unsupported audio parameters.";
++    goto bad_close;
++  }
++  state = kStopped;
++  buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++  sio_onmove(hdl, &OnMoveCallback, this);
++  return OpenOutcome::kSuccess;
++bad_close:
++  sio_close(hdl);
++  return OpenOutcome::kFailed;
++}
++
++void SndioAudioInputStream::Start(AudioInputCallback* cb) {
++
++  StartAgc();
++
++  state = kRunning;
++  hw_delay = 0;
++  callback = cb;
++  sio_start(hdl);
++  if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) {
++    LOG(ERROR) << "Failed to create real-time thread for recording.";
++    sio_stop(hdl);
++    state = kStopped;
++  }
++}
++
++void SndioAudioInputStream::Stop() {
++
++  if (state == kStopped)
++    return;
++
++  state = kStopWait;
++  pthread_join(thread, NULL);
++  sio_stop(hdl);
++  state = kStopped;
++
++  StopAgc();
++}
++
++void SndioAudioInputStream::Close() {
++
++  if (state == kClosed)
++    goto release;
++
++  if (state == kRunning)
++    Stop();
++
++  state = kClosed;
++  delete [] buffer;
++  sio_close(hdl);
++
++release:
++  manager->ReleaseInputStream(this);
++}
++
++double SndioAudioInputStream::GetMaxVolume() {
++  // Not supported
++  return 0.0;
++}
++
++void SndioAudioInputStream::SetVolume(double volume) {
++  // Not supported. Do nothing.
++}
++
++double SndioAudioInputStream::GetVolume() {
++  // Not supported.
++  return 0.0;
++}
++
++bool SndioAudioInputStream::IsMuted() {
++  // Not supported.
++  return false;
++}
++
++void SndioAudioInputStream::SetOutputDeviceForAec(
++    const std::string& output_device_id) {
++  // Not supported.
++}
++
++void SndioAudioInputStream::ThreadLoop(void) {
++  size_t todo, n;
++  char *data;
++  unsigned int nframes;
++  double normalized_volume = 0.0;
++
++  nframes = audio_bus->frames();
++
++  while (state == kRunning && !sio_eof(hdl)) {
++
++    GetAgcVolume(&normalized_volume);
++
++    // read one block
++    todo = nframes * params.GetBytesPerFrame(kSampleFormat);
++    data = buffer;
++    while (todo > 0) {
++      n = sio_read(hdl, data, todo);
++      if (n == 0)
++        return;	// unrecoverable I/O error
++      todo -= n;
++      data += n;
++    }
++    hw_delay -= nframes;
++
++    // convert frames count to TimeDelta
++    const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay,
++      params.sample_rate());
++
++    // push into bus
++    audio_bus->FromInterleaved<SignedInt16SampleTypeTraits>(reinterpret_cast<int16_t*>(buffer), nframes);
++
++
++    // invoke callback
++    callback->OnData(audio_bus.get(), base::TimeTicks::Now() - delay, 1., {});
++  }
++}
++
++}  // namespace media
diff --git a/chromium/patches/patch-media_audio_sndio_sndio__input.h b/chromium/patches/patch-media_audio_sndio_sndio__input.h
new file mode 100644
index 0000000000..65d2af4fd3
--- /dev/null
+++ b/chromium/patches/patch-media_audio_sndio_sndio__input.h
@@ -0,0 +1,100 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/sndio/sndio_input.h.orig	2024-08-01 14:08:58.211183475 +0000
++++ media/audio/sndio/sndio_input.h
+@@ -0,0 +1,91 @@
++// 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 MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
++#define MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
++
++#include <stdint.h>
++#include <string>
++#include <sndio.h>
++
++#include "base/compiler_specific.h"
++#include "base/memory/weak_ptr.h"
++#include "base/time/time.h"
++#include "media/audio/agc_audio_stream.h"
++#include "media/audio/audio_io.h"
++#include "media/audio/audio_device_description.h"
++#include "media/base/audio_parameters.h"
++
++namespace media {
++
++class AudioManagerBase;
++
++// Implementation of AudioOutputStream using sndio(7)
++class SndioAudioInputStream : public AgcAudioStream<AudioInputStream> {
++ public:
++  // Pass this to the constructor if you want to attempt auto-selection
++  // of the audio recording device.
++  static const char kAutoSelectDevice[];
++
++  // Create a PCM Output stream for the SNDIO device identified by
++  // |device_name|. If unsure of what to use for |device_name|, use
++  // |kAutoSelectDevice|.
++  SndioAudioInputStream(AudioManagerBase* audio_manager,
++                     const std::string& device_name,
++                     const AudioParameters& params);
++
++  SndioAudioInputStream(const SndioAudioInputStream&) = delete;
++  SndioAudioInputStream& operator=(const SndioAudioInputStream&) = delete;
++
++  ~SndioAudioInputStream() override;
++
++  // Implementation of AudioInputStream.
++  OpenOutcome Open() override;
++  void Start(AudioInputCallback* callback) override;
++  void Stop() override;
++  void Close() override;
++  double GetMaxVolume() override;
++  void SetVolume(double volume) override;
++  double GetVolume() override;
++  bool IsMuted() override;
++  void SetOutputDeviceForAec(const std::string& output_device_id) override;
++
++ private:
++
++  enum StreamState {
++    kClosed,            // Not opened yet
++    kStopped,           // Device opened, but not started yet
++    kRunning,           // Started, device playing
++    kStopWait           // Stopping, waiting for the real-time thread to exit
++  };
++
++  // C-style call-backs
++  static void OnMoveCallback(void *arg, int delta);
++  static void* ThreadEntry(void *arg);
++
++  // Continuously moves data from the device to the consumer
++  void ThreadLoop();
++  // Our creator, the audio manager needs to be notified when we close.
++  AudioManagerBase* manager;
++  // Parameters of the source
++  AudioParameters params;
++  // We store data here for consumer
++  std::unique_ptr<AudioBus> audio_bus;
++  // Call-back that consumes recorded data
++  AudioInputCallback* callback;  // Valid during a recording session.
++  // Handle of the audio device
++  struct sio_hdl* hdl;
++  // Current state of the stream
++  enum StreamState state;
++  // High priority thread running ThreadLoop()
++  pthread_t thread;
++  // Number of frames buffered in the hardware
++  int hw_delay;
++  // Temporary buffer where data is stored sndio-compatible format
++  char* buffer;
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
diff --git a/chromium/patches/patch-media_audio_sndio_sndio__output.cc b/chromium/patches/patch-media_audio_sndio_sndio__output.cc
new file mode 100644
index 0000000000..c5e712e087
--- /dev/null
+++ b/chromium/patches/patch-media_audio_sndio_sndio__output.cc
@@ -0,0 +1,196 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/sndio/sndio_output.cc.orig	2024-08-01 14:08:58.211837190 +0000
++++ media/audio/sndio/sndio_output.cc
+@@ -0,0 +1,187 @@
++// 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 "base/logging.h"
++#include "base/time/time.h"
++#include "base/time/default_tick_clock.h"
++#include "media/audio/audio_manager_base.h"
++#include "media/base/audio_timestamp_helper.h"
++#include "media/audio/sndio/sndio_output.h"
++
++namespace media {
++
++static const SampleFormat kSampleFormat = kSampleFormatS16;
++
++void SndioAudioOutputStream::OnMoveCallback(void *arg, int delta) {
++  SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++  self->hw_delay -= delta;
++}
++
++void SndioAudioOutputStream::OnVolCallback(void *arg, unsigned int vol) {
++  SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++  self->vol = vol;
++}
++
++void *SndioAudioOutputStream::ThreadEntry(void *arg) {
++  SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg);
++
++  self->ThreadLoop();
++  return NULL;
++}
++
++SndioAudioOutputStream::SndioAudioOutputStream(const AudioParameters& params,
++                                               AudioManagerBase* manager)
++    : manager(manager),
++      params(params),
++      audio_bus(AudioBus::Create(params)),
++      state(kClosed),
++      mutex(PTHREAD_MUTEX_INITIALIZER) {
++}
++
++SndioAudioOutputStream::~SndioAudioOutputStream() {
++  if (state != kClosed)
++    Close();
++}
++
++bool SndioAudioOutputStream::Open() {
++  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
++      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
++    LOG(WARNING) << "Unsupported audio format.";
++    return false;
++  }
++  state = kStopped;
++  volpending = 0;
++  vol = SIO_MAXVOL;
++  buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++  return true;
++}
++
++void SndioAudioOutputStream::Close() {
++  if (state == kClosed)
++    goto release;
++  if (state == kRunning)
++    Stop();
++  state = kClosed;
++  delete [] buffer;
++release:
++  manager->ReleaseOutputStream(this);  // Calls the destructor
++}
++
++void SndioAudioOutputStream::Start(AudioSourceCallback* callback) {
++  struct sio_par par;
++  int sig;
++
++  sio_initpar(&par);
++  par.rate = params.sample_rate();
++  par.pchan = params.channels();
++  par.bits = SampleFormatToBitsPerChannel(kSampleFormat);
++  par.bps = par.bits / 8;
++  par.sig = sig = par.bits != 8 ? 1 : 0;
++  par.le = SIO_LE_NATIVE;
++  par.appbufsz = params.frames_per_buffer();
++
++  hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0);
++  if (hdl == NULL) {
++    LOG(ERROR) << "Couldn't open audio device.";
++    return;
++  }
++  if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) {
++    LOG(ERROR) << "Couldn't set audio parameters.";
++    sio_close(hdl);
++    return;
++  }
++  if (par.rate  != (unsigned int)params.sample_rate() ||
++      par.pchan != (unsigned int)params.channels() ||
++      par.bits  != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) ||
++      par.sig   != (unsigned int)sig ||
++      (par.bps > 1 && par.le != SIO_LE_NATIVE) ||
++      (par.bits != par.bps * 8)) {
++    LOG(ERROR) << "Unsupported audio parameters.";
++    sio_close(hdl);
++    return;
++  }
++
++  sio_onmove(hdl, &OnMoveCallback, this);
++  sio_onvol(hdl, &OnVolCallback, this);
++
++  state = kRunning;
++  hw_delay = 0;
++  source = callback;
++  sio_start(hdl);
++
++  if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) {
++    LOG(ERROR) << "Failed to create real-time thread.";
++    sio_stop(hdl);
++    sio_close(hdl);
++    state = kStopped;
++  }
++}
++
++void SndioAudioOutputStream::Stop() {
++  if (state == kStopped)
++    return;
++  state = kStopWait;
++  pthread_join(thread, NULL);
++  sio_stop(hdl);
++  sio_close(hdl);
++  state = kStopped;
++}
++
++void SndioAudioOutputStream::SetVolume(double v) {
++  pthread_mutex_lock(&mutex);
++  vol = v * SIO_MAXVOL;
++  volpending = 1;
++  pthread_mutex_unlock(&mutex);
++}
++
++void SndioAudioOutputStream::GetVolume(double* v) {
++  pthread_mutex_lock(&mutex);
++  *v = vol * (1. / SIO_MAXVOL);
++  pthread_mutex_unlock(&mutex);
++}
++
++// This stream is always used with sub second buffer sizes, where it's
++// sufficient to simply always flush upon Start().
++void SndioAudioOutputStream::Flush() {}
++
++void SndioAudioOutputStream::ThreadLoop(void) {
++  int avail, count, result;
++
++  while (state == kRunning) {
++    // Update volume if needed
++    pthread_mutex_lock(&mutex);
++    if (volpending) {
++      volpending = 0;
++      sio_setvol(hdl, vol);
++    }
++    pthread_mutex_unlock(&mutex);
++
++    // Get data to play
++    const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay,
++	params.sample_rate());
++    count = source->OnMoreData(delay, base::TimeTicks::Now(), {}, audio_bus.get());
++    audio_bus->ToInterleaved<SignedInt16SampleTypeTraits>(count, reinterpret_cast<int16_t*>(buffer));
++    if (count == 0) {
++      // We have to submit something to the device
++      count = audio_bus->frames();
++      memset(buffer, 0, count * params.GetBytesPerFrame(kSampleFormat));
++      LOG(WARNING) << "No data to play, running empty cycle.";
++    }
++
++    // Submit data to the device
++    avail = count * params.GetBytesPerFrame(kSampleFormat);
++    result = sio_write(hdl, buffer, avail);
++    if (result == 0) {
++      LOG(WARNING) << "Audio device disconnected.";
++      break;
++    }
++
++    // Update hardware pointer
++    hw_delay += count;
++  }
++}
++
++}  // namespace media
diff --git a/chromium/patches/patch-media_audio_sndio_sndio__output.h b/chromium/patches/patch-media_audio_sndio_sndio__output.h
new file mode 100644
index 0000000000..7c44bd90cc
--- /dev/null
+++ b/chromium/patches/patch-media_audio_sndio_sndio__output.h
@@ -0,0 +1,97 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/audio/sndio/sndio_output.h.orig	2024-08-01 14:08:58.212501801 +0000
++++ media/audio/sndio/sndio_output.h
+@@ -0,0 +1,88 @@
++// 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 MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
++#define MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
++
++#include <pthread.h>
++#include <sndio.h>
++
++#include "base/time/tick_clock.h"
++#include "base/time/time.h"
++#include "media/audio/audio_io.h"
++
++namespace media {
++
++class AudioManagerBase;
++
++// Implementation of AudioOutputStream using sndio(7)
++class SndioAudioOutputStream : public AudioOutputStream {
++ public:
++  // The manager is creating this object
++  SndioAudioOutputStream(const AudioParameters& params,
++                         AudioManagerBase* manager);
++
++  SndioAudioOutputStream(const SndioAudioOutputStream&) = delete;
++  SndioAudioOutputStream& operator=(const SndioAudioOutputStream&) = delete;
++
++  virtual ~SndioAudioOutputStream();
++
++  // Implementation of AudioOutputStream.
++  bool Open() override;
++  void Close() override;
++  void Start(AudioSourceCallback* callback) override;
++  void Stop() override;
++  void SetVolume(double volume) override;
++  void GetVolume(double* volume) override;
++  void Flush() override;
++
++  friend void sndio_onmove(void *arg, int delta);
++  friend void sndio_onvol(void *arg, unsigned int vol);
++  friend void *sndio_threadstart(void *arg);
++
++ private:
++  enum StreamState {
++    kClosed,            // Not opened yet
++    kStopped,           // Device opened, but not started yet
++    kRunning,           // Started, device playing
++    kStopWait           // Stopping, waiting for the real-time thread to exit
++  };
++
++  // C-style call-backs
++  static void OnMoveCallback(void *arg, int delta);
++  static void OnVolCallback(void *arg, unsigned int vol);
++  static void* ThreadEntry(void *arg);
++
++  // Continuously moves data from the producer to the device
++  void ThreadLoop(void);
++
++  // Our creator, the audio manager needs to be notified when we close.
++  AudioManagerBase* manager;
++  // Parameters of the source
++  AudioParameters params;
++  // Source stores data here
++  std::unique_ptr<AudioBus> audio_bus;
++  // Call-back that produces data to play
++  AudioSourceCallback* source;
++  // Handle of the audio device
++  struct sio_hdl* hdl;
++  // Current state of the stream
++  enum StreamState state;
++  // High priority thread running ThreadLoop()
++  pthread_t thread;
++  // Protects vol, volpending and hw_delay
++  pthread_mutex_t mutex;
++  // Current volume in the 0..SIO_MAXVOL range
++  int vol;
++  // Set to 1 if volumes must be refreshed in the realtime thread
++  int volpending;
++  // Number of frames buffered in the hardware
++  int hw_delay;
++  // Temporary buffer where data is stored sndio-compatible format
++  char* buffer;
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
diff --git a/chromium/patches/patch-media_base_BUILD.gn b/chromium/patches/patch-media_base_BUILD.gn
deleted file mode 100644
index 5abe1869d7..0000000000
--- a/chromium/patches/patch-media_base_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- media/base/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ media/base/BUILD.gn
-@@ -397,7 +397,7 @@ jumbo_source_set("base") {
-     defines += [ "DISABLE_USER_INPUT_MONITOR" ]
-   }
- 
--  if (is_linux || is_win) {
-+  if (is_linux || is_win || is_bsd) {
-     sources += [
-       "keyboard_event_counter.cc",
-       "keyboard_event_counter.h",
-@@ -405,7 +405,7 @@ jumbo_source_set("base") {
-   }
- 
-   # Note: should also work on is_posix || is_fuchsia
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "scopedfd_helper.cc",
-       "scopedfd_helper.h",
-@@ -612,7 +612,7 @@ source_set("unit_tests") {
-     deps += [ "//media/base/mac:unit_tests" ]
-   }
- 
--  if (is_linux || is_win) {
-+  if (is_linux || is_win || is_bsd) {
-     sources += [ "keyboard_event_counter_unittest.cc" ]
-   }
-   if (is_win) {
diff --git a/chromium/patches/patch-media_base_audio__latency.cc b/chromium/patches/patch-media_base_audio__latency.cc
index 6af80d2aff..50d83d6f32 100644
--- a/chromium/patches/patch-media_base_audio__latency.cc
+++ b/chromium/patches/patch-media_base_audio__latency.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- media/base/audio_latency.cc.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/base/audio_latency.cc.orig	2024-07-24 02:44:40.989203000 +0000
 +++ media/base/audio_latency.cc
-@@ -113,7 +113,7 @@ int AudioLatency::GetRtcBufferSize(int s
-     return frames_per_buffer;
+@@ -147,7 +147,7 @@ int AudioLatency::GetRtcBufferSize(int s
    }
  
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_FUCHSIA) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
    // On Linux, MacOS and Fuchsia, the low level IO implementations on the
    // browser side supports all buffer size the clients want. We use the native
    // peer connection buffer size (10ms) to achieve best possible performance.
diff --git a/chromium/patches/patch-media_base_libaom__thread__wrapper.cc b/chromium/patches/patch-media_base_libaom__thread__wrapper.cc
new file mode 100644
index 0000000000..ad18865a92
--- /dev/null
+++ b/chromium/patches/patch-media_base_libaom__thread__wrapper.cc
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/base/libaom_thread_wrapper.cc.orig	2024-07-24 02:44:41.005204400 +0000
++++ media/base/libaom_thread_wrapper.cc
+@@ -5,17 +5,21 @@
+ #include "base/logging.h"
+ #include "media/base/codec_worker_impl.h"
+ #include "media/base/libvpx_thread_wrapper.h"
++#if !BUILDFLAG(IS_BSD)
+ #include "third_party/libaom/source/libaom/aom_util/aom_thread.h"
++#endif
+ 
+ namespace media {
+ 
+ void InitLibAomThreadWrapper() {
++#if !BUILDFLAG(IS_BSD)
+   const AVxWorkerInterface interface =
+       CodecWorkerImpl<AVxWorkerInterface, AVxWorkerImpl, AVxWorker,
+                       AVxWorkerStatus, AVX_WORKER_STATUS_NOT_OK,
+                       AVX_WORKER_STATUS_OK,
+                       AVX_WORKER_STATUS_WORKING>::GetCodecWorkerInterface();
+   CHECK(aom_set_worker_interface(&interface));
++#endif
+ }
+ 
+ }  // namespace media
diff --git a/chromium/patches/patch-media_base_libvpx__thread__wrapper.cc b/chromium/patches/patch-media_base_libvpx__thread__wrapper.cc
new file mode 100644
index 0000000000..3241f92c21
--- /dev/null
+++ b/chromium/patches/patch-media_base_libvpx__thread__wrapper.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/base/libvpx_thread_wrapper.cc.orig	2024-07-24 02:44:41.005204400 +0000
++++ media/base/libvpx_thread_wrapper.cc
+@@ -5,11 +5,14 @@
+ #include "media/base/libvpx_thread_wrapper.h"
+ 
+ #include "media/base/codec_worker_impl.h"
++#if !BUILDFLAG(IS_OPENBSD)
+ #include "third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h"
++#endif
+ 
+ namespace media {
+ 
+ void InitLibVpxThreadWrapper() {
++#if !BUILDFLAG(IS_OPENBSD)
+   const VPxWorkerInterface interface =
+       CodecWorkerImpl<VPxWorkerInterface, VPxWorkerImpl, VPxWorker,
+                       VPxWorkerStatus, VPX_WORKER_STATUS_NOT_OK,
+@@ -17,6 +20,7 @@ void InitLibVpxThreadWrapper() {
+                       VPX_WORKER_STATUS_WORKING>::GetCodecWorkerInterface();
+ 
+   CHECK(vpx_set_worker_interface(&interface));
++#endif
+ }
+ 
+ }  // namespace media
diff --git a/chromium/patches/patch-media_base_media__switches.cc b/chromium/patches/patch-media_base_media__switches.cc
index 29a02708b5..bbd8ab3c25 100644
--- a/chromium/patches/patch-media_base_media__switches.cc
+++ b/chromium/patches/patch-media_base_media__switches.cc
@@ -1,22 +1,147 @@
 $NetBSD$
 
---- media/base/media_switches.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/base/media_switches.cc.orig	2024-07-24 02:44:41.009204900 +0000
 +++ media/base/media_switches.cc
-@@ -349,7 +349,7 @@ const base::Feature kGav1VideoDecoder{"G
- const base::Feature kGlobalMediaControls {
-   "GlobalMediaControls",
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
-       base::FEATURE_ENABLED_BY_DEFAULT
+@@ -21,7 +21,7 @@
+ #include "ui/gl/gl_features.h"
+ #include "ui/gl/gl_utils.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/cpu.h"
+ #endif
+ 
+@@ -61,7 +61,7 @@ const char kReportVp9AsAnUnsupportedMime
+     "report-vp9-as-an-unsupported-mime-type";
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) || \
+-    BUILDFLAG(IS_SOLARIS)
++    BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_NETBSD)
+ // The Alsa device to use when opening an audio input stream.
+ const char kAlsaInputDevice[] = "alsa-input-device";
+ // The Alsa device to use when opening an audio stream.
+@@ -368,8 +368,8 @@ BASE_FEATURE(kMacLoopbackAudioForScreenS
+              "MacLoopbackAudioForScreenShare",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif  // BUILDFLAG(IS_MAC)
+-
+-#if BUILDFLAG(IS_LINUX)
++ 
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enables system audio mirroring using pulseaudio.
+ BASE_FEATURE(kPulseaudioLoopbackForCast,
+              "PulseaudioLoopbackForCast",
+@@ -379,6 +379,28 @@ BASE_FEATURE(kPulseaudioLoopbackForCast,
+ BASE_FEATURE(kPulseaudioLoopbackForScreenShare,
+              "PulseaudioLoopbackForScreenShare",
+              base::FEATURE_DISABLED_BY_DEFAULT);
++
++BASE_FEATURE(kAudioBackend,
++             "AudioBackend",
++             base::FEATURE_ENABLED_BY_DEFAULT);
++
++constexpr base::FeatureParam<AudioBackend>::Option
++    kAudioBackendOptions[] = {
++        {AudioBackend::kAuto,
++         "auto"},
++        {AudioBackend::kPulseAudio, "pulseaudio"},
++        {AudioBackend::kSndio, "sndio"},
++        {AudioBackend::kAlsa, "alsa"}};
++
++const base::FeatureParam<AudioBackend>
++    kAudioBackendParam{
++        &kAudioBackend, "audio-backend",
++#if BUILDFLAG(IS_OPENBSD)
++        AudioBackend::kSndio,
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
++        AudioBackend::kAuto,
++#endif
++        &kAudioBackendOptions};
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+ // When enabled, MediaCapabilities will check with GPU Video Accelerator
+@@ -677,7 +699,7 @@ BASE_FEATURE(kFallbackAfterDecodeError,
+ // Show toolbar button that opens dialog for controlling media sessions.
+ BASE_FEATURE(kGlobalMediaControls,
+              "GlobalMediaControls",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
+@@ -705,7 +727,7 @@ BASE_FEATURE(kGlobalMediaControlsUpdated
+ // If enabled, users can request Media Remoting without fullscreen-in-tab.
+ BASE_FEATURE(kMediaRemotingWithoutFullscreen,
+              "MediaRemotingWithoutFullscreen",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
+@@ -717,7 +739,7 @@ BASE_FEATURE(kMediaRemotingWithoutFullsc
+ BASE_FEATURE(kGlobalMediaControlsPictureInPicture,
+              "GlobalMediaControlsPictureInPicture",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
+@@ -746,7 +768,7 @@ BASE_FEATURE(kUnifiedAutoplay,
+              "UnifiedAutoplay",
+              base::FEATURE_ENABLED_BY_DEFAULT);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enable vaapi video decoding on linux. This is already enabled by default on
+ // chromeos, but needs an experiment on linux.
+ BASE_FEATURE(kVaapiVideoDecodeLinux,
+@@ -837,7 +859,7 @@ BASE_FEATURE(kVaapiVp9SModeHWEncoding,
+              "VaapiVp9SModeHWEncoding",
+              base::FEATURE_ENABLED_BY_DEFAULT);
+ #endif  // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Enables the new V4L2 flat video decoder clients instead of V4L2VideoDecoder.
+ // Owners: frkoenig%chromium.org@localhost, mcasas%chromium.org@localhost
+ // Expiry: When flat decoders are supported on all platforms and the legacy
+@@ -963,7 +985,7 @@ BASE_FEATURE(kLiveCaptionUseWaitK,
+ // Live Caption can be used in multiple languages, as opposed to just English.
+ BASE_FEATURE(kLiveCaptionMultiLanguage,
+              "LiveCaptionMultiLanguage",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
  #else
-       base::FEATURE_DISABLED_BY_DEFAULT
-@@ -374,7 +374,7 @@ const base::Feature kGlobalMediaControls
- const base::Feature kGlobalMediaControlsPictureInPicture {
-   "GlobalMediaControlsPictureInPicture",
- #if defined(OS_WIN) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
-       base::FEATURE_ENABLED_BY_DEFAULT
+              base::FEATURE_DISABLED_BY_DEFAULT
+@@ -993,7 +1015,7 @@ BASE_FEATURE(kLiveCaptionWebAudio,
+ // Live Translate translates captions generated by Live Caption.
+ BASE_FEATURE(kLiveTranslate,
+              "LiveTranslate",
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
  #else
-       base::FEATURE_DISABLED_BY_DEFAULT
+              base::FEATURE_DISABLED_BY_DEFAULT
+@@ -1457,7 +1479,7 @@ BASE_FEATURE(kUseGTFOOutOfProcessVideoDe
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif  // BUILDFLAG(ALLOW_OOP_VIDEO_DECODER)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Spawn utility processes to perform hardware encode acceleration instead of
+ // using the GPU process.
+ BASE_FEATURE(kUseOutOfProcessVideoEncoding,
+@@ -1537,7 +1559,7 @@ BASE_FEATURE(kRecordWebAudioEngagement,
+              "RecordWebAudioEngagement",
+              base::FEATURE_ENABLED_BY_DEFAULT);
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Reduces the number of buffers needed in the output video frame pool to
+ // populate the Renderer pipeline for hardware accelerated VideoDecoder in
+ // non-low latency scenarios.
diff --git a/chromium/patches/patch-media_base_media__switches.h b/chromium/patches/patch-media_base_media__switches.h
index a4bad30275..7eed19e322 100644
--- a/chromium/patches/patch-media_base_media__switches.h
+++ b/chromium/patches/patch-media_base_media__switches.h
@@ -1,13 +1,72 @@
 $NetBSD$
 
---- media/base/media_switches.h.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/base/media_switches.h.orig	2024-07-24 02:44:41.009204900 +0000
 +++ media/base/media_switches.h
-@@ -35,7 +35,7 @@ MEDIA_EXPORT extern const char kDisableB
- 
+@@ -44,7 +44,7 @@ MEDIA_EXPORT extern const char kDisableB
  MEDIA_EXPORT extern const char kReportVp9AsAnUnsupportedMimeType[];
  
--#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_SOLARIS)
-+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) || \
+-    BUILDFLAG(IS_SOLARIS)
++    BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_NETBSD)
  MEDIA_EXPORT extern const char kAlsaInputDevice[];
  MEDIA_EXPORT extern const char kAlsaOutputDevice[];
  #endif
+@@ -325,13 +325,25 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPlatf
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPlaybackSpeedButton);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreloadMediaEngagementData);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreloadMetadataSuspend);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPulseaudioLoopbackForCast);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPulseaudioLoopbackForScreenShare);
++
++enum class AudioBackend {
++  kAuto,
++  kPulseAudio,
++  kSndio,
++  kAlsa
++};
++
++MEDIA_EXPORT BASE_DECLARE_FEATURE(kAudioBackend);
++MEDIA_EXPORT extern const base::FeatureParam<
++    AudioBackend>
++    kAudioBackendParam;
+ #endif  // BUILDFLAG(IS_LINUX)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kRecordMediaEngagementScores);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kRecordWebAudioEngagement);
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kReduceHardwareVideoDecoderBuffers);
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kResumeBackgroundVideo);
+@@ -346,7 +358,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUnifi
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseAndroidOverlayForSecureOnly);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseDecoderStreamForWebRTC);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseFakeDeviceForMediaStream);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVideoDecodeLinux);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVideoDecodeLinuxGL);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVideoEncodeLinux);
+@@ -365,7 +377,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapi
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp8TemporalLayerHWEncoding);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp9SModeHWEncoding);
+ #endif  // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kV4L2FlatVideoDecoder);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kV4L2FlatStatefulVideoDecoder);
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+@@ -504,7 +516,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseOu
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseGTFOOutOfProcessVideoDecoding);
+ #endif  // BUILDFLAG(ALLOW_OOP_VIDEO_DECODER)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseOutOfProcessVideoEncoding);
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
diff --git a/chromium/patches/patch-media_base_scopedfd__helper.h b/chromium/patches/patch-media_base_scopedfd__helper.h
deleted file mode 100644
index 34b37fb055..0000000000
--- a/chromium/patches/patch-media_base_scopedfd__helper.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/base/scopedfd_helper.h.orig	2020-07-08 21:40:45.000000000 +0000
-+++ media/base/scopedfd_helper.h
-@@ -14,7 +14,7 @@ namespace media {
- // since the only current user is V4L2 we are limiting the scope to OS_LINUX so
- // the binary size does not inflate on non-using systems. Feel free to adapt
- // this and BUILD.gn as our needs evolve.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- 
- // Return a new vector containing duplicates of |fds|, or PCHECKs in case of an
- // error.
diff --git a/chromium/patches/patch-media_base_status.cc b/chromium/patches/patch-media_base_status.cc
deleted file mode 100644
index 7c718b7433..0000000000
--- a/chromium/patches/patch-media_base_status.cc
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD$
-
---- media/base/status.cc.orig	2020-07-08 21:40:45.000000000 +0000
-+++ media/base/status.cc
-@@ -66,7 +66,9 @@ Status&& Status::AddCause(Status&& cause
- 
- void Status::AddFrame(const base::Location& location) {
-   DCHECK(data_);
-+#if SUPPORTS_LOCATION_BUILTINS
-   data_->frames.push_back(MediaSerialize(location));
-+#endif
- }
- 
- Status OkStatus() {
diff --git a/chromium/patches/patch-media_base_user__input__monitor__unittest.cc b/chromium/patches/patch-media_base_user__input__monitor__unittest.cc
new file mode 100644
index 0000000000..1df931fcfa
--- /dev/null
+++ b/chromium/patches/patch-media_base_user__input__monitor__unittest.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/base/user_input_monitor_unittest.cc.orig	2024-07-24 02:44:41.021206100 +0000
++++ media/base/user_input_monitor_unittest.cc
+@@ -13,7 +13,7 @@
+ #include "build/build_config.h"
+ #include "testing/gtest/include/gtest/gtest.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/files/file_descriptor_watcher_posix.h"
+ #endif
+ 
+@@ -49,7 +49,7 @@ class UserInputMonitorTest : public test
+ }  // namespace
+ 
+ TEST_F(UserInputMonitorTest, CreatePlatformSpecific) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   base::test::TaskEnvironment task_environment(
+       base::test::TaskEnvironment::MainThreadType::IO);
+ #else
+@@ -72,7 +72,7 @@ TEST_F(UserInputMonitorTest, CreatePlatf
+ }
+ 
+ TEST_F(UserInputMonitorTest, CreatePlatformSpecificWithMapping) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   base::test::TaskEnvironment task_environment(
+       base::test::TaskEnvironment::MainThreadType::IO);
+ #else
diff --git a/chromium/patches/patch-media_base_video__frame.cc b/chromium/patches/patch-media_base_video__frame.cc
index 74b413b380..2a43c124a5 100644
--- a/chromium/patches/patch-media_base_video__frame.cc
+++ b/chromium/patches/patch-media_base_video__frame.cc
@@ -1,67 +1,62 @@
 $NetBSD$
 
---- media/base/video_frame.cc.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/base/video_frame.cc.orig	2024-07-24 02:44:41.025206600 +0000
 +++ media/base/video_frame.cc
-@@ -57,7 +57,7 @@ std::string VideoFrame::StorageTypeToStr
+@@ -81,7 +81,7 @@ std::string VideoFrame::StorageTypeToStr
        return "OWNED_MEMORY";
      case VideoFrame::STORAGE_SHMEM:
        return "SHMEM";
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      case VideoFrame::STORAGE_DMABUFS:
        return "DMABUFS";
  #endif
-@@ -74,7 +74,7 @@ std::string VideoFrame::StorageTypeToStr
+@@ -96,7 +96,7 @@ std::string VideoFrame::StorageTypeToStr
  // static
  bool VideoFrame::IsStorageTypeMappable(VideoFrame::StorageType storage_type) {
    return
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
        // This is not strictly needed but makes explicit that, at VideoFrame
        // level, DmaBufs are not mappable from userspace.
        storage_type != VideoFrame::STORAGE_DMABUFS &&
-@@ -259,7 +259,7 @@ static base::Optional<VideoFrameLayout> 
-   return VideoFrameLayout::CreateWithPlanes(format, coded_size, planes);
- }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // This class allows us to embed a vector<ScopedFD> into a scoped_refptr, and
- // thus to have several VideoFrames share the same set of DMABUF FDs.
- class VideoFrame::DmabufHolder
-@@ -589,7 +589,7 @@ scoped_refptr<VideoFrame> VideoFrame::Wr
+@@ -432,7 +432,7 @@ scoped_refptr<VideoFrame> VideoFrame::Cr
+     planes[i].stride = gpu_memory_buffer->stride(i);
+   }
+   uint64_t modifier = gfx::NativePixmapHandle::kNoModifier;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (gpu_memory_buffer->GetType() == gfx::NATIVE_PIXMAP) {
+     const auto gmb_handle = gpu_memory_buffer->CloneHandle();
+     if (gmb_handle.is_null() ||
+@@ -806,7 +806,7 @@ scoped_refptr<VideoFrame> VideoFrame::Wr
    return frame;
  }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // static
- scoped_refptr<VideoFrame> VideoFrame::WrapExternalDmabufs(
+ scoped_refptr<VideoFrame> VideoFrame::WrapUnownedExternalDmabufs(
      const VideoFrameLayout& layout,
-@@ -725,7 +725,7 @@ scoped_refptr<VideoFrame> VideoFrame::Wr
-     }
-   }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   DCHECK(frame->dmabuf_fds_);
-   // If there are any |dmabuf_fds_| plugged in, we should refer them too.
-   wrapping_frame->dmabuf_fds_ = frame->dmabuf_fds_;
-@@ -1058,7 +1058,7 @@ VideoFrame::mailbox_holder(size_t textur
-                         : mailbox_holders_[texture_index];
+@@ -1555,7 +1555,7 @@ scoped_refptr<gpu::ClientSharedImage> Vi
+                         : shared_images_[texture_index];
  }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const std::vector<base::ScopedFD>& VideoFrame::DmabufFds() const {
-   DCHECK_EQ(storage_type_, STORAGE_DMABUFS);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ size_t VideoFrame::NumDmabufFds() const {
+   if (wrapped_frame_) {
+     return wrapped_frame_->NumDmabufFds();
+@@ -1699,7 +1699,7 @@ VideoFrame::~VideoFrame() {
+   // Prevents dangling raw ptr, see https://docs.google.com/document/d/156O7kBZqIhe1dUcqTMcN5T-6YEAcg0yNnj5QlnZu9xU/edit?usp=sharing.
+   shm_region_ = nullptr;
  
-@@ -1141,7 +1141,7 @@ VideoFrame::VideoFrame(const VideoFrameL
-       storage_type_(storage_type),
-       visible_rect_(Intersection(visible_rect, gfx::Rect(layout.coded_size()))),
-       natural_size_(natural_size),
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-       dmabuf_fds_(base::MakeRefCounted<DmabufHolder>()),
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Prevents dangling dmabuf fds.
+   dmabuf_fds_.clear();
  #endif
-       timestamp_(timestamp),
diff --git a/chromium/patches/patch-media_base_video__frame.h b/chromium/patches/patch-media_base_video__frame.h
index ae6e98b316..546f759104 100644
--- a/chromium/patches/patch-media_base_video__frame.h
+++ b/chromium/patches/patch-media_base_video__frame.h
@@ -1,49 +1,53 @@
 $NetBSD$
 
---- media/base/video_frame.h.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/base/video_frame.h.orig	2024-07-24 02:44:41.025206600 +0000
 +++ media/base/video_frame.h
-@@ -40,7 +40,7 @@
- #include "base/mac/scoped_cftyperef.h"
- #endif  // defined(OS_MACOSX)
+@@ -45,7 +45,7 @@
+ #include "base/apple/scoped_cftyperef.h"
+ #endif  // BUILDFLAG(IS_APPLE)
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "base/files/scoped_file.h"
- #endif  // defined(OS_LINUX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
  
-@@ -81,7 +81,7 @@ class MEDIA_EXPORT VideoFrame : public b
+@@ -111,7 +111,7 @@ class MEDIA_EXPORT VideoFrame : public b
      STORAGE_UNOWNED_MEMORY = 2,  // External, non owned data pointers.
      STORAGE_OWNED_MEMORY = 3,  // VideoFrame has allocated its own data buffer.
-     STORAGE_SHMEM = 4,         // Backed by unsafe (writable) shared memory.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+     STORAGE_SHMEM = 4,         // Backed by read-only shared memory.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      // TODO(mcasas): Consider turning this type into STORAGE_NATIVE
      // based on the idea of using this same enum value for both DMA
      // buffers on Linux and CVPixelBuffers on Mac (which currently use
-@@ -245,7 +245,7 @@ class MEDIA_EXPORT VideoFrame : public b
-       ReleaseMailboxCB mailbox_holder_release_cb,
+@@ -386,7 +386,7 @@ class MEDIA_EXPORT VideoFrame : public b
+       ReleaseMailboxAndGpuMemoryBufferCB mailbox_holder_and_gmb_release_cb,
        base::TimeDelta timestamp);
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Wraps provided dmabufs
    // (https://www.kernel.org/doc/html/latest/driver-api/dma-buf.html) with a
-   // VideoFrame. The frame will take ownership of |dmabuf_fds|, and will
-@@ -485,7 +485,7 @@ class MEDIA_EXPORT VideoFrame : public b
-   // mailbox, the caller must wait for the included sync point.
-   const gpu::MailboxHolder& mailbox_holder(size_t texture_index) const;
+   // VideoFrame.
+@@ -719,7 +719,7 @@ class MEDIA_EXPORT VideoFrame : public b
+   scoped_refptr<gpu::ClientSharedImage> shared_image(
+       size_t texture_index) const;
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Returns a vector containing the backing DmaBufs for this frame. The number
-   // of returned DmaBufs will be equal or less than the number of planes of
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // The number of DmaBufs will be equal or less than the number of planes of
    // the frame. If there are less, this means that the last FD contains the
-@@ -671,7 +671,7 @@ class MEDIA_EXPORT VideoFrame : public b
-   // GPU memory buffer, if this frame is STORAGE_GPU_MEMORY_BUFFER.
-   std::unique_ptr<gfx::GpuMemoryBuffer> gpu_memory_buffer_;
+   // remaining planes. Should be > 0 for STORAGE_DMABUFS.
+@@ -950,7 +950,7 @@ class MEDIA_EXPORT VideoFrame : public b
+   // For now it's set to false always until clients starts using it.
+   const bool is_mappable_si_enabled_ = false;
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   class DmabufHolder;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  
    // Dmabufs for the frame, used when storage is STORAGE_DMABUFS. Size is either
+   // equal or less than the number of planes of the frame. If it is less, then
diff --git a/chromium/patches/patch-media_capture_BUILD.gn b/chromium/patches/patch-media_capture_BUILD.gn
deleted file mode 100644
index d847fab38a..0000000000
--- a/chromium/patches/patch-media_capture_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/capture/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ media/capture/BUILD.gn
-@@ -227,7 +227,7 @@ jumbo_component("capture_lib") {
-   }
- 
-   # This includes the case of ChromeOS
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "video/linux/camera_config_chromeos.cc",
-       "video/linux/camera_config_chromeos.h",
diff --git a/chromium/patches/patch-media_capture_video_create__video__capture__device__factory.cc b/chromium/patches/patch-media_capture_video_create__video__capture__device__factory.cc
index 0f449fe112..f4b11fdb0b 100644
--- a/chromium/patches/patch-media_capture_video_create__video__capture__device__factory.cc
+++ b/chromium/patches/patch-media_capture_video_create__video__capture__device__factory.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- media/capture/video/create_video_capture_device_factory.cc.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/create_video_capture_device_factory.cc.orig	2024-07-24 02:44:41.053209300 +0000
 +++ media/capture/video/create_video_capture_device_factory.cc
-@@ -10,7 +10,7 @@
+@@ -13,7 +13,7 @@
  #include "media/capture/video/fake_video_capture_device_factory.h"
  #include "media/capture/video/file_video_capture_device_factory.h"
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  #include "media/capture/video/linux/video_capture_device_factory_linux.h"
- #elif defined(OS_CHROMEOS)
- #include "media/capture/video/chromeos/camera_app_device_bridge_impl.h"
-@@ -82,7 +82,7 @@ CreateChromeOSVideoCaptureDeviceFactory(
+ #elif BUILDFLAG(IS_CHROMEOS_ASH)
+ #include "media/capture/video/chromeos/public/cros_features.h"
+@@ -56,7 +56,7 @@ CreateFakeVideoCaptureDeviceFactory() {
  std::unique_ptr<VideoCaptureDeviceFactory>
  CreatePlatformSpecificVideoCaptureDeviceFactory(
      scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    return std::make_unique<VideoCaptureDeviceFactoryLinux>(ui_task_runner);
- #elif defined(OS_CHROMEOS)
-   return CreateChromeOSVideoCaptureDeviceFactory(ui_task_runner, {});
+ #elif BUILDFLAG(IS_CHROMEOS_ASH)
+   if (base::SysInfo::IsRunningOnChromeOS())
diff --git a/chromium/patches/patch-media_capture_video_fake__video__capture__device__factory.cc b/chromium/patches/patch-media_capture_video_fake__video__capture__device__factory.cc
index 411f401d7f..f0cd7e92a9 100644
--- a/chromium/patches/patch-media_capture_video_fake__video__capture__device__factory.cc
+++ b/chromium/patches/patch-media_capture_video_fake__video__capture__device__factory.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- media/capture/video/fake_video_capture_device_factory.cc.orig	2020-07-08 21:41:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/fake_video_capture_device_factory.cc.orig	2024-07-24 02:44:41.053209300 +0000
 +++ media/capture/video/fake_video_capture_device_factory.cc
-@@ -208,7 +208,7 @@ void FakeVideoCaptureDeviceFactory::GetD
+@@ -231,7 +231,7 @@ void FakeVideoCaptureDeviceFactory::GetD
+   int entry_index = 0;
    for (const auto& entry : devices_config_) {
-     device_descriptors->emplace_back(
-         base::StringPrintf("fake_device_%d", entry_index), entry.device_id,
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-         VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE,
- #elif defined(OS_MACOSX)
-         VideoCaptureApi::MACOSX_AVFOUNDATION,
+     VideoCaptureApi api =
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+         VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE;
+ #elif BUILDFLAG(IS_IOS)
+         VideoCaptureApi::UNKNOWN;
diff --git a/chromium/patches/patch-media_capture_video_file__video__capture__device__factory.cc b/chromium/patches/patch-media_capture_video_file__video__capture__device__factory.cc
index 3324d947e6..e9dcb10f22 100644
--- a/chromium/patches/patch-media_capture_video_file__video__capture__device__factory.cc
+++ b/chromium/patches/patch-media_capture_video_file__video__capture__device__factory.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- media/capture/video/file_video_capture_device_factory.cc.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/file_video_capture_device_factory.cc.orig	2024-07-24 02:44:41.053209300 +0000
 +++ media/capture/video/file_video_capture_device_factory.cc
-@@ -54,7 +54,7 @@ void FileVideoCaptureDeviceFactory::GetD
- #elif defined(OS_MACOSX)
-       command_line_file_path.value(), kFileVideoCaptureDeviceName,
-       VideoCaptureApi::MACOSX_AVFOUNDATION
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-       command_line_file_path.value(), kFileVideoCaptureDeviceName,
-       VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE
+@@ -52,7 +52,7 @@ void FileVideoCaptureDeviceFactory::GetD
+       VideoCaptureApi::WIN_DIRECT_SHOW;
+ #elif BUILDFLAG(IS_MAC)
+       VideoCaptureApi::MACOSX_AVFOUNDATION;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+       VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE;
  #else
+       VideoCaptureApi::UNKNOWN;
diff --git a/chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.cc b/chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.cc
new file mode 100644
index 0000000000..f104ee1ee9
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/fake_v4l2_impl.cc.orig	2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/fake_v4l2_impl.cc
+@@ -562,7 +562,7 @@ int FakeV4L2Impl::close(int fd) {
+   return kSuccessReturnValue;
+ }
+ 
+-int FakeV4L2Impl::ioctl(int fd, int request, void* argp) {
++int FakeV4L2Impl::ioctl(int fd, unsigned long request, void* argp) {
+   base::AutoLock lock(lock_);
+   auto device_iter = opened_devices_.find(fd);
+   if (device_iter == opened_devices_.end())
diff --git a/chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.h b/chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.h
new file mode 100644
index 0000000000..876efe8a16
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_fake__v4l2__impl.h
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/fake_v4l2_impl.h.orig	2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/fake_v4l2_impl.h
+@@ -8,7 +8,13 @@
+ #include <map>
+ #include <string>
+ 
++#include "build/build_config.h"
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
++#include <sys/videoio.h>
++typedef __uint32_t __u32;
++#else
+ #include <linux/videodev2.h>
++#endif
+ 
+ #include "base/synchronization/lock.h"
+ #include "media/capture/capture_export.h"
+@@ -38,7 +44,7 @@ class CAPTURE_EXPORT FakeV4L2Impl : publ
+   // Implementation of V4L2CaptureDevice interface:
+   int open(const char* device_name, int flags) override;
+   int close(int fd) override;
+-  int ioctl(int fd, int request, void* argp) override;
++  int ioctl(int fd, unsigned long request, void* argp) override;
+   void* mmap(void* start,
+              size_t length,
+              int prot,
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc
index 68ba07b43f..a97f0a4552 100644
--- a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc
+++ b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc
@@ -1,27 +1,36 @@
 $NetBSD$
 
---- media/capture/video/linux/v4l2_capture_delegate.cc.orig	2020-07-15 18:55:59.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/v4l2_capture_delegate.cc.orig	2024-07-24 02:44:41.057209500 +0000
 +++ media/capture/video/linux/v4l2_capture_delegate.cc
-@@ -4,8 +4,12 @@
- 
+@@ -5,8 +5,10 @@
  #include "media/capture/video/linux/v4l2_capture_delegate.h"
  
-+#if defined(OS_LINUX)
+ #include <fcntl.h>
++#if !BUILDFLAG(IS_BSD)
  #include <linux/version.h>
  #include <linux/videodev2.h>
-+#else
-+#include <sys/videoio.h>
 +#endif
  #include <poll.h>
- #include <sys/fcntl.h>
  #include <sys/ioctl.h>
-@@ -24,10 +28,12 @@
+ #include <sys/mman.h>
+@@ -27,17 +29,19 @@
+ #include "media/capture/video/blob_utils.h"
+ #include "media/capture/video/linux/video_capture_device_linux.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "media/capture/capture_switches.h"
+ #include "media/capture/video/linux/v4l2_capture_delegate_gpu_helper.h"
+ #endif  // BUILDFLAG(IS_LINUX)
  
  using media::mojom::MeteringMode;
  
--#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
-+#if defined(OS_LINUX)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) || defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
  // 16 bit depth, Realsense F200.
  #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ')
  #endif
@@ -29,120 +38,125 @@ $NetBSD$
  
  // TODO(aleksandar.stojiljkovic): Wrap this with kernel version check once the
  // format is introduced to kernel.
-@@ -66,8 +72,10 @@ struct {
-   size_t num_planes;
- } constexpr kSupportedFormatsAndPlanarity[] = {
-     {V4L2_PIX_FMT_YUV420, PIXEL_FORMAT_I420, 1},
-+#if !defined(OS_NETBSD)
-     {V4L2_PIX_FMT_Y16, PIXEL_FORMAT_Y16, 1},
-     {V4L2_PIX_FMT_Z16, PIXEL_FORMAT_Y16, 1},
-+#endif
-     {V4L2_PIX_FMT_INVZ, PIXEL_FORMAT_Y16, 1},
-     {V4L2_PIX_FMT_YUYV, PIXEL_FORMAT_YUY2, 1},
-     {V4L2_PIX_FMT_RGB24, PIXEL_FORMAT_RGB24, 1},
-@@ -86,11 +94,13 @@ struct {
- constexpr int kMaxIOCtrlRetries = 5;
- 
- // Base id and class identifier for Controls to be reset.
-+#if !defined(OS_NETBSD)
- struct {
-   uint32_t control_base;
-   uint32_t class_id;
- } constexpr kControls[] = {{V4L2_CID_USER_BASE, V4L2_CID_USER_CLASS},
-                            {V4L2_CID_CAMERA_CLASS_BASE, V4L2_CID_CAMERA_CLASS}};
-+#endif
+@@ -47,6 +51,14 @@ using media::mojom::MeteringMode;
+ #define V4L2_PIX_FMT_INVZ v4l2_fourcc('I', 'N', 'V', 'Z')
+ #endif
  
- // Fill in |format| with the given parameters.
- void FillV4L2Format(v4l2_format* format,
-@@ -123,9 +133,11 @@ void FillV4L2RequestBuffer(v4l2_requestb
- bool IsSpecialControl(int control_id) {
-   switch (control_id) {
-     case V4L2_CID_AUTO_WHITE_BALANCE:
-+#if !defined(OS_NETBSD)
-     case V4L2_CID_EXPOSURE_AUTO:
-     case V4L2_CID_EXPOSURE_AUTO_PRIORITY:
-     case V4L2_CID_FOCUS_AUTO:
++#ifndef V4L2_COLORSPACE_OPRGB
++#define V4L2_COLORSPACE_OPRGB V4L2_COLORSPACE_ADOBERGB
 +#endif
-       return true;
-   }
-   return false;
-@@ -142,6 +154,7 @@ bool IsSpecialControl(int control_id) {
- #define V4L2_CID_PANTILT_CMD (V4L2_CID_CAMERA_CLASS_BASE + 34)
- #endif
- bool IsBlacklistedControl(int control_id) {
-+#if !defined(OS_NETBSD)
-   switch (control_id) {
-     case V4L2_CID_PAN_RELATIVE:
-     case V4L2_CID_TILT_RELATIVE:
-@@ -157,6 +170,7 @@ bool IsBlacklistedControl(int control_id
-     case V4L2_CID_PANTILT_CMD:
-       return true;
-   }
++
++#ifndef V4L2_XFER_FUNC_OPRGB
++#define V4L2_XFER_FUNC_OPRGB V4L2_XFER_FUNC_ADOBERGB
 +#endif
-   return false;
++
+ namespace media {
+ 
+ namespace {
+@@ -264,7 +276,7 @@ bool V4L2CaptureDelegate::IsBlockedContr
+ // static
+ bool V4L2CaptureDelegate::IsControllableControl(
+     int control_id,
+-    const base::RepeatingCallback<int(int, void*)>& do_ioctl) {
++    const base::RepeatingCallback<int(unsigned int, void*)>& do_ioctl) {
+   const int special_control_id = GetControllingSpecialControl(control_id);
+   if (!special_control_id) {
+     // The control is not controlled by a special control thus the control is
+@@ -320,7 +332,7 @@ V4L2CaptureDelegate::V4L2CaptureDelegate
+       is_capturing_(false),
+       timeout_count_(0),
+       rotation_(rotation) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   use_gpu_buffer_ = switches::IsVideoCaptureUseGpuMemoryBufferEnabled();
+ #endif  // BUILDFLAG(IS_LINUX)
+ }
+@@ -447,7 +459,7 @@ void V4L2CaptureDelegate::AllocateAndSta
+ 
+   client_->OnStarted();
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (use_gpu_buffer_) {
+     v4l2_gpu_helper_ = std::make_unique<V4L2CaptureDelegateGpuHelper>(
+         std::move(gmb_support_test_));
+@@ -797,7 +809,7 @@ void V4L2CaptureDelegate::SetGPUEnvironm
+ 
+ V4L2CaptureDelegate::~V4L2CaptureDelegate() = default;
+ 
+-bool V4L2CaptureDelegate::RunIoctl(int request, void* argp) {
++bool V4L2CaptureDelegate::RunIoctl(unsigned int request, void* argp) {
+   int num_retries = 0;
+   for (; DoIoctl(request, argp) < 0 && num_retries < kMaxIOCtrlRetries;
+        ++num_retries) {
+@@ -807,7 +819,7 @@ bool V4L2CaptureDelegate::RunIoctl(int r
+   return num_retries != kMaxIOCtrlRetries;
+ }
+ 
+-int V4L2CaptureDelegate::DoIoctl(int request, void* argp) {
++int V4L2CaptureDelegate::DoIoctl(unsigned int request, void* argp) {
+   return HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), request, argp));
  }
  
-@@ -335,6 +349,7 @@ void V4L2CaptureDelegate::AllocateAndSta
- 
-   // Set anti-banding/anti-flicker to 50/60Hz. May fail due to not supported
-   // operation (|errno| == EINVAL in this case) or plain failure.
-+#if !defined(OS_NETBSD)
-   if ((power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_50HZ) ||
-       (power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_60HZ) ||
-       (power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_AUTO)) {
-@@ -345,6 +360,7 @@ void V4L2CaptureDelegate::AllocateAndSta
-     if (retval != 0)
-       DVLOG(1) << "Error setting power line frequency removal";
+@@ -818,6 +830,7 @@ bool V4L2CaptureDelegate::IsControllable
+ }
+ 
+ void V4L2CaptureDelegate::ReplaceControlEventSubscriptions() {
++#if !BUILDFLAG(IS_BSD)
+   constexpr uint32_t kControlIds[] = {V4L2_CID_AUTO_EXPOSURE_BIAS,
+                                       V4L2_CID_AUTO_WHITE_BALANCE,
+                                       V4L2_CID_BRIGHTNESS,
+@@ -845,6 +858,7 @@ void V4L2CaptureDelegate::ReplaceControl
+                   << ", {type = V4L2_EVENT_CTRL, id = " << control_id << "}";
+     }
    }
 +#endif
+ }
  
-   capture_format_.frame_size.SetSize(video_fmt_.fmt.pix.width,
-                                      video_fmt_.fmt.pix.height);
-@@ -384,6 +400,7 @@ void V4L2CaptureDelegate::GetPhotoState(
- 
-   mojom::PhotoStatePtr photo_capabilities = mojo::CreateEmptyPhotoState();
+ mojom::RangePtr V4L2CaptureDelegate::RetrieveUserControlRange(int control_id) {
+@@ -1025,7 +1039,11 @@ void V4L2CaptureDelegate::DoCapture() {
  
-+#if !defined(OS_NETBSD)
-   photo_capabilities->pan = RetrieveUserControlRange(V4L2_CID_PAN_ABSOLUTE);
-   photo_capabilities->tilt = RetrieveUserControlRange(V4L2_CID_TILT_ABSOLUTE);
-   photo_capabilities->zoom = RetrieveUserControlRange(V4L2_CID_ZOOM_ABSOLUTE);
-@@ -481,6 +498,7 @@ void V4L2CaptureDelegate::GetPhotoState(
-   photo_capabilities->saturation =
-       RetrieveUserControlRange(V4L2_CID_SATURATION);
-   photo_capabilities->sharpness = RetrieveUserControlRange(V4L2_CID_SHARPNESS);
+   pollfd device_pfd = {};
+   device_pfd.fd = device_fd_.get();
++#if !BUILDFLAG(IS_BSD)
+   device_pfd.events = POLLIN | POLLPRI;
++#else
++  device_pfd.events = POLLIN;
 +#endif
  
-   std::move(callback).Run(std::move(photo_capabilities));
- }
-@@ -492,6 +510,7 @@ void V4L2CaptureDelegate::SetPhotoOption
-   if (!device_fd_.is_valid() || !is_capturing_)
-     return;
- 
-+#if !defined(OS_NETBSD)
-   if (settings->has_pan) {
-     v4l2_control pan_current = {};
-     pan_current.id = V4L2_CID_PAN_ABSOLUTE;
-@@ -603,6 +622,7 @@ void V4L2CaptureDelegate::SetPhotoOption
-       DoIoctl(VIDIOC_S_CTRL, &set_exposure_time);
+   const int result =
+       HANDLE_EINTR(v4l2_->poll(&device_pfd, 1, kCaptureTimeoutMs));
+@@ -1063,6 +1081,7 @@ void V4L2CaptureDelegate::DoCapture() {
+     timeout_count_ = 0;
+   }
+ 
++#if !BUILDFLAG(IS_BSD)
+   // Dequeue events if the driver has filled in some.
+   if (device_pfd.revents & POLLPRI) {
+     bool controls_changed = false;
+@@ -1098,6 +1117,7 @@ void V4L2CaptureDelegate::DoCapture() {
+       client_->OnCaptureConfigurationChanged();
      }
    }
 +#endif
  
-   if (settings->has_brightness) {
-     v4l2_control current = {};
-@@ -686,6 +706,7 @@ mojom::RangePtr V4L2CaptureDelegate::Ret
- }
- 
- void V4L2CaptureDelegate::ResetUserAndCameraControlsToDefault() {
-+#if !defined(OS_NETBSD)
-   // Set V4L2_CID_AUTO_WHITE_BALANCE to false first.
-   v4l2_control auto_white_balance = {};
-   auto_white_balance.id = V4L2_CID_AUTO_WHITE_BALANCE;
-@@ -781,6 +802,7 @@ void V4L2CaptureDelegate::ResetUserAndCa
-   ext_controls.controls = special_camera_controls.data();
-   if (DoIoctl(VIDIOC_S_EXT_CTRLS, &ext_controls) < 0)
-     DPLOG(INFO) << "VIDIOC_S_EXT_CTRLS";
-+#endif
+   // Deenqueue, send and reenqueue a buffer if the driver has filled one in.
+   if (device_pfd.revents & POLLIN) {
+@@ -1151,7 +1171,7 @@ void V4L2CaptureDelegate::DoCapture() {
+       // workable on Linux.
+ 
+       // See http://crbug.com/959919.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       if (use_gpu_buffer_) {
+         v4l2_gpu_helper_->OnIncomingCapturedData(
+             client_.get(), buffer_tracker->start(),
+@@ -1224,7 +1244,7 @@ void V4L2CaptureDelegate::SetErrorState(
+   client_->OnError(error, from_here, reason);
  }
  
- bool V4L2CaptureDelegate::MapAndQueueBuffer(int index) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ gfx::ColorSpace V4L2CaptureDelegate::BuildColorSpaceFromv4l2() {
+   v4l2_colorspace v4l2_primary = (v4l2_colorspace)video_fmt_.fmt.pix.colorspace;
+   v4l2_quantization v4l2_range =
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h
index 86a2bf5857..6721fb5f89 100644
--- a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h
+++ b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h
@@ -1,13 +1,66 @@
 $NetBSD$
 
---- media/capture/video/linux/v4l2_capture_delegate.h.orig	2020-07-15 18:55:59.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/v4l2_capture_delegate.h.orig	2024-07-24 02:44:41.057209500 +0000
 +++ media/capture/video/linux/v4l2_capture_delegate.h
-@@ -20,7 +20,7 @@
+@@ -23,7 +23,7 @@
  #include "media/capture/video/linux/v4l2_capture_device_impl.h"
  #include "media/capture/video/video_capture_device.h"
  
--#if defined(OS_OPENBSD)
-+#if defined(OS_OPENBSD) || defined(OS_NETBSD)
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || defined(OS_NETBSD)
  #include <sys/videoio.h>
  #else
  #include <linux/videodev2.h>
+@@ -35,7 +35,7 @@ class Location;
+ 
+ namespace media {
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ class V4L2CaptureDelegateGpuHelper;
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+@@ -86,7 +86,7 @@ class CAPTURE_EXPORT V4L2CaptureDelegate
+   static bool IsBlockedControl(int control_id);
+   static bool IsControllableControl(
+       int control_id,
+-      const base::RepeatingCallback<int(int, void*)>& do_ioctl);
++      const base::RepeatingCallback<int(unsigned int, void*)>& do_ioctl);
+ 
+   void SetGPUEnvironmentForTesting(
+       std::unique_ptr<gpu::GpuMemoryBufferSupport> gmb_support);
+@@ -100,10 +100,10 @@ class CAPTURE_EXPORT V4L2CaptureDelegate
+   // device file descriptor or (re)starting streaming, can fail but works after
+   // retrying (https://crbug.com/670262). Returns false if the |request| ioctl
+   // fails too many times.
+-  bool RunIoctl(int request, void* argp);
++  bool RunIoctl(unsigned int request, void* argp);
+ 
+   // Simple wrapper to do HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), ...)).
+-  int DoIoctl(int request, void* argp);
++  int DoIoctl(unsigned int request, void* argp);
+ 
+   // Check whether the control is controllable (and not changed automatically).
+   bool IsControllableControl(int control_id);
+@@ -133,7 +133,7 @@ class CAPTURE_EXPORT V4L2CaptureDelegate
+                      const base::Location& from_here,
+                      const std::string& reason);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Systems which describe a "color space" usually map that to one or more of
+   // {primary, matrix, transfer, range}. BuildColorSpaceFromv4l2() will use the
+   // matched value as first priority. Otherwise, if there is no best matching
+@@ -167,7 +167,7 @@ class CAPTURE_EXPORT V4L2CaptureDelegate
+   // Clockwise rotation in degrees. This value should be 0, 90, 180, or 270.
+   int rotation_;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Support GPU memory buffer.
+   bool use_gpu_buffer_;
+   std::unique_ptr<V4L2CaptureDelegateGpuHelper> v4l2_gpu_helper_;
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device.h b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device.h
new file mode 100644
index 0000000000..33ab1efeb8
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/v4l2_capture_device.h.orig	2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/v4l2_capture_device.h
+@@ -21,7 +21,7 @@ class CAPTURE_EXPORT V4L2CaptureDevice
+  public:
+   virtual int open(const char* device_name, int flags) = 0;
+   virtual int close(int fd) = 0;
+-  virtual int ioctl(int fd, int request, void* argp) = 0;
++  virtual int ioctl(int fd, unsigned long request, void* argp) = 0;
+   virtual void* mmap(void* start,
+                      size_t length,
+                      int prot,
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__factory__linux.cc b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__factory__linux.cc
deleted file mode 100644
index d2f8295d13..0000000000
--- a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__factory__linux.cc
+++ /dev/null
@@ -1,47 +0,0 @@
-$NetBSD$
-
---- media/capture/video/linux/video_capture_device_factory_linux.cc.orig	2020-07-15 18:56:47.000000000 +0000
-+++ media/capture/video/linux/video_capture_device_factory_linux.cc
-@@ -21,7 +21,7 @@
- #include "media/capture/video/linux/scoped_v4l2_device_fd.h"
- #include "media/capture/video/linux/video_capture_device_linux.h"
- 
--#if defined(OS_OPENBSD)
-+#if defined(OS_OPENBSD) || defined(OS_NETBSD)
- #include <sys/videoio.h>
- #else
- #include <linux/videodev2.h>
-@@ -256,6 +256,7 @@ int VideoCaptureDeviceFactoryLinux::DoIo
- // Check if the video capture device supports at least one of pan, tilt and zoom
- // controls.
- bool VideoCaptureDeviceFactoryLinux::IsPanTiltZoomSupported(int fd) {
-+#if !defined(OS_NETBSD)
-   for (int control_id : {V4L2_CID_PAN_ABSOLUTE, V4L2_CID_TILT_ABSOLUTE,
-                          V4L2_CID_ZOOM_ABSOLUTE}) {
-     v4l2_queryctrl range = {};
-@@ -266,6 +267,7 @@ bool VideoCaptureDeviceFactoryLinux::IsP
-       return true;
-     }
-   }
-+#endif
-   return false;
- }
- 
-@@ -292,6 +294,7 @@ std::vector<float> VideoCaptureDeviceFac
-     uint32_t fourcc,
-     uint32_t width,
-     uint32_t height) {
-+#if !defined(OS_NETBSD)
-   std::vector<float> frame_rates;
- 
-   v4l2_frmivalenum frame_interval = {};
-@@ -318,6 +321,9 @@ std::vector<float> VideoCaptureDeviceFac
-   if (frame_rates.empty())
-     frame_rates.push_back(0);
-   return frame_rates;
-+#else
-+  NOTIMPLEMENTED_LOG_ONCE();
-+#endif
- }
- 
- void VideoCaptureDeviceFactoryLinux::GetSupportedFormatsForV4L2BufferType(
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.cc b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.cc
new file mode 100644
index 0000000000..4ca5c3dea7
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/v4l2_capture_device_impl.cc.orig	2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/v4l2_capture_device_impl.cc
+@@ -22,7 +22,7 @@ int V4L2CaptureDeviceImpl::close(int fd)
+   return ::close(fd);
+ }
+ 
+-int V4L2CaptureDeviceImpl::ioctl(int fd, int request, void* argp) {
++int V4L2CaptureDeviceImpl::ioctl(int fd, unsigned long request, void* argp) {
+   return ::ioctl(fd, request, argp);
+ }
+ 
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.h b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.h
new file mode 100644
index 0000000000..8085aa8a70
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/v4l2_capture_device_impl.h.orig	2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/v4l2_capture_device_impl.h
+@@ -19,7 +19,7 @@ class CAPTURE_EXPORT V4L2CaptureDeviceIm
+  public:
+   int open(const char* device_name, int flags) override;
+   int close(int fd) override;
+-  int ioctl(int fd, int request, void* argp) override;
++  int ioctl(int fd, unsigned long request, void* argp) override;
+   void* mmap(void* start,
+              size_t length,
+              int prot,
diff --git a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__linux.cc b/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__linux.cc
deleted file mode 100644
index 574881531b..0000000000
--- a/chromium/patches/patch-media_capture_video_linux_v4l2__capture__device__linux.cc
+++ /dev/null
@@ -1,45 +0,0 @@
-$NetBSD$
-
---- media/capture/video/linux/video_capture_device_linux.cc.orig	2020-07-15 18:55:59.000000000 +0000
-+++ media/capture/video/linux/video_capture_device_linux.cc
-@@ -13,7 +13,7 @@
- #include "build/build_config.h"
- #include "media/capture/video/linux/v4l2_capture_delegate.h"
- 
--#if defined(OS_OPENBSD)
-+#if defined(OS_OPENBSD) || defined(OS_NETBSD)
- #include <sys/videoio.h>
- #else
- #include <linux/videodev2.h>
-@@ -23,6 +23,7 @@ namespace media {
- 
- namespace {
- 
-+#if !defined(OS_NETBSD)
- int TranslatePowerLineFrequencyToV4L2(PowerLineFrequency frequency) {
-   switch (frequency) {
-     case PowerLineFrequency::FREQUENCY_50HZ:
-@@ -34,6 +35,7 @@ int TranslatePowerLineFrequencyToV4L2(Po
-       return V4L2_CID_POWER_LINE_FREQUENCY_AUTO;
-   }
- }
-+#endif
- 
- }  // namespace
- 
-@@ -70,6 +72,7 @@ VideoCaptureDeviceLinux::~VideoCaptureDe
- void VideoCaptureDeviceLinux::AllocateAndStart(
-     const VideoCaptureParams& params,
-     std::unique_ptr<VideoCaptureDevice::Client> client) {
-+#if !defined(OS_NETBSD)
-   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-   DCHECK(!capture_impl_);
-   if (v4l2_thread_.IsRunning())
-@@ -98,6 +101,7 @@ void VideoCaptureDeviceLinux::AllocateAn
-   for (auto& request : photo_requests_queue_)
-     v4l2_thread_.task_runner()->PostTask(FROM_HERE, std::move(request));
-   photo_requests_queue_.clear();
-+#endif
- }
- 
- void VideoCaptureDeviceLinux::StopAndDeAllocate() {
diff --git a/chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc b/chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc
new file mode 100644
index 0000000000..e6ef055e81
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.cc
@@ -0,0 +1,86 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/video_capture_device_factory_v4l2.cc.orig	2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/video_capture_device_factory_v4l2.cc
+@@ -23,7 +23,7 @@
+ #include "media/capture/video/linux/scoped_v4l2_device_fd.h"
+ #include "media/capture/video/linux/video_capture_device_linux.h"
+ 
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
+@@ -38,6 +38,7 @@ bool CompareCaptureDevices(const VideoCa
+   return a.descriptor < b.descriptor;
+ }
+ 
++#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_NETBSD)
+ // USB VID and PID are both 4 bytes long.
+ const size_t kVidPidSize = 4;
+ const size_t kMaxInterfaceNameSize = 256;
+@@ -70,11 +71,15 @@ std::string ExtractFileNameFromDeviceId(
+   DCHECK(base::StartsWith(device_id, kDevDir, base::CompareCase::SENSITIVE));
+   return device_id.substr(strlen(kDevDir), device_id.length());
+ }
++#endif
+ 
+ class DevVideoFilePathsDeviceProvider
+     : public VideoCaptureDeviceFactoryV4L2::DeviceProvider {
+  public:
+   void GetDeviceIds(std::vector<std::string>* target_container) override {
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
++    target_container->emplace_back("/dev/video");
++#else
+     const base::FilePath path("/dev/");
+     base::FileEnumerator enumerator(path, false, base::FileEnumerator::FILES,
+                                     "video*");
+@@ -82,9 +87,13 @@ class DevVideoFilePathsDeviceProvider
+       const base::FileEnumerator::FileInfo info = enumerator.GetInfo();
+       target_container->emplace_back(path.value() + info.GetName().value());
+     }
++#endif
+   }
+ 
+   std::string GetDeviceModelId(const std::string& device_id) override {
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
++    return std::string();
++#else
+     const std::string file_name = ExtractFileNameFromDeviceId(device_id);
+     std::string usb_id;
+     const std::string vid_path =
+@@ -101,9 +110,13 @@ class DevVideoFilePathsDeviceProvider
+     }
+ 
+     return usb_id;
++#endif
+   }
+ 
+   std::string GetDeviceDisplayName(const std::string& device_id) override {
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
++    return std::string();
++#else
+     const std::string file_name = ExtractFileNameFromDeviceId(device_id);
+     const std::string interface_path =
+         base::StringPrintf(kInterfacePathTemplate, file_name.c_str());
+@@ -114,6 +127,7 @@ class DevVideoFilePathsDeviceProvider
+       return std::string();
+     }
+     return display_name;
++#endif
+   }
+ };
+ 
+@@ -219,7 +233,7 @@ void VideoCaptureDeviceFactoryV4L2::GetD
+   std::move(callback).Run(std::move(devices_info));
+ }
+ 
+-int VideoCaptureDeviceFactoryV4L2::DoIoctl(int fd, int request, void* argp) {
++int VideoCaptureDeviceFactoryV4L2::DoIoctl(int fd, unsigned int request, void* argp) {
+   return HANDLE_EINTR(v4l2_->ioctl(fd, request, argp));
+ }
+ 
diff --git a/chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.h b/chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.h
new file mode 100644
index 0000000000..f808211009
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_video__capture__device__factory__v4l2.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/video_capture_device_factory_v4l2.h.orig	2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/video_capture_device_factory_v4l2.h
+@@ -51,7 +51,7 @@ class CAPTURE_EXPORT VideoCaptureDeviceF
+ 
+  private:
+   // Simple wrapper to do HANDLE_EINTR(v4l2_->ioctl(fd, ...)).
+-  int DoIoctl(int fd, int request, void* argp);
++  int DoIoctl(int fd, unsigned int request, void* argp);
+ 
+   VideoCaptureControlSupport GetControlSupport(int fd);
+   bool GetControlSupport(int fd, int control_id);
diff --git a/chromium/patches/patch-media_capture_video_linux_video__capture__device__linux.cc b/chromium/patches/patch-media_capture_video_linux_video__capture__device__linux.cc
new file mode 100644
index 0000000000..9e50c1b556
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_linux_video__capture__device__linux.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/linux/video_capture_device_linux.cc.orig	2024-07-24 02:44:41.057209500 +0000
++++ media/capture/video/linux/video_capture_device_linux.cc
+@@ -15,7 +15,7 @@
+ #include "build/build_config.h"
+ #include "media/capture/video/linux/v4l2_capture_delegate.h"
+ 
+-#if BUILDFLAG(IS_OPENBSD)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
diff --git a/chromium/patches/patch-media_capture_video_video__capture__buffer__pool__impl.cc b/chromium/patches/patch-media_capture_video_video__capture__buffer__pool__impl.cc
deleted file mode 100644
index f3c595d6d8..0000000000
--- a/chromium/patches/patch-media_capture_video_video__capture__buffer__pool__impl.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/capture/video/video_capture_buffer_pool_impl.cc.orig	2020-07-08 21:40:45.000000000 +0000
-+++ media/capture/video/video_capture_buffer_pool_impl.cc
-@@ -58,7 +58,7 @@ VideoCaptureBufferPoolImpl::CreateShared
-     int buffer_id) {
- // This requires platforms where base::SharedMemoryHandle is backed by a
- // file descriptor.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   base::AutoLock lock(lock_);
- 
-   VideoCaptureBufferTracker* tracker = GetTracker(buffer_id);
diff --git a/chromium/patches/patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc b/chromium/patches/patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc
new file mode 100644
index 0000000000..de53809353
--- /dev/null
+++ b/chromium/patches/patch-media_capture_video_video__capture__buffer__tracker__factory__impl.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/video_capture_buffer_tracker_factory_impl.cc.orig	2024-07-24 02:44:41.061210000 +0000
++++ media/capture/video/video_capture_buffer_tracker_factory_impl.cc
+@@ -14,7 +14,7 @@
+ #include "media/capture/video/chromeos/gpu_memory_buffer_tracker_cros.h"
+ #elif BUILDFLAG(IS_APPLE)
+ #include "media/capture/video/apple/gpu_memory_buffer_tracker_apple.h"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "media/capture/video/linux/v4l2_gpu_memory_buffer_tracker.h"
+ #elif BUILDFLAG(IS_WIN)
+ #include "media/capture/video/win/gpu_memory_buffer_tracker_win.h"
+@@ -42,7 +42,7 @@ VideoCaptureBufferTrackerFactoryImpl::Cr
+       return std::make_unique<GpuMemoryBufferTrackerCros>();
+ #elif BUILDFLAG(IS_APPLE)
+       return std::make_unique<GpuMemoryBufferTrackerApple>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       return std::make_unique<V4L2GpuMemoryBufferTracker>();
+ #elif BUILDFLAG(IS_WIN)
+       if (!dxgi_device_manager_) {
diff --git a/chromium/patches/patch-media_capture_video_video__capture__device__client.cc b/chromium/patches/patch-media_capture_video_video__capture__device__client.cc
index 76c811b134..f64b25c164 100644
--- a/chromium/patches/patch-media_capture_video_video__capture__device__client.cc
+++ b/chromium/patches/patch-media_capture_video_video__capture__device__client.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- media/capture/video/video_capture_device_client.cc.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/capture/video/video_capture_device_client.cc.orig	2024-07-24 02:44:41.061210000 +0000
 +++ media/capture/video/video_capture_device_client.cc
-@@ -301,7 +301,7 @@ void VideoCaptureDeviceClient::OnIncomin
- // see http://linuxtv.org/downloads/v4l-dvb-apis/packed-rgb.html.
- // Windows RGB24 defines blue at lowest byte,
- // see https://msdn.microsoft.com/en-us/library/windows/desktop/dd407253
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-       fourcc_format = libyuv::FOURCC_RAW;
- #elif defined(OS_WIN)
-       fourcc_format = libyuv::FOURCC_24BG;
+@@ -164,7 +164,7 @@ FourccAndFlip GetFourccAndFlipFromPixelF
+       CHECK(!is_width_odd && !is_height_odd);
+       return {libyuv::FOURCC_UYVY};
+     case media::PIXEL_FORMAT_RGB24:
+-      if constexpr (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) {
++      if constexpr (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) {
+         // Linux RGB24 defines red at lowest byte address,
+         // see http://linuxtv.org/downloads/v4l-dvb-apis/packed-rgb.html.
+         return {libyuv::FOURCC_RAW};
diff --git a/chromium/patches/patch-media_cast_BUILD.gn b/chromium/patches/patch-media_cast_BUILD.gn
deleted file mode 100644
index 09ad069cfc..0000000000
--- a/chromium/patches/patch-media_cast_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- media/cast/BUILD.gn.orig	2020-06-25 09:31:32.000000000 +0000
-+++ media/cast/BUILD.gn
-@@ -369,7 +369,7 @@ test("cast_unittests") {
-   }
- }
- 
--if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+if (is_win || is_mac || (is_linux && !is_chromeos) || is_bsd) {
-   # This is a target for the collection of cast development tools.  They are
-   # not built/linked into the Chromium browser.
-   group("testing_tools") {
-@@ -503,7 +503,7 @@ if (is_win || is_mac || (is_linux && !is
-   }
- }
- 
--if (is_linux && !is_chromeos) {
-+if ((is_linux && !is_chromeos) || is_bsd) {
-   test("tap_proxy") {
-     sources = [ "test/utility/tap_proxy.cc" ]
- 
diff --git a/chromium/patches/patch-media_cdm_cdm__paths__unittest.cc b/chromium/patches/patch-media_cdm_cdm__paths__unittest.cc
new file mode 100644
index 0000000000..28fe40f29d
--- /dev/null
+++ b/chromium/patches/patch-media_cdm_cdm__paths__unittest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/cdm/cdm_paths_unittest.cc.orig	2024-07-24 02:44:41.085212200 +0000
++++ media/cdm/cdm_paths_unittest.cc
+@@ -27,7 +27,7 @@ const char kComponentPlatform[] =
+     "win";
+ #elif BUILDFLAG(IS_CHROMEOS)
+     "cros";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     "linux";
+ #elif BUILDFLAG(IS_FUCHSIA)
+     "fuchsia";
diff --git a/chromium/patches/patch-media_cdm_library__cdm_cdm__paths.gni b/chromium/patches/patch-media_cdm_library__cdm_cdm__paths.gni
index f4f2e25250..be439c6456 100644
--- a/chromium/patches/patch-media_cdm_library__cdm_cdm__paths.gni
+++ b/chromium/patches/patch-media_cdm_library__cdm_cdm__paths.gni
@@ -1,8 +1,12 @@
 $NetBSD$
 
---- media/cdm/library_cdm/cdm_paths.gni.orig	2020-07-15 18:55:59.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/cdm/library_cdm/cdm_paths.gni.orig	2024-07-24 02:44:41.089212700 +0000
 +++ media/cdm/library_cdm/cdm_paths.gni
-@@ -11,7 +11,7 @@
+@@ -15,7 +15,7 @@ assert(enable_library_cdms)
  # Explicitly define what we use to avoid confusion.
  if (is_chromeos) {
    component_os = "cros"
diff --git a/chromium/patches/patch-media_ffmpeg_scripts_build__ffmpeg.py b/chromium/patches/patch-media_ffmpeg_scripts_build__ffmpeg.py
new file mode 100644
index 0000000000..629ef9d7c6
--- /dev/null
+++ b/chromium/patches/patch-media_ffmpeg_scripts_build__ffmpeg.py
@@ -0,0 +1,82 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/ffmpeg/scripts/build_ffmpeg.py.orig	2024-07-24 02:44:41.093213000 +0000
++++ media/ffmpeg/scripts/build_ffmpeg.py
+@@ -33,7 +33,7 @@ NDK_ROOT_DIR = os.path.abspath(
+ SUCCESS_TOKEN = 'THIS_BUILD_WORKED'
+ 
+ sys.path.append(os.path.join(CHROMIUM_ROOT_DIR, 'build'))
+-import gn_helpers
++#import gn_helpers
+ 
+ BRANDINGS = [
+     'Chrome',
+@@ -43,6 +43,9 @@ BRANDINGS = [
+ ARCH_MAP = {
+     'android': ['ia32', 'x64', 'arm-neon', 'arm64'],
+     'linux': ['ia32', 'x64', 'noasm-x64', 'arm', 'arm-neon', 'arm64'],
++    'openbsd': ['x64', 'arm64', 'ia32'],
++    'freebsd': ['x64', 'arm64', 'ia32'],
++    'netbsd': ['x64', 'arm64', 'ia32'],
+     'mac': ['x64', 'arm64'],
+     'win': ['ia32', 'x64', 'arm64'],
+ }
+@@ -122,7 +125,7 @@ def PrintAndCheckCall(argv, *args, **kwa
+ 
+ 
+ def GetDsoName(target_os, dso_name, dso_version):
+-    if target_os in ('linux', 'linux-noasm', 'android'):
++    if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd', 'netbsd'):
+         return 'lib%s.so.%s' % (dso_name, dso_version)
+     elif target_os == 'mac':
+         return 'lib%s.%s.dylib' % (dso_name, dso_version)
+@@ -475,7 +478,7 @@ def BuildFFmpeg(target_os, target_arch, 
+     # removing <sys/sysctl.h> soon, so this is needed to silence a deprecation
+     # #warning which will be converted to an error via -Werror.
+     # There is also no prctl.h
+-    if target_os in ['linux', 'linux-noasm']:
++    if target_os in ['linux', 'linux-noasm', 'openbsd', 'freebsd', 'netbsd']:
+         pre_make_rewrites += [
+             (r'(#define HAVE_SYSCTL [01])',
+              r'#define HAVE_SYSCTL 0 /* \1 -- forced to 0 for Fuchsia */'),
+@@ -598,7 +601,7 @@ def main(argv):
+     configure_args = args[2:]
+ 
+     if target_os not in ('android', 'linux', 'linux-noasm', 'mac', 'win',
+-                         'all'):
++                         'all', 'openbsd', 'freebsd', 'netbsd'):
+         parser.print_help()
+         return 1
+ 
+@@ -712,7 +715,7 @@ def ConfigureAndBuild(target_arch, targe
+             '--optflags="-O2"',
+         ])
+ 
+-    if target_os in ('linux', 'linux-noasm', 'android'):
++    if target_os in ('linux', 'linux-noasm', 'android', 'openbsd', 'freebsd', 'netbsd'):
+         if target_arch == 'x64':
+             if target_os == 'android':
+                 configure_flags['Common'].extend([
+@@ -827,9 +830,6 @@ def ConfigureAndBuild(target_arch, targe
+ 
+                 configure_flags['Common'].extend([
+                     '--target-os=linux',
+-                    '--sysroot=' +
+-                    os.path.join(CHROMIUM_ROOT_DIR,
+-                                 'build/linux/debian_bullseye_arm64-sysroot'),
+                     # See crbug.com/1467681. These could be removed eventually
+                     '--disable-dotprod',
+                     '--disable-i8mm',
+@@ -921,7 +921,7 @@ def ConfigureAndBuild(target_arch, targe
+         # typically be the system one, so explicitly configure use of Clang's
+         # ld.lld, to ensure that things like cross-compilation and LTO work.
+         # This does not work for ia32 and is always used on mac.
+-        if target_arch != 'ia32' and target_os != 'mac':
++        if target_arch != 'ia32' and target_os != 'mac' and target_os != 'netbsd':
+             configure_flags['Common'].append('--extra-ldflags=-fuse-ld=lld')
+ 
+     # Should be run on Mac, unless we're cross-compiling on Linux.
diff --git a/chromium/patches/patch-media_ffmpeg_scripts_robo__lib_config.py b/chromium/patches/patch-media_ffmpeg_scripts_robo__lib_config.py
new file mode 100644
index 0000000000..8880a08a21
--- /dev/null
+++ b/chromium/patches/patch-media_ffmpeg_scripts_robo__lib_config.py
@@ -0,0 +1,64 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/ffmpeg/scripts/robo_lib/config.py.orig	2024-07-24 02:44:41.097213500 +0000
++++ media/ffmpeg/scripts/robo_lib/config.py
+@@ -55,19 +55,13 @@ class RoboConfiguration:
+         self._llvm_path = os.path.join(self.chrome_src(), "third_party",
+                                        "llvm-build", "Release+Asserts", "bin")
+ 
+-        self.EnsurePathContainsLLVM()
+-        self.EnsureNoMakeInfo()
+         self.EnsureFFmpegHome()
+         self.EnsureGNConfig()
+-        self.ComputeBranchName()
+ 
+         if not quiet:
+             shell.log(f"Using chrome src: {self.chrome_src()}")
+             shell.log(f"Using script dir: {self._script_directory}")
+             shell.log(f"Using ffmpeg home: {self.ffmpeg_home()}")
+-            shell.log(f"On branch: {self.branch_name()}")
+-            if self.sushi_branch_name():
+-                shell.log(f"On sushi branch: {self.sushi_branch_name()}")
+ 
+         # Filename that we'll ask generate_gn.py to write git commands to.
+         # TODO: Should this use script_directory, or stay with ffmpeg?  As long as
+@@ -186,9 +180,9 @@ class RoboConfiguration:
+ 
+         if re.match(r"i.86", platform.machine()):
+             self._host_architecture = "ia32"
+-        elif platform.machine() == "x86_64" or platform.machine() == "AMD64":
++        elif platform.machine() == "x86_64" or platform.machine() == "AMD64" or platform.machine() == "amd64":
+             self._host_architecture = "x64"
+-        elif platform.machine() == "aarch64":
++        elif platform.machine() == "aarch64" or platform.machine() == "arm64":
+             self._host_architecture = "arm64"
+         elif platform.machine() == "mips32":
+             self._host_architecture = "mipsel"
+@@ -223,6 +217,12 @@ class RoboConfiguration:
+         elif platform.system() == "Windows" or "CYGWIN_NT" in platform.system(
+         ):
+             self._host_operating_system = "win"
++        elif platform.system() == "OpenBSD":
++            self._host_operating_system = "openbsd"
++        elif platform.system() == "FreeBSD":
++            self._host_operating_system = "freebsd"
++        elif platform.system() == "NetBSD":
++            self._host_operating_system = "netbsd"
+         else:
+             raise ValueError(f"Unsupported platform: {platform.system()}")
+ 
+@@ -231,8 +231,8 @@ class RoboConfiguration:
+         wd = os.getcwd()
+         # Walk up the tree until we find src/AUTHORS
+         while wd != "/":
+-            if os.path.isfile(os.path.join(wd, "src", "AUTHORS")):
+-                self._chrome_src = os.path.join(wd, "src")
++            if os.path.isfile(os.path.join(wd, "third_party", "DEPS")):
++                self._chrome_src = wd
+                 return
+             wd = os.path.dirname(wd)
+         raise Exception("could not find src/AUTHORS in any parent of the wd")
diff --git a/chromium/patches/patch-media_filters_vp9__parser.h b/chromium/patches/patch-media_filters_vp9__parser.h
deleted file mode 100644
index 1727fef7f4..0000000000
--- a/chromium/patches/patch-media_filters_vp9__parser.h
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- media/filters/vp9_parser.h.orig	2020-07-08 21:40:45.000000000 +0000
-+++ media/filters/vp9_parser.h
-@@ -14,6 +14,7 @@
- 
- #include <stddef.h>
- #include <stdint.h>
-+#include <unistd.h>
- #include <sys/types.h>
- 
- #include <memory>
diff --git a/chromium/patches/patch-media_gpu_buffer__validation.cc b/chromium/patches/patch-media_gpu_buffer__validation.cc
index 3eb50dbea8..fe63a132c5 100644
--- a/chromium/patches/patch-media_gpu_buffer__validation.cc
+++ b/chromium/patches/patch-media_gpu_buffer__validation.cc
@@ -1,31 +1,52 @@
 $NetBSD$
 
---- media/gpu/buffer_validation.cc.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/buffer_validation.cc.orig	2024-07-24 02:44:41.161219600 +0000
 +++ media/gpu/buffer_validation.cc
-@@ -12,7 +12,7 @@
+@@ -16,7 +16,7 @@
  #include "ui/gfx/geometry/size.h"
  #include "ui/gfx/gpu_memory_buffer.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include <drm_fourcc.h>
  #include <sys/types.h>
  #include <unistd.h>
- #endif  // defined(OS_LINUX)
-@@ -20,7 +20,7 @@
+@@ -29,7 +29,7 @@
  namespace media {
  
+ namespace {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #ifndef I915_FORMAT_MOD_4_TILED_MTL_MC_CCS
+ // TODO(b/271455200): Remove this definition once drm_fourcc.h contains it.
+ /*
+@@ -55,7 +55,7 @@ bool IsIntelMediaCompressedModifier(uint
+ }  // namespace
+ 
  bool GetFileSize(const int fd, size_t* size) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (fd < 0) {
-     VLOGF(1) << "Invalid file descriptor";
+     VLOG(1) << "Invalid file descriptor";
      return false;
-@@ -56,7 +56,7 @@ bool VerifyGpuMemoryBufferHandle(media::
-     VLOGF(1) << "Unexpected GpuMemoryBufferType: " << gmb_handle.type;
+@@ -109,14 +109,14 @@ bool VerifyGpuMemoryBufferHandle(
+     VLOG(1) << "Unsupported: " << pixel_format;
      return false;
    }
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   const size_t num_planes = media::VideoFrame::NumPlanes(pixel_format);
-   if (num_planes != gmb_handle.native_pixmap_handle.planes.size() ||
-       num_planes == 0) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   const uint64_t modifier = gmb_handle.native_pixmap_handle.modifier;
+   const bool is_intel_media_compressed_buffer =
+       IsIntelMediaCompressedModifier(modifier);
+   const bool is_intel_media_compression_enabled =
+ #if BUILDFLAG(IS_CHROMEOS)
+       base::FeatureList::IsEnabled(features::kEnableIntelMediaCompression);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       false;
+ #endif
+ 
diff --git a/chromium/patches/patch-media_gpu_chromeos_BUILD.gn b/chromium/patches/patch-media_gpu_chromeos_BUILD.gn
deleted file mode 100644
index c09f117d78..0000000000
--- a/chromium/patches/patch-media_gpu_chromeos_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/gpu/chromeos/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ media/gpu/chromeos/BUILD.gn
-@@ -8,7 +8,7 @@ import("//testing/test.gni")
- assert(use_v4l2_codec || use_vaapi)
- 
- # V4L2 or Vaapi imply the OS is Linux.
--assert(is_linux)
-+assert(is_linux || is_bsd)
- 
- # This target can depend on targets in //media/gpu/{v4l2,vaapi}.
- source_set("chromeos") {
diff --git a/chromium/patches/patch-media_gpu_chromeos_gl__image__processor__backend.cc b/chromium/patches/patch-media_gpu_chromeos_gl__image__processor__backend.cc
new file mode 100644
index 0000000000..e6092c6ca4
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_chromeos_gl__image__processor__backend.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/chromeos/gl_image_processor_backend.cc.orig	2024-07-24 02:44:41.161219600 +0000
++++ media/gpu/chromeos/gl_image_processor_backend.cc
+@@ -28,6 +28,10 @@
+ #include "ui/ozone/public/ozone_platform.h"
+ #include "ui/ozone/public/surface_factory_ozone.h"
+ 
++#ifndef GL_CONTEXT_LOST_KHR
++#define GL_CONTEXT_LOST_KHR 0x0507
++#endif
++
+ namespace media {
+ 
+ namespace {
diff --git a/chromium/patches/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc b/chromium/patches/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc
new file mode 100644
index 0000000000..4499f45164
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/chromeos/libyuv_image_processor_backend.cc.orig	2024-07-24 02:44:41.161219600 +0000
++++ media/gpu/chromeos/libyuv_image_processor_backend.cc
+@@ -48,7 +48,7 @@ static constexpr struct {
+ #define CONV(in, out, trans, result) \
+   {Fourcc::in, Fourcc::out, Transform::trans, SupportResult::result}
+     // Conversion.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     CONV(NV12, AR24, kConversion, Supported),
+ #endif
+     CONV(NV12, NV12, kConversion, Supported),
+@@ -415,7 +415,7 @@ int LibYUVImageProcessorBackend::DoConve
+           fr->GetWritableVisibleData(VideoFrame::Plane::kUV)), \
+       fr->stride(VideoFrame::Plane::kUV)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #define ARGB_DATA(fr)                                   \
+   fr->GetWritableVisibleData(VideoFrame::Plane::kARGB), \
+       fr->stride(VideoFrame::Plane::kARGB)
+@@ -577,7 +577,7 @@ int LibYUVImageProcessorBackend::DoConve
+     }
+   }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (output->format() == PIXEL_FORMAT_ARGB) {
+     if (input_config_.fourcc == Fourcc(Fourcc::NV12)) {
+       return LIBYUV_FUNC(NV12ToARGB, Y_UV_DATA(input),
diff --git a/chromium/patches/patch-media_gpu_chromeos_mailbox__video__frame__converter.cc b/chromium/patches/patch-media_gpu_chromeos_mailbox__video__frame__converter.cc
new file mode 100644
index 0000000000..50b2c1d750
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_chromeos_mailbox__video__frame__converter.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/chromeos/mailbox_video_frame_converter.cc.orig	2024-07-24 02:44:41.165220000 +0000
++++ media/gpu/chromeos/mailbox_video_frame_converter.cc
+@@ -67,7 +67,7 @@ viz::SharedImageFormat GetSharedImageFor
+                     << static_cast<int>(buffer_format);
+       NOTREACHED_NORETURN();
+   }
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // If format is true multiplanar format, we prefer external sampler on
+   // ChromeOS and Linux.
+   if (format.is_multi_plane()) {
diff --git a/chromium/patches/patch-media_gpu_chromeos_native__pixmap__frame__resource.cc b/chromium/patches/patch-media_gpu_chromeos_native__pixmap__frame__resource.cc
new file mode 100644
index 0000000000..61fc1551f9
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_chromeos_native__pixmap__frame__resource.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/chromeos/native_pixmap_frame_resource.cc.orig	2024-07-24 02:44:41.165220000 +0000
++++ media/gpu/chromeos/native_pixmap_frame_resource.cc
+@@ -154,7 +154,7 @@ scoped_refptr<NativePixmapFrameResource>
+   const bool is_intel_media_compression_enabled =
+ #if BUILDFLAG(IS_CHROMEOS)
+       base::FeatureList::IsEnabled(features::kEnableIntelMediaCompression);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       false;
+ #endif
+   CHECK(!is_intel_media_compressed_buffer ||
diff --git a/chromium/patches/patch-media_gpu_chromeos_platform__video__frame__utils.cc b/chromium/patches/patch-media_gpu_chromeos_platform__video__frame__utils.cc
new file mode 100644
index 0000000000..7e876dd6cd
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_chromeos_platform__video__frame__utils.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/chromeos/platform_video_frame_utils.cc.orig	2024-07-24 02:44:41.165220000 +0000
++++ media/gpu/chromeos/platform_video_frame_utils.cc
+@@ -68,7 +68,7 @@ static std::unique_ptr<ui::GbmDevice> Cr
+     const base::FilePath dev_path(FILE_PATH_LITERAL(
+         base::StrCat({drm_node_file_prefix, base::NumberToString(i)})));
+ 
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_V4L2_CODEC)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_V4L2_CODEC)
+     const bool is_render_node = base::Contains(drm_node_file_prefix, "render");
+ 
+     // TODO(b/313513760): don't guard base::File::FLAG_WRITE behind
+@@ -196,7 +196,7 @@ class GbmDeviceWrapper {
+     const bool is_intel_media_compression_enabled =
+ #if BUILDFLAG(IS_CHROMEOS)
+         base::FeatureList::IsEnabled(features::kEnableIntelMediaCompression);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+         false;
+ #endif
+     if (is_intel_media_compression_enabled) {
+@@ -350,7 +350,7 @@ scoped_refptr<VideoFrame> CreateVideoFra
+   const bool is_intel_media_compression_enabled =
+ #if BUILDFLAG(IS_CHROMEOS)
+       base::FeatureList::IsEnabled(features::kEnableIntelMediaCompression);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       false;
+ #endif
+ 
diff --git a/chromium/patches/patch-media_gpu_chromeos_video__decoder__pipeline.cc b/chromium/patches/patch-media_gpu_chromeos_video__decoder__pipeline.cc
new file mode 100644
index 0000000000..879c072742
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_chromeos_video__decoder__pipeline.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/chromeos/video_decoder_pipeline.cc.orig	2024-07-24 02:44:41.165220000 +0000
++++ media/gpu/chromeos/video_decoder_pipeline.cc
+@@ -1098,7 +1098,7 @@ VideoDecoderPipeline::PickDecoderOutputF
+   }
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_VAAPI)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_VAAPI)
+   // Linux should always use a custom allocator (to allocate buffers using
+   // libva) and a PlatformVideoFramePool.
+   CHECK(allocator.has_value());
+@@ -1107,7 +1107,7 @@ VideoDecoderPipeline::PickDecoderOutputF
+   // VideoFrame::StorageType of VideoFrame::STORAGE_DMABUFS.
+   main_frame_pool_->AsPlatformVideoFramePool()->SetCustomFrameAllocator(
+       *allocator, VideoFrame::STORAGE_DMABUFS);
+-#elif BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_V4L2_CODEC)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_V4L2_CODEC)
+   // Linux w/ V4L2 should not use a custom allocator
+   // Only tested with video_decode_accelerator_tests
+   // TODO(wenst@) Test with full Chromium Browser
+@@ -1295,7 +1295,7 @@ VideoDecoderPipeline::PickDecoderOutputF
+              << " VideoFrames";
+     auxiliary_frame_pool_->set_parent_task_runner(decoder_task_runner_);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     // The custom allocator creates frames backed by NativePixmap, which uses a
+     // VideoFrame::StorageType of VideoFrame::STORAGE_DMABUFS.
+     auxiliary_frame_pool_->AsPlatformVideoFramePool()->SetCustomFrameAllocator(
diff --git a/chromium/patches/patch-media_gpu_gpu__video__encode__accelerator__factory.cc b/chromium/patches/patch-media_gpu_gpu__video__encode__accelerator__factory.cc
new file mode 100644
index 0000000000..5b7b74852c
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_gpu__video__encode__accelerator__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/gpu_video_encode_accelerator_factory.cc.orig	2024-07-24 02:44:41.169220400 +0000
++++ media/gpu/gpu_video_encode_accelerator_factory.cc
+@@ -118,7 +118,7 @@ std::vector<VEAFactoryFunction> GetVEAFa
+     return vea_factory_functions;
+ 
+ #if BUILDFLAG(USE_VAAPI)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (base::FeatureList::IsEnabled(kVaapiVideoEncodeLinux))
+     vea_factory_functions.push_back(base::BindRepeating(&CreateVaapiVEA));
+ #else
diff --git a/chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc b/chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc
new file mode 100644
index 0000000000..4d36b4e724
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.cc
@@ -0,0 +1,50 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc.orig	2024-07-24 02:44:41.177221300 +0000
++++ media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc
+@@ -16,7 +16,9 @@
+ #include "media/gpu/vaapi/vaapi_wrapper.h"
+ #endif
+ 
++#if !BUILDFLAG(IS_BSD)
+ using sandbox::syscall_broker::BrokerFilePermission;
++#endif
+ 
+ // TODO(b/195769334): the hardware video decoding sandbox is really only useful
+ // when building with VA-API or V4L2 (otherwise, we're not really doing hardware
+@@ -32,6 +34,7 @@ using sandbox::syscall_broker::BrokerFil
+ namespace media {
+ namespace {
+ 
++#if !BUILDFLAG(IS_BSD)
+ void AllowAccessToRenderNodes(std::vector<BrokerFilePermission>& permissions,
+                               bool include_sys_dev_char,
+                               bool read_write) {
+@@ -172,6 +175,7 @@ bool HardwareVideoDecodingPreSandboxHook
+   NOTREACHED_NORETURN();
+ #endif  // BUILDFLAG(USE_V4L2_CODEC)
+ }
++#endif
+ 
+ }  // namespace
+ 
+@@ -187,6 +191,7 @@ bool HardwareVideoDecodingPreSandboxHook
+ //   (at least).
+ bool HardwareVideoDecodingPreSandboxHook(
+     sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+   using HardwareVideoDecodingProcessPolicy =
+       sandbox::policy::HardwareVideoDecodingProcessPolicy;
+   using PolicyType =
+@@ -232,6 +237,7 @@ bool HardwareVideoDecodingPreSandboxHook
+   // |permissions| is empty?
+   sandbox::policy::SandboxLinux::GetInstance()->StartBrokerProcess(
+       command_set, permissions, options);
++#endif
+   return true;
+ }
+ 
diff --git a/chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h b/chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h
new file mode 100644
index 0000000000..255ca90eb2
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_sandbox_hardware__video__decoding__sandbox__hook__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h.orig	2024-07-24 02:44:41.177221300 +0000
++++ media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h
+@@ -5,7 +5,13 @@
+ #ifndef MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_DECODING_SANDBOX_HOOK_LINUX_H_
+ #define MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_DECODING_SANDBOX_HOOK_LINUX_H_
+ 
++#include "build/build_config.h"
++
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ 
+ namespace media {
+ 
diff --git a/chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc b/chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc
new file mode 100644
index 0000000000..a4adf2f38e
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.cc
@@ -0,0 +1,32 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.cc.orig	2024-07-24 02:44:41.177221300 +0000
++++ media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.cc
+@@ -18,12 +18,15 @@
+ #include "media/gpu/v4l2/v4l2_device.h"
+ #endif
+ 
++#if !BUILDFLAG(IS_BSD)
+ using sandbox::syscall_broker::BrokerFilePermission;
++#endif
+ 
+ namespace media {
+ 
+ bool HardwareVideoEncodingPreSandboxHook(
+     sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+   sandbox::syscall_broker::BrokerCommandSet command_set;
+   std::vector<BrokerFilePermission> permissions;
+ 
+@@ -121,6 +124,7 @@ bool HardwareVideoEncodingPreSandboxHook
+     }
+   }
+ #endif
++#endif
+   return true;
+ }
+ 
diff --git a/chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h b/chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h
new file mode 100644
index 0000000000..088fffe1be
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_sandbox_hardware__video__encoding__sandbox__hook__linux.h
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h.orig	2024-07-24 02:44:41.177221300 +0000
++++ media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h
+@@ -5,7 +5,13 @@
+ #ifndef MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_ENCODING_SANDBOX_HOOK_LINUX_H_
+ #define MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_ENCODING_SANDBOX_HOOK_LINUX_H_
+ 
++#include "build/build_config.h"
++
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ 
+ namespace media {
+ 
+@@ -14,4 +20,4 @@ bool HardwareVideoEncodingPreSandboxHook
+ 
+ }  // namespace media
+ 
+-#endif  // MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_ENCODING_SANDBOX_HOOK_LINUX_H_
+\ No newline at end of file
++#endif  // MEDIA_GPU_SANDBOX_HARDWARE_VIDEO_ENCODING_SANDBOX_HOOK_LINUX_H_
diff --git a/chromium/patches/patch-media_gpu_vaapi_BUILD.gn b/chromium/patches/patch-media_gpu_vaapi_BUILD.gn
deleted file mode 100644
index 106f30c31e..0000000000
--- a/chromium/patches/patch-media_gpu_vaapi_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/gpu/vaapi/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ media/gpu/vaapi/BUILD.gn
-@@ -10,7 +10,7 @@ import("//tools/generate_stubs/rules.gni
- import("//ui/gl/features.gni")
- import("//ui/ozone/ozone.gni")
- 
--assert(is_linux)  # is_chromeos is a subset of is_linux
-+assert(is_linux && is_bsd)  # is_chromeos is a subset of is_linux
- assert(use_vaapi)
- 
- generate_stubs("libva_stubs") {
diff --git a/chromium/patches/patch-media_gpu_vaapi_vaapi__video__decoder.cc b/chromium/patches/patch-media_gpu_vaapi_vaapi__video__decoder.cc
new file mode 100644
index 0000000000..3e1ddec629
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_vaapi_vaapi__video__decoder.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/vaapi/vaapi_video_decoder.cc.orig	2024-07-24 02:44:41.213224600 +0000
++++ media/gpu/vaapi/vaapi_video_decoder.cc
+@@ -775,7 +775,7 @@ void VaapiVideoDecoder::ApplyResolutionC
+   const gfx::Size decoder_natural_size =
+       aspect_ratio_.GetNaturalSize(decoder_visible_rect);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   std::optional<DmabufVideoFramePool::CreateFrameCB> allocator =
+       base::BindRepeating(&AllocateCustomFrameProxy, weak_this_);
+   std::vector<ImageProcessor::PixelLayoutCandidate> candidates = {
diff --git a/chromium/patches/patch-media_gpu_vaapi_vaapi__wrapper.cc b/chromium/patches/patch-media_gpu_vaapi_vaapi__wrapper.cc
new file mode 100644
index 0000000000..9f31b192b0
--- /dev/null
+++ b/chromium/patches/patch-media_gpu_vaapi_vaapi__wrapper.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/gpu/vaapi/vaapi_wrapper.cc.orig	2024-07-24 02:44:41.217225000 +0000
++++ media/gpu/vaapi/vaapi_wrapper.cc
+@@ -72,7 +72,7 @@
+ using media_gpu_vaapi::kModuleVa_prot;
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/files/file_util.h"
+ #include "base/strings/string_split.h"
+ #endif
diff --git a/chromium/patches/patch-media_media__options.gni b/chromium/patches/patch-media_media__options.gni
index d7e37e8d71..820d577fb8 100644
--- a/chromium/patches/patch-media_media__options.gni
+++ b/chromium/patches/patch-media_media__options.gni
@@ -1,13 +1,25 @@
 $NetBSD$
 
---- media/media_options.gni.orig	2020-07-15 18:55:59.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/media_options.gni.orig	2024-07-24 02:44:41.233226500 +0000
 +++ media/media_options.gni
-@@ -155,7 +155,7 @@ declare_args() {
- # On Fuchsia, this is only enabled to build libclearkeycdm.so, the mojo CDM
- # service is not used.
- enable_library_cdms =
--    (is_linux && !is_chromecast) || is_mac || is_win || is_fuchsia
-+    ((is_linux || is_bsd) && !is_chromecast) || is_mac || is_win || is_fuchsia
+@@ -190,12 +190,15 @@ declare_args() {
+   # Enables runtime selection of ALSA library for audio.
+   use_alsa = false
  
- declare_args() {
-   # When enabled, this feature allows developers to use a runtime flag to
++  # Enable runtime selection of sndio(7)
++  use_sndio = false
++
+   # Alsa should be used on all non-Android, non-Mac POSIX systems - with the
+   # exception of CastOS desktop builds.
+   #
+   # TODO(crbug.com/1336055): Remove legacy target_cpu hack used for targeting
+   # desktop Chromecast builds.
+-  if (is_posix && !is_android && !is_apple &&
++  if (is_posix && !is_android && !is_apple && !is_bsd &&
+       (!is_castos || (target_cpu == "x86" || target_cpu == "x64") ||
+        is_cast_audio_only)) {
+     use_alsa = true
diff --git a/chromium/patches/patch-media_mojo_clients_mojo__video__encode__accelerator.cc b/chromium/patches/patch-media_mojo_clients_mojo__video__encode__accelerator.cc
deleted file mode 100644
index 66faf0a210..0000000000
--- a/chromium/patches/patch-media_mojo_clients_mojo__video__encode__accelerator.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- media/mojo/clients/mojo_video_encode_accelerator.cc.orig	2020-07-08 21:40:45.000000000 +0000
-+++ media/mojo/clients/mojo_video_encode_accelerator.cc
-@@ -132,7 +132,7 @@ void MojoVideoEncodeAccelerator::Encode(
-   DCHECK_EQ(num_planes, frame->layout().num_planes());
-   DCHECK(vea_.is_bound());
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // TODO(crbug.com/1003197): Remove this once we stop supporting STORAGE_DMABUF
-   // in VideoEncodeAccelerator.
-   if (frame->storage_type() == VideoFrame::STORAGE_DMABUFS) {
diff --git a/chromium/patches/patch-media_mojo_mojom_stable_BUILD.gn b/chromium/patches/patch-media_mojo_mojom_stable_BUILD.gn
new file mode 100644
index 0000000000..575ff93afa
--- /dev/null
+++ b/chromium/patches/patch-media_mojo_mojom_stable_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/mojo/mojom/stable/BUILD.gn.orig	2024-07-24 02:44:41.253228700 +0000
++++ media/mojo/mojom/stable/BUILD.gn
+@@ -196,7 +196,7 @@ source_set("unit_tests") {
+   } else if (use_v4l2_codec) {
+     deps += [ "//media/gpu/v4l2:v4l2_status" ]
+   }
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
+     sources += [
+       "mojom_traits_test_util.cc",
+       "mojom_traits_test_util.h",
diff --git a/chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc b/chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc
new file mode 100644
index 0000000000..ff3bacd8f9
--- /dev/null
+++ b/chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.cc.orig	2024-07-24 02:44:41.257228900 +0000
++++ media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.cc
+@@ -837,7 +837,7 @@ const gfx::GpuMemoryBufferId& StructTrai
+   return input.id;
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // static
+ gfx::NativePixmapHandle StructTraits<
+     media::stable::mojom::NativeGpuMemoryBufferHandleDataView,
+@@ -858,7 +858,7 @@ bool StructTraits<media::stable::mojom::
+ 
+   output->type = gfx::NATIVE_PIXMAP;
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (!data.ReadPlatformHandle(&output->native_pixmap_handle))
+     return false;
+   return true;
diff --git a/chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h b/chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h
new file mode 100644
index 0000000000..05dc23cabd
--- /dev/null
+++ b/chromium/patches/patch-media_mojo_mojom_stable_stable__video__decoder__types__mojom__traits.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.h.orig	2024-07-24 02:44:41.257228900 +0000
++++ media/mojo/mojom/stable/stable_video_decoder_types_mojom_traits.h
+@@ -690,7 +690,7 @@ struct StructTraits<media::stable::mojom
+   static const gfx::GpuMemoryBufferId& id(
+       const gfx::GpuMemoryBufferHandle& input);
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   static gfx::NativePixmapHandle platform_handle(
+       gfx::GpuMemoryBufferHandle& input);
+ #else
diff --git a/chromium/patches/patch-media_mojo_mojom_video__frame__mojom__traits.cc b/chromium/patches/patch-media_mojo_mojom_video__frame__mojom__traits.cc
index 0e747a14b4..1f22619765 100644
--- a/chromium/patches/patch-media_mojo_mojom_video__frame__mojom__traits.cc
+++ b/chromium/patches/patch-media_mojo_mojom_video__frame__mojom__traits.cc
@@ -1,31 +1,17 @@
 $NetBSD$
 
---- media/mojo/mojom/video_frame_mojom_traits.cc.orig	2020-07-08 21:40:45.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/mojo/mojom/video_frame_mojom_traits.cc.orig	2024-07-24 02:44:41.257228900 +0000
 +++ media/mojo/mojom/video_frame_mojom_traits.cc
-@@ -21,7 +21,7 @@
- #include "ui/gfx/mojom/buffer_types_mojom_traits.h"
+@@ -22,7 +22,7 @@
  #include "ui/gfx/mojom/color_space_mojom_traits.h"
+ #include "ui/gfx/mojom/hdr_metadata_mojom_traits.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "base/posix/eintr_wrapper.h"
- #endif  // defined(OS_LINUX)
- 
-@@ -63,7 +63,7 @@ media::mojom::VideoFrameDataPtr MakeVide
-             std::move(offsets)));
-   }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   if (input->storage_type() == media::VideoFrame::STORAGE_DMABUFS) {
-     std::vector<mojo::PlatformHandle> dmabuf_fds;
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
  
-@@ -166,7 +166,7 @@ bool StructTraits<media::mojom::VideoFra
-         shared_buffer_data.TakeFrameData(),
-         shared_buffer_data.frame_data_size(), std::move(offsets),
-         std::move(strides), timestamp);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   } else if (data.is_dmabuf_data()) {
-     media::mojom::DmabufVideoFrameDataDataView dmabuf_data;
-     data.GetDmabufDataDataView(&dmabuf_data);
diff --git a/chromium/patches/patch-media_mojo_services_gpu__mojo__media__client.cc b/chromium/patches/patch-media_mojo_services_gpu__mojo__media__client.cc
deleted file mode 100644
index c59fbe2f10..0000000000
--- a/chromium/patches/patch-media_mojo_services_gpu__mojo__media__client.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- media/mojo/services/gpu_mojo_media_client.cc.orig	2020-07-08 21:41:48.000000000 +0000
-+++ media/mojo/services/gpu_mojo_media_client.cc
-@@ -63,7 +63,7 @@ namespace media {
- namespace {
- 
- #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || \
--    defined(OS_WIN) || defined(OS_LINUX)
-+    defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
- gpu::CommandBufferStub* GetCommandBufferStub(
-     scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner,
-     base::WeakPtr<MediaGpuChannelManager> media_gpu_channel_manager,
-@@ -280,7 +280,7 @@ std::unique_ptr<VideoDecoder> GpuMojoMed
-                                 command_buffer_id->route_id));
-       }
- 
--#elif defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
-+#elif defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
- #if defined(OS_WIN)
-       // Don't instantiate the DXVA decoder if it's not supported.
-       if (gpu_workarounds_.disable_dxva_video_decoder)
diff --git a/chromium/patches/patch-media_video_fake__gpu__memory__buffer.cc b/chromium/patches/patch-media_video_fake__gpu__memory__buffer.cc
index ccfa61651c..704cef5ed3 100644
--- a/chromium/patches/patch-media_video_fake__gpu__memory__buffer.cc
+++ b/chromium/patches/patch-media_video_fake__gpu__memory__buffer.cc
@@ -1,40 +1,44 @@
 $NetBSD$
 
---- media/video/fake_gpu_memory_buffer.cc.orig	2020-07-08 21:40:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/video/fake_gpu_memory_buffer.cc.orig	2024-07-24 02:44:41.641266000 +0000
 +++ media/video/fake_gpu_memory_buffer.cc
-@@ -10,7 +10,7 @@
+@@ -9,7 +9,7 @@
  #include "media/base/format_utils.h"
  #include "media/base/video_frame.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include <fcntl.h>
  #include <sys/stat.h>
  #include <sys/types.h>
-@@ -48,7 +48,7 @@ class FakeGpuMemoryBufferImpl : public g
+@@ -52,7 +52,7 @@ class FakeGpuMemoryBufferImpl : public g
  
  }  // namespace
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  base::ScopedFD GetDummyFD() {
    base::ScopedFD fd(open("/dev/zero", O_RDWR));
    DCHECK(fd.is_valid());
-@@ -73,7 +73,7 @@ FakeGpuMemoryBuffer::FakeGpuMemoryBuffer
-   static base::NoDestructor<base::AtomicSequenceNumber> buffer_id_generator;
-   handle_.id = gfx::GpuMemoryBufferId(buffer_id_generator->GetNext());
+@@ -82,7 +82,7 @@ FakeGpuMemoryBuffer::FakeGpuMemoryBuffer
+   static base::AtomicSequenceNumber buffer_id_generator;
+   handle_.id = gfx::GpuMemoryBufferId(buffer_id_generator.GetNext());
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    for (size_t i = 0; i < VideoFrame::NumPlanes(video_pixel_format_); i++) {
      const gfx::Size plane_size_in_bytes =
          VideoFrame::PlaneSize(video_pixel_format_, i, size_);
-@@ -129,7 +129,7 @@ gfx::GpuMemoryBufferHandle FakeGpuMemory
+@@ -144,7 +144,7 @@ gfx::GpuMemoryBufferHandle FakeGpuMemory
    gfx::GpuMemoryBufferHandle handle;
    handle.type = gfx::NATIVE_PIXMAP;
    handle.id = handle_.id;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
    handle.native_pixmap_handle =
        gfx::CloneHandleForIPC(handle_.native_pixmap_handle);
  #endif
diff --git a/chromium/patches/patch-media_video_gpu__memory__buffer__video__frame__pool.cc b/chromium/patches/patch-media_video_gpu__memory__buffer__video__frame__pool.cc
index 2c034fec74..e3792b3c34 100644
--- a/chromium/patches/patch-media_video_gpu__memory__buffer__video__frame__pool.cc
+++ b/chromium/patches/patch-media_video_gpu__memory__buffer__video__frame__pool.cc
@@ -1,13 +1,35 @@
 $NetBSD$
 
---- media/video/gpu_memory_buffer_video_frame_pool.cc.orig	2020-07-08 21:40:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/video/gpu_memory_buffer_video_frame_pool.cc.orig	2024-07-24 02:44:41.641266000 +0000
 +++ media/video/gpu_memory_buffer_video_frame_pool.cc
-@@ -573,7 +573,7 @@ void GpuMemoryBufferVideoFramePool::Pool
+@@ -107,7 +107,7 @@ class GpuMemoryBufferVideoFramePool::Poo
+                 gpu::SHARED_IMAGE_USAGE_RASTER_READ |
+                 gpu::SHARED_IMAGE_USAGE_DISPLAY_READ |
+                 gpu::SHARED_IMAGE_USAGE_SCANOUT;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+     // TODO(crbug.com/40194712): Always add the flag once the
+     // OzoneImageBacking is by default turned on.
+     if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+@@ -802,7 +802,7 @@ void GpuMemoryBufferVideoFramePool::Pool
    }
  
    bool is_software_backed_video_frame = !video_frame->HasTextures();
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    is_software_backed_video_frame &= !video_frame->HasDmaBufs();
  #endif
  
+@@ -1347,7 +1347,7 @@ scoped_refptr<VideoFrame> GpuMemoryBuffe
+         media::IOSurfaceIsWebGPUCompatible(handle.io_surface.get());
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     is_webgpu_compatible =
+         handle.native_pixmap_handle.supports_zero_copy_webgpu_import;
+ #endif
diff --git a/chromium/patches/patch-media_video_video__encode__accelerator__adapter.cc b/chromium/patches/patch-media_video_video__encode__accelerator__adapter.cc
new file mode 100644
index 0000000000..9727c57126
--- /dev/null
+++ b/chromium/patches/patch-media_video_video__encode__accelerator__adapter.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/video/video_encode_accelerator_adapter.cc.orig	2024-07-24 02:44:41.653267400 +0000
++++ media/video/video_encode_accelerator_adapter.cc
+@@ -158,7 +158,7 @@ VideoEncodeAccelerator::Config SetUpVeaC
+   if (is_rgb)
+     config.input_format = PIXEL_FORMAT_I420;
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (format != PIXEL_FORMAT_I420 ||
+       !VideoFrame::IsStorageTypeMappable(storage_type)) {
+     // ChromeOS/Linux hardware video encoders supports I420 on-memory
+@@ -486,7 +486,7 @@ void VideoEncodeAcceleratorAdapter::Init
+       SetUpVeaConfig(profile_, options_, format, first_frame->storage_type(),
+                      supported_rc_modes_, required_encoder_type_);
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Linux/ChromeOS require a special configuration to use dmabuf storage.
+   // We need to keep sending frames the same way the first frame was sent.
+   // Other platforms will happily mix GpuMemoryBuffer storage with regular
diff --git a/chromium/patches/patch-media_video_video__encode__accelerator__adapter__test.cc b/chromium/patches/patch-media_video_video__encode__accelerator__adapter__test.cc
new file mode 100644
index 0000000000..0a3c4bbdd6
--- /dev/null
+++ b/chromium/patches/patch-media_video_video__encode__accelerator__adapter__test.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/video/video_encode_accelerator_adapter_test.cc.orig	2024-07-24 02:44:41.653267400 +0000
++++ media/video/video_encode_accelerator_adapter_test.cc
+@@ -461,7 +461,7 @@ TEST_P(VideoEncodeAcceleratorAdapterTest
+       CreateGreenFrame(large_size, pixel_format, base::Milliseconds(2));
+ 
+   VideoPixelFormat expected_input_format = PIXEL_FORMAT_I420;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (pixel_format != PIXEL_FORMAT_I420 || !small_frame->IsMappable())
+     expected_input_format = PIXEL_FORMAT_NV12;
+ #endif
diff --git a/chromium/patches/patch-media_webrtc_audio__processor.cc b/chromium/patches/patch-media_webrtc_audio__processor.cc
new file mode 100644
index 0000000000..9bc4722598
--- /dev/null
+++ b/chromium/patches/patch-media_webrtc_audio__processor.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/webrtc/audio_processor.cc.orig	2024-07-24 02:44:41.653267400 +0000
++++ media/webrtc/audio_processor.cc
+@@ -513,7 +513,7 @@ std::optional<double> AudioProcessor::Pr
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+   DCHECK_LE(volume, 1.0);
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \
+-    BUILDFLAG(IS_OPENBSD)
++    BUILDFLAG(IS_BSD)
+   // We have a special situation on Linux where the microphone volume can be
+   // "higher than maximum". The input volume slider in the sound preference
+   // allows the user to set a scaling that is higher than 100%. It means that
diff --git a/chromium/patches/patch-media_webrtc_helpers.cc b/chromium/patches/patch-media_webrtc_helpers.cc
new file mode 100644
index 0000000000..a56f6e15d0
--- /dev/null
+++ b/chromium/patches/patch-media_webrtc_helpers.cc
@@ -0,0 +1,25 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/webrtc/helpers.cc.orig	2024-07-24 02:44:41.653267400 +0000
++++ media/webrtc/helpers.cc
+@@ -41,14 +41,14 @@ void ConfigAutomaticGainControl(const Au
+     return;
+   }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   const bool kInputVolumeAdjustmentOverrideAllowed = true;
+ #elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+   const bool kInputVolumeAdjustmentOverrideAllowed = false;
+ #endif
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   // Use AGC2 digital and input volume controller.
+   // TODO(crbug.com/40872787): Remove `kWebRtcAllowInputVolumeAdjustment` safely
+   // and set `input_volume_controller.enabled` true.
diff --git a/chromium/patches/patch-media_webrtc_helpers__unittests.cc b/chromium/patches/patch-media_webrtc_helpers__unittests.cc
new file mode 100644
index 0000000000..51c58ec443
--- /dev/null
+++ b/chromium/patches/patch-media_webrtc_helpers__unittests.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- media/webrtc/helpers_unittests.cc.orig	2024-07-24 02:44:41.653267400 +0000
++++ media/webrtc/helpers_unittests.cc
+@@ -40,7 +40,7 @@ TEST(CreateWebRtcAudioProcessingModuleTe
+   EXPECT_TRUE(config.echo_canceller.enabled);
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   EXPECT_FALSE(config.gain_controller1.enabled);
+   EXPECT_TRUE(config.gain_controller2.enabled);
+ #elif BUILDFLAG(IS_CASTOS) || BUILDFLAG(IS_CAST_ANDROID)
+@@ -73,7 +73,7 @@ TEST(CreateWebRtcAudioProcessingModuleTe
+ }
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ TEST(CreateWebRtcAudioProcessingModuleTest,
+      InputVolumeAdjustmentEnabledWithAgc2) {
+   ::base::test::ScopedFeatureList feature_list;
+@@ -89,7 +89,7 @@ TEST(CreateWebRtcAudioProcessingModuleTe
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
+         // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ TEST(CreateWebRtcAudioProcessingModuleTest,
+      CanDisableInputVolumeAdjustmentWithAgc2) {
+   ::base::test::ScopedFeatureList feature_list;
+@@ -106,7 +106,7 @@ TEST(CreateWebRtcAudioProcessingModuleTe
+ #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ TEST(CreateWebRtcAudioProcessingModuleTest,
+      OnlyOneInputVolumeControllerEnabledOnDesktopPlatforms) {
+   auto config = CreateApmGetConfig(
diff --git a/chromium/patches/patch-mojo_core_BUILD.gn b/chromium/patches/patch-mojo_core_BUILD.gn
index dcef926cb6..01174cc2eb 100644
--- a/chromium/patches/patch-mojo_core_BUILD.gn
+++ b/chromium/patches/patch-mojo_core_BUILD.gn
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- mojo/core/BUILD.gn.orig	2020-06-25 09:31:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- mojo/core/BUILD.gn.orig	2024-07-24 02:44:41.653267400 +0000
 +++ mojo/core/BUILD.gn
-@@ -178,7 +178,7 @@ core_impl_source_set("impl_for_embedder"
-   for_shared_library = false
- }
- 
--if (is_chromeos || is_linux || is_android || is_win) {
-+if (is_chromeos || is_linux || is_android || is_win || is_bsd) {
-   core_impl_source_set("impl_for_shared_library") {
-     for_shared_library = true
-   }
-@@ -239,7 +239,7 @@ if (is_chromeos || is_linux || is_androi
-                             root_build_dir) ]
-   }
+@@ -166,7 +166,7 @@ template("core_impl_source_set") {
+         ]
+       }
  
--  if (is_chromeos || is_linux || is_win) {
-+  if (is_chromeos || is_linux || is_win || is_bsd) {
-     test("mojo_core_unittests") {
-       sources = [
-         "mojo_core_unittest.cc",
+-      if ((is_linux || is_chromeos || is_android) && !is_nacl) {
++      if ((is_linux || is_chromeos || is_android) && !is_nacl && !is_bsd) {
+         sources += [
+           "channel_linux.cc",
+           "channel_linux.h",
diff --git a/chromium/patches/patch-mojo_core_channel.cc b/chromium/patches/patch-mojo_core_channel.cc
new file mode 100644
index 0000000000..2c44559869
--- /dev/null
+++ b/chromium/patches/patch-mojo_core_channel.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- mojo/core/channel.cc.orig	2024-07-24 02:44:41.657267800 +0000
++++ mojo/core/channel.cc
+@@ -71,7 +71,11 @@ const size_t kMaxUnusedReadBufferCapacit
+ // Fuchsia: The zx_channel_write() API supports up to 64 handles.
+ const size_t kMaxAttachedHandles = 64;
+ 
++#if defined(__i386__) && defined(OS_FREEBSD)
++const size_t kChannelMessageAlignment = 4;
++#else
+ static_assert(alignof(std::max_align_t) >= kChannelMessageAlignment, "");
++#endif
+ Channel::AlignedBuffer MakeAlignedBuffer(size_t size) {
+   // Generic allocators (such as malloc) return a pointer that is suitably
+   // aligned for storing any type of object with a fundamental alignment
diff --git a/chromium/patches/patch-mojo_core_embedder_features.h b/chromium/patches/patch-mojo_core_embedder_features.h
new file mode 100644
index 0000000000..3d528b4e10
--- /dev/null
+++ b/chromium/patches/patch-mojo_core_embedder_features.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- mojo/core/embedder/features.h.orig	2024-07-24 02:44:41.665268400 +0000
++++ mojo/core/embedder/features.h
+@@ -16,7 +16,7 @@ namespace core {
+ 
+ #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && \
+     !BUILDFLAG(MOJO_USE_APPLE_CHANNEL)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(MOJO_CORE_EMBEDDER_FEATURES)
+ BASE_DECLARE_FEATURE(kMojoLinuxChannelSharedMem);
+ 
diff --git a/chromium/patches/patch-mojo_core_test_BUILD.gn b/chromium/patches/patch-mojo_core_test_BUILD.gn
deleted file mode 100644
index 16d5b4045e..0000000000
--- a/chromium/patches/patch-mojo_core_test_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- mojo/core/test/BUILD.gn.orig	2020-07-15 18:55:59.000000000 +0000
-+++ mojo/core/test/BUILD.gn
-@@ -47,7 +47,7 @@ source_set("run_all_unittests") {
-     "//testing/gtest",
-   ]
- 
--  if (is_linux && !is_component_build) {
-+  if ((is_linux || is_bsd) && !is_component_build) {
-     public_configs = [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-   }
- }
-@@ -65,7 +65,7 @@ source_set("run_all_perftests") {
- 
-   sources = [ "run_all_perftests.cc" ]
- 
--  if (is_linux && !is_component_build) {
-+  if ((is_linux || is_bsd) && !is_component_build) {
-     public_configs = [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-   }
- }
diff --git a/chromium/patches/patch-mojo_public_c_system_thunks.cc b/chromium/patches/patch-mojo_public_c_system_thunks.cc
index 02721d1728..9a49a189d2 100644
--- a/chromium/patches/patch-mojo_public_c_system_thunks.cc
+++ b/chromium/patches/patch-mojo_public_c_system_thunks.cc
@@ -1,40 +1,44 @@
 $NetBSD$
 
---- mojo/public/c/system/thunks.cc.orig	2020-07-08 21:40:46.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- mojo/public/c/system/thunks.cc.orig	2024-07-24 02:44:41.685270300 +0000
 +++ mojo/public/c/system/thunks.cc
-@@ -20,7 +20,7 @@
- #include "mojo/public/c/system/core.h"
- #include "mojo/public/c/system/macros.h"
+@@ -25,7 +25,7 @@
+ #include "mojo/public/c/system/message_pipe.h"
  
--#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
  #include "base/environment.h"
  #include "base/files/file_path.h"
- #include "base/optional.h"
-@@ -68,7 +68,7 @@ class CoreLibraryInitializer {
-   ~CoreLibraryInitializer() = default;
+ #include "base/scoped_native_library.h"
+@@ -72,7 +72,7 @@ class CoreLibraryInitializer {
  
    MojoResult LoadLibrary(base::FilePath library_path) {
--#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
      if (library_ && library_->is_valid())
        return MOJO_RESULT_OK;
  
-@@ -82,7 +82,7 @@ class CoreLibraryInitializer {
+@@ -86,7 +86,7 @@ class CoreLibraryInitializer {
  
      if (library_path.empty()) {
        // Default to looking for the library in the current working directory.
--#if defined(OS_CHROMEOS) || defined(OS_LINUX)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
        const base::FilePath::CharType kDefaultLibraryPathValue[] =
            FILE_PATH_LITERAL("./libmojo_core.so");
- #elif defined(OS_WIN)
-@@ -132,7 +132,7 @@ class CoreLibraryInitializer {
-   }
+ #elif BUILDFLAG(IS_FUCHSIA)
+@@ -142,7 +142,7 @@ class CoreLibraryInitializer {
  
   private:
--#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
-   base::Optional<base::ScopedNativeLibrary> library_;
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   std::optional<base::ScopedNativeLibrary> library_;
  #endif
  };
diff --git a/chromium/patches/patch-mojo_public_cpp_platform_socket__utils__posix.cc b/chromium/patches/patch-mojo_public_cpp_platform_socket__utils__posix.cc
index caeb980896..796304925a 100644
--- a/chromium/patches/patch-mojo_public_cpp_platform_socket__utils__posix.cc
+++ b/chromium/patches/patch-mojo_public_cpp_platform_socket__utils__posix.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- mojo/public/cpp/platform/socket_utils_posix.cc.orig	2020-07-15 18:55:59.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- mojo/public/cpp/platform/socket_utils_posix.cc.orig	2024-07-24 02:44:41.717273500 +0000
 +++ mojo/public/cpp/platform/socket_utils_posix.cc
 @@ -29,7 +29,7 @@ bool IsRecoverableError() {
  }
  
  bool GetPeerEuid(base::PlatformFile fd, uid_t* peer_euid) {
--#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
-+#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
    uid_t socket_euid;
    gid_t socket_gid;
    if (getpeereid(fd, &socket_euid, &socket_gid) < 0) {
diff --git a/chromium/patches/patch-mojo_public_js_mojo__bindings__resources.grd b/chromium/patches/patch-mojo_public_js_mojo__bindings__resources.grd
deleted file mode 100644
index 33aa7f3275..0000000000
--- a/chromium/patches/patch-mojo_public_js_mojo__bindings__resources.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- mojo/public/js/mojo_bindings_resources.grd.orig	2020-07-08 21:41:48.000000000 +0000
-+++ mojo/public/js/mojo_bindings_resources.grd
-@@ -70,7 +70,7 @@
-           use_base_dir="false"
-           type="BINDATA"
-           compress="gzip" />
--      <if expr="is_win or is_macosx or is_linux or is_android">
-+      <if expr="is_win or is_macosx or is_posix or is_android">
-         <include name="IDR_MOJO_TIME_MOJOM_HTML"
-             file="${root_gen_dir}/mojo/public/mojom/base/time.mojom.html"
-             use_base_dir="false"
diff --git a/chromium/patches/patch-mojo_public_tools_bindings_mojom.gni b/chromium/patches/patch-mojo_public_tools_bindings_mojom.gni
index 70045ff985..04402f1c96 100644
--- a/chromium/patches/patch-mojo_public_tools_bindings_mojom.gni
+++ b/chromium/patches/patch-mojo_public_tools_bindings_mojom.gni
@@ -1,22 +1,30 @@
 $NetBSD$
 
---- mojo/public/tools/bindings/mojom.gni.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- mojo/public/tools/bindings/mojom.gni.orig	2024-07-24 02:44:41.765278000 +0000
 +++ mojo/public/tools/bindings/mojom.gni
-@@ -62,7 +62,7 @@ declare_args() {
- # check |target_os| explicitly, as it's consistent across all toolchains.
- enable_scrambled_message_ids =
-     enable_mojom_message_id_scrambling &&
--    (is_mac || is_win || (is_linux && !is_chromeos && !is_chromecast &&
-+    (is_mac || is_win || ((is_linux || is_bsd) && !is_chromeos && !is_chromecast &&
-                           !chromeos_is_browser_only) ||
-      ((enable_nacl || is_nacl || is_nacl_nonsfi) &&
-       (target_os != "chromeos" && !chromeos_is_browser_only)))
-@@ -646,7 +646,7 @@ template("mojom") {
-       enabled_features += [ "is_fuchsia" ]
-     } else if (is_ios) {
-       enabled_features += [ "is_ios" ]
--    } else if (is_linux) {
-+    } else if (is_linux || is_bsd) {
-       enabled_features += [ "is_linux" ]
-     } else if (is_mac) {
-       enabled_features += [ "is_mac" ]
+@@ -762,6 +762,21 @@ template("mojom") {
+       enabled_features += [ "is_apple" ]
+     }
+ 
++    if (is_openbsd) {
++      enabled_features += [ "is_openbsd" ]
++      enabled_features += [ "is_bsd" ]
++    }
++
++    if (is_netbsd) {
++      enabled_features += [ "is_netbsd" ]
++      enabled_features += [ "is_bsd" ]
++    }
++
++    if (is_freebsd) {
++      enabled_features += [ "is_freebsd" ]
++      enabled_features += [ "is_bsd" ]
++    }
++
+     action(parser_target_name) {
+       allow_remote = true
+ 
diff --git a/chromium/patches/patch-net_BUILD.gn b/chromium/patches/patch-net_BUILD.gn
index 85a8954ee3..7ea91ce6c6 100644
--- a/chromium/patches/patch-net_BUILD.gn
+++ b/chromium/patches/patch-net_BUILD.gn
@@ -1,62 +1,101 @@
 $NetBSD$
 
---- net/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/BUILD.gn.orig	2024-07-24 02:44:42.137314300 +0000
 +++ net/BUILD.gn
-@@ -1234,7 +1234,7 @@ component("net") {
-       ]
-     }
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources += [
-         "base/network_change_notifier_linux.cc",
-         "base/network_change_notifier_linux.h",
-@@ -1253,6 +1253,12 @@ component("net") {
-       ]
-     }
- 
-+    if (is_bsd) {
-+      sources += [
-+        "base/platform_mime_util_linux.cc",
-+      ]
-+    }
+@@ -123,7 +123,7 @@ net_configs = [
+   "//build/config/compiler:wexit_time_destructors",
+ ]
+ 
+-if (is_linux || is_chromeos) {
++if ((is_linux || is_chromeos) && !is_bsd) {
+   net_configs += [ "//build/config/linux:libresolv" ]
+ }
+ 
+@@ -1212,6 +1212,19 @@ component("net") {
+     ]
+   }
+ 
++  if (is_bsd) {
++    sources -= [
++      "base/address_map_cache_linux.cc",
++      "base/address_map_cache_linux.h",
++      "base/address_map_linux.cc",
++      "base/address_map_linux.h",
++      "base/address_tracker_linux.cc",
++      "base/address_tracker_linux.h",
++      "base/network_change_notifier_linux.cc",
++      "base/network_interfaces_linux.cc",
++    ]
++  }   
++
+   if (is_mac) {
+     sources += [
+       "base/network_notification_thread_mac.cc",
+@@ -1371,7 +1384,7 @@ component("net") {
+   }
+ 
+   # Use getifaddrs() on POSIX platforms, except Linux.
+-  if (is_posix && !is_linux && !is_chromeos) {
++  if ((is_posix && !is_linux && !is_chromeos) || is_bsd) {
+     sources += [
+       "base/network_interfaces_getifaddrs.cc",
+       "base/network_interfaces_getifaddrs.h",
+@@ -2031,7 +2044,7 @@ static_library("test_support") {
+     "url_request/url_request_test_util.h",
+   ]
+ 
+-  if (is_linux || is_chromeos || is_android) {
++  if ((is_linux || is_chromeos || is_android)  && !is_bsd) {
+     sources += [
+       "base/address_tracker_linux_test_util.cc",
+       "base/address_tracker_linux_test_util.h",
+@@ -2853,14 +2866,14 @@ test("net_unittests") {
+     ]
+   }
+ 
+-  if (is_linux) {
++  if (is_linux && !is_bsd) {
+     sources += [
+       "base/network_change_notifier_linux_unittest.cc",
+       "proxy_resolution/proxy_config_service_linux_unittest.cc",
+     ]
+   }
+ 
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
+     sources += [
+       "base/address_tracker_linux_unittest.cc",
+       "base/network_interfaces_linux_unittest.cc",
+@@ -2948,6 +2961,10 @@ test("net_unittests") {
+     ]
+   }
+ 
++  if (is_bsd) {
++    deps += [ "//sandbox/policy" ]
++  }
 +
-     if (is_mac) {
-       sources += [
-         "base/network_notification_thread_mac.cc",
-@@ -1383,7 +1389,7 @@ component("net") {
-       }
-     }
- 
--    if (is_android || is_chromeos) {
-+    if (is_android || is_chromeos || is_bsd) {
-       sources += [
-         "base/network_change_notifier_posix.cc",
-         "base/network_change_notifier_posix.h",
-@@ -1416,7 +1422,7 @@ component("net") {
-     }
- 
-     # Use getifaddrs() on POSIX platforms, except Linux and Android.
--    if (is_posix && !is_linux && !is_android) {
-+    if (is_posix && ((!is_linux && !is_android) || is_bsd)) {
-       sources += [
-         "base/network_interfaces_getifaddrs.cc",
-         "base/network_interfaces_getifaddrs.h",
-@@ -4545,7 +4551,7 @@ test("net_unittests") {
-     sources += [ "socket/udp_socket_posix_unittest.cc" ]
-   }
- 
--  if (is_android || is_chromeos) {
-+  if (is_android || is_chromeos || is_bsd) {
-     sources += [ "base/network_change_notifier_posix_unittest.cc" ]
-   }
- 
-@@ -4750,7 +4756,7 @@ test("net_unittests") {
-   }
- 
-   # Use getifaddrs() on POSIX platforms, except Linux and Android.
--  if (is_posix && !is_linux && !is_android) {
-+  if (is_posix && ((!is_linux && !is_android) || is_bsd)) {
+   if (enable_websockets) {
+     deps += [ "//net/server:tests" ]
+   }
+@@ -3008,7 +3025,7 @@ test("net_unittests") {
+     ]
+   }
+ 
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
+     sources += [ "tools/quic/quic_simple_server_test.cc" ]
+   }
+ 
+@@ -3147,7 +3164,7 @@ test("net_unittests") {
+   }
+ 
+   # Use getifaddrs() on POSIX platforms, except Linux.
+-  if (is_posix && !is_linux && !is_chromeos) {
++  if (is_posix && !is_linux && !is_chromeos && !is_bsd) {
      sources += [ "base/network_interfaces_getifaddrs_unittest.cc" ]
    }
  
diff --git a/chromium/patches/patch-net_base_address__tracker__linux.cc b/chromium/patches/patch-net_base_address__tracker__linux.cc
deleted file mode 100644
index c4b440e11c..0000000000
--- a/chromium/patches/patch-net_base_address__tracker__linux.cc
+++ /dev/null
@@ -1,75 +0,0 @@
-$NetBSD$
-
---- net/base/address_tracker_linux.cc.orig	2020-07-08 21:40:46.000000000 +0000
-+++ net/base/address_tracker_linux.cc
-@@ -5,7 +5,9 @@
- #include "net/base/address_tracker_linux.h"
- 
- #include <errno.h>
-+#if !defined(OS_BSD)
- #include <linux/if.h>
-+#endif
- #include <stdint.h>
- #include <sys/ioctl.h>
- #include <utility>
-@@ -177,6 +179,7 @@ AddressTrackerLinux::AddressTrackerLinux
- AddressTrackerLinux::~AddressTrackerLinux() = default;
- 
- void AddressTrackerLinux::Init() {
-+#if !defined(OS_BSD)
-   netlink_fd_.reset(socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE));
-   if (!netlink_fd_.is_valid()) {
-     PLOG(ERROR) << "Could not create NETLINK socket";
-@@ -272,6 +275,7 @@ void AddressTrackerLinux::AbortAndForceO
-   connection_type_initialized_cv_.Broadcast();
- }
- 
-+#if !defined(OS_BSD)
- AddressTrackerLinux::AddressMap AddressTrackerLinux::GetAddressMap() const {
-   AddressTrackerAutoLock lock(*this, address_map_lock_);
-   return address_map_;
-@@ -290,6 +294,7 @@ bool AddressTrackerLinux::IsInterfaceIgn
-   const char* interface_name = get_interface_name_(interface_index, buf);
-   return ignored_interfaces_.find(interface_name) != ignored_interfaces_.end();
- }
-+#endif
- 
- NetworkChangeNotifier::ConnectionType
- AddressTrackerLinux::GetCurrentConnectionType() {
-@@ -348,6 +353,7 @@ void AddressTrackerLinux::HandleMessage(
-                                         bool* address_changed,
-                                         bool* link_changed,
-                                         bool* tunnel_changed) {
-+#if !defined(OS_BSD)
-   DCHECK(buffer);
-   // Note that NLMSG_NEXT decrements |length| to reflect the number of bytes
-   // remaining in |buffer|.
-@@ -460,6 +466,10 @@ void AddressTrackerLinux::HandleMessage(
-         break;
-     }
-   }
-+#else
-+  NOTIMPLEMENTED();
-+  AbortAndFOrceOnline();
-+#endif
- }
- 
- void AddressTrackerLinux::OnFileCanReadWithoutBlocking() {
-@@ -487,6 +497,7 @@ bool AddressTrackerLinux::IsTunnelInterf
- }
- 
- void AddressTrackerLinux::UpdateCurrentConnectionType() {
-+#if !defined(OS_BSD)
-   AddressTrackerLinux::AddressMap address_map = GetAddressMap();
-   std::unordered_set<int> online_links = GetOnlineLinks();
- 
-@@ -512,6 +523,9 @@ void AddressTrackerLinux::UpdateCurrentC
- 
-   AddressTrackerAutoLock lock(*this, connection_type_lock_);
-   current_connection_type_ = type;
-+#else
-+  NOTIMPLEMENTED();
-+#endif
- }
- 
- int AddressTrackerLinux::GetThreadsWaitingForConnectionTypeInitForTesting() {
diff --git a/chromium/patches/patch-net_base_address__tracker__linux.h b/chromium/patches/patch-net_base_address__tracker__linux.h
deleted file mode 100644
index 884c48c9a5..0000000000
--- a/chromium/patches/patch-net_base_address__tracker__linux.h
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- net/base/address_tracker_linux.h.orig	2020-07-08 21:40:46.000000000 +0000
-+++ net/base/address_tracker_linux.h
-@@ -6,10 +6,6 @@
- #define NET_BASE_ADDRESS_TRACKER_LINUX_H_
- 
- #include <sys/socket.h>  // Needed to include netlink.
--// Mask superfluous definition of |struct net|. This is fixed in Linux 2.6.38.
--#define net net_kernel
--#include <linux/rtnetlink.h>
--#undef net
- #include <stddef.h>
- 
- #include <map>
diff --git a/chromium/patches/patch-net_base_address__tracker__linux__unittest.cc b/chromium/patches/patch-net_base_address__tracker__linux__unittest.cc
deleted file mode 100644
index 3f7f0a1741..0000000000
--- a/chromium/patches/patch-net_base_address__tracker__linux__unittest.cc
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- net/base/address_tracker_linux_unittest.cc.orig	2020-07-15 18:56:00.000000000 +0000
-+++ net/base/address_tracker_linux_unittest.cc
-@@ -4,7 +4,11 @@
- 
- #include "net/base/address_tracker_linux.h"
- 
-+#if defined(OS_LINUX)
- #include <linux/if.h>
-+#else
-+#include <net/if.h>
-+#endif
- 
- #include <memory>
- #include <unordered_set>
diff --git a/chromium/patches/patch-net_base_features.cc b/chromium/patches/patch-net_base_features.cc
new file mode 100644
index 0000000000..b1387befb2
--- /dev/null
+++ b/chromium/patches/patch-net_base_features.cc
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/base/features.cc.orig	2024-07-24 02:44:42.149315400 +0000
++++ net/base/features.cc
+@@ -26,7 +26,7 @@ BASE_FEATURE(kCapReferrerToOriginOnCross
+ BASE_FEATURE(kAsyncDns,
+              "AsyncDns",
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++    BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
+@@ -505,7 +505,12 @@ BASE_FEATURE(kSpdyHeadersToHttpResponseU
+              "SpdyHeadersToHttpResponseUseBuilder",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ 
++#if BUILDFLAG(IS_OPENBSD)
++// No IP_RECVTOS support
+ BASE_FEATURE(kReportEcn, "ReportEcn", base::FEATURE_DISABLED_BY_DEFAULT);
++#else
++BASE_FEATURE(kReportEcn, "ReportEcn", base::FEATURE_DISABLED_BY_DEFAULT);
++#endif
+ 
+ BASE_FEATURE(kUseNewAlpsCodepointHttp2,
+              "UseNewAlpsCodepointHttp2",
diff --git a/chromium/patches/patch-net_base_mock__network__change__notifier.cc b/chromium/patches/patch-net_base_mock__network__change__notifier.cc
new file mode 100644
index 0000000000..89e60a4964
--- /dev/null
+++ b/chromium/patches/patch-net_base_mock__network__change__notifier.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/base/mock_network_change_notifier.cc.orig	2024-07-24 02:44:42.157316200 +0000
++++ net/base/mock_network_change_notifier.cc
+@@ -103,7 +103,7 @@ MockNetworkChangeNotifier::GetCurrentCon
+   return connection_cost_;
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ AddressMapOwnerLinux* MockNetworkChangeNotifier::GetAddressMapOwnerInternal() {
+   return address_map_owner_;
+ }
diff --git a/chromium/patches/patch-net_base_mock__network__change__notifier.h b/chromium/patches/patch-net_base_mock__network__change__notifier.h
new file mode 100644
index 0000000000..e0805d871e
--- /dev/null
+++ b/chromium/patches/patch-net_base_mock__network__change__notifier.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/base/mock_network_change_notifier.h.orig	2024-07-24 02:44:42.157316200 +0000
++++ net/base/mock_network_change_notifier.h
+@@ -84,7 +84,7 @@ class MockNetworkChangeNotifier : public
+   // use_default_connection_cost_implementation is set to true.
+   ConnectionCost GetCurrentConnectionCost() override;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   void SetAddressMapOwnerLinux(AddressMapOwnerLinux* address_map_owner) {
+     address_map_owner_ = address_map_owner;
+   }
+@@ -104,7 +104,7 @@ class MockNetworkChangeNotifier : public
+   bool use_default_connection_cost_implementation_ = false;
+   NetworkChangeNotifier::NetworkList connected_networks_;
+   std::unique_ptr<SystemDnsConfigChangeNotifier> dns_config_notifier_;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   raw_ptr<AddressMapOwnerLinux> address_map_owner_ = nullptr;
+ #endif
+ };
diff --git a/chromium/patches/patch-net_base_network__change__notifier.cc b/chromium/patches/patch-net_base_network__change__notifier.cc
index c3daaf2794..64b9a6a778 100644
--- a/chromium/patches/patch-net_base_network__change__notifier.cc
+++ b/chromium/patches/patch-net_base_network__change__notifier.cc
@@ -1,31 +1,45 @@
 $NetBSD$
 
---- net/base/network_change_notifier.cc.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/base/network_change_notifier.cc.orig	2024-07-24 02:44:42.161316600 +0000
 +++ net/base/network_change_notifier.cc
-@@ -35,7 +35,7 @@
+@@ -42,7 +42,7 @@
  #include "net/base/network_change_notifier_linux.h"
- #elif defined(OS_MACOSX)
- #include "net/base/network_change_notifier_mac.h"
--#elif defined(OS_CHROMEOS) || defined(OS_ANDROID)
-+#elif defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD)
- #include "net/base/network_change_notifier_posix.h"
- #elif defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_APPLE)
+ #include "net/base/network_change_notifier_apple.h"
+-#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ #include "net/base/network_change_notifier_passive.h"
+ #elif BUILDFLAG(IS_FUCHSIA)
  #include "net/base/network_change_notifier_fuchsia.h"
-@@ -229,7 +229,7 @@ std::unique_ptr<NetworkChangeNotifier> N
-   // service in a separate process.
-   return std::make_unique<NetworkChangeNotifierPosix>(initial_type,
-                                                       initial_subtype);
--#elif defined(OS_CHROMEOS)
-+#elif defined(OS_CHROMEOS) || defined(OS_BSD)
-   return std::make_unique<NetworkChangeNotifierPosix>(initial_type,
-                                                       initial_subtype);
- #elif defined(OS_LINUX)
-@@ -240,6 +240,8 @@ std::unique_ptr<NetworkChangeNotifier> N
- #elif defined(OS_FUCHSIA)
+@@ -334,6 +334,9 @@ std::unique_ptr<NetworkChangeNotifier> N
+ #elif BUILDFLAG(IS_FUCHSIA)
    return std::make_unique<NetworkChangeNotifierFuchsia>(
-       0 /* required_features */);
-+#elif defined(OS_BSD)
-+  return NULL;
+       /*require_wlan=*/false);
++#elif BUILDFLAG(IS_BSD)
++  return std::make_unique<MockNetworkChangeNotifier>(
++      /*dns_config_notifier*/nullptr);
  #else
    NOTIMPLEMENTED();
-   return NULL;
+   return nullptr;
+@@ -525,7 +528,7 @@ const char* NetworkChangeNotifier::Conne
+   return kConnectionTypeNames[type];
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // static
+ AddressMapOwnerLinux* NetworkChangeNotifier::GetAddressMapOwner() {
+   return g_network_change_notifier
+@@ -879,7 +882,7 @@ NetworkChangeNotifier::NetworkChangeNoti
+   }
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ AddressMapOwnerLinux* NetworkChangeNotifier::GetAddressMapOwnerInternal() {
+   return nullptr;
+ }
diff --git a/chromium/patches/patch-net_base_network__change__notifier.h b/chromium/patches/patch-net_base_network__change__notifier.h
index 1fda120434..cda4f9c015 100644
--- a/chromium/patches/patch-net_base_network__change__notifier.h
+++ b/chromium/patches/patch-net_base_network__change__notifier.h
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- net/base/network_change_notifier.h.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/base/network_change_notifier.h.orig	2024-07-24 02:44:42.161316600 +0000
 +++ net/base/network_change_notifier.h
-@@ -23,7 +23,7 @@ struct NetworkInterface;
- class SystemDnsConfigChangeNotifier;
- typedef std::vector<NetworkInterface> NetworkInterfaceList;
+@@ -18,7 +18,7 @@
+ #include "net/base/net_export.h"
+ #include "net/base/network_handle.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "net/base/address_map_linux.h"
+ #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- namespace internal {
- class AddressTrackerLinux;
- }
-@@ -366,7 +366,7 @@ class NET_EXPORT NetworkChangeNotifier {
-   // Chrome net code.
-   static SystemDnsConfigChangeNotifier* GetSystemDnsConfigNotifier();
+@@ -459,7 +459,7 @@ class NET_EXPORT NetworkChangeNotifier {
+   // packets sent lazily.
+   static bool IsDefaultNetworkActive();
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Returns the AddressTrackerLinux if present.
-   static const internal::AddressTrackerLinux* GetAddressTracker();
+   static AddressMapOwnerLinux* GetAddressMapOwner();
  #endif
-@@ -513,7 +513,7 @@ class NET_EXPORT NetworkChangeNotifier {
-           NetworkChangeCalculatorParams(),
-       SystemDnsConfigChangeNotifier* system_dns_config_notifier = nullptr);
+@@ -629,7 +629,7 @@ class NET_EXPORT NetworkChangeNotifier {
+       SystemDnsConfigChangeNotifier* system_dns_config_notifier = nullptr,
+       bool omit_observers_in_constructor_for_testing = false);
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Returns the AddressTrackerLinux if present.
-   // TODO(szym): Retrieve AddressMap from NetworkState. http://crbug.com/144212
-   virtual const internal::AddressTrackerLinux*
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Returns the AddressMapOwnerLinux if present.
+   virtual AddressMapOwnerLinux* GetAddressMapOwnerInternal();
+ #endif
diff --git a/chromium/patches/patch-net_base_network__change__notifier__passive.cc b/chromium/patches/patch-net_base_network__change__notifier__passive.cc
new file mode 100644
index 0000000000..c27ec3e50e
--- /dev/null
+++ b/chromium/patches/patch-net_base_network__change__notifier__passive.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/base/network_change_notifier_passive.cc.orig	2024-07-24 02:44:42.161316600 +0000
++++ net/base/network_change_notifier_passive.cc
+@@ -107,7 +107,7 @@ NetworkChangeNotifierPassive::GetAddress
+ NetworkChangeNotifier::NetworkChangeCalculatorParams
+ NetworkChangeNotifierPassive::NetworkChangeCalculatorParamsPassive() {
+   NetworkChangeCalculatorParams params;
+-#if BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Delay values arrived at by simple experimentation and adjusted so as to
+   // produce a single signal when switching between network connections.
+   params.ip_address_offline_delay_ = base::Milliseconds(4000);
diff --git a/chromium/patches/patch-net_base_network__interfaces__posix.h b/chromium/patches/patch-net_base_network__interfaces__posix.h
index 9860840b16..7b2be967c1 100644
--- a/chromium/patches/patch-net_base_network__interfaces__posix.h
+++ b/chromium/patches/patch-net_base_network__interfaces__posix.h
@@ -1,6 +1,10 @@
 $NetBSD$
 
---- net/base/network_interfaces_posix.h.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/base/network_interfaces_posix.h.orig	2024-07-24 02:44:42.165316800 +0000
 +++ net/base/network_interfaces_posix.h
 @@ -8,6 +8,8 @@
  // This file provides some basic functionality shared between
diff --git a/chromium/patches/patch-net_base_sockaddr__util__posix.cc b/chromium/patches/patch-net_base_sockaddr__util__posix.cc
new file mode 100644
index 0000000000..0310a5f88a
--- /dev/null
+++ b/chromium/patches/patch-net_base_sockaddr__util__posix.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/base/sockaddr_util_posix.cc.orig	2024-07-24 02:44:42.173317700 +0000
++++ net/base/sockaddr_util_posix.cc
+@@ -46,7 +46,8 @@ bool FillUnixAddress(const std::string& 
+     return true;
+   }
+ 
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
++  // XXX ?
+   // Convert the path given into abstract socket name. It must start with
+   // the '\0' character, so we are adding it. |addr_len| must specify the
+   // length of the structure exactly, as potentially the socket name may
diff --git a/chromium/patches/patch-net_base_sockaddr__util__posix__unittest.cc b/chromium/patches/patch-net_base_sockaddr__util__posix__unittest.cc
new file mode 100644
index 0000000000..53f879c589
--- /dev/null
+++ b/chromium/patches/patch-net_base_sockaddr__util__posix__unittest.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/base/sockaddr_util_posix_unittest.cc.orig	2024-07-24 02:44:42.173317700 +0000
++++ net/base/sockaddr_util_posix_unittest.cc
+@@ -88,7 +88,8 @@ TEST(FillUnixAddressTest, AbstractLinuxA
+   size_t path_max = MaxPathLength(&storage);
+   std::string path(path_max, '0');
+ 
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
++  // XXX?
+   EXPECT_TRUE(FillUnixAddress(path, /*use_abstract_namespace=*/true, &storage));
+ 
+   EXPECT_EQ(path.size() + 1U + offsetof(struct sockaddr_un, sun_path),
diff --git a/chromium/patches/patch-net_cert_cert__verify__proc.cc b/chromium/patches/patch-net_cert_cert__verify__proc.cc
deleted file mode 100644
index 8b20b9fafe..0000000000
--- a/chromium/patches/patch-net_cert_cert__verify__proc.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/cert/cert_verify_proc.cc.orig	2020-07-15 18:56:00.000000000 +0000
-+++ net/cert/cert_verify_proc.cc
-@@ -494,7 +494,7 @@ base::Value CertVerifyParams(X509Certifi
- 
- }  // namespace
- 
--#if !(defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS))
-+#if !(defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD))
- // static
- scoped_refptr<CertVerifyProc> CertVerifyProc::CreateSystemVerifyProc(
-     scoped_refptr<CertNetFetcher> cert_net_fetcher) {
diff --git a/chromium/patches/patch-net_cert_cert__verify__proc.h b/chromium/patches/patch-net_cert_cert__verify__proc.h
new file mode 100644
index 0000000000..726a3b1b9f
--- /dev/null
+++ b/chromium/patches/patch-net_cert_cert__verify__proc.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/cert/cert_verify_proc.h.orig	2024-07-24 02:44:42.181318500 +0000
++++ net/cert/cert_verify_proc.h
+@@ -176,7 +176,7 @@ class NET_EXPORT CertVerifyProc
+     kMaxValue = kChainLengthOne
+   };
+ 
+-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+       BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(CHROME_ROOT_STORE_ONLY))
+   // Creates and returns a CertVerifyProc that uses the system verifier.
+   // |cert_net_fetcher| may not be used, depending on the implementation.
diff --git a/chromium/patches/patch-net_cert_test__root__certs.h b/chromium/patches/patch-net_cert_test__root__certs.h
deleted file mode 100644
index 9605b5a51f..0000000000
--- a/chromium/patches/patch-net_cert_test__root__certs.h
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD$
-
---- net/cert/test_root_certs.h.orig	2020-07-24 02:37:58.000000000 +0000
-+++ net/cert/test_root_certs.h
-@@ -75,7 +75,7 @@ class NET_EXPORT TestRootCerts {
-   // engine is appropriate. The caller is responsible for freeing the
-   // returned HCERTCHAINENGINE.
-   HCERTCHAINENGINE GetChainEngine() const;
--#elif defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#elif defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
-   TrustStore* test_trust_store() { return &test_trust_store_; }
- #endif
- 
-@@ -93,12 +93,12 @@ class NET_EXPORT TestRootCerts {
- #elif defined(OS_MACOSX)
-   base::ScopedCFTypeRef<CFMutableArrayRef> temporary_roots_;
-   TrustStoreInMemory test_trust_store_;
--#elif defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#elif defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
-   TrustStoreInMemory test_trust_store_;
- #endif
- 
- #if defined(OS_WIN) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || \
--    defined(OS_LINUX) || defined(OS_CHROMEOS)
-+    defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
-   // True if there are no temporarily trusted root certificates.
-   bool empty_ = true;
- #endif
diff --git a/chromium/patches/patch-net_disk__cache_blockfile_disk__format.h b/chromium/patches/patch-net_disk__cache_blockfile_disk__format.h
deleted file mode 100644
index d0d9b52492..0000000000
--- a/chromium/patches/patch-net_disk__cache_blockfile_disk__format.h
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD$
-
---- net/disk_cache/blockfile/disk_format.h.orig	2020-07-15 18:56:00.000000000 +0000
-+++ net/disk_cache/blockfile/disk_format.h
-@@ -149,7 +149,9 @@ struct RankingsNode {
- };
- #pragma pack(pop)
- 
-+#if !defined(OS_BSD)
- static_assert(sizeof(RankingsNode) == 36, "bad RankingsNode");
-+#endif
- 
- }  // namespace disk_cache
- 
diff --git a/chromium/patches/patch-net_disk__cache_simple_simple__file__tracker.cc b/chromium/patches/patch-net_disk__cache_simple_simple__file__tracker.cc
new file mode 100644
index 0000000000..f65b9aac83
--- /dev/null
+++ b/chromium/patches/patch-net_disk__cache_simple_simple__file__tracker.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/disk_cache/simple/simple_file_tracker.cc.orig	2024-07-24 02:44:42.561355400 +0000
++++ net/disk_cache/simple/simple_file_tracker.cc
+@@ -34,7 +34,17 @@ void RecordFileDescripterLimiterOp(FileD
+ }  // namespace
+ 
+ SimpleFileTracker::SimpleFileTracker(int file_limit)
++#if defined(OS_OPENBSD)
++{
++  // cap the file descriptor limit at 85% of the size of the
++  // file descriptor table and also substract the amount of
++  // currently used file descriptors as this should give us
++  // enough reserve to avoid hitting the limit 
++  file_limit_ = (getdtablesize() * 0.85) -  getdtablecount();
++}
++#else
+     : file_limit_(file_limit) {}
++#endif
+ 
+ SimpleFileTracker::~SimpleFileTracker() {
+   DCHECK(lru_.empty());
diff --git a/chromium/patches/patch-net_dns_BUILD.gn b/chromium/patches/patch-net_dns_BUILD.gn
new file mode 100644
index 0000000000..e19540fb07
--- /dev/null
+++ b/chromium/patches/patch-net_dns_BUILD.gn
@@ -0,0 +1,49 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/BUILD.gn.orig	2024-07-24 02:44:42.565355800 +0000
++++ net/dns/BUILD.gn
+@@ -138,7 +138,7 @@ source_set("dns") {
+       "dns_config_service_android.cc",
+       "dns_config_service_android.h",
+     ]
+-  } else if (is_linux) {
++  } else if (is_linux && !is_bsd) {
+     sources += [
+       "dns_config_service_linux.cc",
+       "dns_config_service_linux.h",
+@@ -171,7 +171,10 @@ source_set("dns") {
+     ]
+   }
+ 
+-  deps = [ "//net:net_deps" ]
++  deps = [
++    "//net:net_deps",
++    "///services/screen_ai/buildflags",
++  ]
+ 
+   public_deps = [
+     ":dns_client",
+@@ -179,6 +182,7 @@ source_set("dns") {
+     ":host_resolver_manager",
+     ":mdns_client",
+     "//net:net_public_deps",
++    "//printing/buildflags",
+   ]
+ 
+   allow_circular_includes_from = [
+@@ -447,9 +451,9 @@ source_set("tests") {
+ 
+   if (is_android) {
+     sources += [ "dns_config_service_android_unittest.cc" ]
+-  } else if (is_linux) {
++  } else if (is_linux && !is_bsd) {
+     sources += [ "dns_config_service_linux_unittest.cc" ]
+-  } else if (is_posix) {
++  } else if (is_posix && !is_bsd) {
+     sources += [ "dns_config_service_posix_unittest.cc" ]
+   }
+ 
diff --git a/chromium/patches/patch-net_dns_address__info.cc b/chromium/patches/patch-net_dns_address__info.cc
new file mode 100644
index 0000000000..63deb26f7a
--- /dev/null
+++ b/chromium/patches/patch-net_dns_address__info.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/address_info.cc.orig	2024-07-24 02:44:42.565355800 +0000
++++ net/dns/address_info.cc
+@@ -83,8 +83,12 @@ AddressInfo::AddressInfoAndResult Addres
+     // error.
+     // http://crbug.com/134142
+     err = ERR_NAME_NOT_RESOLVED;
+-#elif BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_FREEBSD)
++#elif BUILDFLAG(IS_POSIX)
++#ifdef EAI_NODATA
+     if (os_error != EAI_NONAME && os_error != EAI_NODATA)
++#else
++    if (os_error != EAI_NONAME)
++#endif
+       err = ERR_NAME_RESOLUTION_FAILED;
+ #endif
+ 
diff --git a/chromium/patches/patch-net_dns_address__sorter__posix.cc b/chromium/patches/patch-net_dns_address__sorter__posix.cc
index ff150f92be..42f7f376f6 100644
--- a/chromium/patches/patch-net_dns_address__sorter__posix.cc
+++ b/chromium/patches/patch-net_dns_address__sorter__posix.cc
@@ -1,16 +1,16 @@
 $NetBSD$
 
---- net/dns/address_sorter_posix.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/address_sorter_posix.cc.orig	2024-07-24 02:44:42.565355800 +0000
 +++ net/dns/address_sorter_posix.cc
-@@ -13,7 +13,11 @@
- #include <sys/socket.h>  // Must be included before ifaddrs.h.
- #include <ifaddrs.h>
- #include <net/if.h>
-+#if defined(OS_FREEBSD)
-+#include <net/if_var.h>
-+#endif
+@@ -32,6 +32,7 @@
+ #include "net/dns/netinet_in_var_ios.h"
+ #else
  #include <netinet/in_var.h>
 +#include <netinet6/in6_var.h>
- #include <string.h>
- #include <sys/ioctl.h>
+ #endif  // BUILDFLAG(IS_IOS)
  #endif
+ #include <vector>
diff --git a/chromium/patches/patch-net_dns_dns__config__service__posix.cc b/chromium/patches/patch-net_dns_dns__config__service__posix.cc
new file mode 100644
index 0000000000..1904915208
--- /dev/null
+++ b/chromium/patches/patch-net_dns_dns__config__service__posix.cc
@@ -0,0 +1,32 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/dns_config_service_posix.cc.orig	2024-07-24 02:44:42.569356000 +0000
++++ net/dns/dns_config_service_posix.cc
+@@ -39,6 +39,11 @@
+ #include "net/dns/dns_config_watcher_mac.h"
+ #endif
+ 
++#if BUILDFLAG(IS_BSD)
++#include "base/command_line.h"
++#include "sandbox/policy/switches.h"
++#endif
++
+ namespace net {
+ 
+ namespace internal {
+@@ -136,6 +141,11 @@ class DnsConfigServicePosix::Watcher : p
+   bool Watch() override {
+     CheckOnCorrectSequence();
+ 
++// pledge + unveil
++    base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++    if (!command_line->HasSwitch(sandbox::policy::switches::kNoSandbox))
++      return false;
++
+     bool success = true;
+     if (!config_watcher_.Watch(base::BindRepeating(&Watcher::OnConfigChanged,
+                                                    base::Unretained(this)))) {
diff --git a/chromium/patches/patch-net_dns_dns__config__service__posix__unittest.cc b/chromium/patches/patch-net_dns_dns__config__service__posix__unittest.cc
deleted file mode 100644
index b9126e04f2..0000000000
--- a/chromium/patches/patch-net_dns_dns__config__service__posix__unittest.cc
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- net/dns/dns_config_service_posix_unittest.cc.orig	2020-07-15 18:56:47.000000000 +0000
-+++ net/dns/dns_config_service_posix_unittest.cc
-@@ -51,7 +51,7 @@ const char* const kNameserversIPv4[] = {
-     "1.0.0.1",
- };
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const char* const kNameserversIPv6[] = {
-     NULL,
-     "2001:DB8:0::42",
-@@ -87,7 +87,7 @@ void InitializeResState(res_state res) {
-     ++res->nscount;
-   }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Install IPv6 addresses, replacing the corresponding IPv4 addresses.
-   unsigned nscount6 = 0;
-   for (unsigned i = 0; i < base::size(kNameserversIPv6) && i < MAXNS; ++i) {
-@@ -108,7 +108,7 @@ void InitializeResState(res_state res) {
- }
- 
- void CloseResState(res_state res) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   for (int i = 0; i < res->nscount; ++i) {
-     if (res->_u._ext.nsaddrs[i] != NULL)
-       free(res->_u._ext.nsaddrs[i]);
-@@ -133,7 +133,7 @@ void InitializeExpectedConfig(DnsConfig*
-     config->nameservers.push_back(IPEndPoint(ip, NS_DEFAULTPORT + i));
-   }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   for (unsigned i = 0; i < base::size(kNameserversIPv6) && i < MAXNS; ++i) {
-     if (!kNameserversIPv6[i])
-       continue;
diff --git a/chromium/patches/patch-net_dns_dns__reloader.cc b/chromium/patches/patch-net_dns_dns__reloader.cc
index 121f486c45..6330a21a5d 100644
--- a/chromium/patches/patch-net_dns_dns__reloader.cc
+++ b/chromium/patches/patch-net_dns_dns__reloader.cc
@@ -1,15 +1,25 @@
 $NetBSD$
 
---- net/dns/dns_reloader.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/dns_reloader.cc.orig	2024-07-24 02:44:42.569356000 +0000
 +++ net/dns/dns_reloader.cc
-@@ -7,6 +7,10 @@
- #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
-     !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
+@@ -10,6 +10,7 @@
+ // - there's not guarantee it exists at all. :(
+ #if BUILDFLAG(IS_POSIX)
  
-+#if defined(OS_BSD)
 +#include <netinet/in.h>
-+#endif
-+
  #include <resolv.h>
  
- #include "base/lazy_instance.h"
+ // This code only works on systems where the C library provides res_ninit(3) and
+@@ -31,7 +32,7 @@
+ // an old musl bug that was fixed by musl c8fdcfe5, but Fuchsia's SDK doesn't
+ // have that change.
+ #if defined(__RES) && __RES >= 19991006 && !BUILDFLAG(IS_APPLE) && \
+-    !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA)
++    !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA) && !BUILDFLAG(IS_NETBSD)
+ // We define this so we don't need to restate the complex condition here twice
+ // below - it would be easy for the copies below to get out of sync.
+ #define USE_RES_NINIT
diff --git a/chromium/patches/patch-net_dns_dns__util.cc b/chromium/patches/patch-net_dns_dns__util.cc
index 0c4571ec25..c286aafdae 100644
--- a/chromium/patches/patch-net_dns_dns__util.cc
+++ b/chromium/patches/patch-net_dns_dns__util.cc
@@ -1,12 +1,17 @@
 $NetBSD$
 
---- net/dns/dns_util.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/dns_util.cc.orig	2024-07-24 02:44:42.573356400 +0000
 +++ net/dns/dns_util.cc
-@@ -40,6 +40,7 @@ const uint16_t kFlagNamePointer = 0xc000
- }  // namespace
+@@ -29,6 +29,8 @@
+ #include "net/dns/public/util.h"
+ #include "net/third_party/uri_template/uri_template.h"
  
- #if defined(OS_POSIX)
 +#include <sys/socket.h>
- #include <netinet/in.h>
- #if !defined(OS_NACL)
++
+ #if BUILDFLAG(IS_POSIX)
  #include <net/if.h>
+ #include <netinet/in.h>
diff --git a/chromium/patches/patch-net_dns_host__resolver__proc.cc b/chromium/patches/patch-net_dns_host__resolver__proc.cc
index bc1c99e3c9..6fed9df0e1 100644
--- a/chromium/patches/patch-net_dns_host__resolver__proc.cc
+++ b/chromium/patches/patch-net_dns_host__resolver__proc.cc
@@ -1,13 +1,19 @@
 $NetBSD$
 
---- net/dns/host_resolver_proc.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/host_resolver_proc.cc.orig	2024-07-24 02:44:42.585357700 +0000
 +++ net/dns/host_resolver_proc.cc
-@@ -159,7 +159,7 @@ int SystemHostResolverCall(const std::st
-   base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
-                                                 base::BlockingType::WILL_BLOCK);
+@@ -15,10 +15,6 @@
+ #include "net/base/net_errors.h"
+ #include "net/dns/host_resolver_system_task.h"
+ 
+-#if BUILDFLAG(IS_OPENBSD)
+-#define AI_ADDRCONFIG 0
+-#endif
+-
+ namespace net {
  
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD) && \
-     !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
-   DnsReloaderMaybeReload();
- #endif
+ HostResolverProc* HostResolverProc::default_proc_ = nullptr;
diff --git a/chromium/patches/patch-net_dns_public_BUILD.gn b/chromium/patches/patch-net_dns_public_BUILD.gn
new file mode 100644
index 0000000000..a3ba5bbf75
--- /dev/null
+++ b/chromium/patches/patch-net_dns_public_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/public/BUILD.gn.orig	2024-07-24 02:44:42.589358000 +0000
++++ net/dns/public/BUILD.gn
+@@ -78,7 +78,7 @@ source_set("tests") {
+     "doh_provider_entry_unittest.cc",
+   ]
+ 
+-  if (is_posix && !is_android) {
++  if (is_posix && !is_android && !is_bsd) {
+     sources += [ "resolv_reader_unittest.cc" ]
+   }
+ 
diff --git a/chromium/patches/patch-net_dns_public_resolv__reader.cc b/chromium/patches/patch-net_dns_public_resolv__reader.cc
new file mode 100644
index 0000000000..b2a92618a3
--- /dev/null
+++ b/chromium/patches/patch-net_dns_public_resolv__reader.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/public/resolv_reader.cc.orig	2024-07-24 02:44:42.589358000 +0000
++++ net/dns/public/resolv_reader.cc
+@@ -40,7 +40,7 @@ std::optional<std::vector<IPEndPoint>> G
+   if (!(res.options & RES_INIT))
+     return std::nullopt;
+ 
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+   union res_sockaddr_union addresses[MAXNS];
+   int nscount = res_getservers(const_cast<res_state>(&res), addresses, MAXNS);
+   DCHECK_GE(nscount, 0);
diff --git a/chromium/patches/patch-net_dns_public_resolv__reader.h b/chromium/patches/patch-net_dns_public_resolv__reader.h
new file mode 100644
index 0000000000..baeb17096b
--- /dev/null
+++ b/chromium/patches/patch-net_dns_public_resolv__reader.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/public/resolv_reader.h.orig	2024-07-24 02:44:42.589358000 +0000
++++ net/dns/public/resolv_reader.h
+@@ -5,6 +5,7 @@
+ #ifndef NET_DNS_PUBLIC_RESOLV_READER_H_
+ #define NET_DNS_PUBLIC_RESOLV_READER_H_
+ 
++#include <netinet/in.h>
+ #include <resolv.h>
+ 
+ #include <memory>
diff --git a/chromium/patches/patch-net_dns_public_scoped__res__state.cc b/chromium/patches/patch-net_dns_public_scoped__res__state.cc
new file mode 100644
index 0000000000..80da7f8bb8
--- /dev/null
+++ b/chromium/patches/patch-net_dns_public_scoped__res__state.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/public/scoped_res_state.cc.orig	2024-07-24 02:44:42.593358300 +0000
++++ net/dns/public/scoped_res_state.cc
+@@ -28,7 +28,7 @@ ScopedResState::~ScopedResState() {
+ #if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
+ 
+   // Prefer res_ndestroy where available.
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+   res_ndestroy(&res_);
+ #else
+   res_nclose(&res_);
diff --git a/chromium/patches/patch-net_dns_public_scoped__res__state.h b/chromium/patches/patch-net_dns_public_scoped__res__state.h
new file mode 100644
index 0000000000..cdc9f1062b
--- /dev/null
+++ b/chromium/patches/patch-net_dns_public_scoped__res__state.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/dns/public/scoped_res_state.h.orig	2024-07-24 02:44:42.593358300 +0000
++++ net/dns/public/scoped_res_state.h
+@@ -5,6 +5,7 @@
+ #ifndef NET_DNS_PUBLIC_SCOPED_RES_STATE_H_
+ #define NET_DNS_PUBLIC_SCOPED_RES_STATE_H_
+ 
++#include <netinet/in.h>
+ #include <resolv.h>
+ 
+ #include <optional>
diff --git a/chromium/patches/patch-net_features.gni b/chromium/patches/patch-net_features.gni
deleted file mode 100644
index 01e9e5109f..0000000000
--- a/chromium/patches/patch-net_features.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/features.gni.orig	2020-06-25 09:31:33.000000000 +0000
-+++ net/features.gni
-@@ -23,7 +23,7 @@ declare_args() {
-   disable_brotli_filter = false
- 
-   # Multicast DNS.
--  enable_mdns = is_win || is_linux || is_fuchsia || is_mac || is_ios
-+  enable_mdns = is_win || is_linux || is_fuchsia || is_mac || is_ios || is_bsd
- 
-   # Reporting not used on iOS.
-   enable_reporting = !is_ios
diff --git a/chromium/patches/patch-net_filter_zstd__source__stream.cc b/chromium/patches/patch-net_filter_zstd__source__stream.cc
new file mode 100644
index 0000000000..7bdd387166
--- /dev/null
+++ b/chromium/patches/patch-net_filter_zstd__source__stream.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/filter/zstd_source_stream.cc.orig	2024-07-24 02:44:42.605359600 +0000
++++ net/filter/zstd_source_stream.cc
+@@ -7,6 +7,7 @@
+ #include <algorithm>
+ #include <unordered_map>
+ #include <utility>
++#include <unordered_map>
+ 
+ #define ZSTD_STATIC_LINKING_ONLY
+ 
diff --git a/chromium/patches/patch-net_http_http__auth__gssapi__posix.cc b/chromium/patches/patch-net_http_http__auth__gssapi__posix.cc
index 2eb6eeeae7..7301cd7fea 100644
--- a/chromium/patches/patch-net_http_http__auth__gssapi__posix.cc
+++ b/chromium/patches/patch-net_http_http__auth__gssapi__posix.cc
@@ -1,16 +1,20 @@
 $NetBSD$
 
---- net/http/http_auth_gssapi_posix.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/http/http_auth_gssapi_posix.cc.orig	2024-07-24 02:44:42.613360400 +0000
 +++ net/http/http_auth_gssapi_posix.cc
-@@ -367,8 +367,9 @@ base::NativeLibrary GSSAPISharedLibrary:
+@@ -375,8 +375,9 @@ base::NativeLibrary GSSAPISharedLibrary:
      static const char* const kDefaultLibraryNames[] = {
- #if defined(OS_MACOSX)
+ #if BUILDFLAG(IS_APPLE)
        "/System/Library/Frameworks/GSS.framework/GSS"
--#elif defined(OS_OPENBSD)
--      "libgssapi.so"          // Heimdal - OpenBSD
-+#elif defined(OS_BSD)
-+      "libgssapi_krb5.so"     // MIT Kerberos - FreeBSD
-+      "libgssapi.so"          // Heimdal - OpenBSD/NetBSD
+-#elif BUILDFLAG(IS_OPENBSD)
+-      "libgssapi.so"  // Heimdal - OpenBSD
++#elif BUILDFLAG(IS_BSD)
++      "libgssapi_krb5.so.2",  // MIT Kerberos - FreeBSD
++      "libgssapi.so"          // Heimdal - OpenBSD, FreeBSD
  #else
        "libgssapi_krb5.so.2",  // MIT Kerberos - FC, Suse10, Debian
        "libgssapi.so.4",       // Heimdal - Suse10, MDK
diff --git a/chromium/patches/patch-net_http_http__auth__gssapi__posix.h b/chromium/patches/patch-net_http_http__auth__gssapi__posix.h
index 15454798fe..2fed30888f 100644
--- a/chromium/patches/patch-net_http_http__auth__gssapi__posix.h
+++ b/chromium/patches/patch-net_http_http__auth__gssapi__posix.h
@@ -1,15 +1,18 @@
 $NetBSD$
 
---- net/http/http_auth_gssapi_posix.h.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/http/http_auth_gssapi_posix.h.orig	2024-07-24 02:44:42.613360400 +0000
 +++ net/http/http_auth_gssapi_posix.h
-@@ -25,6 +25,10 @@
- #include <gssapi.h>
- #endif
- 
+@@ -21,6 +21,9 @@
+ #if BUILDFLAG(IS_APPLE)
+ #include <GSS/gssapi.h>
+ #elif BUILDFLAG(IS_FREEBSD)
 +#ifndef GSS_C_DELEG_POLICY_FLAG
 +#define GSS_C_DELEG_POLICY_FLAG 32768
 +#endif
-+
- namespace net {
- 
- class HttpAuthChallengeTokenizer;
+ #include <gssapi/gssapi.h>
+ #else
+ #include <gssapi.h>
diff --git a/chromium/patches/patch-net_http_http__auth__handler__negotiate.cc b/chromium/patches/patch-net_http_http__auth__handler__negotiate.cc
new file mode 100644
index 0000000000..cf0de13f60
--- /dev/null
+++ b/chromium/patches/patch-net_http_http__auth__handler__negotiate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/http/http_auth_handler_negotiate.cc.orig	2024-07-24 02:44:42.613360400 +0000
++++ net/http/http_auth_handler_negotiate.cc
+@@ -120,7 +120,7 @@ int HttpAuthHandlerNegotiate::Factory::C
+ #elif BUILDFLAG(IS_POSIX)
+   if (is_unsupported_)
+     return ERR_UNSUPPORTED_AUTH_SCHEME;
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Note: Don't set is_unsupported_ = true here. AllowGssapiLibraryLoad()
+   // might change to true during a session.
+   if (!http_auth_preferences() ||
diff --git a/chromium/patches/patch-net_http_http__auth__preferences.cc b/chromium/patches/patch-net_http_http__auth__preferences.cc
new file mode 100644
index 0000000000..d674e57505
--- /dev/null
+++ b/chromium/patches/patch-net_http_http__auth__preferences.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/http/http_auth_preferences.cc.orig	2024-07-24 02:44:42.617360600 +0000
++++ net/http/http_auth_preferences.cc
+@@ -39,7 +39,7 @@ std::string HttpAuthPreferences::AuthAnd
+ }
+ #endif  // BUILDFLAG(IS_ANDROID)
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool HttpAuthPreferences::AllowGssapiLibraryLoad() const {
+   return allow_gssapi_library_load_;
+ }
diff --git a/chromium/patches/patch-net_http_http__auth__preferences.h b/chromium/patches/patch-net_http_http__auth__preferences.h
new file mode 100644
index 0000000000..f0c3934341
--- /dev/null
+++ b/chromium/patches/patch-net_http_http__auth__preferences.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/http/http_auth_preferences.h.orig	2024-07-24 02:44:42.617360600 +0000
++++ net/http/http_auth_preferences.h
+@@ -50,7 +50,7 @@ class NET_EXPORT HttpAuthPreferences {
+ #if BUILDFLAG(IS_ANDROID)
+   virtual std::string AuthAndroidNegotiateAccountType() const;
+ #endif
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   virtual bool AllowGssapiLibraryLoad() const;
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+   virtual bool CanUseDefaultCredentials(
+@@ -86,7 +86,7 @@ class NET_EXPORT HttpAuthPreferences {
+   }
+ #endif  // BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   void set_allow_gssapi_library_load(bool allow_gssapi_library_load) {
+     allow_gssapi_library_load_ = allow_gssapi_library_load;
+   }
+@@ -137,7 +137,7 @@ class NET_EXPORT HttpAuthPreferences {
+   std::string auth_android_negotiate_account_type_;
+ #endif  // BUILDFLAG(IS_ANDROID)
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   bool allow_gssapi_library_load_ = true;
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ 
diff --git a/chromium/patches/patch-net_http_http__network__session.cc b/chromium/patches/patch-net_http_http__network__session.cc
new file mode 100644
index 0000000000..16c6b1439c
--- /dev/null
+++ b/chromium/patches/patch-net_http_http__network__session.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/http/http_network_session.cc.orig	2024-07-24 02:44:42.625361400 +0000
++++ net/http/http_network_session.cc
+@@ -19,7 +19,9 @@
+ #include "build/build_config.h"
+ #include "net/base/features.h"
+ #include "net/dns/host_resolver.h"
++#if defined(USE_KERBEROS)
+ #include "net/http/http_auth_handler_factory.h"
++#endif
+ #include "net/http/http_response_body_drainer.h"
+ #include "net/http/http_stream_factory.h"
+ #include "net/http/url_security_manager.h"
diff --git a/chromium/patches/patch-net_nqe_network__quality__estimator__unittest.cc b/chromium/patches/patch-net_nqe_network__quality__estimator__unittest.cc
deleted file mode 100644
index 3841f64811..0000000000
--- a/chromium/patches/patch-net_nqe_network__quality__estimator__unittest.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/nqe/network_quality_estimator_unittest.cc.orig	2020-07-15 18:56:00.000000000 +0000
-+++ net/nqe/network_quality_estimator_unittest.cc
-@@ -2107,7 +2107,7 @@ TEST_F(NetworkQualityEstimatorTest, Test
- // TestTCPSocketRTT requires kernel support for tcp_info struct, and so it is
- // enabled only on certain platforms.
- // ChromeOS is disabled due to crbug.com/986904
--#if (defined(TCP_INFO) || defined(OS_LINUX) || defined(OS_ANDROID)) && \
-+#if (defined(TCP_INFO) || defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)) && \
-     !defined(OS_CHROMEOS)
- #define MAYBE_TestTCPSocketRTT TestTCPSocketRTT
- #else
diff --git a/chromium/patches/patch-net_proxy__resolution_configured__proxy__resolution__service.cc b/chromium/patches/patch-net_proxy__resolution_configured__proxy__resolution__service.cc
deleted file mode 100644
index ece5db0cbf..0000000000
--- a/chromium/patches/patch-net_proxy__resolution_configured__proxy__resolution__service.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- net/proxy_resolution/configured_proxy_resolution_service.cc.orig	2020-07-15 18:56:47.000000000 +0000
-+++ net/proxy_resolution/configured_proxy_resolution_service.cc
-@@ -47,7 +47,7 @@
- #elif defined(OS_MACOSX)
- #include "net/proxy_resolution/proxy_config_service_mac.h"
- #include "net/proxy_resolution/proxy_resolver_mac.h"
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "net/proxy_resolution/proxy_config_service_linux.h"
- #elif defined(OS_ANDROID)
- #include "net/proxy_resolution/proxy_config_service_android.h"
-@@ -61,7 +61,7 @@ namespace net {
- namespace {
- 
- #if defined(OS_WIN) || defined(OS_IOS) || defined(OS_MACOSX) || \
--    (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+    ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
- constexpr net::NetworkTrafficAnnotationTag kSystemProxyConfigTrafficAnnotation =
-     net::DefineNetworkTrafficAnnotation("proxy_config_system", R"(
-       semantics {
-@@ -1410,7 +1410,7 @@ ConfiguredProxyResolutionService::Create
-              << "profile_io_data.cc::CreateProxyConfigService and this should "
-              << "be used only for examples.";
-   return std::make_unique<UnsetProxyConfigService>();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   std::unique_ptr<ProxyConfigServiceLinux> linux_config_service(
-       new ProxyConfigServiceLinux());
- 
diff --git a/chromium/patches/patch-net_proxy__resolution_proxy__config__service.cc b/chromium/patches/patch-net_proxy__resolution_proxy__config__service.cc
new file mode 100644
index 0000000000..c5abe127d9
--- /dev/null
+++ b/chromium/patches/patch-net_proxy__resolution_proxy__config__service.cc
@@ -0,0 +1,41 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/proxy_resolution/proxy_config_service.cc.orig	2024-07-24 02:44:43.021399700 +0000
++++ net/proxy_resolution/proxy_config_service.cc
+@@ -19,20 +19,20 @@
+ #include "net/proxy_resolution/proxy_config_service_ios.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include "net/proxy_resolution/proxy_config_service_mac.h"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "net/proxy_resolution/proxy_config_service_linux.h"
+ #elif BUILDFLAG(IS_ANDROID)
+ #include "net/proxy_resolution/proxy_config_service_android.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "net/traffic_annotation/network_traffic_annotation.h"
+ #endif
+ 
+ namespace net {
+ 
+ namespace {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr net::NetworkTrafficAnnotationTag kSystemProxyConfigTrafficAnnotation =
+     net::DefineNetworkTrafficAnnotation("proxy_config_system", R"(
+       semantics {
+@@ -108,7 +108,7 @@ ProxyConfigService::CreateSystemProxyCon
+              << "profile_io_data.cc::CreateProxyConfigService and this should "
+              << "be used only for examples.";
+   return std::make_unique<UnsetProxyConfigService>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   std::unique_ptr<ProxyConfigServiceLinux> linux_config_service(
+       std::make_unique<ProxyConfigServiceLinux>());
+ 
diff --git a/chromium/patches/patch-net_proxy__resolution_proxy__config__service__linux.cc b/chromium/patches/patch-net_proxy__resolution_proxy__config__service__linux.cc
index c2fcc94e8f..039488ee95 100644
--- a/chromium/patches/patch-net_proxy__resolution_proxy__config__service__linux.cc
+++ b/chromium/patches/patch-net_proxy__resolution_proxy__config__service__linux.cc
@@ -1,41 +1,46 @@
 $NetBSD$
 
---- net/proxy_resolution/proxy_config_service_linux.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/proxy_resolution/proxy_config_service_linux.cc.orig	2024-07-24 02:44:43.025400200 +0000
 +++ net/proxy_resolution/proxy_config_service_linux.cc
-@@ -6,7 +6,9 @@
+@@ -11,7 +11,9 @@
  
  #include <errno.h>
  #include <limits.h>
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
  #include <sys/inotify.h>
 +#endif
  #include <unistd.h>
  
  #include <map>
-@@ -511,6 +513,7 @@ int StringToIntOrDefault(base::StringPie
-   return default_value;
+@@ -510,6 +512,7 @@ bool SettingGetterImplGSettings::CheckVe
  }
+ #endif  // defined(USE_GIO)
  
-+#if !defined(OS_BSD)
- // This is the KDE version that reads kioslaverc and simulates gsettings.
- // Doing this allows the main Delegate code, as well as the unit tests
- // for it, to stay the same - and the settings map fairly well besides.
-@@ -1001,6 +1004,7 @@ class SettingGetterImplKDE : public Prox
- 
-   DISALLOW_COPY_AND_ASSIGN(SettingGetterImplKDE);
++#if !BUILDFLAG(IS_BSD)
+ // Converts |value| from a decimal string to an int. If there was a failure
+ // parsing, returns |default_value|.
+ int StringToIntOrDefault(std::string_view value, int default_value) {
+@@ -1038,6 +1041,7 @@ class SettingGetterImplKDE : public Prox
+   // events on.
+   scoped_refptr<base::SequencedTaskRunner> file_task_runner_;
  };
 +#endif
  
  }  // namespace
  
-@@ -1215,8 +1219,10 @@ ProxyConfigServiceLinux::Delegate::Deleg
-     case base::nix::DESKTOP_ENVIRONMENT_KDE3:
+@@ -1256,9 +1260,11 @@ ProxyConfigServiceLinux::Delegate::Deleg
      case base::nix::DESKTOP_ENVIRONMENT_KDE4:
      case base::nix::DESKTOP_ENVIRONMENT_KDE5:
-+#if !defined(OS_BSD)
-       setting_getter_.reset(new SettingGetterImplKDE(env_var_getter_.get()));
+     case base::nix::DESKTOP_ENVIRONMENT_KDE6:
++#if !BUILDFLAG(IS_BSD)
+       setting_getter_ =
+           std::make_unique<SettingGetterImplKDE>(env_var_getter_.get());
        break;
 +#endif
      case base::nix::DESKTOP_ENVIRONMENT_XFCE:
+     case base::nix::DESKTOP_ENVIRONMENT_LXQT:
      case base::nix::DESKTOP_ENVIRONMENT_OTHER:
-       break;
diff --git a/chromium/patches/patch-net_socket_socket__posix.cc b/chromium/patches/patch-net_socket_socket__posix.cc
index 55e1137230..328984a159 100644
--- a/chromium/patches/patch-net_socket_socket__posix.cc
+++ b/chromium/patches/patch-net_socket_socket__posix.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- net/socket/socket_posix.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/socket/socket_posix.cc.orig	2024-07-24 02:44:43.073404800 +0000
 +++ net/socket/socket_posix.cc
-@@ -517,7 +517,7 @@ void SocketPosix::ReadCompleted() {
+@@ -516,7 +516,7 @@ void SocketPosix::ReadCompleted() {
  }
  
  int SocketPosix::DoWrite(IOBuffer* buf, int buf_len) {
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
    // Disable SIGPIPE for this write. Although Chromium globally disables
    // SIGPIPE, the net stack may be used in other consumers which do not do
    // this. MSG_NOSIGNAL is a Linux-only API. On OS X, this is a setsockopt on
diff --git a/chromium/patches/patch-net_socket_socks5__client__socket.cc b/chromium/patches/patch-net_socket_socks5__client__socket.cc
index 0d11b2b646..8e0e6368f3 100644
--- a/chromium/patches/patch-net_socket_socks5__client__socket.cc
+++ b/chromium/patches/patch-net_socket_socks5__client__socket.cc
@@ -1,15 +1,18 @@
 $NetBSD$
 
---- net/socket/socks5_client_socket.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/socket/socks5_client_socket.cc.orig	2024-07-24 02:44:43.077405200 +0000
 +++ net/socket/socks5_client_socket.cc
-@@ -4,6 +4,10 @@
- 
- #include "net/socket/socks5_client_socket.h"
+@@ -24,6 +24,9 @@
+ #include "net/log/net_log_event_type.h"
+ #include "net/traffic_annotation/network_traffic_annotation.h"
  
-+#if defined(OS_BSD)
++#include <sys/types.h>
 +#include <netinet/in.h>
-+#endif
 +
- #include <utility>
+ namespace net {
  
- #include "base/bind.h"
+ const unsigned int SOCKS5ClientSocket::kGreetReadHeaderSize = 2;
diff --git a/chromium/patches/patch-net_socket_tcp__socket__posix.cc b/chromium/patches/patch-net_socket_tcp__socket__posix.cc
index ff1c6e0bef..4bf250bc56 100644
--- a/chromium/patches/patch-net_socket_tcp__socket__posix.cc
+++ b/chromium/patches/patch-net_socket_tcp__socket__posix.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- net/socket/tcp_socket_posix.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/socket/tcp_socket_posix.cc.orig	2024-07-24 02:44:43.085406000 +0000
 +++ net/socket/tcp_socket_posix.cc
-@@ -88,6 +88,17 @@ bool SetTCPKeepAlive(int fd, bool enable
-     PLOG(ERROR) << "Failed to set TCP_KEEPALIVE on fd: " << fd;
-     return false;
-   }
-+#elif defined(OS_BSD)
+@@ -97,6 +97,17 @@ bool SetTCPKeepAlive(int fd, bool enable
+       PLOG(ERROR) << "Failed to set TCP_KEEPALIVE on fd: " << fd;
+       return false;
+     }
++#elif BUILDFLAG(IS_FREEBSD)
 +  // Set seconds until first TCP keep alive.
 +  if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &delay, sizeof(delay))) {
 +    PLOG(ERROR) << "Failed to set TCP_KEEPIDLE on fd: " << fd;
 +    return false;
 +  }
-+  // Set seconds between TCP keep alives.
++  // Set seconds between TCP keep alives.  
 +  if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, &delay, sizeof(delay))) {
 +    PLOG(ERROR) << "Failed to set TCP_KEEPINTVL on fd: " << fd;
 +    return false;
 +  }
  #endif
-   return true;
- }
+   }
+ 
diff --git a/chromium/patches/patch-net_socket_udp__socket__posix.cc b/chromium/patches/patch-net_socket_udp__socket__posix.cc
index 93de4f1d33..c8c0dbb03a 100644
--- a/chromium/patches/patch-net_socket_udp__socket__posix.cc
+++ b/chromium/patches/patch-net_socket_udp__socket__posix.cc
@@ -1,82 +1,125 @@
 $NetBSD$
 
---- net/socket/udp_socket_posix.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/socket/udp_socket_posix.cc.orig	2024-07-24 02:44:43.089406500 +0000
 +++ net/socket/udp_socket_posix.cc
-@@ -70,7 +70,7 @@ const int kActivityMonitorMinimumSamples
- const base::TimeDelta kActivityMonitorMsThreshold =
-     base::TimeDelta::FromMilliseconds(100);
+@@ -78,6 +78,32 @@ constexpr int kBindRetries = 10;
+ constexpr int kPortStart = 1024;
+ constexpr int kPortEnd = 65535;
+ 
++#if BUILDFLAG(IS_NETBSD)
++int GetIPv4AddressFromIndex(int socket, uint32_t index, uint32_t* address) {
++  if (!index) {
++    *address = htonl(INADDR_ANY);
++    return OK;
++  }
++
++  sockaddr_in* result = nullptr;
++
++  ifreq ifr;
++  ifr.ifr_addr.sa_family = AF_INET;
++  if (!if_indextoname(index, ifr.ifr_name))
++    return MapSystemError(errno);
++  int rv = ioctl(socket, SIOCGIFADDR, &ifr);
++  if (rv == -1)
++    return MapSystemError(errno);
++  result = reinterpret_cast<sockaddr_in*>(&ifr.ifr_addr);
++
++  if (!result)
++    return ERR_ADDRESS_INVALID;
++
++  *address = result->sin_addr.s_addr;
++  return OK;
++}
++#endif
++
+ int GetSocketFDHash(int fd) {
+   return fd ^ 1595649551;
+ }
+@@ -521,12 +547,17 @@ int UDPSocketPosix::SetRecvTos() {
+     }
+   }
  
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
- // When enabling multicast using setsockopt(IP_MULTICAST_IF) MacOS
- // requires passing IPv4 address instead of interface index. This function
- // resolves IPv4 address by interface index. The |address| is returned in
-@@ -645,7 +645,7 @@ int UDPSocketPosix::SetDoNotFragment() {
++#ifdef IP_RECVTOS
+   int rv = setsockopt(socket_, IPPROTO_IP, IP_RECVTOS, &ecn, sizeof(ecn));
++#else
++  int rv = -1;
++  errno = EOPNOTSUPP;
++#endif
+   return rv == 0 ? OK : MapSystemError(errno);
  }
  
  void UDPSocketPosix::SetMsgConfirm(bool confirm) {
--#if !defined(OS_MACOSX) && !defined(OS_IOS)
-+#if !defined(OS_MACOSX) && !defined(OS_IOS) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_APPLE)
++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
    if (confirm) {
      sendto_flags_ |= MSG_CONFIRM;
    } else {
-@@ -666,13 +666,16 @@ int UDPSocketPosix::SetBroadcast(bool br
+@@ -547,7 +578,7 @@ int UDPSocketPosix::SetBroadcast(bool br
    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
    int value = broadcast ? 1 : 0;
    int rv;
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
    // SO_REUSEPORT on OSX permits multiple processes to each receive
    // UDP multicast or broadcast datagrams destined for the bound
    // port.
-   // This is only being set on OSX because its behavior is platform dependent
-   // and we are playing it safe by only setting it on platforms where things
-   // break.
-+  rv = setsockopt(socket_, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value));
-+  if (rv != 0)
-+    return MapSystemError(errno);
-   rv = setsockopt(socket_, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(value));
-   if (rv != 0)
-     return MapSystemError(errno);
-@@ -936,7 +939,7 @@ int UDPSocketPosix::SetMulticastOptions(
+@@ -848,9 +879,17 @@ int UDPSocketPosix::SetMulticastOptions(
    if (multicast_interface_ != 0) {
      switch (addr_family_) {
        case AF_INET: {
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
-         ip_mreq mreq = {};
-         int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
-                                             &mreq.imr_interface.s_addr);
-@@ -948,7 +951,11 @@ int UDPSocketPosix::SetMulticastOptions(
++#if BUILDFLAG(IS_NETBSD)
++        ip_mreq mreq = {};
++        int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
++                                            &mreq.imr_interface.s_addr);
++        if (error != OK)
++          return error;
++#else
+         ip_mreqn mreq = {};
+         mreq.imr_ifindex = multicast_interface_;
          mreq.imr_address.s_addr = htonl(INADDR_ANY);
- #endif  //  !defined(OS_MACOSX)
++#endif
          int rv = setsockopt(socket_, IPPROTO_IP, IP_MULTICAST_IF,
-+#if defined(OS_BSD)
-+                            reinterpret_cast<const char*>(&mreq.imr_interface.s_addr), sizeof(mreq.imr_interface.s_addr));
-+#else
                              reinterpret_cast<const char*>(&mreq), sizeof(mreq));
-+#endif
          if (rv)
-           return MapSystemError(errno);
-         break;
-@@ -1010,7 +1017,7 @@ int UDPSocketPosix::JoinGroup(const IPAd
+@@ -885,7 +924,7 @@ int UDPSocketPosix::DoBind(const IPEndPo
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+   if (last_error == EINVAL)
+     return ERR_ADDRESS_IN_USE;
+-#elif BUILDFLAG(IS_APPLE)
++#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
+   if (last_error == EADDRNOTAVAIL)
+     return ERR_ADDRESS_IN_USE;
+ #endif
+@@ -913,9 +952,17 @@ int UDPSocketPosix::JoinGroup(const IPAd
+     case IPAddress::kIPv4AddressSize: {
        if (addr_family_ != AF_INET)
          return ERR_ADDRESS_INVALID;
- 
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
-       ip_mreq mreq = {};
-       int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
-                                           &mreq.imr_interface.s_addr);
-@@ -1058,9 +1065,18 @@ int UDPSocketPosix::LeaveGroup(const IPA
++#if BUILDFLAG(IS_NETBSD)
++      ip_mreq mreq = {};
++      int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
++                                          &mreq.imr_interface.s_addr);
++      if (error != OK)
++        return error;
++#else
+       ip_mreqn mreq = {};
+       mreq.imr_ifindex = multicast_interface_;
+       mreq.imr_address.s_addr = htonl(INADDR_ANY);
++#endif
+       memcpy(&mreq.imr_multiaddr, group_address.bytes().data(),
+              IPAddress::kIPv4AddressSize);
+       int rv = setsockopt(socket_, IPPROTO_IP, IP_ADD_MEMBERSHIP,
+@@ -953,9 +1000,17 @@ int UDPSocketPosix::LeaveGroup(const IPA
      case IPAddress::kIPv4AddressSize: {
        if (addr_family_ != AF_INET)
          return ERR_ADDRESS_INVALID;
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_NETBSD)
 +      ip_mreq mreq = {};
 +      int error = GetIPv4AddressFromIndex(socket_, multicast_interface_,
 +                                          &mreq.imr_interface.s_addr);
-+
 +      if (error != OK)
 +        return error;
 +#else
diff --git a/chromium/patches/patch-net_socket_udp__socket__posix.h b/chromium/patches/patch-net_socket_udp__socket__posix.h
deleted file mode 100644
index 6ab663d3a6..0000000000
--- a/chromium/patches/patch-net_socket_udp__socket__posix.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/socket/udp_socket_posix.h.orig	2020-07-15 18:56:00.000000000 +0000
-+++ net/socket/udp_socket_posix.h
-@@ -34,7 +34,7 @@
- 
- #if defined(__ANDROID__) && defined(__aarch64__)
- #define HAVE_SENDMMSG 1
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #define HAVE_SENDMMSG 1
- #else
- #define HAVE_SENDMMSG 0
diff --git a/chromium/patches/patch-net_socket_udp__socket__unittest.cc b/chromium/patches/patch-net_socket_udp__socket__unittest.cc
new file mode 100644
index 0000000000..2014b0d1fa
--- /dev/null
+++ b/chromium/patches/patch-net_socket_udp__socket__unittest.cc
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/socket/udp_socket_unittest.cc.orig	2024-07-24 02:44:43.089406500 +0000
++++ net/socket/udp_socket_unittest.cc
+@@ -358,7 +358,7 @@ TEST_F(UDPSocketTest, PartialRecv) {
+   EXPECT_EQ(second_packet, received);
+ }
+ 
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+ // - MacOS: requires root permissions on OSX 10.7+.
+ // - Android: devices attached to testbots don't have default network, so
+ // broadcasting to 255.255.255.255 returns error -109 (Address not reachable).
+@@ -669,7 +669,7 @@ TEST_F(UDPSocketTest, ClientSetDoNotFrag
+     EXPECT_THAT(rv, IsOk());
+ 
+     rv = client.SetDoNotFragment();
+-#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+     // TODO(crbug.com/42050633): IP_MTU_DISCOVER is not implemented on Fuchsia.
+     EXPECT_THAT(rv, IsError(ERR_NOT_IMPLEMENTED));
+ #elif BUILDFLAG(IS_MAC)
+@@ -697,7 +697,7 @@ TEST_F(UDPSocketTest, ServerSetDoNotFrag
+     EXPECT_THAT(rv, IsOk());
+ 
+     rv = server.SetDoNotFragment();
+-#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+     // TODO(crbug.com/42050633): IP_MTU_DISCOVER is not implemented on Fuchsia.
+     EXPECT_THAT(rv, IsError(ERR_NOT_IMPLEMENTED));
+ #elif BUILDFLAG(IS_MAC)
+@@ -762,7 +762,7 @@ TEST_F(UDPSocketTest, JoinMulticastGroup
+ 
+ // TODO(crbug.com/40620614): failing on device on iOS 12.2.
+ // TODO(crbug.com/40189274): flaky on Mac 11.
+-#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #define MAYBE_SharedMulticastAddress DISABLED_SharedMulticastAddress
+ #else
+ #define MAYBE_SharedMulticastAddress SharedMulticastAddress
+@@ -816,7 +816,7 @@ TEST_F(UDPSocketTest, MAYBE_SharedMultic
+                                 NetLogSource());
+   ASSERT_THAT(client_socket.Connect(send_address), IsOk());
+ 
+-#if !BUILDFLAG(IS_CHROMEOS_ASH)
++#if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_BSD)
+   // Send a message via the multicast group. That message is expected be be
+   // received by both receving sockets.
+   //
diff --git a/chromium/patches/patch-net_socket_unix__domain__client__socket__posix.cc b/chromium/patches/patch-net_socket_unix__domain__client__socket__posix.cc
deleted file mode 100644
index 5d40e91094..0000000000
--- a/chromium/patches/patch-net_socket_unix__domain__client__socket__posix.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/socket/unix_domain_client_socket_posix.cc.orig	2020-07-15 18:56:00.000000000 +0000
-+++ net/socket/unix_domain_client_socket_posix.cc
-@@ -57,7 +57,7 @@ bool UnixDomainClientSocket::FillAddress
-     return true;
-   }
- 
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
-   // Convert the path given into abstract socket name. It must start with
-   // the '\0' character, so we are adding it. |addr_len| must specify the
-   // length of the structure exactly, as potentially the socket name may
diff --git a/chromium/patches/patch-net_third__party_quiche_BUILD.gn b/chromium/patches/patch-net_third__party_quiche_BUILD.gn
index 351d90071c..bfe89fb1ef 100644
--- a/chromium/patches/patch-net_third__party_quiche_BUILD.gn
+++ b/chromium/patches/patch-net_third__party_quiche_BUILD.gn
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- net/third_party/quiche/BUILD.gn.orig	2020-06-25 09:32:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/third_party/quiche/BUILD.gn.orig	2024-07-24 02:44:43.129410300 +0000
 +++ net/third_party/quiche/BUILD.gn
-@@ -1442,7 +1442,7 @@ source_set("quiche_tests") {
-   ]
-   public_deps = []
+@@ -29,7 +29,7 @@ import("//net/third_party/quiche/src/bui
+ import("//testing/libfuzzer/fuzzer_test.gni")
+ import("//third_party/protobuf/proto_library.gni")
+ 
+-build_epoll_based_tools = is_linux || is_chromeos
++build_epoll_based_tools = (is_linux && !is_bsd) || is_chromeos
  
--  if (is_desktop_linux) {
-+  if (is_desktop_linux && !is_bsd) {
-     public_deps += [ "//net:epoll_quic_tools" ]
-   }
-   if (is_linux) {
+ config("quiche_internal_config") {
+   cflags = []
diff --git a/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc b/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc
new file mode 100644
index 0000000000..bae1688cc8
--- /dev/null
+++ b/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/tools/cert_verify_tool/cert_verify_comparision_tool.cc.orig	2024-07-24 02:44:43.133410700 +0000
++++ net/tools/cert_verify_tool/cert_verify_comparision_tool.cc
+@@ -36,7 +36,7 @@
+ #include "net/url_request/url_request_context_builder.h"
+ #include "net/url_request/url_request_context_getter.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "net/proxy_resolution/proxy_config.h"
+ #include "net/proxy_resolution/proxy_config_service_fixed.h"
+ #endif
+@@ -56,7 +56,7 @@ void SetUpOnNetworkThread(
+     base::WaitableEvent* initialization_complete_event) {
+   net::URLRequestContextBuilder url_request_context_builder;
+   url_request_context_builder.set_user_agent(GetUserAgent());
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // On Linux, use a fixed ProxyConfigService, since the default one
+   // depends on glib.
+   //
+@@ -124,7 +124,7 @@ class CertVerifyImpl {
+ std::unique_ptr<CertVerifyImpl> CreateCertVerifyImplFromName(
+     std::string_view impl_name,
+     scoped_refptr<net::CertNetFetcher> cert_net_fetcher) {
+-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+       BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(CHROME_ROOT_STORE_ONLY))
+   if (impl_name == "platform") {
+     return std::make_unique<CertVerifyImpl>(
diff --git a/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__tool.cc b/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__tool.cc
index 0809a0f2a4..cdfde1e8d7 100644
--- a/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__tool.cc
+++ b/chromium/patches/patch-net_tools_cert__verify__tool_cert__verify__tool.cc
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- net/tools/cert_verify_tool/cert_verify_tool.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/tools/cert_verify_tool/cert_verify_tool.cc.orig	2024-07-24 02:44:43.133410700 +0000
 +++ net/tools/cert_verify_tool/cert_verify_tool.cc
-@@ -29,7 +29,7 @@
- #include "net/url_request/url_request_context_builder.h"
- #include "net/url_request/url_request_context_getter.h"
+@@ -34,7 +34,7 @@
+ #include "third_party/boringssl/src/pki/trust_store.h"
+ #include "third_party/boringssl/src/pki/trust_store_collection.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "net/proxy_resolution/proxy_config.h"
  #include "net/proxy_resolution/proxy_config_service_fixed.h"
  #endif
-@@ -46,7 +46,7 @@ void SetUpOnNetworkThread(
+@@ -66,7 +66,7 @@ void SetUpOnNetworkThread(
      base::WaitableEvent* initialization_complete_event) {
    net::URLRequestContextBuilder url_request_context_builder;
    url_request_context_builder.set_user_agent(GetUserAgent());
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // On Linux, use a fixed ProxyConfigService, since the default one
    // depends on glib.
    //
-@@ -192,7 +192,7 @@ std::unique_ptr<CertVerifyImpl> CreateCe
-     base::StringPiece impl_name,
-     scoped_refptr<net::CertNetFetcher> cert_net_fetcher,
-     bool use_system_roots) {
--#if !(defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS))
-+#if !(defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD))
-   if (impl_name == "platform") {
-     if (!use_system_roots) {
-       std::cerr << "WARNING: platform verifier not supported with "
+@@ -576,7 +576,7 @@ int main(int argc, char** argv) {
+   std::string impls_str = command_line.GetSwitchValueASCII("impls");
+   if (impls_str.empty()) {
+     // Default value.
+-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || \
++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+       BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(CHROME_ROOT_STORE_ONLY))
+     impls_str = "platform,";
+ #endif
diff --git a/chromium/patches/patch-net_tools_net__watcher_net__watcher.cc b/chromium/patches/patch-net_tools_net__watcher_net__watcher.cc
new file mode 100644
index 0000000000..b933bd8e46
--- /dev/null
+++ b/chromium/patches/patch-net_tools_net__watcher_net__watcher.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/tools/net_watcher/net_watcher.cc.orig	2024-07-24 02:44:43.137411000 +0000
++++ net/tools/net_watcher/net_watcher.cc
+@@ -32,7 +32,7 @@
+ #include "net/proxy_resolution/proxy_config_service.h"
+ #include "net/proxy_resolution/proxy_config_with_annotation.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "net/base/network_change_notifier_linux.h"
+ #endif
+ 
+@@ -44,7 +44,7 @@ namespace {
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Flag to specifies which network interfaces to ignore. Interfaces should
+ // follow as a comma seperated list.
+ const char kIgnoreNetifFlag[] = "ignore-netif";
+@@ -163,7 +163,7 @@ int main(int argc, char* argv[]) {
+ 
+   NetWatcher net_watcher;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+   std::string ignored_netifs_str =
+       command_line->GetSwitchValueASCII(kIgnoreNetifFlag);
diff --git a/chromium/patches/patch-net_tools_quic_quic__http__proxy__backend.cc b/chromium/patches/patch-net_tools_quic_quic__http__proxy__backend.cc
deleted file mode 100644
index ec9b85b49f..0000000000
--- a/chromium/patches/patch-net_tools_quic_quic__http__proxy__backend.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/tools/quic/quic_http_proxy_backend.cc.orig	2020-07-15 18:56:00.000000000 +0000
-+++ net/tools/quic/quic_http_proxy_backend.cc
-@@ -162,7 +162,7 @@ void QuicHttpProxyBackend::InitializeURL
-   // Enable HTTP2, but disable QUIC on the backend
-   context_builder.SetSpdyAndQuicEnabled(true /* http2 */, false /* quic */);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // On Linux, use a fixed ProxyConfigService, since the default one
-   // depends on glib.
-   context_builder.set_proxy_config_service(
diff --git a/chromium/patches/patch-net_traffic__annotation_network__traffic__annotation.h b/chromium/patches/patch-net_traffic__annotation_network__traffic__annotation.h
index 6576759f3c..a5d0fd3a85 100644
--- a/chromium/patches/patch-net_traffic__annotation_network__traffic__annotation.h
+++ b/chromium/patches/patch-net_traffic__annotation_network__traffic__annotation.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- net/traffic_annotation/network_traffic_annotation.h.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/traffic_annotation/network_traffic_annotation.h.orig	2024-07-24 02:44:43.145412000 +0000
 +++ net/traffic_annotation/network_traffic_annotation.h
-@@ -359,7 +359,7 @@ struct MutablePartialNetworkTrafficAnnot
+@@ -378,7 +378,7 @@ struct MutablePartialNetworkTrafficAnnot
  }  // namespace net
  
  // Placeholder for unannotated usages.
--#if !defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if !defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
  #define TRAFFIC_ANNOTATION_WITHOUT_PROTO(ANNOTATION_ID) \
    net::DefineNetworkTrafficAnnotation(ANNOTATION_ID, "No proto yet.")
  #endif
-@@ -370,7 +370,7 @@ struct MutablePartialNetworkTrafficAnnot
- //
- // On Linux and Windows, use MISSING_TRAFFIC_ANNOTATION or
- // TRAFFIC_ANNOTATION_FOR_TESTS.
--#if (!defined(OS_WIN) && !defined(OS_LINUX)) || defined(OS_CHROMEOS)
-+#if (!defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
+@@ -392,7 +392,7 @@ struct MutablePartialNetworkTrafficAnnot
+ // TODO(crbug.com/40118868): Revisit once build flag switch of lacros-chrome is
+ // complete.
+ #if !BUILDFLAG(IS_WIN) && \
+-    !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++    !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+ 
  #define NO_TRAFFIC_ANNOTATION_YET \
    net::DefineNetworkTrafficAnnotation("undefined", "Nothing here yet.")
- 
diff --git a/chromium/patches/patch-net_url__request_url__fetcher.cc b/chromium/patches/patch-net_url__request_url__fetcher.cc
deleted file mode 100644
index ae78e98922..0000000000
--- a/chromium/patches/patch-net_url__request_url__fetcher.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/url_request/url_fetcher.cc.orig	2020-07-15 18:56:00.000000000 +0000
-+++ net/url_request/url_fetcher.cc
-@@ -21,7 +21,7 @@ void URLFetcher::SetIgnoreCertificateReq
-   URLFetcherImpl::SetIgnoreCertificateRequests(ignored);
- }
- 
--#if (!defined(OS_WIN) && !defined(OS_LINUX)) || defined(OS_CHROMEOS)
-+#if (!defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
- // static
- std::unique_ptr<URLFetcher> URLFetcher::Create(
-     const GURL& url,
diff --git a/chromium/patches/patch-net_url__request_url__fetcher.h b/chromium/patches/patch-net_url__request_url__fetcher.h
deleted file mode 100644
index 234d64b018..0000000000
--- a/chromium/patches/patch-net_url__request_url__fetcher.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- net/url_request/url_fetcher.h.orig	2020-07-15 18:56:47.000000000 +0000
-+++ net/url_request/url_fetcher.h
-@@ -355,7 +355,7 @@ class NET_EXPORT URLFetcher {
-   // The unannotated Create() methods are not available on desktop Linux +
-   // Windows. They are available on other platforms, since we only audit network
-   // annotations on Linux & Windows.
--#if (!defined(OS_WIN) && !defined(OS_LINUX)) || defined(OS_CHROMEOS)
-+#if (!defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
-   // |url| is the URL to send the request to. It must be valid.
-   // |request_type| is the type of request to make.
-   // |d| the object that will receive the callback on fetch completion.
diff --git a/chromium/patches/patch-net_url__request_url__request__context.cc b/chromium/patches/patch-net_url__request_url__request__context.cc
index dfa087477e..ba794a09ce 100644
--- a/chromium/patches/patch-net_url__request_url__request__context.cc
+++ b/chromium/patches/patch-net_url__request_url__request__context.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- net/url_request/url_request_context.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/url_request/url_request_context.cc.orig	2024-07-24 02:44:43.149412200 +0000
 +++ net/url_request/url_request_context.cc
-@@ -90,7 +90,7 @@ const HttpNetworkSession::Context* URLRe
-   return &network_session->context();
- }
- 
--#if (!defined(OS_WIN) && !defined(OS_LINUX)) || defined(OS_CHROMEOS)
-+#if (!defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
+@@ -121,7 +121,7 @@ const HttpNetworkSessionContext* URLRequ
+ // TODO(crbug.com/40118868): Revisit once build flag switch of lacros-chrome is
+ // complete.
+ #if !BUILDFLAG(IS_WIN) && \
+-    !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++    !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
  std::unique_ptr<URLRequest> URLRequestContext::CreateRequest(
      const GURL& url,
      RequestPriority priority,
diff --git a/chromium/patches/patch-net_url__request_url__request__context.h b/chromium/patches/patch-net_url__request_url__request__context.h
index 1c50533c58..874f99b6ab 100644
--- a/chromium/patches/patch-net_url__request_url__request__context.h
+++ b/chromium/patches/patch-net_url__request_url__request__context.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- net/url_request/url_request_context.h.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/url_request/url_request_context.h.orig	2024-07-24 02:44:43.149412200 +0000
 +++ net/url_request/url_request_context.h
-@@ -82,7 +82,7 @@ class NET_EXPORT URLRequestContext
-   // session.
-   const HttpNetworkSession::Context* GetNetworkSessionContext() const;
- 
--#if (!defined(OS_WIN) && !defined(OS_LINUX)) || defined(OS_CHROMEOS)
-+#if (!defined(OS_WIN) && !defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
+@@ -89,7 +89,7 @@ class NET_EXPORT URLRequestContext final
+ // TODO(crbug.com/40118868): Revisit once build flag switch of lacros-chrome is
+ // complete.
+ #if !BUILDFLAG(IS_WIN) && \
+-    !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++    !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
    // This function should not be used in Chromium, please use the version with
    // NetworkTrafficAnnotationTag in the future.
    //
diff --git a/chromium/patches/patch-net_url__request_url__request__context__builder.cc b/chromium/patches/patch-net_url__request_url__request__context__builder.cc
index baff3dbb26..dba4f01c7b 100644
--- a/chromium/patches/patch-net_url__request_url__request__context__builder.cc
+++ b/chromium/patches/patch-net_url__request_url__request__context__builder.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- net/url_request/url_request_context_builder.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- net/url_request/url_request_context_builder.cc.orig	2024-07-24 02:44:43.149412200 +0000
 +++ net/url_request/url_request_context_builder.cc
-@@ -485,7 +485,7 @@ std::unique_ptr<URLRequestContext> URLRe
+@@ -439,7 +439,7 @@ std::unique_ptr<URLRequestContext> URLRe
    }
  
    if (!proxy_resolution_service_) {
--#if !defined(OS_LINUX) && !defined(OS_ANDROID)
-+#if !defined(OS_LINUX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD)
      // TODO(willchan): Switch to using this code when
-     // ConfiguredProxyResolutionService::CreateSystemProxyConfigService()'s
+     // ProxyConfigService::CreateSystemProxyConfigService()'s
      // signature doesn't suck.
diff --git a/chromium/patches/patch-pdf_BUILD.gn b/chromium/patches/patch-pdf_BUILD.gn
deleted file mode 100644
index b029213880..0000000000
--- a/chromium/patches/patch-pdf_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- pdf/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ pdf/BUILD.gn
-@@ -121,7 +121,7 @@ if (enable_pdf) {
-         "pdfium/pdfium_unsupported_features.h",
-       ]
- 
--      if (is_linux) {
-+      if (is_linux || is_bsd) {
-         sources += [
-           "pdfium/pdfium_font_linux.cc",
-           "pdfium/pdfium_font_linux.h",
diff --git a/chromium/patches/patch-pdf_pdfium_pdfium__engine.cc b/chromium/patches/patch-pdf_pdfium_pdfium__engine.cc
index 69fac97445..b693e3467f 100644
--- a/chromium/patches/patch-pdf_pdfium_pdfium__engine.cc
+++ b/chromium/patches/patch-pdf_pdfium_pdfium__engine.cc
@@ -1,58 +1,26 @@
 $NetBSD$
 
---- pdf/pdfium/pdfium_engine.cc.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- pdf/pdfium/pdfium_engine.cc.orig	2024-07-24 02:44:43.185415700 +0000
 +++ pdf/pdfium/pdfium_engine.cc
-@@ -58,7 +58,7 @@
- #include "ui/gfx/geometry/rect.h"
- #include "v8/include/v8.h"
+@@ -92,7 +92,7 @@
+ #include "gin/public/cppgc.h"
+ #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "pdf/pdfium/pdfium_font_linux.h"
  #endif
  
-@@ -396,7 +396,7 @@ void InitializeSDK(bool enable_v8) {
-   config.m_v8EmbedderSlot = gin::kEmbedderPDFium;
+@@ -517,7 +517,7 @@ void InitializeSDK(bool enable_v8,
+ 
    FPDF_InitLibraryWithConfig(&config);
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   g_font_mapping_mode = font_mapping_mode;
    InitializeLinuxFontMapper();
  #endif
- 
-@@ -437,7 +437,7 @@ PDFiumEngine::PDFiumEngine(PDFEngine::Cl
-   IFSDK_PAUSE::user = nullptr;
-   IFSDK_PAUSE::NeedToPauseNow = Pause_NeedToPauseNow;
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // PreviewModeClient does not know its pp::Instance.
-   SetLastInstance(client_->GetPluginInstance());
- #endif
-@@ -913,7 +913,7 @@ pp::Buffer_Dev PDFiumEngine::PrintPagesA
- 
-   KillFormFocus();
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   SetLastInstance(client_->GetPluginInstance());
- #endif
- 
-@@ -2960,7 +2960,7 @@ bool PDFiumEngine::ContinuePaint(int pro
-   DCHECK(image_data);
- 
-   last_progressive_start_time_ = base::Time::Now();
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   SetLastInstance(client_->GetPluginInstance());
- #endif
- 
-@@ -3456,7 +3456,7 @@ void PDFiumEngine::SetCurrentPage(int in
-     FORM_DoPageAAction(old_page, form(), FPDFPAGE_AACTION_CLOSE);
-   }
-   most_visible_page_ = index;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   SetLastInstance(client_->GetPluginInstance());
- #endif
-   if (most_visible_page_ != -1 && called_do_document_action_) {
diff --git a/chromium/patches/patch-ppapi_proxy_flash__resource.cc b/chromium/patches/patch-ppapi_proxy_flash__resource.cc
deleted file mode 100644
index c030e27394..0000000000
--- a/chromium/patches/patch-ppapi_proxy_flash__resource.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ppapi/proxy/flash_resource.cc.orig	2020-07-15 18:56:00.000000000 +0000
-+++ ppapi/proxy/flash_resource.cc
-@@ -136,7 +136,7 @@ double FlashResource::GetLocalTimeZoneOf
-   // require filesystem access prohibited by the sandbox.
-   // TODO(shess): Figure out why OSX needs the access, the sandbox warmup should
-   // handle it.  http://crbug.com/149006
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
-   int32_t result = SyncCall<PpapiPluginMsg_Flash_GetLocalTimeZoneOffsetReply>(
-       BROWSER,
-       PpapiHostMsg_Flash_GetLocalTimeZoneOffset(PPTimeToTime(t)),
diff --git a/chromium/patches/patch-ppapi_tests_test__utils.h b/chromium/patches/patch-ppapi_tests_test__utils.h
new file mode 100644
index 0000000000..d05f5703e8
--- /dev/null
+++ b/chromium/patches/patch-ppapi_tests_test__utils.h
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ppapi/tests/test_utils.h.orig	2024-07-24 02:44:43.309427700 +0000
++++ ppapi/tests/test_utils.h
+@@ -314,6 +314,8 @@ do { \
+ #define PPAPI_OS_FREEBSD 1
+ #elif defined(__OpenBSD__)
+ #define PPAPI_OS_OPENBSD 1
++#elif defined(__NetBSD__)
++#define PPAPI_OS_NETBSD 1
+ #elif defined(__sun)
+ #define PPAPI_OS_SOLARIS 1
+ #else
+@@ -322,7 +324,8 @@ do { \
+ 
+ /* These are used to determine POSIX-like implementations vs Windows. */
+ #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
+-    defined(__OpenBSD__) || defined(__sun) || defined(__native_client__)
++    defined(__OpenBSD__) || defined(__sun) || defined(__native_client__) \
++    defined(__NetBSD__)
+ #define PPAPI_POSIX 1
+ #endif
+ 
diff --git a/chromium/patches/patch-printing_BUILD.gn b/chromium/patches/patch-printing_BUILD.gn
deleted file mode 100644
index e134ef189c..0000000000
--- a/chromium/patches/patch-printing_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- printing/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ printing/BUILD.gn
-@@ -206,7 +206,7 @@ component("printing") {
-   if (use_cups) {
-     configs += [ ":cups" ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       # CUPS 1.6 deprecated the PPD APIs, but we will stay with this API
-       # for now as the suitability of the replacement is unclear.
-       # More info: crbug.com/226176
-@@ -312,7 +312,7 @@ static_library("test_support") {
-   if (is_fuchsia) {
-     sources += [ "image_fuchsia.cc" ]
-   }
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [ "image_linux.cc" ]
-   }
-   if (is_mac) {
diff --git a/chromium/patches/patch-printing_backend_cups__ipp__helper.cc b/chromium/patches/patch-printing_backend_cups__ipp__helper.cc
new file mode 100644
index 0000000000..ace2ff2398
--- /dev/null
+++ b/chromium/patches/patch-printing_backend_cups__ipp__helper.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- printing/backend/cups_ipp_helper.cc.orig	2024-07-24 02:44:43.325429200 +0000
++++ printing/backend/cups_ipp_helper.cc
+@@ -202,7 +202,7 @@ void ExtractResolutions(const CupsOption
+   // Provide a default DPI if no valid DPI is found.
+ #if BUILDFLAG(IS_MAC)
+   constexpr gfx::Size kDefaultMissingDpi(kDefaultMacDpi, kDefaultMacDpi);
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   constexpr gfx::Size kDefaultMissingDpi(kPixelsPerInch, kPixelsPerInch);
+ #else
+   constexpr gfx::Size kDefaultMissingDpi(kDefaultPdfDpi, kDefaultPdfDpi);
diff --git a/chromium/patches/patch-printing_backend_print__backend__cups.cc b/chromium/patches/patch-printing_backend_print__backend__cups.cc
new file mode 100644
index 0000000000..9577bfaa0d
--- /dev/null
+++ b/chromium/patches/patch-printing_backend_print__backend__cups.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- printing/backend/print_backend_cups.cc.orig	2024-07-24 02:44:43.329429600 +0000
++++ printing/backend/print_backend_cups.cc
+@@ -27,7 +27,7 @@
+ #include "printing/mojom/print.mojom.h"
+ #include "url/gurl.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ #include "base/feature_list.h"
+ #include "printing/backend/cups_connection.h"
+ #include "printing/backend/print_backend_cups_ipp.h"
+@@ -278,7 +278,7 @@ bool PrintBackendCUPS::IsValidPrinter(co
+ #if !BUILDFLAG(IS_CHROMEOS)
+ scoped_refptr<PrintBackend> PrintBackend::CreateInstanceImpl(
+     const std::string& locale) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   if (base::FeatureList::IsEnabled(features::kCupsIppPrintingBackend)) {
+     return base::MakeRefCounted<PrintBackendCupsIpp>(CupsConnection::Create());
+   }
diff --git a/chromium/patches/patch-printing_buildflags_buildflags.gni b/chromium/patches/patch-printing_buildflags_buildflags.gni
deleted file mode 100644
index 11ed89b298..0000000000
--- a/chromium/patches/patch-printing_buildflags_buildflags.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- printing/buildflags/buildflags.gni.orig	2020-07-15 18:56:00.000000000 +0000
-+++ printing/buildflags/buildflags.gni
-@@ -20,7 +20,7 @@ declare_args() {
-   # Enable exporting to tagged PDF.
-   enable_tagged_pdf = !is_android && !is_chromecast && !is_ios && !is_fuchsia
- 
--  if (use_fuzzing_engine && is_linux) {
-+  if (use_fuzzing_engine && (is_linux || is_bsd)) {
-     # For fuzzing, just restrict to chromeos and linux.
-     use_cups = true
-   } else {
diff --git a/chromium/patches/patch-printing_cups__config__helper.py b/chromium/patches/patch-printing_cups__config__helper.py
deleted file mode 100644
index 8c12d7e77f..0000000000
--- a/chromium/patches/patch-printing_cups__config__helper.py
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- printing/cups_config_helper.py.orig	2020-07-15 18:56:00.000000000 +0000
-+++ printing/cups_config_helper.py
-@@ -67,7 +67,7 @@ def main():
-   mode = sys.argv[1]
-   if len(sys.argv) > 2 and sys.argv[2]:
-     sysroot = sys.argv[2]
--    cups_config = os.path.join(sysroot, 'usr', 'bin', 'cups-config')
-+    cups_config = os.path.join(sysroot, 'bin', 'cups-config')
-     if not os.path.exists(cups_config):
-       print('cups-config not found: %s' % cups_config)
-       return 1
diff --git a/chromium/patches/patch-printing_mojom_printing__context__mojom__traits.cc b/chromium/patches/patch-printing_mojom_printing__context__mojom__traits.cc
new file mode 100644
index 0000000000..67cbdb81df
--- /dev/null
+++ b/chromium/patches/patch-printing_mojom_printing__context__mojom__traits.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- printing/mojom/printing_context_mojom_traits.cc.orig	2024-07-24 02:44:43.333430000 +0000
++++ printing/mojom/printing_context_mojom_traits.cc
+@@ -19,7 +19,7 @@
+ #include "base/numerics/safe_conversions.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "mojo/public/mojom/base/values.mojom.h"
+ #endif
+ 
+@@ -161,7 +161,7 @@ bool StructTraits<
+   }
+ 
+   out->set_pages_per_sheet(data.pages_per_sheet());
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   DCHECK(out->advanced_settings().empty());
+   if (!data.ReadAdvancedSettings(&out->advanced_settings()))
+     return false;
+@@ -238,7 +238,7 @@ bool StructTraits<
+     if (system_print_dialog_data.size() != dictionary_entries) {
+       return false;
+     }
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     // The dictionary must contain three strings.
+     const base::Value* value = system_print_dialog_data.Find(
+         printing::kLinuxSystemPrintDialogDataPrinter);
diff --git a/chromium/patches/patch-printing_mojom_printing__context__mojom__traits.h b/chromium/patches/patch-printing_mojom_printing__context__mojom__traits.h
new file mode 100644
index 0000000000..4b1aaff196
--- /dev/null
+++ b/chromium/patches/patch-printing_mojom_printing__context__mojom__traits.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- printing/mojom/printing_context_mojom_traits.h.orig	2024-07-24 02:44:43.333430000 +0000
++++ printing/mojom/printing_context_mojom_traits.h
+@@ -166,7 +166,7 @@ struct StructTraits<printing::mojom::Pri
+     return s.pages_per_sheet();
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   static const printing::PrintSettings::AdvancedSettings& advanced_settings(
+       const printing::PrintSettings& s) {
+     return s.advanced_settings();
diff --git a/chromium/patches/patch-printing_print__settings.cc b/chromium/patches/patch-printing_print__settings.cc
new file mode 100644
index 0000000000..9b80c74153
--- /dev/null
+++ b/chromium/patches/patch-printing_print__settings.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- printing/print_settings.cc.orig	2024-07-24 02:44:43.337430500 +0000
++++ printing/print_settings.cc
+@@ -320,7 +320,7 @@ PrintSettings& PrintSettings::operator=(
+ #endif
+   is_modifiable_ = settings.is_modifiable_;
+   pages_per_sheet_ = settings.pages_per_sheet_;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   for (const auto& item : settings.advanced_settings_)
+     advanced_settings_.emplace(item.first, item.second.Clone());
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -350,7 +350,7 @@ bool PrintSettings::operator==(const Pri
+ #endif
+                   is_modifiable_, requested_custom_margins_in_points_,
+                   pages_per_sheet_
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+                   ,
+                   advanced_settings_
+ #endif
+@@ -374,7 +374,7 @@ bool PrintSettings::operator==(const Pri
+                   other.is_modifiable_,
+                   other.requested_custom_margins_in_points_,
+                   other.pages_per_sheet_
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+                   ,
+                   other.advanced_settings_
+ #endif
+@@ -414,7 +414,7 @@ void PrintSettings::Clear() {
+ #endif
+   is_modifiable_ = true;
+   pages_per_sheet_ = 1;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   advanced_settings_.clear();
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-printing_print__settings.h b/chromium/patches/patch-printing_print__settings.h
index da3c86ecd0..9b7368f5c9 100644
--- a/chromium/patches/patch-printing_print__settings.h
+++ b/chromium/patches/patch-printing_print__settings.h
@@ -1,46 +1,53 @@
 $NetBSD$
 
---- printing/print_settings.h.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- printing/print_settings.h.orig	2024-07-24 02:44:43.337430500 +0000
 +++ printing/print_settings.h
-@@ -1,4 +1,4 @@
--// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-+/// 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.
- 
-@@ -20,7 +20,7 @@
- #include "ui/gfx/geometry/rect.h"
- #include "ui/gfx/geometry/size.h"
+@@ -25,7 +25,7 @@
+ #include "base/values.h"
+ #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include <map>
  
  #include "base/values.h"
-@@ -69,7 +69,7 @@ class PRINTING_EXPORT PrintSettings {
-     }
+@@ -51,7 +51,7 @@ inline constexpr char kMacSystemPrintDia
+     "print_settings";
+ #endif  // BUILDFLAG(IS_MAC)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ inline constexpr char kLinuxSystemPrintDialogDataPrinter[] = "printer_name";
+ inline constexpr char kLinuxSystemPrintDialogDataPrintSettings[] =
+     "print_settings";
+@@ -101,7 +101,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSe
+     std::string vendor_id;
    };
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    using AdvancedSettings = std::map<std::string, base::Value>;
- #endif  // defined(OS_LINUX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
  
-@@ -206,7 +206,7 @@ class PRINTING_EXPORT PrintSettings {
+@@ -276,7 +276,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSe
      pages_per_sheet_ = pages_per_sheet;
    }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    AdvancedSettings& advanced_settings() { return advanced_settings_; }
    const AdvancedSettings& advanced_settings() const {
      return advanced_settings_;
-@@ -305,7 +305,7 @@ class PRINTING_EXPORT PrintSettings {
+@@ -429,7 +429,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSe
    // Number of pages per sheet.
    int pages_per_sheet_;
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Advanced settings.
    AdvancedSettings advanced_settings_;
- #endif  // defined(OS_LINUX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-printing_print__settings__conversion.cc b/chromium/patches/patch-printing_print__settings__conversion.cc
index 269813b627..d5fac1466a 100644
--- a/chromium/patches/patch-printing_print__settings__conversion.cc
+++ b/chromium/patches/patch-printing_print__settings__conversion.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- printing/print_settings_conversion.cc.orig	2020-07-15 18:56:00.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- printing/print_settings_conversion.cc.orig	2024-07-24 02:44:43.337430500 +0000
 +++ printing/print_settings_conversion.cc
-@@ -208,7 +208,7 @@ bool PrintSettingsFromJobSettings(const 
- #endif
+@@ -285,7 +285,7 @@ std::unique_ptr<PrintSettings> PrintSett
+     settings->set_is_modifiable(is_modifiable.value());
    }
  
--#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && defined(USE_CUPS))
-+#if defined(OS_CHROMEOS) || ((defined(OS_LINUX) || defined(OS_BSD)) && defined(USE_CUPS))
-   const base::Value* advanced_settings =
-       job_settings.FindDictKey(kSettingAdvancedSettings);
+-#if BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_CUPS))
++#if BUILDFLAG(IS_CHROMEOS) || ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_CUPS))
+   const base::Value::Dict* advanced_settings =
+       job_settings.FindDict(kSettingAdvancedSettings);
    if (advanced_settings) {
diff --git a/chromium/patches/patch-printing_printing__context__linux.cc b/chromium/patches/patch-printing_printing__context__linux.cc
new file mode 100644
index 0000000000..a7a5d68cf7
--- /dev/null
+++ b/chromium/patches/patch-printing_printing__context__linux.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- printing/printing_context_linux.cc.orig	2024-07-24 02:44:43.337430500 +0000
++++ printing/printing_context_linux.cc
+@@ -23,7 +23,7 @@
+ #endif
+ 
+ // Avoid using LinuxUi on Fuchsia.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+ 
+@@ -68,7 +68,7 @@ mojom::ResultCode PrintingContextLinux::
+ 
+   ResetSettings();
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (!ui::LinuxUi::instance())
+     return mojom::ResultCode::kSuccess;
+ 
+@@ -84,7 +84,7 @@ mojom::ResultCode PrintingContextLinux::
+ }
+ 
+ gfx::Size PrintingContextLinux::GetPdfPaperSizeDeviceUnits() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (ui::LinuxUi::instance())
+     return ui::LinuxUi::instance()->GetPdfPaperSize(this);
+ #endif
+@@ -97,7 +97,7 @@ mojom::ResultCode PrintingContextLinux::
+   DCHECK(!printer_settings.show_system_dialog);
+   DCHECK(!in_print_job_);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (!ui::LinuxUi::instance())
+     return mojom::ResultCode::kSuccess;
+ 
diff --git a/chromium/patches/patch-printing_printing__features.cc b/chromium/patches/patch-printing_printing__features.cc
new file mode 100644
index 0000000000..160d36c08c
--- /dev/null
+++ b/chromium/patches/patch-printing_printing__features.cc
@@ -0,0 +1,23 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- printing/printing_features.cc.orig	2024-07-24 02:44:43.341431000 +0000
++++ printing/printing_features.cc
+@@ -21,12 +21,12 @@ BASE_FEATURE(kAddPrinterViaPrintscanmgr,
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ // Use the CUPS IPP printing backend instead of the original CUPS backend that
+ // calls the deprecated PPD API.
+ BASE_FEATURE(kCupsIppPrintingBackend,
+              "CupsIppPrintingBackend",
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+              base::FEATURE_DISABLED_BY_DEFAULT
+ #else
+              base::FEATURE_ENABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-printing_printing__features.h b/chromium/patches/patch-printing_printing__features.h
new file mode 100644
index 0000000000..1150cc166f
--- /dev/null
+++ b/chromium/patches/patch-printing_printing__features.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- printing/printing_features.h.orig	2024-07-24 02:44:43.341431000 +0000
++++ printing/printing_features.h
+@@ -22,7 +22,7 @@ COMPONENT_EXPORT(PRINTING_BASE)
+ BASE_DECLARE_FEATURE(kAddPrinterViaPrintscanmgr);
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(PRINTING_BASE) BASE_DECLARE_FEATURE(kCupsIppPrintingBackend);
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+ 
diff --git a/chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc b/chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc
new file mode 100644
index 0000000000..033cd5a0b0
--- /dev/null
+++ b/chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc
@@ -0,0 +1,56 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- printing/sandbox/print_backend_sandbox_hook_linux.cc.orig	2024-07-24 02:44:43.341431000 +0000
++++ printing/sandbox/print_backend_sandbox_hook_linux.cc
+@@ -10,20 +10,27 @@
+ #include "base/path_service.h"
+ #include "build/build_config.h"
+ #include "printing/buildflags/buildflags.h"
++#if !BUILDFLAG(IS_BSD)
+ #include "sandbox/linux/syscall_broker/broker_command.h"
+ #include "sandbox/linux/syscall_broker/broker_file_permission.h"
+ #include "sandbox/policy/export.h"
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#else
++#include "sandbox/policy/sandbox.h"
++#endif
+ 
+ #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CUPS)
+ #include "printing/backend/cups_connection_pool.h"
+ #endif
+ 
++#if !BUILDFLAG(IS_BSD)
+ using sandbox::syscall_broker::BrokerFilePermission;
+ using sandbox::syscall_broker::MakeBrokerCommandSet;
++#endif
+ 
+ namespace printing {
+ 
++#if !BUILDFLAG(IS_BSD)
+ namespace {
+ 
+ sandbox::syscall_broker::BrokerCommandSet GetPrintBackendBrokerCommandSet() {
+@@ -76,9 +83,11 @@ std::vector<BrokerFilePermission> GetPri
+ }
+ 
+ }  // namespace
++#endif
+ 
+ bool PrintBackendPreSandboxHook(
+     sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CUPS)
+   // Create the socket connections to the CUPS server before engaging the
+   // sandbox, since new connections cannot be made after that.
+@@ -91,6 +100,7 @@ bool PrintBackendPreSandboxHook(
+                                GetPrintBackendFilePermissions(), options);
+ 
+   instance->EngageNamespaceSandboxIfPossible();
++#endif
+   return true;
+ }
+ 
diff --git a/chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.h b/chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.h
new file mode 100644
index 0000000000..c95d208d18
--- /dev/null
+++ b/chromium/patches/patch-printing_sandbox_print__backend__sandbox__hook__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- printing/sandbox/print_backend_sandbox_hook_linux.h.orig	2024-07-24 02:44:43.341431000 +0000
++++ printing/sandbox/print_backend_sandbox_hook_linux.h
+@@ -5,8 +5,13 @@
+ #ifndef PRINTING_SANDBOX_PRINT_BACKEND_SANDBOX_HOOK_LINUX_H_
+ #define PRINTING_SANDBOX_PRINT_BACKEND_SANDBOX_HOOK_LINUX_H_
+ 
++#include "build/build_config.h"
+ #include "base/component_export.h"
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ 
+ namespace printing {
+ 
diff --git a/chromium/patches/patch-remoting_BUILD.gn b/chromium/patches/patch-remoting_BUILD.gn
deleted file mode 100644
index ab95751137..0000000000
--- a/chromium/patches/patch-remoting_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- remoting/BUILD.gn.orig	2020-07-15 18:56:00.000000000 +0000
-+++ remoting/BUILD.gn
-@@ -56,7 +56,7 @@ group("remoting_all") {
-       deps += [ "//remoting/host:remoting_native_messaging_host" ]
-     }
- 
--    if (is_linux && !is_chromeos) {
-+    if ((is_linux || is_bsd) && !is_chromeos) {
-       deps += [
-         "//remoting/host/linux:remoting_dev_me2me_host",
-         "//remoting/host/linux:remoting_user_session",
diff --git a/chromium/patches/patch-remoting_base_chromoting__event.cc b/chromium/patches/patch-remoting_base_chromoting__event.cc
index bc7d41bf5d..64211f1c8e 100644
--- a/chromium/patches/patch-remoting_base_chromoting__event.cc
+++ b/chromium/patches/patch-remoting_base_chromoting__event.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- remoting/base/chromoting_event.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/base/chromoting_event.cc.orig	2024-07-24 02:44:43.345431300 +0000
 +++ remoting/base/chromoting_event.cc
-@@ -188,7 +188,7 @@ void ChromotingEvent::AddSystemInfo() {
+@@ -192,7 +192,7 @@ void ChromotingEvent::AddSystemInfo() {
    SetString(kCpuKey, base::SysInfo::OperatingSystemArchitecture());
    SetString(kOsVersionKey, base::SysInfo::OperatingSystemVersion());
    SetString(kWebAppVersionKey, STRINGIZE(VERSION));
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    Os os = Os::CHROMOTING_LINUX;
- #elif defined(OS_CHROMEOS)
+ #elif BUILDFLAG(IS_CHROMEOS_ASH)
    Os os = Os::CHROMOTING_CHROMEOS;
diff --git a/chromium/patches/patch-remoting_base_host__settings.cc b/chromium/patches/patch-remoting_base_host__settings.cc
new file mode 100644
index 0000000000..b663f13602
--- /dev/null
+++ b/chromium/patches/patch-remoting_base_host__settings.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/base/host_settings.cc.orig	2024-07-24 02:44:43.345431300 +0000
++++ remoting/base/host_settings.cc
+@@ -7,7 +7,7 @@
+ #include "base/no_destructor.h"
+ #include "build/build_config.h"
+ 
+-#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS))
++#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD)
+ #include "remoting/base/file_host_settings.h"
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+@@ -44,7 +44,7 @@ HostSettings::~HostSettings() = default;
+ 
+ // static
+ HostSettings* HostSettings::GetInstance() {
+-#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS))
++#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD)
+   static base::NoDestructor<FileHostSettings> instance(
+       FileHostSettings::GetSettingsFilePath());
+ #elif BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-remoting_client_display_BUILD.gn b/chromium/patches/patch-remoting_client_display_BUILD.gn
deleted file mode 100644
index 4d0b1082bc..0000000000
--- a/chromium/patches/patch-remoting_client_display_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- remoting/client/display/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ remoting/client/display/BUILD.gn
-@@ -43,7 +43,7 @@ source_set("display") {
-     libs = [ "GLESv2" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     libs = [ "GL" ]
-   }
- 
diff --git a/chromium/patches/patch-remoting_client_display_sys__opengl.h b/chromium/patches/patch-remoting_client_display_sys__opengl.h
index b8471a1a92..1131030ef5 100644
--- a/chromium/patches/patch-remoting_client_display_sys__opengl.h
+++ b/chromium/patches/patch-remoting_client_display_sys__opengl.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- remoting/client/display/sys_opengl.h.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/client/display/sys_opengl.h.orig	2024-07-24 02:44:43.361432800 +0000
 +++ remoting/client/display/sys_opengl.h
 @@ -9,7 +9,7 @@
  
- #if defined(OS_IOS)
+ #if BUILDFLAG(IS_IOS)
  #include <OpenGLES/ES3/gl.h>
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #define GL_GLEXT_PROTOTYPES
  #include <GL/gl.h>
  #include <GL/glext.h>
diff --git a/chromium/patches/patch-remoting_codec_webrtc__video__encoder__vpx.cc b/chromium/patches/patch-remoting_codec_webrtc__video__encoder__vpx.cc
new file mode 100644
index 0000000000..033a19d992
--- /dev/null
+++ b/chromium/patches/patch-remoting_codec_webrtc__video__encoder__vpx.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/codec/webrtc_video_encoder_vpx.cc.orig	2024-07-24 02:44:43.369433600 +0000
++++ remoting/codec/webrtc_video_encoder_vpx.cc
+@@ -88,7 +88,7 @@ void SetVp8CodecParameters(vpx_codec_enc
+                            const webrtc::DesktopSize& size) {
+   SetCommonCodecParameters(config, size);
+ 
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
++#if (BUILDFLAG(IS_BSD) || BUILDFLAG(IS_LINUX)) && !BUILDFLAG(IS_CHROMEOS_LACROS)
+   // On Linux, using too many threads for VP8 encoding has been linked to high
+   // CPU usage on machines that are under stress. See http://crbug.com/1151148.
+   // 5/3/2022 update: Perf testing has shown that doubling the number of threads
diff --git a/chromium/patches/patch-remoting_host_BUILD.gn b/chromium/patches/patch-remoting_host_BUILD.gn
deleted file mode 100644
index 2c091b01ad..0000000000
--- a/chromium/patches/patch-remoting_host_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- remoting/host/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ remoting/host/BUILD.gn
-@@ -353,7 +353,7 @@ static_library("common") {
-     deps += [ "//components/policy:generated" ]
-   }
- 
--  if (is_linux && !is_chromeos) {
-+  if ((is_linux || is_bsd) && !is_chromeos) {
-     public_deps += [ "//remoting/host/linux" ]
-     libs += [ "pam" ]
-   }
-@@ -546,7 +546,7 @@ source_set("unit_tests") {
-     "//third_party/grpc:grpcpp",
-   ]
- 
--  if (is_linux && !is_chromeos) {
-+  if ((is_linux || is_bsd) && !is_chromeos) {
-     deps += [ "//remoting/host/linux:unit_tests" ]
-   }
- 
-@@ -742,7 +742,7 @@ if (enable_me2me_host) {
-     if (is_desktop_linux) {
-       deps += [ "//build/config/linux/gtk" ]
-     }
--    if ((is_linux && !is_chromeos) || is_mac) {
-+    if (((is_linux || is_bsd) && !is_chromeos) || is_mac) {
-       libs = [ "pam" ]
-     }
- 
-@@ -802,7 +802,7 @@ if (enable_me2me_host) {
-       }
-     }
-   }
--  if (is_chrome_branded && enable_me2me_host && is_linux && !is_chromeos) {
-+  if (is_chrome_branded && enable_me2me_host && (is_linux || is_bsd) && !is_chromeos) {
-     group("remoting_me2me_host_archive") {
-       deps = [ "//remoting/host/installer/linux:remoting_me2me_host_archive" ]
-     }
diff --git a/chromium/patches/patch-remoting_host_base_desktop__environment__options.cc b/chromium/patches/patch-remoting_host_base_desktop__environment__options.cc
new file mode 100644
index 0000000000..8b306efebe
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_base_desktop__environment__options.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/base/desktop_environment_options.cc.orig	2024-07-24 02:44:43.369433600 +0000
++++ remoting/host/base/desktop_environment_options.cc
+@@ -124,7 +124,7 @@ bool DesktopEnvironmentOptions::capture_
+   // TODO(joedow): Determine whether we can migrate additional platforms to
+   // using the DesktopCaptureWrapper instead of the DesktopCaptureProxy. Then
+   // clean up DesktopCapturerProxy::Core::CreateCapturer().
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return capture_video_on_dedicated_thread_;
+ #else
+   return false;
diff --git a/chromium/patches/patch-remoting_host_base_switches.cc b/chromium/patches/patch-remoting_host_base_switches.cc
new file mode 100644
index 0000000000..c3d9b5acbc
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_base_switches.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/base/switches.cc.orig	2024-07-24 02:44:43.373433800 +0000
++++ remoting/host/base/switches.cc
+@@ -23,13 +23,13 @@ const char kProcessTypeEvaluateCapabilit
+ const char kProcessTypeFileChooser[] = "file_chooser";
+ const char kProcessTypeUrlForwarderConfigurator[] =
+     "url_forwarder_configurator";
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kProcessTypeXSessionChooser[] = "xsession_chooser";
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+ const char kEvaluateCapabilitySwitchName[] = "evaluate-type";
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ const char kEnableUtempter[] = "enable-utempter";
+ #endif
+ 
diff --git a/chromium/patches/patch-remoting_host_base_switches.h b/chromium/patches/patch-remoting_host_base_switches.h
new file mode 100644
index 0000000000..f60f559129
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_base_switches.h
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/base/switches.h.orig	2024-07-24 02:44:43.373433800 +0000
++++ remoting/host/base/switches.h
+@@ -35,13 +35,13 @@ extern const char kProcessTypeRdpDesktop
+ extern const char kProcessTypeEvaluateCapability[];
+ extern const char kProcessTypeFileChooser[];
+ extern const char kProcessTypeUrlForwarderConfigurator[];
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ extern const char kProcessTypeXSessionChooser[];
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+ extern const char kEvaluateCapabilitySwitchName[];
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Used to record client sessions to utmp/wtmp.
+ extern const char kEnableUtempter[];
+ #endif
diff --git a/chromium/patches/patch-remoting_host_basic__desktop__environment.cc b/chromium/patches/patch-remoting_host_basic__desktop__environment.cc
new file mode 100644
index 0000000000..9451838481
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_basic__desktop__environment.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/basic_desktop_environment.cc.orig	2024-07-24 02:44:43.373433800 +0000
++++ remoting/host/basic_desktop_environment.cc
+@@ -195,7 +195,7 @@ std::unique_ptr<DesktopCapturer> BasicDe
+   scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner;
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+   capture_task_runner = ui_task_runner_;
+-#elif BUILDFLAG(IS_LINUX) && defined(REMOTING_USE_WAYLAND)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_WAYLAND)
+   // Each capturer instance should get its own thread so the capturers don't
+   // compete with each other in multistream mode.
+   capture_task_runner = base::ThreadPool::CreateSingleThreadTaskRunner(
diff --git a/chromium/patches/patch-remoting_host_chromoting__host.cc b/chromium/patches/patch-remoting_host_chromoting__host.cc
new file mode 100644
index 0000000000..6346196fd6
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_chromoting__host.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/chromoting_host.cc.orig	2024-07-24 02:44:43.373433800 +0000
++++ remoting/host/chromoting_host.cc
+@@ -129,7 +129,7 @@ void ChromotingHost::Start(const std::st
+       &ChromotingHost::OnIncomingSession, base::Unretained(this)));
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ChromotingHost::StartChromotingHostServices() {
+   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+   DCHECK(!ipc_server_);
diff --git a/chromium/patches/patch-remoting_host_chromoting__host.h b/chromium/patches/patch-remoting_host_chromoting__host.h
new file mode 100644
index 0000000000..faa597075e
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_chromoting__host.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/chromoting_host.h.orig	2024-07-24 02:44:43.377434300 +0000
++++ remoting/host/chromoting_host.h
+@@ -32,7 +32,7 @@
+ #include "remoting/protocol/session_manager.h"
+ #include "remoting/protocol/transport_context.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/chromoting_host_services_server.h"
+ #endif
+ 
+@@ -97,7 +97,7 @@ class ChromotingHost : public ClientSess
+   // This method can only be called once during the lifetime of this object.
+   void Start(const std::string& host_owner);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Starts running the ChromotingHostServices server and listening for incoming
+   // IPC binding requests.
+   // Currently only Linux runs the ChromotingHostServices server on the host
+@@ -206,7 +206,7 @@ class ChromotingHost : public ClientSess
+   // List of host extensions.
+   std::vector<std::unique_ptr<HostExtension>> extensions_;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // IPC server that runs the CRD host service API. Non-null if the server name
+   // is set and the host is started.
+   // Currently only Linux runs the ChromotingHostServices server on the host
diff --git a/chromium/patches/patch-remoting_host_chromoting__host__context.cc b/chromium/patches/patch-remoting_host_chromoting__host__context.cc
new file mode 100644
index 0000000000..4f47dae299
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_chromoting__host__context.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/chromoting_host_context.cc.orig	2024-07-24 02:44:43.377434300 +0000
++++ remoting/host/chromoting_host_context.cc
+@@ -294,7 +294,7 @@ std::unique_ptr<ChromotingHostContext> C
+   // on a UI thread.
+   scoped_refptr<AutoThreadTaskRunner> input_task_runner =
+       AutoThread::CreateWithType("ChromotingInputThread", ui_task_runner,
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+                                  base::MessagePumpType::UI);
+ #else
+                                  base::MessagePumpType::IO);
diff --git a/chromium/patches/patch-remoting_host_chromoting__host__services__client.cc b/chromium/patches/patch-remoting_host_chromoting__host__services__client.cc
new file mode 100644
index 0000000000..5cf0ccbaa0
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_chromoting__host__services__client.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/chromoting_host_services_client.cc.orig	2024-07-24 02:44:43.377434300 +0000
++++ remoting/host/chromoting_host_services_client.cc
+@@ -59,7 +59,7 @@ mojo::PendingRemote<mojom::ChromotingHos
+ 
+ }  // namespace
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ 
+ // static
+ constexpr char
+@@ -136,7 +136,7 @@ bool ChromotingHostServicesClient::Ensur
+   if (session_services_remote_.is_bound()) {
+     return true;
+   }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (!environment_->HasVar(kChromeRemoteDesktopSessionEnvVar)) {
+     LOG(WARNING) << "Current desktop environment is not remotable.";
+     return false;
diff --git a/chromium/patches/patch-remoting_host_client__session.cc b/chromium/patches/patch-remoting_host_client__session.cc
new file mode 100644
index 0000000000..442ea7fc44
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_client__session.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/client_session.cc.orig	2024-07-24 02:44:43.377434300 +0000
++++ remoting/host/client_session.cc
+@@ -157,7 +157,7 @@ void ClientSession::NotifyClientResoluti
+   if (desktop_environment_options_.enable_curtaining()) {
+     dpi_vector.set(resolution.x_dpi(), resolution.y_dpi());
+   }
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   dpi_vector.set(resolution.x_dpi(), resolution.y_dpi());
+ #endif
+ 
diff --git a/chromium/patches/patch-remoting_host_crash_crash__file__uploader.cc b/chromium/patches/patch-remoting_host_crash_crash__file__uploader.cc
new file mode 100644
index 0000000000..ebc73fd6ef
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_crash_crash__file__uploader.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/crash/crash_file_uploader.cc.orig	2024-07-24 02:44:43.377434300 +0000
++++ remoting/host/crash/crash_file_uploader.cc
+@@ -44,7 +44,7 @@ constexpr char kMinidumpFileName[] = "du
+ 
+ #if BUILDFLAG(IS_WIN)
+ constexpr char kProductNameValue[] = "Chromoting";
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr char kProductNameValue[] = "Chromoting_Linux";
+ #elif BUILDFLAG(IS_MAC)
+ constexpr char kProductNameValue[] = "Chromoting_Mac";
diff --git a/chromium/patches/patch-remoting_host_desktop__and__cursor__conditional__composer.cc b/chromium/patches/patch-remoting_host_desktop__and__cursor__conditional__composer.cc
new file mode 100644
index 0000000000..04d6c54ab8
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_desktop__and__cursor__conditional__composer.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/desktop_and_cursor_conditional_composer.cc.orig	2024-07-24 02:44:43.381434700 +0000
++++ remoting/host/desktop_and_cursor_conditional_composer.cc
+@@ -7,7 +7,7 @@
+ #include "base/functional/bind.h"
+ #include "build/build_config.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/linux/wayland_utils.h"
+ #endif
+ 
+@@ -96,7 +96,7 @@ bool DesktopAndCursorConditionalComposer
+ }
+ 
+ bool DesktopAndCursorConditionalComposer::SupportsFrameCallbacks() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return IsRunningWayland();
+ #else
+   return false;
diff --git a/chromium/patches/patch-remoting_host_desktop__capturer__proxy.cc b/chromium/patches/patch-remoting_host_desktop__capturer__proxy.cc
new file mode 100644
index 0000000000..6bc582db64
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_desktop__capturer__proxy.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/desktop_capturer_proxy.cc.orig	2024-07-24 02:44:43.381434700 +0000
++++ remoting/host/desktop_capturer_proxy.cc
+@@ -26,7 +26,7 @@
+ #include "remoting/host/chromeos/frame_sink_desktop_capturer.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/environment.h"
+ #include "base/nix/xdg_util.h"
+ #include "remoting/host/linux/wayland_desktop_capturer.h"
+@@ -91,7 +91,7 @@ void DesktopCapturerProxy::Core::CreateC
+ 
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+   capturer_ = std::make_unique<FrameSinkDesktopCapturer>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   static base::nix::SessionType session_type = base::nix::SessionType::kUnset;
+   if (session_type == base::nix::SessionType::kUnset) {
+     std::unique_ptr<base::Environment> env = base::Environment::Create();
+@@ -298,7 +298,7 @@ void DesktopCapturerProxy::OnMetadata(we
+ bool DesktopCapturerProxy::SupportsFrameCallbacks() {
+   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return IsRunningWayland();
+ #else
+   return false;
diff --git a/chromium/patches/patch-remoting_host_desktop__capturer__wrapper.cc b/chromium/patches/patch-remoting_host_desktop__capturer__wrapper.cc
new file mode 100644
index 0000000000..279acdf677
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_desktop__capturer__wrapper.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/desktop_capturer_wrapper.cc.orig	2024-07-24 02:44:43.381434700 +0000
++++ remoting/host/desktop_capturer_wrapper.cc
+@@ -13,7 +13,7 @@
+ #include "third_party/webrtc/modules/desktop_capture/desktop_capturer.h"
+ #include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/linux/wayland_desktop_capturer.h"
+ #include "remoting/host/linux/wayland_utils.h"
+ #endif
+@@ -33,7 +33,7 @@ void DesktopCapturerWrapper::CreateCaptu
+     SourceId id) {
+   DCHECK(!capturer_);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (IsRunningWayland()) {
+     capturer_ = std::make_unique<WaylandDesktopCapturer>(options);
+   } else {
+@@ -112,7 +112,7 @@ void DesktopCapturerWrapper::OnCaptureRe
+ bool DesktopCapturerWrapper::SupportsFrameCallbacks() {
+   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return capturer_ && IsRunningWayland();
+ #else
+   return false;
diff --git a/chromium/patches/patch-remoting_host_evaluate__capability.cc b/chromium/patches/patch-remoting_host_evaluate__capability.cc
index 44c88ad9c1..57fd99e0f2 100644
--- a/chromium/patches/patch-remoting_host_evaluate__capability.cc
+++ b/chromium/patches/patch-remoting_host_evaluate__capability.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- remoting/host/evaluate_capability.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/evaluate_capability.cc.orig	2024-07-24 02:44:43.385435000 +0000
 +++ remoting/host/evaluate_capability.cc
-@@ -51,7 +51,7 @@ base::FilePath BuildHostBinaryPath() {
+@@ -56,7 +56,7 @@ base::FilePath BuildHostBinaryPath() {
    }
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (path.BaseName().value() ==
        FILE_PATH_LITERAL("chrome-remote-desktop-host")) {
      return path;
diff --git a/chromium/patches/patch-remoting_host_host__attributes.cc b/chromium/patches/patch-remoting_host_host__attributes.cc
index 97c49dfd90..6bd5cae489 100644
--- a/chromium/patches/patch-remoting_host_host__attributes.cc
+++ b/chromium/patches/patch-remoting_host_host__attributes.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- remoting/host/host_attributes.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/host_attributes.cc.orig	2024-07-24 02:44:43.393436000 +0000
 +++ remoting/host/host_attributes.cc
-@@ -120,7 +120,7 @@ std::string GetHostAttributes() {
-       media::InitializeMediaFoundation()) {
+@@ -105,7 +105,7 @@ std::string GetHostAttributes() {
+   if (media::InitializeMediaFoundation()) {
      result.push_back("HWEncoder");
    }
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    result.push_back("HWEncoder");
  #endif
  
diff --git a/chromium/patches/patch-remoting_host_host__details.cc b/chromium/patches/patch-remoting_host_host__details.cc
index 14aeadf1f1..2cf688777f 100644
--- a/chromium/patches/patch-remoting_host_host__details.cc
+++ b/chromium/patches/patch-remoting_host_host__details.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- remoting/host/host_details.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/host_details.cc.orig	2024-07-24 02:44:43.393436000 +0000
 +++ remoting/host/host_details.cc
-@@ -22,7 +22,7 @@ std::string GetHostOperatingSystemName()
+@@ -23,7 +23,7 @@ std::string GetHostOperatingSystemName()
    return "Mac";
- #elif defined(OS_CHROMEOS)
+ #elif BUILDFLAG(IS_CHROMEOS_ASH)
    return "ChromeOS";
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    return "Linux";
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
    return "Android";
diff --git a/chromium/patches/patch-remoting_host_host__main.cc b/chromium/patches/patch-remoting_host_host__main.cc
index 1af16f64bb..958f41f07b 100644
--- a/chromium/patches/patch-remoting_host_host__main.cc
+++ b/chromium/patches/patch-remoting_host_host__main.cc
@@ -1,22 +1,44 @@
 $NetBSD$
 
---- remoting/host/host_main.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/host_main.cc.orig	2024-07-24 02:44:43.393436000 +0000
 +++ remoting/host/host_main.cc
-@@ -48,7 +48,7 @@ int DesktopProcessMain();
- int FileChooserMain();
+@@ -50,7 +50,7 @@ int FileChooserMain();
  int RdpDesktopSessionMain();
- #endif  // defined(OS_WIN)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ int UrlForwarderConfiguratorMain();
+ #endif  // BUILDFLAG(IS_WIN)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  int XSessionChooserMain();
- #endif  // defined(OS_LINUX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+@@ -63,7 +63,7 @@ const char kUsageMessage[] =
+     "\n"
+     "Options:\n"
  
-@@ -143,7 +143,7 @@ MainRoutineFn SelectMainRoutine(const st
-   } else if (process_type == kProcessTypeRdpDesktopSession) {
-     main_routine = &RdpDesktopSessionMain;
- #endif  // defined(OS_WIN)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     "  --audio-pipe-name=<pipe> - Sets the pipe name to capture audio on "
+     "Linux.\n"
+ #endif  // BUILDFLAG(IS_LINUX)
+@@ -156,7 +156,7 @@ MainRoutineFn SelectMainRoutine(const st
+   } else if (process_type == kProcessTypeUrlForwarderConfigurator) {
+     main_routine = &UrlForwarderConfiguratorMain;
+ #endif  // BUILDFLAG(IS_WIN)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    } else if (process_type == kProcessTypeXSessionChooser) {
      main_routine = &XSessionChooserMain;
- #endif  // defined(OS_LINUX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -222,7 +222,7 @@ int HostMain(int argc, char** argv) {
+   // be initialized first, so that the preference for crash-reporting can be
+   // looked up in the config file.
+   if (IsUsageStatsAllowed()) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     InitializeCrashReporting();
+ #elif BUILDFLAG(IS_WIN)
+     // TODO: joedow - Enable crash reporting for the RDP process.
diff --git a/chromium/patches/patch-remoting_host_ipc__constants.cc b/chromium/patches/patch-remoting_host_ipc__constants.cc
new file mode 100644
index 0000000000..a7eebbf1ef
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_ipc__constants.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/ipc_constants.cc.orig	2024-07-24 02:44:43.413437800 +0000
++++ remoting/host/ipc_constants.cc
+@@ -17,7 +17,7 @@ namespace remoting {
+ 
+ namespace {
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ 
+ #if !defined(NDEBUG)
+ // Use a different IPC name for debug builds so that we can run the host
+@@ -68,7 +68,7 @@ GetChromotingHostServicesServerName() {
+   static const base::NoDestructor<mojo::NamedPlatformChannel::ServerName>
+       server_name(
+           named_mojo_ipc_server::WorkingDirectoryIndependentServerNameFromUTF8(
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+               // Linux host creates the socket file in /tmp, and it won't be
+               // deleted until reboot, so we put username in the path in case
+               // the user switches the host owner.
diff --git a/chromium/patches/patch-remoting_host_it2me_it2me__host.cc b/chromium/patches/patch-remoting_host_it2me_it2me__host.cc
new file mode 100644
index 0000000000..e719eaa4fd
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_it2me_it2me__host.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/it2me/it2me_host.cc.orig	2024-07-24 02:44:43.417438300 +0000
++++ remoting/host/it2me/it2me_host.cc
+@@ -52,7 +52,7 @@
+ #include "remoting/host/chromeos/features.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/linux/wayland_manager.h"
+ #include "remoting/host/linux/wayland_utils.h"
+ #endif  // BUILDFLAG(IS_LINUX)
+@@ -180,7 +180,7 @@ void It2MeHost::Connect(
+ 
+   OnPolicyUpdate(std::move(policies));
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (IsRunningWayland()) {
+     WaylandManager::Get()->Init(host_context_->ui_task_runner());
+   }
+@@ -340,7 +340,7 @@ void It2MeHost::ConnectOnNetworkThread(
+ 
+   // Set up the desktop environment options.
+   DesktopEnvironmentOptions options(DesktopEnvironmentOptions::CreateDefault());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (IsRunningWayland()) {
+     options.desktop_capture_options()->set_prefer_cursor_embedded(true);
+   }
diff --git a/chromium/patches/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc b/chromium/patches/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc
index 6391839644..f754bc01a1 100644
--- a/chromium/patches/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc
+++ b/chromium/patches/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc
@@ -1,22 +1,53 @@
 $NetBSD$
 
---- remoting/host/it2me/it2me_native_messaging_host_main.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/it2me/it2me_native_messaging_host_main.cc.orig	2024-07-24 02:44:43.417438300 +0000
 +++ remoting/host/it2me/it2me_native_messaging_host_main.cc
-@@ -29,7 +29,7 @@
- #include "remoting/host/switches.h"
+@@ -30,7 +30,7 @@
+ #include "remoting/host/resources.h"
  #include "remoting/host/usage_stats_consent.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if defined(REMOTING_USE_X11)
  #include <gtk/gtk.h>
- 
  #include "base/linux_util.h"
-@@ -112,7 +112,7 @@ int It2MeNativeMessagingHostMain(int arg
+@@ -77,7 +77,7 @@ bool CurrentProcessHasUiAccess() {
+ // Creates a It2MeNativeMessagingHost instance, attaches it to stdin/stdout and
+ // runs the task executor until It2MeNativeMessagingHost signals shutdown.
+ int It2MeNativeMessagingHostMain(int argc, char** argv) {
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+   if (!IsRunningWayland()) {
+     // Initialize Xlib for multi-threaded use, allowing non-Chromium code to
+     // use X11 safely (such as the WebRTC capturer, GTK ...)
+@@ -125,7 +125,7 @@ int It2MeNativeMessagingHostMain(int arg
  
    remoting::LoadResources("");
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Required in order for us to run multiple X11 threads.
-   XInitThreads();
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+   // Required for any calls into GTK functions, such as the Disconnect and
+   // Continue windows. Calling with nullptr arguments because we don't have
+   // any command line arguments for gtk to consume.
+@@ -257,7 +257,7 @@ int It2MeNativeMessagingHostMain(int arg
+       PolicyWatcher::CreateWithTaskRunner(context->file_task_runner(),
+                                           context->management_service());
+ 
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+   scoped_refptr<AutoThreadTaskRunner> input_task_runner;
+   if (!IsRunningWayland()) {
+     // Create an X11EventSource on all UI threads, so the global X11 connection
+@@ -284,7 +284,7 @@ int It2MeNativeMessagingHostMain(int arg
+   // Run the loop until channel is alive.
+   run_loop.Run();
  
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+   if (!IsRunningWayland()) {
+     input_task_runner->PostTask(FROM_HERE, base::BindOnce([]() {
+                                   delete ui::X11EventSource::GetInstance();
diff --git a/chromium/patches/patch-remoting_host_me2me__desktop__environment.cc b/chromium/patches/patch-remoting_host_me2me__desktop__environment.cc
index e041fa054d..5d1f5b25bf 100644
--- a/chromium/patches/patch-remoting_host_me2me__desktop__environment.cc
+++ b/chromium/patches/patch-remoting_host_me2me__desktop__environment.cc
@@ -1,13 +1,44 @@
 $NetBSD$
 
---- remoting/host/me2me_desktop_environment.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/me2me_desktop_environment.cc.orig	2024-07-24 02:44:43.429439300 +0000
 +++ remoting/host/me2me_desktop_environment.cc
-@@ -129,7 +129,7 @@ bool Me2MeDesktopEnvironment::Initialize
+@@ -119,7 +119,7 @@ std::string Me2MeDesktopEnvironment::Get
+     capabilities += protocol::kRemoteWebAuthnCapability;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+   if (!IsRunningWayland()) {
+     capabilities += " ";
+     capabilities += protocol::kMultiStreamCapability;
+@@ -161,7 +161,7 @@ Me2MeDesktopEnvironment::Me2MeDesktopEnv
+   // properly under Xvfb.
+   mutable_desktop_capture_options()->set_use_update_notifications(true);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Setting this option to false means that the capture differ wrapper will not
+   // be used when the X11 capturer is selected. This reduces the X11 capture
+   // time by a few milliseconds per frame and is safe because we can rely on
+@@ -170,7 +170,7 @@ Me2MeDesktopEnvironment::Me2MeDesktopEnv
+   mutable_desktop_capture_options()->set_detect_updated_region(false);
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (IsRunningWayland()) {
+     mutable_desktop_capture_options()->set_prefer_cursor_embedded(false);
+   }
+@@ -195,7 +195,7 @@ bool Me2MeDesktopEnvironment::Initialize
  
    // Otherwise, if the session is shared with the local user start monitoring
    // the local input and create the in-session UI.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    bool want_user_interface = false;
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_APPLE)
    // Don't try to display any UI on top of the system's login screen as this
diff --git a/chromium/patches/patch-remoting_host_mouse__cursor__monitor__proxy.cc b/chromium/patches/patch-remoting_host_mouse__cursor__monitor__proxy.cc
new file mode 100644
index 0000000000..4c925bf8cd
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_mouse__cursor__monitor__proxy.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/mouse_cursor_monitor_proxy.cc.orig	2024-07-24 02:44:43.429439300 +0000
++++ remoting/host/mouse_cursor_monitor_proxy.cc
+@@ -73,7 +73,7 @@ void MouseCursorMonitorProxy::Core::Crea
+ 
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+   mouse_cursor_monitor_ = std::make_unique<MouseCursorMonitorAura>();
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (IsRunningWayland()) {
+     mouse_cursor_monitor_ = webrtc::MouseCursorMonitor::Create(options);
+   } else {
diff --git a/chromium/patches/patch-remoting_host_policy__watcher.cc b/chromium/patches/patch-remoting_host_policy__watcher.cc
new file mode 100644
index 0000000000..5d5f2fa353
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_policy__watcher.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/policy_watcher.cc.orig	2024-07-24 02:44:43.433439700 +0000
++++ remoting/host/policy_watcher.cc
+@@ -192,7 +192,7 @@ base::Value::Dict PolicyWatcher::GetDefa
+              true);
+   result.Set(key::kRemoteAccessHostAllowEnterpriseFileTransfer, false);
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   result.Set(key::kRemoteAccessHostMatchUsername, false);
+ #endif
+ #if !BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__client.cc b/chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__client.cc
new file mode 100644
index 0000000000..39e2bee266
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__client.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/remote_open_url/remote_open_url_client.cc.orig	2024-07-24 02:44:43.433439700 +0000
++++ remoting/host/remote_open_url/remote_open_url_client.cc
+@@ -18,7 +18,7 @@
+ #include "remoting/host/mojom/chromoting_host_services.mojom.h"
+ #include "remoting/host/mojom/remote_url_opener.mojom.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/remote_open_url/remote_open_url_client_delegate_linux.h"
+ #elif BUILDFLAG(IS_WIN)
+ #include "remoting/host/remote_open_url/remote_open_url_client_delegate_win.h"
+@@ -31,7 +31,7 @@ namespace {
+ constexpr base::TimeDelta kRequestTimeout = base::Seconds(5);
+ 
+ std::unique_ptr<RemoteOpenUrlClient::Delegate> CreateDelegate() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return std::make_unique<RemoteOpenUrlClientDelegateLinux>();
+ #elif BUILDFLAG(IS_WIN)
+   return std::make_unique<RemoteOpenUrlClientDelegateWin>();
diff --git a/chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__util.cc b/chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__util.cc
new file mode 100644
index 0000000000..0111d06270
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_remote__open__url_remote__open__url__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/remote_open_url/remote_open_url_util.cc.orig	2024-07-24 02:44:43.433439700 +0000
++++ remoting/host/remote_open_url/remote_open_url_util.cc
+@@ -29,7 +29,7 @@ const wchar_t kRegisteredApplicationsKey
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+ bool IsRemoteOpenUrlSupported() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return true;
+ #elif BUILDFLAG(IS_WIN)
+   // The MSI installs the ProgID and capabilities into registry, but not the
diff --git a/chromium/patches/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc b/chromium/patches/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc
new file mode 100644
index 0000000000..a2410b2355
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/remote_open_url/url_forwarder_configurator.cc.orig	2024-07-24 02:44:43.433439700 +0000
++++ remoting/host/remote_open_url/url_forwarder_configurator.cc
+@@ -12,7 +12,7 @@ UrlForwarderConfigurator::UrlForwarderCo
+ 
+ UrlForwarderConfigurator::~UrlForwarderConfigurator() = default;
+ 
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_WIN)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD)
+ 
+ // static
+ std::unique_ptr<UrlForwarderConfigurator> UrlForwarderConfigurator::Create() {
diff --git a/chromium/patches/patch-remoting_host_remoting__me2me__host.cc b/chromium/patches/patch-remoting_host_remoting__me2me__host.cc
index 2c243ef936..aa86909a09 100644
--- a/chromium/patches/patch-remoting_host_remoting__me2me__host.cc
+++ b/chromium/patches/patch-remoting_host_remoting__me2me__host.cc
@@ -1,76 +1,175 @@
 $NetBSD$
 
---- remoting/host/remoting_me2me_host.cc.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/remoting_me2me_host.cc.orig	2024-07-24 02:44:43.437440200 +0000
 +++ remoting/host/remoting_me2me_host.cc
-@@ -118,7 +118,7 @@
+@@ -132,7 +132,7 @@
  #include "remoting/host/mac/permission_utils.h"
- #endif  // defined(OS_MACOSX)
+ #endif  // BUILDFLAG(IS_APPLE)
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if defined(REMOTING_USE_X11)
  #include <gtk/gtk.h>
+ #endif  // defined(REMOTING_USE_X11)
+@@ -143,13 +143,13 @@
+ #endif  // defined(REMOTING_USE_X11)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "base/linux_util.h"
  #include "remoting/host/audio_capturer_linux.h"
-@@ -159,7 +159,7 @@ const char kApplicationName[] = "chromot
+ #include "remoting/host/linux/certificate_watcher.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/host_utmp_logger.h"
+ #endif
+ 
+@@ -162,7 +162,7 @@
+ #include "remoting/host/win/session_desktop_environment.h"
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/linux/wayland_manager.h"
+ #include "remoting/host/linux/wayland_utils.h"
+ #endif  // BUILDFLAG(IS_LINUX)
+@@ -192,7 +192,7 @@ const char kApplicationName[] = "chromot
  const char kStdinConfigPath[] = "-";
  #endif  // !defined(REMOTING_MULTI_PROCESS)
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // The command line switch used to pass name of the pipe to capture audio on
  // linux.
  const char kAudioPipeSwitchName[] = "audio-pipe-name";
-@@ -353,7 +353,7 @@ class HostProcess : public ConfigWatcher
+@@ -401,7 +401,7 @@ class HostProcess : public ConfigWatcher
  
    std::unique_ptr<ChromotingHostContext> context_;
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Watch for certificate changes and kill the host when changes occur
    std::unique_ptr<CertificateWatcher> cert_watcher_;
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -471,7 +471,7 @@ class HostProcess : public ConfigWatcher
+ 
+   std::unique_ptr<HostStatusLogger> host_status_logger_;
+   std::unique_ptr<HostEventLogger> host_event_logger_;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   std::unique_ptr<HostUTMPLogger> host_utmp_logger_;
  #endif
-@@ -749,7 +749,7 @@ void HostProcess::CreateAuthenticatorFac
+   std::unique_ptr<HostPowerSaveBlocker> power_save_blocker_;
+@@ -778,7 +778,7 @@ void HostProcess::StartOnNetworkThread()
+ void HostProcess::ShutdownOnNetworkThread() {
+   DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
+   config_watcher_.reset();
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   cert_watcher_.reset();
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ }
+@@ -844,7 +844,7 @@ void HostProcess::CreateAuthenticatorFac
      DCHECK(third_party_auth_config_.token_url.is_valid());
      DCHECK(third_party_auth_config_.token_validation_url.is_valid());
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      if (!cert_watcher_) {
-       cert_watcher_.reset(new CertificateWatcher(
-           base::Bind(&HostProcess::ShutdownHost, this, kSuccessExitCode),
-@@ -835,7 +835,7 @@ void HostProcess::StartOnUiThread() {
-       base::Bind(&HostProcess::OnPolicyUpdate, base::Unretained(this)),
-       base::Bind(&HostProcess::OnPolicyError, base::Unretained(this)));
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+       cert_watcher_ = std::make_unique<CertificateWatcher>(
+           base::BindRepeating(&HostProcess::ShutdownHost,
+@@ -970,13 +970,13 @@ void HostProcess::StartOnUiThread() {
+       base::BindRepeating(&HostProcess::OnPolicyUpdate, base::Unretained(this)),
+       base::BindRepeating(&HostProcess::OnPolicyError, base::Unretained(this)));
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (IsRunningWayland()) {
+     WaylandManager::Get()->Init(context_->ui_task_runner());
+   }
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // If an audio pipe is specific on the command-line then initialize
    // AudioCapturerLinux to capture from it.
-   base::FilePath audio_pipe_name = base::CommandLine::ForCurrentProcess()->
-@@ -893,7 +893,7 @@ void HostProcess::ShutdownOnUiThread() {
+   base::FilePath audio_pipe_name =
+@@ -1048,7 +1048,7 @@ void HostProcess::ShutdownOnUiThread() {
    // It is now safe for the HostProcess to be deleted.
    self_ = nullptr;
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Cause the global AudioPipeReader to be freed, otherwise the audio
    // thread will remain in-use and prevent the process from exiting.
    // TODO(wez): DesktopEnvironmentFactory should own the pipe reader.
-@@ -1486,7 +1486,7 @@ void HostProcess::StartHost() {
-   host_->AddExtension(std::make_unique<TestEchoExtension>());
+@@ -1056,7 +1056,7 @@ void HostProcess::ShutdownOnUiThread() {
+   AudioCapturerLinux::InitializePipeReader(nullptr, base::FilePath());
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+   context_->input_task_runner()->PostTask(
+       FROM_HERE,
+       base::BindOnce([]() { delete ui::X11EventSource::GetInstance(); }));
+@@ -1414,7 +1414,7 @@ bool HostProcess::OnUsernamePolicyUpdate
+   // Returns false: never restart the host after this policy update.
+   DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
  
-   // TODO(simonmorris): Get the maximum session duration from a policy.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   host_->SetMaximumSessionDuration(base::TimeDelta::FromHours(20));
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   std::optional<bool> host_username_match_required =
+       policies.FindBool(policy::key::kRemoteAccessHostMatchUsername);
+   if (!host_username_match_required.has_value()) {
+@@ -1878,7 +1878,7 @@ void HostProcess::StartHost() {
+     corp_host_status_logger_->StartObserving(*session_manager);
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   desktop_environment_options_.set_enable_remote_webauthn(is_googler_);
  #endif
  
-@@ -1656,7 +1656,7 @@ void HostProcess::OnCrash(const std::str
- int HostProcessMain() {
+@@ -1911,7 +1911,7 @@ void HostProcess::StartHost() {
+   host_status_logger_ = std::make_unique<HostStatusLogger>(
+       host_->status_monitor(), log_to_server_.get());
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
+   if (cmd_line->HasSwitch(kEnableUtempter)) {
+     host_utmp_logger_ =
+@@ -1943,7 +1943,7 @@ void HostProcess::StartHost() {
+ 
+   host_->Start(host_owner_);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // For Windows, ChromotingHostServices connections are handled by the daemon
+   // process, then the message pipe is forwarded to the network process.
+   host_->StartChromotingHostServices();
+@@ -2077,7 +2077,7 @@ int HostProcessMain() {
    HOST_LOG << "Starting host process: version " << STRINGIZE(VERSION);
+   const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if defined(REMOTING_USE_X11)
+   // Initialize Xlib for multi-threaded use, allowing non-Chromium code to
+   // use X11 safely (such as the WebRTC capturer, GTK ...)
+@@ -2126,7 +2126,7 @@ int HostProcessMain() {
+   std::unique_ptr<net::NetworkChangeNotifier> network_change_notifier(
+       net::NetworkChangeNotifier::CreateIfNeeded());
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
-           kReportOfflineReasonSwitchName)) {
-     // Required in order for us to run multiple X11 threads.
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(REMOTING_USE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(REMOTING_USE_X11)
+   // Create an X11EventSource on all UI threads, so the global X11 connection
+   // (x11::Connection::Get()) can dispatch X events.
+   auto event_source =
diff --git a/chromium/patches/patch-remoting_host_setup_start__host__main.cc b/chromium/patches/patch-remoting_host_setup_start__host__main.cc
new file mode 100644
index 0000000000..db0c0d4afc
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_setup_start__host__main.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/setup/start_host_main.cc.orig	2024-07-24 02:44:43.445441000 +0000
++++ remoting/host/setup/start_host_main.cc
+@@ -37,7 +37,7 @@
+ #include <unistd.h>
+ #endif  // BUILDFLAG(IS_POSIX)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "remoting/host/setup/daemon_controller_delegate_linux.h"
+ #include "remoting/host/setup/start_host_as_root.h"
+ #endif  // BUILDFLAG(IS_LINUX)
+@@ -339,7 +339,7 @@ bool InitializeCloudMachineParams(HostSt
+ }  // namespace
+ 
+ int StartHostMain(int argc, char** argv) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Minimize the amount of code that runs as root on Posix systems.
+   if (getuid() == 0) {
+     return remoting::StartHostAsRoot(argc, argv);
+@@ -364,7 +364,7 @@ int StartHostMain(int argc, char** argv)
+ 
+   mojo::core::Init();
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (command_line->HasSwitch("no-start")) {
+     // On Linux, registering the host with systemd and starting it is the only
+     // reason start_host requires root. The --no-start options skips that final
diff --git a/chromium/patches/patch-remoting_host_switches.cc b/chromium/patches/patch-remoting_host_switches.cc
deleted file mode 100644
index 4ecd1e2d8c..0000000000
--- a/chromium/patches/patch-remoting_host_switches.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- remoting/host/switches.cc.orig	2020-07-15 18:56:01.000000000 +0000
-+++ remoting/host/switches.cc
-@@ -21,7 +21,7 @@ const char kProcessTypeHost[] = "host";
- const char kProcessTypeRdpDesktopSession[] = "rdp_desktop_session";
- const char kProcessTypeEvaluateCapability[] = "evaluate_capability";
- const char kProcessTypeFileChooser[] = "file_chooser";
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const char kProcessTypeXSessionChooser[] = "xsession_chooser";
- #endif  // defined(OS_LINUX)
- 
diff --git a/chromium/patches/patch-remoting_host_switches.h b/chromium/patches/patch-remoting_host_switches.h
deleted file mode 100644
index ec6d42394b..0000000000
--- a/chromium/patches/patch-remoting_host_switches.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- remoting/host/switches.h.orig	2020-07-15 18:56:01.000000000 +0000
-+++ remoting/host/switches.h
-@@ -34,7 +34,7 @@ extern const char kProcessTypeHost[];
- extern const char kProcessTypeRdpDesktopSession[];
- extern const char kProcessTypeEvaluateCapability[];
- extern const char kProcessTypeFileChooser[];
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- extern const char kProcessTypeXSessionChooser[];
- #endif  // defined(OS_LINUX)
- 
diff --git a/chromium/patches/patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc b/chromium/patches/patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc
new file mode 100644
index 0000000000..a6812d34e2
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_webauthn_remote__webauthn__caller__security__utils.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/webauthn/remote_webauthn_caller_security_utils.cc.orig	2024-07-24 02:44:43.445441000 +0000
++++ remoting/host/webauthn/remote_webauthn_caller_security_utils.cc
+@@ -10,7 +10,7 @@
+ #include "base/strings/utf_string_conversions.h"
+ #include "build/build_config.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+ #include "base/containers/fixed_flat_set.h"
+ #include "base/files/file_path.h"
+ #include "base/process/process_handle.h"
+@@ -38,7 +38,7 @@ namespace {
+ 
+ // No static variables needed for debug builds.
+ 
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ 
+ constexpr auto kAllowedCallerPrograms =
+     base::MakeFixedFlatSet<base::FilePath::StringPieceType>({
+@@ -82,7 +82,7 @@ bool IsLaunchedByTrustedProcess() {
+ #if !defined(NDEBUG)
+   // Just return true on debug builds for the convenience of development.
+   return true;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   base::ProcessId parent_pid =
+       base::GetParentProcessId(base::GetCurrentProcessHandle());
+   // Note that on Linux the process image may no longer exist in its original
diff --git a/chromium/patches/patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc b/chromium/patches/patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc
new file mode 100644
index 0000000000..25d4f086f9
--- /dev/null
+++ b/chromium/patches/patch-remoting_host_webauthn_remote__webauthn__extension__notifier.cc
@@ -0,0 +1,34 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/host/webauthn/remote_webauthn_extension_notifier.cc.orig	2024-07-24 02:44:43.449441200 +0000
++++ remoting/host/webauthn/remote_webauthn_extension_notifier.cc
+@@ -24,7 +24,7 @@
+ #include "base/task/thread_pool.h"
+ #include "build/build_config.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "base/environment.h"
+ #include "base/nix/xdg_util.h"
+ #include "base/strings/string_util.h"
+@@ -69,14 +69,14 @@ static constexpr char kExtensionWakeupFi
+ // Caller should check if the directory exists before writing files to it. A
+ // directory only exists if the corresponding Chrome version is installed.
+ std::vector<base::FilePath> GetRemoteStateChangeDirPaths() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   constexpr base::FilePath::CharType kStateChangeDirName[] =
+       FILE_PATH_LITERAL("WebAuthenticationProxyRemoteSessionStateChange");
+ #endif
+ 
+   std::vector<base::FilePath> dirs;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // See: chrome/common/chrome_paths_linux.cc
+   auto env = base::Environment::Create();
+   base::FilePath base_path;
diff --git a/chromium/patches/patch-remoting_protocol_BUILD.gn b/chromium/patches/patch-remoting_protocol_BUILD.gn
deleted file mode 100644
index ac16a3997b..0000000000
--- a/chromium/patches/patch-remoting_protocol_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- remoting/protocol/BUILD.gn.orig	2020-07-15 18:56:01.000000000 +0000
-+++ remoting/protocol/BUILD.gn
-@@ -238,7 +238,7 @@ static_library("protocol") {
-   defines = []
- 
-   # Must match condition in //remoting/codec/BUILD.gn
--  if (is_win || is_linux) {
-+  if (is_win || is_linux || is_bsd) {
-     defines += [ "USE_H264_ENCODER" ]
-     deps += [
-       "//media",
diff --git a/chromium/patches/patch-remoting_protocol_webrtc__video__stream.cc b/chromium/patches/patch-remoting_protocol_webrtc__video__stream.cc
new file mode 100644
index 0000000000..554718c5c8
--- /dev/null
+++ b/chromium/patches/patch-remoting_protocol_webrtc__video__stream.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- remoting/protocol/webrtc_video_stream.cc.orig	2024-07-24 02:44:43.501446200 +0000
++++ remoting/protocol/webrtc_video_stream.cc
+@@ -267,7 +267,7 @@ WebrtcVideoStream::WebrtcVideoStream(con
+     : session_options_(session_options) {
+ // TODO(joedow): Dig into the threading model on other platforms to see if they
+ // can also be updated to run on a dedicated thread.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   core_task_runner_ = base::ThreadPool::CreateSingleThreadTaskRunner(
+       {base::TaskPriority::HIGHEST},
+       base::SingleThreadTaskRunnerThreadMode::DEDICATED);
diff --git a/chromium/patches/patch-remoting_remoting__options.gni b/chromium/patches/patch-remoting_remoting__options.gni
deleted file mode 100644
index 64c00aaccf..0000000000
--- a/chromium/patches/patch-remoting_remoting__options.gni
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- remoting/remoting_options.gni.orig	2020-07-15 18:56:01.000000000 +0000
-+++ remoting/remoting_options.gni
-@@ -6,8 +6,8 @@ import("//build/config/chrome_build.gni"
- import("//build/config/ui.gni")
- 
- enable_remoting_host =
--    is_win || (is_linux && (is_chromeos || use_x11)) || is_mac
--enable_me2me_host = is_win || (is_linux && !is_chromeos && use_x11) || is_mac
-+    is_win || ((is_linux || is_bsd) && (is_chromeos || use_x11)) || is_mac
-+enable_me2me_host = is_win || ((is_linux || is_bsd) && !is_chromeos && use_x11) || is_mac
- 
- # Enable the multi-process host on Windows by default.
- if (is_win) {
diff --git a/chromium/patches/patch-remoting_resources_remoting__strings.grd b/chromium/patches/patch-remoting_resources_remoting__strings.grd
deleted file mode 100644
index 1ce4771441..0000000000
--- a/chromium/patches/patch-remoting_resources_remoting__strings.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- remoting/resources/remoting_strings.grd.orig	2020-07-15 18:56:01.000000000 +0000
-+++ remoting/resources/remoting_strings.grd
-@@ -880,7 +880,7 @@ If '<ph name="SERVICE_SCRIPT_NAME">$3<ex
-           Open Screen Recording Preferences
-         </message>
-       </if>
--      <if expr="is_linux">
-+      <if expr="is_posix">
-         <message name="IDS_SESSION_DIALOG_MESSAGE" desc="The message to show at the top of the session-selection dialog.">
-           Select a session to launch within your Chrome Remote Desktop environment. (Note that some session types may not support running within Chrome Remote Desktop and on the local console simultaneously.)
-         </message>
diff --git a/chromium/patches/patch-sandbox_BUILD.gn b/chromium/patches/patch-sandbox_BUILD.gn
new file mode 100644
index 0000000000..412217187d
--- /dev/null
+++ b/chromium/patches/patch-sandbox_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/BUILD.gn.orig	2024-07-24 02:44:43.537449800 +0000
++++ sandbox/BUILD.gn
+@@ -49,7 +49,7 @@ group("sandbox") {
+       "//sandbox/mac:system_services",
+       "//sandbox/mac/mojom",
+     ]
+-  } else if (is_linux || is_chromeos || is_android) {
++  } else if ((is_linux && !is_bsd) || is_chromeos || is_android) {
+     public_deps = [ "//sandbox/linux:sandbox" ]
+   }
+ }
diff --git a/chromium/patches/patch-sandbox_features.gni b/chromium/patches/patch-sandbox_features.gni
new file mode 100644
index 0000000000..254f1f95a8
--- /dev/null
+++ b/chromium/patches/patch-sandbox_features.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/features.gni.orig	2024-07-24 02:44:43.537449800 +0000
++++ sandbox/features.gni
+@@ -6,7 +6,7 @@
+ # currently.
+ # Do not disable seccomp_bpf anywhere without talking to
+ # security%chromium.org@localhost!
+-use_seccomp_bpf = (is_linux || is_chromeos || is_android) &&
++use_seccomp_bpf = !is_bsd && (is_linux || is_chromeos || is_android) &&
+                   (current_cpu == "x86" || current_cpu == "x64" ||
+                    current_cpu == "arm" || current_cpu == "arm64" ||
+                    current_cpu == "mipsel" || current_cpu == "mips64el")
diff --git a/chromium/patches/patch-sandbox_linux_BUILD.gn b/chromium/patches/patch-sandbox_linux_BUILD.gn
index 47b5ad1c32..4d411799c6 100644
--- a/chromium/patches/patch-sandbox_linux_BUILD.gn
+++ b/chromium/patches/patch-sandbox_linux_BUILD.gn
@@ -1,42 +1,41 @@
 $NetBSD$
 
---- sandbox/linux/BUILD.gn.orig	2020-06-25 09:31:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/linux/BUILD.gn.orig	2024-07-24 02:44:43.537449800 +0000
 +++ sandbox/linux/BUILD.gn
-@@ -265,6 +265,8 @@ component("seccomp_bpf") {
-       "seccomp-bpf-helpers/baseline_policy.h",
-       "seccomp-bpf-helpers/syscall_sets.cc",
-       "seccomp-bpf-helpers/syscall_sets.h",
-+      "services/syscall_wrappers.cc",
-+      "services/syscall_wrappers.h",
-     ]
-     configs += [ ":nacl_nonsfi_warnings" ]
-   }
-@@ -371,7 +373,7 @@ component("sandbox_services") {
-     public_deps += [ ":sandbox_services_headers" ]
-   }
+@@ -12,11 +12,11 @@ if (is_android) {
+ }
  
--  if (is_nacl_nonsfi) {
-+  if (is_nacl_nonsfi || is_bsd) {
-     cflags = [ "-fgnu-inline-asm" ]
+ declare_args() {
+-  compile_suid_client = is_linux || is_chromeos
++  compile_suid_client = (is_linux || is_chromeos) && !is_bsd
  
-     sources -= [
-@@ -379,6 +381,8 @@ component("sandbox_services") {
-       "services/init_process_reaper.h",
-       "services/scoped_process.cc",
-       "services/scoped_process.h",
+-  compile_credentials = is_linux || is_chromeos
++  compile_credentials = (is_linux || is_chromeos) && !is_bsd
+ 
+-  compile_syscall_broker = is_linux || is_chromeos
++  compile_syscall_broker = (is_linux || is_chromeos) && !is_bsd
+ 
+   # On Android, use plain GTest.
+   use_base_test_suite = is_linux || is_chromeos
+@@ -379,6 +379,17 @@ component("sandbox_services") {
+       "services/libc_interceptor.h",
+     ]
+   }
++
++  if (is_bsd) {
++    sources -= [
++      "services/scoped_process.cc",
++      "services/scoped_process.h",
 +      "services/syscall_wrappers.cc",
 +      "services/syscall_wrappers.h",
-       "services/yama.cc",
-       "services/yama.h",
-       "syscall_broker/broker_channel.cc",
-@@ -398,6 +402,10 @@ component("sandbox_services") {
-       "syscall_broker/broker_simple_message.cc",
-       "syscall_broker/broker_simple_message.h",
-     ]
-+    sources += [
-+      "services/libc_interceptor.cc",
-+      "services/libc_interceptor.h",
-+    ]
-   } else if (!is_android) {
-     sources += [
-       "services/libc_interceptor.cc",
++      "services/yama.cc",
++      "services/yama.h",
++     ]
++   }
+ }
+ 
+ source_set("sandbox_services_headers") {
diff --git a/chromium/patches/patch-sandbox_linux_services_init__process__reaper.cc b/chromium/patches/patch-sandbox_linux_services_init__process__reaper.cc
index 2ace23b34f..41193cfb58 100644
--- a/chromium/patches/patch-sandbox_linux_services_init__process__reaper.cc
+++ b/chromium/patches/patch-sandbox_linux_services_init__process__reaper.cc
@@ -1,15 +1,19 @@
 $NetBSD$
 
---- sandbox/linux/services/init_process_reaper.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/linux/services/init_process_reaper.cc.orig	2024-07-24 02:44:43.549450900 +0000
 +++ sandbox/linux/services/init_process_reaper.cc
-@@ -1,6 +1,7 @@
- // Copyright 2013 The Chromium Authors. All rights reserved.
+@@ -2,6 +2,7 @@
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
-+#if defined(OS_LINUX)
  
++#if 0
  #include "sandbox/linux/services/init_process_reaper.h"
  
+ #include <signal.h>
 @@ -100,3 +101,4 @@ bool CreateInitProcessReaper(base::OnceC
  }
  
diff --git a/chromium/patches/patch-sandbox_linux_services_libc__interceptor.cc b/chromium/patches/patch-sandbox_linux_services_libc__interceptor.cc
index 9b965b0b88..042e4b2e14 100644
--- a/chromium/patches/patch-sandbox_linux_services_libc__interceptor.cc
+++ b/chromium/patches/patch-sandbox_linux_services_libc__interceptor.cc
@@ -1,18 +1,22 @@
 $NetBSD$
 
---- sandbox/linux/services/libc_interceptor.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/linux/services/libc_interceptor.cc.orig	2024-07-24 02:44:43.549450900 +0000
 +++ sandbox/linux/services/libc_interceptor.cc
-@@ -11,7 +11,9 @@
+@@ -12,7 +12,9 @@
  #include <stddef.h>
  #include <stdint.h>
  #include <string.h>
-+#if !defined(OS_BSD)
++#if !BUILDFLAG(IS_BSD)
  #include <sys/prctl.h>
 +#endif
  #include <sys/socket.h>
  #include <sys/types.h>
  #include <time.h>
-@@ -93,7 +95,7 @@ bool ReadTimeStruct(base::PickleIterator
+@@ -168,7 +170,7 @@ bool ReadTimeStruct(base::PickleIterator
    } else {
      base::AutoLock lock(g_timezones_lock.Get());
      auto ret_pair = g_timezones.Get().insert(timezone);
diff --git a/chromium/patches/patch-sandbox_policy_BUILD.gn b/chromium/patches/patch-sandbox_policy_BUILD.gn
new file mode 100644
index 0000000000..f0e89dbfd1
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_BUILD.gn
@@ -0,0 +1,56 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/BUILD.gn.orig	2024-07-24 02:44:43.557451700 +0000
++++ sandbox/policy/BUILD.gn
+@@ -49,7 +49,7 @@ component("policy") {
+       "//third_party/jni_zero",
+     ]
+   }
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
+     sources += [
+       "linux/bpf_audio_policy_linux.cc",
+       "linux/bpf_audio_policy_linux.h",
+@@ -122,6 +122,38 @@ component("policy") {
+       "//sandbox/linux:suid_sandbox_client",
+     ]
+   }
++  if (is_openbsd) {
++    sources += [
++      "openbsd/sandbox_openbsd.cc",
++      "openbsd/sandbox_openbsd.h",
++    ]
++    deps += [
++      "//sandbox:sandbox_buildflags",
++      "//ui/gfx/x",
++    ]
++    libs = [ "util" ]
++  }
++  if (is_netbsd) {
++    sources += [
++      "netbsd/sandbox_netbsd.cc",
++      "netbsd/sandbox_netbsd.h",
++    ]
++    deps += [
++      "//sandbox:sandbox_buildflags",
++      "//ui/gfx/x",
++    ]
++    libs = [ "util" ]
++  }
++  if (is_freebsd) {
++    sources += [
++      "freebsd/sandbox_freebsd.cc",
++      "freebsd/sandbox_freebsd.h",
++    ]
++    deps += [
++      "//sandbox:sandbox_buildflags",
++      "//ui/gfx/x",
++    ]
++  }
+   if (is_chromeos_ash) {
+     sources += [
+       "linux/bpf_ime_policy_linux.cc",
diff --git a/chromium/patches/patch-sandbox_policy_features.cc b/chromium/patches/patch-sandbox_policy_features.cc
new file mode 100644
index 0000000000..03e28e7e86
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_features.cc
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/features.cc.orig	2024-07-24 02:44:43.557451700 +0000
++++ sandbox/policy/features.cc
+@@ -20,7 +20,11 @@ namespace sandbox::policy::features {
+ // (Only causes an effect when feature kNetworkServiceInProcess is disabled.)
+ BASE_FEATURE(kNetworkServiceSandbox,
+              "NetworkServiceSandbox",
++#if BUILDFLAG(IS_BSD)
++             base::FEATURE_ENABLED_BY_DEFAULT);
++#else
+              base::FEATURE_DISABLED_BY_DEFAULT);
++#endif
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ // Enables a fine-grained seccomp-BPF syscall filter for the network service.
+@@ -131,7 +135,7 @@ BASE_FEATURE(kForceSpectreVariant2Mitiga
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Enabling the kNetworkServiceSandbox feature automatically enables Spectre
+ // variant 2 mitigations in the network service. This can lead to performance
+ // regressions, so enabling this feature will turn off the Spectre Variant 2
diff --git a/chromium/patches/patch-sandbox_policy_features.h b/chromium/patches/patch-sandbox_policy_features.h
new file mode 100644
index 0000000000..acb7a698f8
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_features.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/features.h.orig	2024-07-24 02:44:43.557451700 +0000
++++ sandbox/policy/features.h
+@@ -44,7 +44,7 @@ SANDBOX_POLICY_EXPORT BASE_DECLARE_FEATU
+ SANDBOX_POLICY_EXPORT BASE_DECLARE_FEATURE(kForceSpectreVariant2Mitigation);
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ SANDBOX_POLICY_EXPORT BASE_DECLARE_FEATURE(
+     kForceDisableSpectreVariant2MitigationInNetworkService);
+ 
diff --git a/chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.cc b/chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.cc
new file mode 100644
index 0000000000..539665b25c
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.cc
@@ -0,0 +1,254 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/freebsd/sandbox_freebsd.cc.orig	2024-08-01 14:09:00.259806443 +0000
++++ sandbox/policy/freebsd/sandbox_freebsd.cc
+@@ -0,0 +1,245 @@
++// 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 "sandbox/policy/freebsd/sandbox_freebsd.h"
++
++#include <dirent.h>
++#include <fcntl.h>
++#include <stdint.h>
++#include <sys/resource.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <sys/types.h>
++#include <unistd.h>
++
++#include <limits>
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/command_line.h"
++#include "base/debug/stack_trace.h"
++#include "base/feature_list.h"
++#include "base/files/file_path.h"
++#include "base/files/file_util.h"
++#include "base/files/scoped_file.h"
++#include "base/logging.h"
++#include "base/memory/singleton.h"
++#include "base/path_service.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/system/sys_info.h"
++#include "base/threading/thread.h"
++#include "base/time/time.h"
++#include "build/build_config.h"
++#include "crypto/crypto_buildflags.h"
++#include "ppapi/buildflags/buildflags.h"
++#include "sandbox/constants.h"
++#include "sandbox/linux/services/credentials.h"
++#include "sandbox/linux/services/namespace_sandbox.h"
++#include "sandbox/linux/services/proc_util.h"
++#include "sandbox/linux/services/resource_limits.h"
++#include "sandbox/linux/services/thread_helpers.h"
++#include "sandbox/linux/syscall_broker/broker_command.h"
++#include "sandbox/linux/syscall_broker/broker_process.h"
++#include "sandbox/policy/sandbox.h"
++#include "sandbox/policy/sandbox_type.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "sandbox/policy/switches.h"
++#include "sandbox/sandbox_buildflags.h" 
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++#if BUILDFLAG(USE_NSS_CERTS)
++#include "crypto/nss_util.h"
++#endif
++
++#include "third_party/boringssl/src/include/openssl/crypto.h"
++
++#include "ui/gfx/font_util.h"
++
++namespace sandbox {
++namespace policy {
++
++SandboxLinux::SandboxLinux()
++    : sandbox_status_flags_(kInvalid),
++      pre_initialized_(false),
++      initialize_sandbox_ran_(false),
++      broker_process_(nullptr) {
++}
++
++SandboxLinux::~SandboxLinux() {
++  if (pre_initialized_) {
++    CHECK(initialize_sandbox_ran_);
++  }
++}
++
++SandboxLinux* SandboxLinux::GetInstance() {
++  SandboxLinux* instance = base::Singleton<SandboxLinux>::get();
++  CHECK(instance);
++  return instance;
++}
++
++void SandboxLinux::StopThread(base::Thread* thread) {
++  DCHECK(thread);
++  thread->Stop();
++}
++
++void SandboxLinux::PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type) {
++  CHECK(!pre_initialized_);
++#if BUILDFLAG(USING_SANITIZER)
++  // Sanitizers need to open some resources before the sandbox is enabled.
++  // This should not fork, not launch threads, not open a directory.
++  __sanitizer_sandbox_on_notify(sanitizer_args());
++  sanitizer_args_.reset();
++#endif
++  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++  const std::string process_type =
++      command_line->GetSwitchValueASCII(switches::kProcessType);
++
++  base::SysInfo::AmountOfPhysicalMemory();
++  base::SysInfo::NumberOfProcessors();
++  base::SysInfo::CPUModelName();
++
++  switch (sandbox_type) {
++    case sandbox::mojom::Sandbox::kNoSandbox:
++    {
++#if BUILDFLAG(USE_NSS_CERTS)
++      // The main process has to initialize the ~/.pki dir which won't work
++      // after unveil(2).
++      crypto::EnsureNSSInit();
++#endif
++      CRYPTO_pre_sandbox_init();
++
++      base::FilePath cache_directory, local_directory;
++
++      base::PathService::Get(base::DIR_CACHE, &cache_directory);
++      base::PathService::Get(base::DIR_HOME, &local_directory);   
++
++      cache_directory = cache_directory.AppendASCII("chromium");
++      local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications");
++
++      if (!base::CreateDirectory(cache_directory)) {
++        LOG(ERROR) << "Failed to create " << cache_directory.value() << " directory.";
++      }
++
++      if (!base::CreateDirectory(local_directory)) {
++        LOG(ERROR) << "Failed to create " << local_directory.value() << " directory.";
++      }
++
++      break;
++    }
++    case sandbox::mojom::Sandbox::kRenderer:
++      gfx::InitializeFonts();
++      break;
++    default:
++      break;
++  }
++
++  pre_initialized_ = true;
++}
++
++bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++                                     SandboxLinux::PreSandboxHook hook,
++                                     const Options& options) {
++  DCHECK(!initialize_sandbox_ran_);
++  initialize_sandbox_ran_ = true;
++
++  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++  const std::string process_type =
++      command_line->GetSwitchValueASCII(switches::kProcessType);
++
++  if (command_line->HasSwitch(switches::kNoSandbox))
++    return true;
++
++  VLOG(1) << "SandboxLinux::InitializeSandbox: process_type="
++      << process_type << " sandbox_type=" << GetSandboxTypeInEnglish(sandbox_type);
++
++  // Only one thread is running, pre-initialize if not already done.
++  if (!pre_initialized_)
++    PreinitializeSandbox(sandbox_type);
++
++  // Attempt to limit the future size of the address space of the process.
++  int error = 0;
++  const bool limited_as = LimitAddressSpace(&error);
++  if (error) {
++    // Restore errno. Internally to |LimitAddressSpace|, the errno due to
++    // setrlimit may be lost.
++    errno = error;
++    PCHECK(limited_as);
++  }
++
++  if (hook)
++    CHECK(std::move(hook).Run(options));
++
++  return true;
++}
++
++bool SandboxLinux::LimitAddressSpace(int* error) {
++#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \
++    !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++  if (SandboxTypeFromCommandLine(*command_line) == sandbox::mojom::Sandbox::kNoSandbox) {
++    return false;
++  }
++
++  // Unfortunately, it does not appear possible to set RLIMIT_AS such that it
++  // will both (a) be high enough to support V8's and WebAssembly's address
++  // space requirements while also (b) being low enough to mitigate exploits
++  // using integer overflows that require large allocations, heap spray, or
++  // other memory-hungry attack modes.
++
++  *error = sandbox::ResourceLimits::Lower(
++      RLIMIT_DATA, static_cast<rlim_t>(sandbox::kDataSizeLimit));
++
++  // Cache the resource limit before turning on the sandbox.
++  base::SysInfo::AmountOfVirtualMemory();
++  base::SysInfo::MaxSharedMemorySize();
++
++  return *error == 0;
++#else
++  base::SysInfo::AmountOfVirtualMemory();
++  return false;
++#endif  // !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) &&
++        // !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++}
++
++// static
++std::string SandboxLinux::GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type) {
++  switch (sandbox_type) {
++    case sandbox::mojom::Sandbox::kNoSandbox:
++      return "Unsandboxed";
++    case sandbox::mojom::Sandbox::kRenderer:
++      return "Renderer";
++    case sandbox::mojom::Sandbox::kUtility:
++      return "Utility";
++    case sandbox::mojom::Sandbox::kGpu:
++      return "GPU";
++#if BUILDFLAG(ENABLE_PPAPI)
++    case sandbox::mojom::Sandbox::kPpapi:
++      return "PPAPI";
++#endif
++    case sandbox::mojom::Sandbox::kNetwork:
++      return "Network";
++    case sandbox::mojom::Sandbox::kCdm:
++      return "CDM";
++    case sandbox::mojom::Sandbox::kPrintCompositor:
++      return "Print Compositor";
++    case sandbox::mojom::Sandbox::kAudio:
++      return "Audio";
++    case sandbox::mojom::Sandbox::kSpeechRecognition:
++      return "Speech Recognition";
++    case sandbox::mojom::Sandbox::kService:
++      return "Service";
++    case sandbox::mojom::Sandbox::kVideoCapture:
++      return "Video Capture";
++    default:
++      return "Unknown";
++  }
++}
++
++}  // namespace policy
++}  // namespace sandbox
diff --git a/chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.h b/chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.h
new file mode 100644
index 0000000000..690feeb898
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_freebsd_sandbox__freebsd.h
@@ -0,0 +1,287 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/freebsd/sandbox_freebsd.h.orig	2024-08-01 14:09:00.265322793 +0000
++++ sandbox/policy/freebsd/sandbox_freebsd.h
+@@ -0,0 +1,278 @@
++// 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 SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++#define SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/logging.h"
++#include "base/posix/global_descriptors.h"
++#include "sandbox/policy/export.h"
++#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "base/sanitizer_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++namespace base {
++template <typename T>
++struct DefaultSingletonTraits;
++class Thread;
++}  // namespace base
++
++namespace sandbox {
++namespace syscall_broker {
++class BrokerProcess;
++}  // namespace syscall_broker
++}  // namespace sandbox
++
++namespace sandbox {
++namespace policy {
++
++// A singleton class to represent and change our sandboxing state for the
++// three main Linux sandboxes.
++// The sandboxing model allows using two layers of sandboxing. The first layer
++// can be implemented either with unprivileged namespaces or with the setuid
++// sandbox. This class provides a way to engage the namespace sandbox, but does
++// not deal with the legacy setuid sandbox directly.
++// The second layer is mainly based on seccomp-bpf and is engaged with
++// InitializeSandbox(). InitializeSandbox() is also responsible for "sealing"
++// the first layer of sandboxing. That is, InitializeSandbox must always be
++// called to have any meaningful sandboxing at all.
++class SANDBOX_POLICY_EXPORT SandboxLinux {
++ public:
++  // This is a list of sandbox IPC methods which the renderer may send to the
++  // sandbox host. See
++  // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandbox_ipc.md
++  // This isn't the full list, values < 32 are reserved for methods called from
++  // Skia, and values < 64 are reserved for libc_interceptor.cc.
++  enum LinuxSandboxIPCMethods {
++    DEPRECATED_METHOD_GET_FALLBACK_FONT_FOR_CHAR = 64,
++    DEPRECATED_METHOD_GET_CHILD_WITH_INODE,
++    DEPRECATED_METHOD_GET_STYLE_FOR_STRIKE,
++    METHOD_MAKE_SHARED_MEMORY_SEGMENT,
++    DEPRECATED_METHOD_MATCH_WITH_FALLBACK,
++  };
++
++  // These form a bitmask which describes the conditions of the Linux sandbox.
++  // Note: this doesn't strictly give you the current status, it states
++  // what will be enabled when the relevant processes are initialized.
++  enum Status {
++    // SUID sandbox active.
++    kSUID = 1 << 0,
++
++    // Sandbox is using a new PID namespace.
++    kPIDNS = 1 << 1,
++
++    // Sandbox is using a new network namespace.
++    kNetNS = 1 << 2,
++
++    // seccomp-bpf sandbox active.
++    kSeccompBPF = 1 << 3,
++
++    // The Yama LSM module is present and enforcing.
++    kYama = 1 << 4,
++
++    // seccomp-bpf sandbox is active and the kernel supports TSYNC.
++    kSeccompTSYNC = 1 << 5,
++
++    // User namespace sandbox active.
++    kUserNS = 1 << 6,
++
++    // A flag that denotes an invalid sandbox status.
++    kInvalid = 1 << 31,
++  };
++
++  // SandboxLinux Options are a superset of SandboxSecompBPF Options.
++  struct Options : public SandboxSeccompBPF::Options {
++    // When running with a zygote, the namespace sandbox will have already
++    // been engaged prior to initializing SandboxLinux itself, and need not
++    // be done so again. Set to true to indicate that there isn't a zygote
++    // for this process and the step is to be performed here explicitly.
++    bool engage_namespace_sandbox = false;
++
++    // Allow starting the sandbox with multiple threads already running. This
++    // will enable TSYNC for seccomp-BPF, which syncs the seccomp-BPF policy
++    // across all running threads.
++    bool allow_threads_during_sandbox_init = false;
++
++    // Enables the CHECK for open directories. The open directory check is only
++    // useful for the chroot jail (from the semantic layer of the sandbox), and
++    // can safely be disabled if we are only enabling the seccomp-BPF layer.
++    bool check_for_open_directories = true;
++  };
++
++  // Callers can provide this hook to run code right before the policy
++  // is passed to the BPF compiler and the sandbox is engaged. If
++  // pre_sandbox_hook() returns true, the sandbox will be engaged
++  // afterwards, otherwise the process is terminated.
++  using PreSandboxHook = base::OnceCallback<bool(Options)>;
++
++  // Get our singleton instance.
++  static SandboxLinux* GetInstance();
++
++  SandboxLinux(const SandboxLinux&) = delete;
++  SandboxLinux& operator=(const SandboxLinux&) = delete;
++
++  bool SetPledge(const char *pstring, const char *ppath);
++  bool SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type);
++
++  // Do some initialization that can only be done before any of the sandboxes
++  // are enabled. If using the setuid sandbox, this should be called manually
++  // before the setuid sandbox is engaged.
++  // Security: When this runs, it is imperative that either InitializeSandbox()
++  // runs as well or that all file descriptors returned in
++  // GetFileDescriptorsToClose() get closed.
++  // Otherwise file descriptors that bypass the security of the setuid sandbox
++  // would be kept open. One must be particularly careful if a process performs
++  // a fork().
++  void PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type);
++
++  // Check that the current process is the init process of a new PID
++  // namespace and then proceed to drop access to the file system by using
++  // a new unprivileged namespace. This is a layer-1 sandbox.
++  // In order for this sandbox to be effective, it must be "sealed" by calling
++  // InitializeSandbox().
++  void EngageNamespaceSandbox(bool from_zygote);
++
++  // Return a list of file descriptors to close if PreinitializeSandbox() ran
++  // but InitializeSandbox() won't. Avoid using.
++  // TODO(jln): get rid of this hack.
++  std::vector<int> GetFileDescriptorsToClose();
++
++  // Seal an eventual layer-1 sandbox and initialize the layer-2 sandbox with
++  // an adequate policy depending on the process type and command line
++  // arguments.
++  // Currently the layer-2 sandbox is composed of seccomp-bpf and address space
++  // limitations.
++  // This function should only be called without any thread running.
++  bool InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++                         PreSandboxHook hook,
++                         const Options& options);
++
++  // Stop |thread| in a way that can be trusted by the sandbox.
++  void StopThread(base::Thread* thread);
++
++  // Returns the status of the renderer, worker and ppapi sandbox. Can only
++  // be queried after going through PreinitializeSandbox(). This is a bitmask
++  // and uses the constants defined in "enum Status" above. Since the
++  // status needs to be provided before the sandboxes are actually started,
++  // this returns what will actually happen once InitializeSandbox()
++  // is called from inside these processes.
++  int GetStatus();
++
++  static std::string GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type);
++
++  // Returns true if the current process is single-threaded or if the number
++  // of threads cannot be determined.
++  bool IsSingleThreaded() const;
++
++  // Returns true if we started Seccomp BPF.
++  bool seccomp_bpf_started() const;
++
++  // Check the policy and eventually start the seccomp-bpf sandbox. This should
++  // never be called with threads started. If we detect that threads have
++  // started we will crash.
++  bool StartSeccompBPF(sandbox::mojom::Sandbox sandbox_type,
++                       PreSandboxHook hook,
++                       const Options& options);
++
++  // Limit the address space of the current process (and its children) to make
++  // some vulnerabilities harder to exploit. Writes the errno due to setrlimit
++  // (including 0 if no error) into |error|.
++  bool LimitAddressSpace(int* error);
++
++  // Returns a file descriptor to proc. The file descriptor is no longer valid
++  // after the sandbox has been sealed.
++  int proc_fd() const {
++    DCHECK_NE(-1, proc_fd_);
++    return proc_fd_;
++  }
++
++#if BUILDFLAG(USING_SANITIZER)
++  __sanitizer_sandbox_arguments* sanitizer_args() const {
++    return sanitizer_args_.get();
++  };
++#endif
++
++  // A BrokerProcess is a helper that is started before the sandbox is engaged,
++  // typically from a pre-sandbox hook, that will serve requests to access
++  // files over an IPC channel. The client  of this runs from a SIGSYS handler
++  // triggered by the seccomp-bpf sandbox.
++  // |client_sandbox_policy| is the policy being run by the client, and is
++  // used to derive the equivalent broker-side policy.
++  // |broker_side_hook| is an alternate pre-sandbox hook to be run before the
++  // broker itself gets sandboxed, to which the broker side policy and
++  // |options| are passed.
++  // Crashes the process if the broker can not be started since continuation
++  // is impossible (and presumably unsafe).
++  // This should never be destroyed, as after the sandbox is started it is
++  // vital to the process.
++#if 0
++  void StartBrokerProcess(
++      const sandbox::syscall_broker::BrokerCommandSet& allowed_command_set,
++      std::vector<sandbox::syscall_broker::BrokerFilePermission> permissions,
++      PreSandboxHook broker_side_hook,
++      const Options& options);
++
++  sandbox::syscall_broker::BrokerProcess* broker_process() const {
++    return broker_process_;
++  }
++#endif
++
++ private:
++  friend struct base::DefaultSingletonTraits<SandboxLinux>;
++
++  SandboxLinux();
++  ~SandboxLinux();
++
++  // We must have been pre_initialized_ before using these.
++  bool seccomp_bpf_supported() const;
++  bool seccomp_bpf_with_tsync_supported() const;
++
++  // Returns true if it can be determined that the current process has open
++  // directories that are not managed by the SandboxLinux class. This would
++  // be a vulnerability as it would allow to bypass the setuid sandbox.
++  bool HasOpenDirectories() const;
++
++  // The last part of the initialization is to make sure any temporary "hole"
++  // in the sandbox is closed. For now, this consists of closing proc_fd_.
++  void SealSandbox();
++
++  // GetStatus() makes promises as to how the sandbox will behave. This
++  // checks that no promises have been broken.
++  void CheckForBrokenPromises(sandbox::mojom::Sandbox sandbox_type);
++
++  // Stop |thread| and make sure it does not appear in /proc/self/tasks/
++  // anymore.
++  void StopThreadAndEnsureNotCounted(base::Thread* thread) const;
++
++  // A file descriptor to /proc. It's dangerous to have it around as it could
++  // allow for sandbox bypasses. It needs to be closed before we consider
++  // ourselves sandboxed.
++  int proc_fd_;
++
++  bool seccomp_bpf_started_;
++  // The value returned by GetStatus(). Gets computed once and then cached.
++  int sandbox_status_flags_;
++  // Did PreinitializeSandbox() run?
++  bool pre_initialized_;
++  bool seccomp_bpf_supported_;             // Accurate if pre_initialized_.
++  bool seccomp_bpf_with_tsync_supported_;  // Accurate if pre_initialized_.
++  bool yama_is_enforcing_;                 // Accurate if pre_initialized_.
++  bool initialize_sandbox_ran_;            // InitializeSandbox() was called.
++#if BUILDFLAG(USING_SANITIZER)
++  std::unique_ptr<__sanitizer_sandbox_arguments> sanitizer_args_;
++#endif
++  sandbox::syscall_broker::BrokerProcess* broker_process_;  // Leaked as global.
++};
++
++}  // namespace policy
++}  // namespace sandbox
++
++#endif  // SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
diff --git a/chromium/patches/patch-sandbox_policy_mojom_sandbox.mojom b/chromium/patches/patch-sandbox_policy_mojom_sandbox.mojom
new file mode 100644
index 0000000000..a18bdaf2e5
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_mojom_sandbox.mojom
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/mojom/sandbox.mojom.orig	2024-07-24 02:44:43.565452600 +0000
++++ sandbox/policy/mojom/sandbox.mojom
+@@ -77,6 +77,15 @@ enum Sandbox {
+   [EnableIf=is_fuchsia]
+   kVideoCapture,
+ 
++  [EnableIf=is_openbsd]
++  kVideoCapture,
++
++  [EnableIf=is_netbsd]
++  kVideoCapture,
++
++  [EnableIf=is_freebsd]
++  kVideoCapture,
++
+   // Allows access to file contents and Windows APIs for parsing icons from PE
+   // files.
+   [EnableIf=is_win]
diff --git a/chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.cc b/chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.cc
new file mode 100644
index 0000000000..eb91adc0d8
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.cc
@@ -0,0 +1,254 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/netbsd/sandbox_netbsd.cc.orig	2024-08-01 14:09:00.278116893 +0000
++++ sandbox/policy/netbsd/sandbox_netbsd.cc
+@@ -0,0 +1,245 @@
++// 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 "sandbox/policy/netbsd/sandbox_netbsd.h"
++
++#include <dirent.h>
++#include <fcntl.h>
++#include <stdint.h>
++#include <sys/resource.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <sys/types.h>
++#include <unistd.h>
++
++#include <limits>
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/command_line.h"
++#include "base/debug/stack_trace.h"
++#include "base/feature_list.h"
++#include "base/files/file_path.h"
++#include "base/files/file_util.h"
++#include "base/files/scoped_file.h"
++#include "base/logging.h"
++#include "base/memory/singleton.h"
++#include "base/path_service.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/system/sys_info.h"
++#include "base/threading/thread.h"
++#include "base/time/time.h"
++#include "build/build_config.h"
++#include "crypto/crypto_buildflags.h"
++#include "ppapi/buildflags/buildflags.h"
++#include "sandbox/constants.h"
++#include "sandbox/linux/services/credentials.h"
++#include "sandbox/linux/services/namespace_sandbox.h"
++#include "sandbox/linux/services/proc_util.h"
++#include "sandbox/linux/services/resource_limits.h"
++#include "sandbox/linux/services/thread_helpers.h"
++#include "sandbox/linux/syscall_broker/broker_command.h"
++#include "sandbox/linux/syscall_broker/broker_process.h"
++#include "sandbox/policy/sandbox.h"
++#include "sandbox/policy/sandbox_type.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "sandbox/policy/switches.h"
++#include "sandbox/sandbox_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++#if BUILDFLAG(USE_NSS_CERTS)
++#include "crypto/nss_util.h"
++#endif
++
++#include "third_party/boringssl/src/include/openssl/crypto.h"
++
++#include "ui/gfx/font_util.h"
++
++namespace sandbox {
++namespace policy {
++
++SandboxLinux::SandboxLinux()
++    : sandbox_status_flags_(kInvalid),
++      pre_initialized_(false),
++      initialize_sandbox_ran_(false),
++      broker_process_(nullptr) {
++}
++
++SandboxLinux::~SandboxLinux() {
++  if (pre_initialized_) {
++    CHECK(initialize_sandbox_ran_);
++  }
++}
++
++SandboxLinux* SandboxLinux::GetInstance() {
++  SandboxLinux* instance = base::Singleton<SandboxLinux>::get();
++  CHECK(instance);
++  return instance;
++}
++
++void SandboxLinux::StopThread(base::Thread* thread) {
++  DCHECK(thread);
++  thread->Stop();
++}
++
++void SandboxLinux::PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type) {
++  CHECK(!pre_initialized_);
++#if BUILDFLAG(USING_SANITIZER)
++  // Sanitizers need to open some resources before the sandbox is enabled.
++  // This should not fork, not launch threads, not open a directory.
++  __sanitizer_sandbox_on_notify(sanitizer_args());
++  sanitizer_args_.reset();
++#endif
++  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++  const std::string process_type =
++      command_line->GetSwitchValueASCII(switches::kProcessType);
++
++  base::SysInfo::AmountOfPhysicalMemory();
++  base::SysInfo::NumberOfProcessors();
++  base::SysInfo::CPUModelName();
++
++  switch (sandbox_type) {
++    case sandbox::mojom::Sandbox::kNoSandbox:
++    {
++#if BUILDFLAG(USE_NSS_CERTS)
++      // The main process has to initialize the ~/.pki dir which won't work
++      // after unveil(2).
++      crypto::EnsureNSSInit();
++#endif
++      CRYPTO_pre_sandbox_init();
++
++      base::FilePath cache_directory, local_directory;
++
++      base::PathService::Get(base::DIR_CACHE, &cache_directory);
++      base::PathService::Get(base::DIR_HOME, &local_directory);
++
++      cache_directory = cache_directory.AppendASCII("chromium");
++      local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications");
++
++      if (!base::CreateDirectory(cache_directory)) {
++        LOG(ERROR) << "Failed to create " << cache_directory.value() << " directory.";
++      }
++
++      if (!base::CreateDirectory(local_directory)) {
++        LOG(ERROR) << "Failed to create " << local_directory.value() << " directory.";
++      }
++
++      break;
++    }
++    case sandbox::mojom::Sandbox::kRenderer:
++      gfx::InitializeFonts();
++      break;
++    default:
++      break;
++  }
++
++  pre_initialized_ = true;
++}
++
++bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++                                     SandboxLinux::PreSandboxHook hook,
++                                     const Options& options) {
++  DCHECK(!initialize_sandbox_ran_);
++  initialize_sandbox_ran_ = true;
++
++  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++  const std::string process_type =
++      command_line->GetSwitchValueASCII(switches::kProcessType);
++
++  if (command_line->HasSwitch(switches::kNoSandbox))
++    return true;
++
++  VLOG(1) << "SandboxLinux::InitializeSandbox: process_type="
++      << process_type << " sandbox_type=" << GetSandboxTypeInEnglish(sandbox_type);
++
++  // Only one thread is running, pre-initialize if not already done.
++  if (!pre_initialized_)
++    PreinitializeSandbox(sandbox_type);
++
++  // Attempt to limit the future size of the address space of the process.
++  int error = 0;
++  const bool limited_as = LimitAddressSpace(&error);
++  if (error) {
++    // Restore errno. Internally to |LimitAddressSpace|, the errno due to
++    // setrlimit may be lost.
++    errno = error;
++    PCHECK(limited_as);
++  }
++
++  if (hook)
++    CHECK(std::move(hook).Run(options));
++
++  return true;
++}
++
++bool SandboxLinux::LimitAddressSpace(int* error) {
++#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \
++    !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++  if (SandboxTypeFromCommandLine(*command_line) == sandbox::mojom::Sandbox::kNoSandbox) {
++    return false;
++  }
++
++  // Unfortunately, it does not appear possible to set RLIMIT_AS such that it
++  // will both (a) be high enough to support V8's and WebAssembly's address
++  // space requirements while also (b) being low enough to mitigate exploits
++  // using integer overflows that require large allocations, heap spray, or
++  // other memory-hungry attack modes.
++
++  *error = sandbox::ResourceLimits::Lower(
++      RLIMIT_DATA, static_cast<rlim_t>(sandbox::kDataSizeLimit));
++
++  // Cache the resource limit before turning on the sandbox.
++  base::SysInfo::AmountOfVirtualMemory();
++  base::SysInfo::MaxSharedMemorySize();
++
++  return *error == 0;
++#else
++  base::SysInfo::AmountOfVirtualMemory();
++  return false;
++#endif  // !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) &&
++        // !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++}
++
++// static
++std::string SandboxLinux::GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type) {
++  switch (sandbox_type) {
++    case sandbox::mojom::Sandbox::kNoSandbox:
++      return "Unsandboxed";
++    case sandbox::mojom::Sandbox::kRenderer:
++      return "Renderer";
++    case sandbox::mojom::Sandbox::kUtility:
++      return "Utility";
++    case sandbox::mojom::Sandbox::kGpu:
++      return "GPU";
++#if BUILDFLAG(ENABLE_PPAPI)
++    case sandbox::mojom::Sandbox::kPpapi:
++      return "PPAPI";
++#endif
++    case sandbox::mojom::Sandbox::kNetwork:
++      return "Network";
++    case sandbox::mojom::Sandbox::kCdm:
++      return "CDM";
++    case sandbox::mojom::Sandbox::kPrintCompositor:
++      return "Print Compositor";
++    case sandbox::mojom::Sandbox::kAudio:
++      return "Audio";
++    case sandbox::mojom::Sandbox::kSpeechRecognition:
++      return "Speech Recognition";
++    case sandbox::mojom::Sandbox::kService:
++      return "Service";
++    case sandbox::mojom::Sandbox::kVideoCapture:
++      return "Video Capture";
++    default:
++      return "Unknown";
++  }
++}
++
++}  // namespace policy
++}  // namespace sandbox
diff --git a/chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.h b/chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.h
new file mode 100644
index 0000000000..a804f3d044
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_netbsd_sandbox__netbsd.h
@@ -0,0 +1,287 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/netbsd/sandbox_netbsd.h.orig	2024-08-01 14:09:00.287768970 +0000
++++ sandbox/policy/netbsd/sandbox_netbsd.h
+@@ -0,0 +1,278 @@
++// 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 SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++#define SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/logging.h"
++#include "base/posix/global_descriptors.h"
++#include "sandbox/policy/export.h"
++#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "base/sanitizer_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++namespace base {
++template <typename T>
++struct DefaultSingletonTraits;
++class Thread;
++}  // namespace base
++
++namespace sandbox {
++namespace syscall_broker {
++class BrokerProcess;
++}  // namespace syscall_broker
++}  // namespace sandbox
++
++namespace sandbox {
++namespace policy {
++
++// A singleton class to represent and change our sandboxing state for the
++// three main Linux sandboxes.
++// The sandboxing model allows using two layers of sandboxing. The first layer
++// can be implemented either with unprivileged namespaces or with the setuid
++// sandbox. This class provides a way to engage the namespace sandbox, but does
++// not deal with the legacy setuid sandbox directly.
++// The second layer is mainly based on seccomp-bpf and is engaged with
++// InitializeSandbox(). InitializeSandbox() is also responsible for "sealing"
++// the first layer of sandboxing. That is, InitializeSandbox must always be
++// called to have any meaningful sandboxing at all.
++class SANDBOX_POLICY_EXPORT SandboxLinux {
++ public:
++  // This is a list of sandbox IPC methods which the renderer may send to the
++  // sandbox host. See
++  // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandbox_ipc.md
++  // This isn't the full list, values < 32 are reserved for methods called from
++  // Skia, and values < 64 are reserved for libc_interceptor.cc.
++  enum LinuxSandboxIPCMethods {
++    DEPRECATED_METHOD_GET_FALLBACK_FONT_FOR_CHAR = 64,
++    DEPRECATED_METHOD_GET_CHILD_WITH_INODE,
++    DEPRECATED_METHOD_GET_STYLE_FOR_STRIKE,
++    METHOD_MAKE_SHARED_MEMORY_SEGMENT,
++    DEPRECATED_METHOD_MATCH_WITH_FALLBACK,
++  };
++
++  // These form a bitmask which describes the conditions of the Linux sandbox.
++  // Note: this doesn't strictly give you the current status, it states
++  // what will be enabled when the relevant processes are initialized.
++  enum Status {
++    // SUID sandbox active.
++    kSUID = 1 << 0,
++
++    // Sandbox is using a new PID namespace.
++    kPIDNS = 1 << 1,
++
++    // Sandbox is using a new network namespace.
++    kNetNS = 1 << 2,
++
++    // seccomp-bpf sandbox active.
++    kSeccompBPF = 1 << 3,
++
++    // The Yama LSM module is present and enforcing.
++    kYama = 1 << 4,
++
++    // seccomp-bpf sandbox is active and the kernel supports TSYNC.
++    kSeccompTSYNC = 1 << 5,
++
++    // User namespace sandbox active.
++    kUserNS = 1 << 6,
++
++    // A flag that denotes an invalid sandbox status.
++    kInvalid = 1 << 31,
++  };
++
++  // SandboxLinux Options are a superset of SandboxSecompBPF Options.
++  struct Options : public SandboxSeccompBPF::Options {
++    // When running with a zygote, the namespace sandbox will have already
++    // been engaged prior to initializing SandboxLinux itself, and need not
++    // be done so again. Set to true to indicate that there isn't a zygote
++    // for this process and the step is to be performed here explicitly.
++    bool engage_namespace_sandbox = false;
++
++    // Allow starting the sandbox with multiple threads already running. This
++    // will enable TSYNC for seccomp-BPF, which syncs the seccomp-BPF policy
++    // across all running threads.
++    bool allow_threads_during_sandbox_init = false;
++
++    // Enables the CHECK for open directories. The open directory check is only
++    // useful for the chroot jail (from the semantic layer of the sandbox), and
++    // can safely be disabled if we are only enabling the seccomp-BPF layer.
++    bool check_for_open_directories = true;
++  };
++
++  // Callers can provide this hook to run code right before the policy
++  // is passed to the BPF compiler and the sandbox is engaged. If
++  // pre_sandbox_hook() returns true, the sandbox will be engaged
++  // afterwards, otherwise the process is terminated.
++  using PreSandboxHook = base::OnceCallback<bool(Options)>;
++
++  // Get our singleton instance.
++  static SandboxLinux* GetInstance();
++
++  SandboxLinux(const SandboxLinux&) = delete;
++  SandboxLinux& operator=(const SandboxLinux&) = delete;
++
++  bool SetPledge(const char *pstring, const char *ppath);
++  bool SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type);
++
++  // Do some initialization that can only be done before any of the sandboxes
++  // are enabled. If using the setuid sandbox, this should be called manually
++  // before the setuid sandbox is engaged.
++  // Security: When this runs, it is imperative that either InitializeSandbox()
++  // runs as well or that all file descriptors returned in
++  // GetFileDescriptorsToClose() get closed.
++  // Otherwise file descriptors that bypass the security of the setuid sandbox
++  // would be kept open. One must be particularly careful if a process performs
++  // a fork().
++  void PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type);
++
++  // Check that the current process is the init process of a new PID
++  // namespace and then proceed to drop access to the file system by using
++  // a new unprivileged namespace. This is a layer-1 sandbox.
++  // In order for this sandbox to be effective, it must be "sealed" by calling
++  // InitializeSandbox().
++  void EngageNamespaceSandbox(bool from_zygote);
++
++  // Return a list of file descriptors to close if PreinitializeSandbox() ran
++  // but InitializeSandbox() won't. Avoid using.
++  // TODO(jln): get rid of this hack.
++  std::vector<int> GetFileDescriptorsToClose();
++
++  // Seal an eventual layer-1 sandbox and initialize the layer-2 sandbox with
++  // an adequate policy depending on the process type and command line
++  // arguments.
++  // Currently the layer-2 sandbox is composed of seccomp-bpf and address space
++  // limitations.
++  // This function should only be called without any thread running.
++  bool InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++                         PreSandboxHook hook,
++                         const Options& options);
++
++  // Stop |thread| in a way that can be trusted by the sandbox.
++  void StopThread(base::Thread* thread);
++
++  // Returns the status of the renderer, worker and ppapi sandbox. Can only
++  // be queried after going through PreinitializeSandbox(). This is a bitmask
++  // and uses the constants defined in "enum Status" above. Since the
++  // status needs to be provided before the sandboxes are actually started,
++  // this returns what will actually happen once InitializeSandbox()
++  // is called from inside these processes.
++  int GetStatus();
++
++  static std::string GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type);
++
++  // Returns true if the current process is single-threaded or if the number
++  // of threads cannot be determined.
++  bool IsSingleThreaded() const;
++
++  // Returns true if we started Seccomp BPF.
++  bool seccomp_bpf_started() const;
++
++  // Check the policy and eventually start the seccomp-bpf sandbox. This should
++  // never be called with threads started. If we detect that threads have
++  // started we will crash.
++  bool StartSeccompBPF(sandbox::mojom::Sandbox sandbox_type,
++                       PreSandboxHook hook,
++                       const Options& options);
++
++  // Limit the address space of the current process (and its children) to make
++  // some vulnerabilities harder to exploit. Writes the errno due to setrlimit
++  // (including 0 if no error) into |error|.
++  bool LimitAddressSpace(int* error);
++
++  // Returns a file descriptor to proc. The file descriptor is no longer valid
++  // after the sandbox has been sealed.
++  int proc_fd() const {
++    DCHECK_NE(-1, proc_fd_);
++    return proc_fd_;
++  }
++
++#if BUILDFLAG(USING_SANITIZER)
++  __sanitizer_sandbox_arguments* sanitizer_args() const {
++    return sanitizer_args_.get();
++  };
++#endif
++
++  // A BrokerProcess is a helper that is started before the sandbox is engaged,
++  // typically from a pre-sandbox hook, that will serve requests to access
++  // files over an IPC channel. The client  of this runs from a SIGSYS handler
++  // triggered by the seccomp-bpf sandbox.
++  // |client_sandbox_policy| is the policy being run by the client, and is
++  // used to derive the equivalent broker-side policy.
++  // |broker_side_hook| is an alternate pre-sandbox hook to be run before the
++  // broker itself gets sandboxed, to which the broker side policy and
++  // |options| are passed.
++  // Crashes the process if the broker can not be started since continuation
++  // is impossible (and presumably unsafe).
++  // This should never be destroyed, as after the sandbox is started it is
++  // vital to the process.
++#if 0
++  void StartBrokerProcess(
++      const sandbox::syscall_broker::BrokerCommandSet& allowed_command_set,
++      std::vector<sandbox::syscall_broker::BrokerFilePermission> permissions,
++      PreSandboxHook broker_side_hook,
++      const Options& options);
++
++  sandbox::syscall_broker::BrokerProcess* broker_process() const {
++    return broker_process_;
++  }
++#endif
++
++ private:
++  friend struct base::DefaultSingletonTraits<SandboxLinux>;
++
++  SandboxLinux();
++  ~SandboxLinux();
++
++  // We must have been pre_initialized_ before using these.
++  bool seccomp_bpf_supported() const;
++  bool seccomp_bpf_with_tsync_supported() const;
++
++  // Returns true if it can be determined that the current process has open
++  // directories that are not managed by the SandboxLinux class. This would
++  // be a vulnerability as it would allow to bypass the setuid sandbox.
++  bool HasOpenDirectories() const;
++
++  // The last part of the initialization is to make sure any temporary "hole"
++  // in the sandbox is closed. For now, this consists of closing proc_fd_.
++  void SealSandbox();
++
++  // GetStatus() makes promises as to how the sandbox will behave. This
++  // checks that no promises have been broken.
++  void CheckForBrokenPromises(sandbox::mojom::Sandbox sandbox_type);
++
++  // Stop |thread| and make sure it does not appear in /proc/self/tasks/
++  // anymore.
++  void StopThreadAndEnsureNotCounted(base::Thread* thread) const;
++
++  // A file descriptor to /proc. It's dangerous to have it around as it could
++  // allow for sandbox bypasses. It needs to be closed before we consider
++  // ourselves sandboxed.
++  int proc_fd_;
++
++  bool seccomp_bpf_started_;
++  // The value returned by GetStatus(). Gets computed once and then cached.
++  int sandbox_status_flags_;
++  // Did PreinitializeSandbox() run?
++  bool pre_initialized_;
++  bool seccomp_bpf_supported_;             // Accurate if pre_initialized_.
++  bool seccomp_bpf_with_tsync_supported_;  // Accurate if pre_initialized_.
++  bool yama_is_enforcing_;                 // Accurate if pre_initialized_.
++  bool initialize_sandbox_ran_;            // InitializeSandbox() was called.
++#if BUILDFLAG(USING_SANITIZER)
++  std::unique_ptr<__sanitizer_sandbox_arguments> sanitizer_args_;
++#endif
++  sandbox::syscall_broker::BrokerProcess* broker_process_;  // Leaked as global.
++};
++
++}  // namespace policy
++}  // namespace sandbox
++
++#endif  // SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
diff --git a/chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.cc b/chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.cc
new file mode 100644
index 0000000000..701486cc22
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.cc
@@ -0,0 +1,433 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/openbsd/sandbox_openbsd.cc.orig	2024-08-01 14:09:00.302012977 +0000
++++ sandbox/policy/openbsd/sandbox_openbsd.cc
+@@ -0,0 +1,424 @@
++// 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 "sandbox/policy/openbsd/sandbox_openbsd.h"
++
++#include <dirent.h>
++#include <fcntl.h>
++#include <stdint.h>
++#include <sys/resource.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <sys/types.h>
++#include <unistd.h>
++#include <util.h>
++
++#include <limits>
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/command_line.h"
++#include "base/debug/stack_trace.h"
++#include "base/feature_list.h"
++#include "base/files/file_path.h"
++#include "base/files/file_util.h"
++#include "base/files/scoped_file.h"
++#include "base/logging.h"
++#include "base/memory/singleton.h"
++#include "base/path_service.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/system/sys_info.h"
++#include "base/threading/thread.h"
++#include "base/time/time.h"
++#include "build/build_config.h"
++#include "crypto/crypto_buildflags.h"
++#include "ppapi/buildflags/buildflags.h"
++#include "sandbox/constants.h"
++#include "sandbox/linux/services/credentials.h"
++#include "sandbox/linux/services/namespace_sandbox.h"
++#include "sandbox/linux/services/proc_util.h"
++#include "sandbox/linux/services/resource_limits.h"
++#include "sandbox/linux/services/thread_helpers.h"
++#include "sandbox/linux/syscall_broker/broker_command.h"
++#include "sandbox/linux/syscall_broker/broker_process.h"
++#include "sandbox/policy/sandbox.h"
++#include "sandbox/policy/sandbox_type.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "sandbox/policy/switches.h"
++#include "sandbox/sandbox_buildflags.h" 
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++#if BUILDFLAG(USE_NSS_CERTS)
++#include "crypto/nss_util.h"
++#endif
++
++#include "third_party/boringssl/src/include/openssl/crypto.h"
++
++#include <fontconfig/fontconfig.h>
++#include "ui/gfx/linux/fontconfig_util.h"
++
++#define MAXTOKENS	3
++
++#define _UNVEIL_MAIN		"@PKG_SYSCONFBASE@/chromium/unveil.main";
++#define _UNVEIL_GPU		"@PKG_SYSCONFBASE@/chromium/unveil.gpu";
++#define _UNVEIL_UTILITY_NETWORK	"@PKG_SYSCONFBASE@/chromium/unveil.utility_network";
++#define _UNVEIL_UTILITY_AUDIO	"@PKG_SYSCONFBASE@/chromium/unveil.utility_audio";
++#define _UNVEIL_UTILITY_VIDEO	"@PKG_SYSCONFBASE@/chromium/unveil.utility_video";
++
++namespace sandbox {
++namespace policy {
++
++SandboxLinux::SandboxLinux()
++    : unveil_initialized_(false),
++      sandbox_status_flags_(kInvalid),
++      pre_initialized_(false),
++      initialize_sandbox_ran_(false),
++      broker_process_(nullptr) {
++}
++
++SandboxLinux::~SandboxLinux() {
++  if (pre_initialized_) {
++    CHECK(initialize_sandbox_ran_);
++  }
++}
++
++SandboxLinux* SandboxLinux::GetInstance() {
++  SandboxLinux* instance = base::Singleton<SandboxLinux>::get();
++  CHECK(instance);
++  return instance;
++}
++
++void SandboxLinux::StopThread(base::Thread* thread) {
++  DCHECK(thread);
++  thread->Stop();
++}
++
++void SandboxLinux::PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type) {
++  CHECK(!pre_initialized_);
++#if BUILDFLAG(USING_SANITIZER)
++  // Sanitizers need to open some resources before the sandbox is enabled.
++  // This should not fork, not launch threads, not open a directory.
++  __sanitizer_sandbox_on_notify(sanitizer_args());
++  sanitizer_args_.reset();
++#endif
++  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++  const std::string process_type =
++      command_line->GetSwitchValueASCII(switches::kProcessType);
++
++  base::SysInfo::AmountOfPhysicalMemory();
++  base::SysInfo::NumberOfProcessors();
++  base::SysInfo::CPUModelName();
++
++  switch (sandbox_type) {
++    case sandbox::mojom::Sandbox::kNoSandbox:
++    {
++#if BUILDFLAG(USE_NSS_CERTS)
++      // The main process has to initialize the ~/.pki dir which won't work
++      // after unveil(2).
++      crypto::EnsureNSSInit();
++#endif
++      CRYPTO_pre_sandbox_init();
++
++      base::FilePath cache_directory, local_directory;
++
++      base::PathService::Get(base::DIR_CACHE, &cache_directory);
++      base::PathService::Get(base::DIR_HOME, &local_directory);   
++
++      cache_directory = cache_directory.AppendASCII("chromium");
++      local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications");
++
++      if (!base::CreateDirectory(cache_directory)) {
++        LOG(ERROR) << "Failed to create " << cache_directory.value() << " directory.";
++      }
++
++      if (!base::CreateDirectory(local_directory)) {
++        LOG(ERROR) << "Failed to create " << local_directory.value() << " directory.";
++      }
++
++      break;
++    }
++    case sandbox::mojom::Sandbox::kRenderer:
++    {
++      FcConfig* config = gfx::GetGlobalFontConfig();
++      DCHECK(config);
++      break;
++    }
++    default:
++      break;
++  }
++
++  pre_initialized_ = true;
++}
++
++bool SandboxLinux::SetPledge(const char *pstring, const char *ppath) {
++  FILE *fp;
++  char *s = NULL;
++  size_t len = 0;
++  ssize_t read;
++
++  if (pstring != NULL) {
++    if (pledge(pstring, NULL) == -1)
++      goto err;
++    VLOG(5) << "pledge " << pstring;
++  } else if (ppath != NULL) {
++    fp = fopen(ppath, "r");
++    if (fp != NULL) {
++      while ((read = getline(&s, &len, fp)) != -1 ) {
++        if (s[strlen(s)-1] == '\n')
++          s[strlen(s)-1] = '\0';
++        if (pledge(s, NULL) == -1)
++  	  goto err;
++        VLOG(5) << "pledge " << s;
++      }
++      fclose(fp);
++    } else {
++      LOG(ERROR) << "fopen(" << ppath << ") failed, errno: " << errno;
++      return false;
++    }
++  }
++  return true;
++err:
++  LOG(ERROR) << "pledge() failed, errno: " << errno;
++  return false;
++}
++
++bool SandboxLinux::SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type) {
++  FILE *fp;
++  char *s = NULL, *cp = NULL, *home = NULL, **ap, *tokens[MAXTOKENS];
++  char path[PATH_MAX];
++  const char *ufile;
++  size_t len = 0, lineno = 0;
++
++  switch (sandbox_type) {
++    case sandbox::mojom::Sandbox::kNoSandbox:
++      ufile = _UNVEIL_MAIN;
++      break;
++    case sandbox::mojom::Sandbox::kGpu:
++      ufile = _UNVEIL_GPU;
++      break;
++    case sandbox::mojom::Sandbox::kNetwork:
++      ufile = _UNVEIL_UTILITY_NETWORK;
++      break;
++    case sandbox::mojom::Sandbox::kAudio:
++      ufile = _UNVEIL_UTILITY_AUDIO;
++      break;
++    case sandbox::mojom::Sandbox::kVideoCapture:
++      ufile = _UNVEIL_UTILITY_VIDEO;
++      break;
++    default:
++      unveil("/dev/null", "r");
++      goto done;
++  }
++
++  fp = fopen(ufile, "r");
++  if (fp != NULL) {
++    while (!feof(fp)) {
++      if ((s = fparseln(fp, &len, &lineno, NULL,
++          FPARSELN_UNESCCOMM | FPARSELN_UNESCCONT)) == NULL) {
++        if (ferror(fp)) {
++          LOG(ERROR) << "ferror(), errno: " << errno;
++	  _exit(1);
++	} else {
++          continue;
++	}
++      }
++      cp = s;
++      cp += strspn(cp, " \t\n"); /* eat whitespace */
++      if (cp[0] == '\0')
++        continue;
++
++      for (ap = tokens; ap < &tokens[MAXTOKENS - 1] &&
++          (*ap = strsep(&cp, " \t")) != NULL;) {
++        if (**ap != '\0')
++          ap++;
++      }
++      *ap = NULL;
++
++      if (tokens[1] == NULL) {
++        LOG(ERROR) << ufile << ": line " << lineno << ": must supply value to " << s;
++        _exit(1);
++      }
++
++      if (tokens[0][0] == '~') {
++        if ((home = getenv("HOME")) == NULL || *home == '\0') {
++          LOG(ERROR) << "failed to get home";
++	  _exit(1);
++	}
++        memmove(tokens[0], tokens[0] + 1, strlen(tokens[0]));
++        strncpy(path, home, sizeof(path) - 1);
++        path[sizeof(path) - 1] = '\0';
++        strncat(path, tokens[0], sizeof(path) - 1 - strlen(path));
++      } else {
++        strncpy(path, tokens[0], sizeof(path) - 1);
++        path[sizeof(path) - 1] = '\0';
++      }
++
++      if (unveil(path, tokens[1]) == -1) {
++        LOG(ERROR) << "failed unveiling " << path << " with permissions " << tokens[1];
++        _exit(1);
++      } else {
++        VLOG(5) << "unveiling " << path << " with permissions " << tokens[1];
++      }
++    }
++    fclose(fp);
++  } else {
++        LOG(ERROR) << "failed to open " << ufile << " errno: " << errno;
++        _exit(1);
++  }
++
++done:
++  unveil_initialized_ = true;
++
++  return true;
++}
++
++bool SandboxLinux::unveil_initialized() const {
++  return unveil_initialized_;
++}
++
++bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++                                     SandboxLinux::PreSandboxHook hook,
++                                     const Options& options) {
++  DCHECK(!initialize_sandbox_ran_);
++  initialize_sandbox_ran_ = true;
++
++  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++  const std::string process_type =
++      command_line->GetSwitchValueASCII(switches::kProcessType);
++
++  if (command_line->HasSwitch(switches::kNoSandbox))
++    return true;
++
++  VLOG(1) << "SandboxLinux::InitializeSandbox: process_type="
++      << process_type << " sandbox_type=" << GetSandboxTypeInEnglish(sandbox_type);
++
++  // Only one thread is running, pre-initialize if not already done.
++  if (!pre_initialized_)
++    PreinitializeSandbox(sandbox_type);
++
++  // Attempt to limit the future size of the address space of the process.
++  int error = 0;
++  const bool limited_as = LimitAddressSpace(&error);
++  if (error) {
++    // Restore errno. Internally to |LimitAddressSpace|, the errno due to
++    // setrlimit may be lost.
++    errno = error;
++    PCHECK(limited_as);
++  }
++
++  if (hook)
++    CHECK(std::move(hook).Run(options));
++
++  if (!command_line->HasSwitch(switches::kDisableUnveil))
++    SetUnveil(process_type, sandbox_type);
++
++  switch(sandbox_type) {
++    case sandbox::mojom::Sandbox::kNoSandbox:
++      SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.main");
++      break;
++    case sandbox::mojom::Sandbox::kRenderer:
++      // prot_exec needed by v8
++      // flock needed by sqlite3 locking
++      SetPledge("stdio rpath flock prot_exec recvfd sendfd ps", NULL);
++      break;
++    case sandbox::mojom::Sandbox::kGpu:
++      SetPledge("stdio drm rpath flock cpath wpath prot_exec recvfd sendfd tmppath", NULL);
++      break;
++#if BUILDFLAG(ENABLE_PPAPI)
++    case sandbox::mojom::Sandbox::kPpapi:
++      // prot_exec needed by v8
++      SetPledge("stdio rpath prot_exec recvfd sendfd", NULL);
++      break;
++#endif
++    case sandbox::mojom::Sandbox::kAudio:
++      SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.utility_audio");
++      break;
++    case sandbox::mojom::Sandbox::kNetwork:
++      SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.utility_network");
++      break;
++    case sandbox::mojom::Sandbox::kVideoCapture:
++      SetPledge(NULL, "@PKG_SYSCONFBASE@/chromium/pledge.utility_video");
++      break;
++    case sandbox::mojom::Sandbox::kUtility:
++    case sandbox::mojom::Sandbox::kService:
++      SetPledge("stdio rpath cpath wpath fattr flock sendfd recvfd prot_exec", NULL);
++      break;
++    default:
++      LOG(ERROR) << "non-pledge()'d process: " << GetSandboxTypeInEnglish(sandbox_type);
++      break;
++  }
++
++  return true;
++}
++
++bool SandboxLinux::LimitAddressSpace(int* error) {
++#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \
++    !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
++  if (SandboxTypeFromCommandLine(*command_line) == sandbox::mojom::Sandbox::kNoSandbox) {
++    return false;
++  }
++
++  // Unfortunately, it does not appear possible to set RLIMIT_AS such that it
++  // will both (a) be high enough to support V8's and WebAssembly's address
++  // space requirements while also (b) being low enough to mitigate exploits
++  // using integer overflows that require large allocations, heap spray, or
++  // other memory-hungry attack modes.
++
++  *error = sandbox::ResourceLimits::Lower(
++      RLIMIT_DATA, static_cast<rlim_t>(sandbox::kDataSizeLimit));
++
++  // Cache the resource limit before turning on the sandbox.
++  base::SysInfo::AmountOfVirtualMemory();
++  base::SysInfo::MaxSharedMemorySize();
++
++  return *error == 0;
++#else
++  base::SysInfo::AmountOfVirtualMemory();
++  return false;
++#endif  // !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) &&
++        // !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER)
++}
++
++// static
++std::string SandboxLinux::GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type) {
++  switch (sandbox_type) {
++    case sandbox::mojom::Sandbox::kNoSandbox:
++      return "Unsandboxed";
++    case sandbox::mojom::Sandbox::kRenderer:
++      return "Renderer";
++    case sandbox::mojom::Sandbox::kUtility:
++      return "Utility";
++    case sandbox::mojom::Sandbox::kGpu:
++      return "GPU";
++#if BUILDFLAG(ENABLE_PPAPI)
++    case sandbox::mojom::Sandbox::kPpapi:
++      return "PPAPI";
++#endif
++    case sandbox::mojom::Sandbox::kNetwork:
++      return "Network";
++    case sandbox::mojom::Sandbox::kCdm:
++      return "CDM";
++    case sandbox::mojom::Sandbox::kPrintCompositor:
++      return "Print Compositor";
++    case sandbox::mojom::Sandbox::kAudio:
++      return "Audio";
++    case sandbox::mojom::Sandbox::kSpeechRecognition:
++      return "Speech Recognition";
++    case sandbox::mojom::Sandbox::kService:
++      return "Service";
++    case sandbox::mojom::Sandbox::kVideoCapture:
++      return "Video Capture";
++    default:
++      return "Unknown";
++  }
++}
++
++}  // namespace policy
++}  // namespace sandbox
diff --git a/chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.h b/chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.h
new file mode 100644
index 0000000000..f5671426a0
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_openbsd_sandbox__openbsd.h
@@ -0,0 +1,291 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/openbsd/sandbox_openbsd.h.orig	2024-08-01 14:09:00.305934989 +0000
++++ sandbox/policy/openbsd/sandbox_openbsd.h
+@@ -0,0 +1,282 @@
++// 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 SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++#define SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
++
++#include <memory>
++#include <string>
++#include <vector>
++
++#include "base/logging.h"
++#include "base/posix/global_descriptors.h"
++#include "sandbox/policy/export.h"
++#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h"
++#include "sandbox/policy/mojom/sandbox.mojom.h"
++#include "base/sanitizer_buildflags.h"
++
++#if BUILDFLAG(USING_SANITIZER)
++#include <sanitizer/common_interface_defs.h>
++#endif
++
++namespace base {
++template <typename T>
++struct DefaultSingletonTraits;
++class Thread;
++}  // namespace base
++
++namespace sandbox {
++namespace syscall_broker {
++class BrokerProcess;
++}  // namespace syscall_broker
++}  // namespace sandbox
++
++namespace sandbox {
++namespace policy {
++
++// A singleton class to represent and change our sandboxing state for the
++// three main Linux sandboxes.
++// The sandboxing model allows using two layers of sandboxing. The first layer
++// can be implemented either with unprivileged namespaces or with the setuid
++// sandbox. This class provides a way to engage the namespace sandbox, but does
++// not deal with the legacy setuid sandbox directly.
++// The second layer is mainly based on seccomp-bpf and is engaged with
++// InitializeSandbox(). InitializeSandbox() is also responsible for "sealing"
++// the first layer of sandboxing. That is, InitializeSandbox must always be
++// called to have any meaningful sandboxing at all.
++class SANDBOX_POLICY_EXPORT SandboxLinux {
++ public:
++  // This is a list of sandbox IPC methods which the renderer may send to the
++  // sandbox host. See
++  // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandbox_ipc.md
++  // This isn't the full list, values < 32 are reserved for methods called from
++  // Skia, and values < 64 are reserved for libc_interceptor.cc.
++  enum LinuxSandboxIPCMethods {
++    DEPRECATED_METHOD_GET_FALLBACK_FONT_FOR_CHAR = 64,
++    DEPRECATED_METHOD_GET_CHILD_WITH_INODE,
++    DEPRECATED_METHOD_GET_STYLE_FOR_STRIKE,
++    METHOD_MAKE_SHARED_MEMORY_SEGMENT,
++    DEPRECATED_METHOD_MATCH_WITH_FALLBACK,
++  };
++
++  // These form a bitmask which describes the conditions of the Linux sandbox.
++  // Note: this doesn't strictly give you the current status, it states
++  // what will be enabled when the relevant processes are initialized.
++  enum Status {
++    // SUID sandbox active.
++    kSUID = 1 << 0,
++
++    // Sandbox is using a new PID namespace.
++    kPIDNS = 1 << 1,
++
++    // Sandbox is using a new network namespace.
++    kNetNS = 1 << 2,
++
++    // seccomp-bpf sandbox active.
++    kSeccompBPF = 1 << 3,
++
++    // The Yama LSM module is present and enforcing.
++    kYama = 1 << 4,
++
++    // seccomp-bpf sandbox is active and the kernel supports TSYNC.
++    kSeccompTSYNC = 1 << 5,
++
++    // User namespace sandbox active.
++    kUserNS = 1 << 6,
++
++    // A flag that denotes an invalid sandbox status.
++    kInvalid = 1 << 31,
++  };
++
++  // SandboxLinux Options are a superset of SandboxSecompBPF Options.
++  struct Options : public SandboxSeccompBPF::Options {
++    // When running with a zygote, the namespace sandbox will have already
++    // been engaged prior to initializing SandboxLinux itself, and need not
++    // be done so again. Set to true to indicate that there isn't a zygote
++    // for this process and the step is to be performed here explicitly.
++    bool engage_namespace_sandbox = false;
++
++    // Allow starting the sandbox with multiple threads already running. This
++    // will enable TSYNC for seccomp-BPF, which syncs the seccomp-BPF policy
++    // across all running threads.
++    bool allow_threads_during_sandbox_init = false;
++
++    // Enables the CHECK for open directories. The open directory check is only
++    // useful for the chroot jail (from the semantic layer of the sandbox), and
++    // can safely be disabled if we are only enabling the seccomp-BPF layer.
++    bool check_for_open_directories = true;
++  };
++
++  // Callers can provide this hook to run code right before the policy
++  // is passed to the BPF compiler and the sandbox is engaged. If
++  // pre_sandbox_hook() returns true, the sandbox will be engaged
++  // afterwards, otherwise the process is terminated.
++  using PreSandboxHook = base::OnceCallback<bool(Options)>;
++
++  // Get our singleton instance.
++  static SandboxLinux* GetInstance();
++
++  SandboxLinux(const SandboxLinux&) = delete;
++  SandboxLinux& operator=(const SandboxLinux&) = delete;
++
++  bool SetPledge(const char *pstring, const char *ppath);
++  bool SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type);
++
++  // Do some initialization that can only be done before any of the sandboxes
++  // are enabled. If using the setuid sandbox, this should be called manually
++  // before the setuid sandbox is engaged.
++  // Security: When this runs, it is imperative that either InitializeSandbox()
++  // runs as well or that all file descriptors returned in
++  // GetFileDescriptorsToClose() get closed.
++  // Otherwise file descriptors that bypass the security of the setuid sandbox
++  // would be kept open. One must be particularly careful if a process performs
++  // a fork().
++  void PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type);
++
++  // Check that the current process is the init process of a new PID
++  // namespace and then proceed to drop access to the file system by using
++  // a new unprivileged namespace. This is a layer-1 sandbox.
++  // In order for this sandbox to be effective, it must be "sealed" by calling
++  // InitializeSandbox().
++  void EngageNamespaceSandbox(bool from_zygote);
++
++  // Return a list of file descriptors to close if PreinitializeSandbox() ran
++  // but InitializeSandbox() won't. Avoid using.
++  // TODO(jln): get rid of this hack.
++  std::vector<int> GetFileDescriptorsToClose();
++
++  // Seal an eventual layer-1 sandbox and initialize the layer-2 sandbox with
++  // an adequate policy depending on the process type and command line
++  // arguments.
++  // Currently the layer-2 sandbox is composed of seccomp-bpf and address space
++  // limitations.
++  // This function should only be called without any thread running.
++  bool InitializeSandbox(sandbox::mojom::Sandbox sandbox_type,
++                         PreSandboxHook hook,
++                         const Options& options);
++
++  // Stop |thread| in a way that can be trusted by the sandbox.
++  void StopThread(base::Thread* thread);
++
++  // Returns the status of the renderer, worker and ppapi sandbox. Can only
++  // be queried after going through PreinitializeSandbox(). This is a bitmask
++  // and uses the constants defined in "enum Status" above. Since the
++  // status needs to be provided before the sandboxes are actually started,
++  // this returns what will actually happen once InitializeSandbox()
++  // is called from inside these processes.
++  int GetStatus();
++
++  static std::string GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type);
++
++  // Returns true if the current process is single-threaded or if the number
++  // of threads cannot be determined.
++  bool IsSingleThreaded() const;
++
++  // Returns true if we started Seccomp BPF.
++  bool seccomp_bpf_started() const;
++
++  // Returns true if unveil(2) is used.
++  bool unveil_initialized() const;
++
++  // Check the policy and eventually start the seccomp-bpf sandbox. This should
++  // never be called with threads started. If we detect that threads have
++  // started we will crash.
++  bool StartSeccompBPF(sandbox::mojom::Sandbox sandbox_type,
++                       PreSandboxHook hook,
++                       const Options& options);
++
++  // Limit the address space of the current process (and its children) to make
++  // some vulnerabilities harder to exploit. Writes the errno due to setrlimit
++  // (including 0 if no error) into |error|.
++  bool LimitAddressSpace(int* error);
++
++  // Returns a file descriptor to proc. The file descriptor is no longer valid
++  // after the sandbox has been sealed.
++  int proc_fd() const {
++    DCHECK_NE(-1, proc_fd_);
++    return proc_fd_;
++  }
++
++#if BUILDFLAG(USING_SANITIZER)
++  __sanitizer_sandbox_arguments* sanitizer_args() const {
++    return sanitizer_args_.get();
++  };
++#endif
++
++  // A BrokerProcess is a helper that is started before the sandbox is engaged,
++  // typically from a pre-sandbox hook, that will serve requests to access
++  // files over an IPC channel. The client  of this runs from a SIGSYS handler
++  // triggered by the seccomp-bpf sandbox.
++  // |client_sandbox_policy| is the policy being run by the client, and is
++  // used to derive the equivalent broker-side policy.
++  // |broker_side_hook| is an alternate pre-sandbox hook to be run before the
++  // broker itself gets sandboxed, to which the broker side policy and
++  // |options| are passed.
++  // Crashes the process if the broker can not be started since continuation
++  // is impossible (and presumably unsafe).
++  // This should never be destroyed, as after the sandbox is started it is
++  // vital to the process.
++#if 0
++  void StartBrokerProcess(
++      const sandbox::syscall_broker::BrokerCommandSet& allowed_command_set,
++      std::vector<sandbox::syscall_broker::BrokerFilePermission> permissions,
++      PreSandboxHook broker_side_hook,
++      const Options& options);
++
++  sandbox::syscall_broker::BrokerProcess* broker_process() const {
++    return broker_process_;
++  }
++#endif
++
++ private:
++  friend struct base::DefaultSingletonTraits<SandboxLinux>;
++
++  SandboxLinux();
++  ~SandboxLinux();
++
++  // We must have been pre_initialized_ before using these.
++  bool seccomp_bpf_supported() const;
++  bool seccomp_bpf_with_tsync_supported() const;
++
++  // Returns true if it can be determined that the current process has open
++  // directories that are not managed by the SandboxLinux class. This would
++  // be a vulnerability as it would allow to bypass the setuid sandbox.
++  bool HasOpenDirectories() const;
++
++  // The last part of the initialization is to make sure any temporary "hole"
++  // in the sandbox is closed. For now, this consists of closing proc_fd_.
++  void SealSandbox();
++
++  // GetStatus() makes promises as to how the sandbox will behave. This
++  // checks that no promises have been broken.
++  void CheckForBrokenPromises(sandbox::mojom::Sandbox sandbox_type);
++
++  // Stop |thread| and make sure it does not appear in /proc/self/tasks/
++  // anymore.
++  void StopThreadAndEnsureNotCounted(base::Thread* thread) const;
++
++  // A file descriptor to /proc. It's dangerous to have it around as it could
++  // allow for sandbox bypasses. It needs to be closed before we consider
++  // ourselves sandboxed.
++  int proc_fd_;
++
++  bool seccomp_bpf_started_;
++  bool unveil_initialized_;
++  // The value returned by GetStatus(). Gets computed once and then cached.
++  int sandbox_status_flags_;
++  // Did PreinitializeSandbox() run?
++  bool pre_initialized_;
++  bool seccomp_bpf_supported_;             // Accurate if pre_initialized_.
++  bool seccomp_bpf_with_tsync_supported_;  // Accurate if pre_initialized_.
++  bool yama_is_enforcing_;                 // Accurate if pre_initialized_.
++  bool initialize_sandbox_ran_;            // InitializeSandbox() was called.
++#if BUILDFLAG(USING_SANITIZER)
++  std::unique_ptr<__sanitizer_sandbox_arguments> sanitizer_args_;
++#endif
++  sandbox::syscall_broker::BrokerProcess* broker_process_;  // Leaked as global.
++};
++
++}  // namespace policy
++}  // namespace sandbox
++
++#endif  // SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_
diff --git a/chromium/patches/patch-sandbox_policy_sandbox.cc b/chromium/patches/patch-sandbox_policy_sandbox.cc
new file mode 100644
index 0000000000..466701238b
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_sandbox.cc
@@ -0,0 +1,28 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/sandbox.cc.orig	2024-07-24 02:44:43.565452600 +0000
++++ sandbox/policy/sandbox.cc
+@@ -18,6 +18,10 @@
+ #include "sandbox/policy/linux/sandbox_linux.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#endif  // BUILDFLAG(IS_BSD)
++
+ #if BUILDFLAG(IS_MAC)
+ #include "sandbox/mac/seatbelt.h"
+ #endif  // BUILDFLAG(IS_MAC)
+@@ -32,7 +36,7 @@
+ namespace sandbox {
+ namespace policy {
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool Sandbox::Initialize(sandbox::mojom::Sandbox sandbox_type,
+                          SandboxLinux::PreSandboxHook hook,
+                          const SandboxLinux::Options& options) {
diff --git a/chromium/patches/patch-sandbox_policy_sandbox.h b/chromium/patches/patch-sandbox_policy_sandbox.h
new file mode 100644
index 0000000000..9dfd971f71
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_sandbox.h
@@ -0,0 +1,32 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/sandbox.h.orig	2024-07-24 02:44:43.565452600 +0000
++++ sandbox/policy/sandbox.h
+@@ -12,6 +12,14 @@
+ #include "sandbox/policy/linux/sandbox_linux.h"
+ #endif
+ 
++#if BUILDFLAG(IS_OPENBSD)
++#include "sandbox/policy/openbsd/sandbox_openbsd.h"
++#elif BUILDFLAG(IS_NETBSD)
++#include "sandbox/policy/netbsd/sandbox_netbsd.h"
++#elif BUILDFLAG(IS_FREEBSD)
++#include "sandbox/policy/freebsd/sandbox_freebsd.h"
++#endif
++
+ namespace sandbox {
+ namespace mojom {
+ enum class Sandbox;
+@@ -32,7 +40,7 @@ namespace policy {
+ 
+ class SANDBOX_POLICY_EXPORT Sandbox {
+  public:
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   static bool Initialize(sandbox::mojom::Sandbox sandbox_type,
+                          SandboxLinux::PreSandboxHook hook,
+                          const SandboxLinux::Options& options);
diff --git a/chromium/patches/patch-sandbox_policy_sandbox__type.cc b/chromium/patches/patch-sandbox_policy_sandbox__type.cc
new file mode 100644
index 0000000000..8443818d56
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_sandbox__type.cc
@@ -0,0 +1,121 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/sandbox_type.cc.orig	2024-07-24 02:44:43.565452600 +0000
++++ sandbox/policy/sandbox_type.cc
+@@ -38,7 +38,7 @@ bool IsUnsandboxedSandboxType(Sandbox sa
+ #endif
+     case Sandbox::kAudio:
+       return false;
+-#if BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+     case Sandbox::kVideoCapture:
+       return false;
+ #endif
+@@ -63,7 +63,7 @@ bool IsUnsandboxedSandboxType(Sandbox sa
+     case Sandbox::kMirroring:
+     case Sandbox::kNaClLoader:
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+     case Sandbox::kHardwareVideoDecoding:
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -74,7 +74,7 @@ bool IsUnsandboxedSandboxType(Sandbox sa
+     case Sandbox::kLibassistant:
+ #endif  // BUILDFLAG(ENABLE_CROS_LIBASSISTANT)
+ #endif  // // BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) | BUILDFLAG(IS_BSD)
+     case Sandbox::kZygoteIntermediateSandbox:
+     case Sandbox::kHardwareVideoEncoding:
+ #endif
+@@ -131,7 +131,7 @@ void SetCommandLineFlagsForSandboxType(b
+ #endif
+     case Sandbox::kPrintCompositor:
+     case Sandbox::kAudio:
+-#if BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+     case Sandbox::kVideoCapture:
+ #endif
+ #if BUILDFLAG(IS_WIN)
+@@ -142,10 +142,10 @@ void SetCommandLineFlagsForSandboxType(b
+     case Sandbox::kMediaFoundationCdm:
+     case Sandbox::kWindowsSystemProxyResolver:
+ #endif  // BUILDFLAG(IS_WIN)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+     case Sandbox::kHardwareVideoDecoding:
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     case Sandbox::kHardwareVideoEncoding:
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -174,7 +174,7 @@ void SetCommandLineFlagsForSandboxType(b
+     case Sandbox::kNaClLoader:
+       break;
+ #endif  // BUILDFLAG(IS_MAC)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     case Sandbox::kZygoteIntermediateSandbox:
+       break;
+ #endif
+@@ -218,7 +218,7 @@ sandbox::mojom::Sandbox SandboxTypeFromC
+ #endif
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Intermediate process gains a sandbox later.
+   if (process_type == switches::kZygoteProcessType)
+     return Sandbox::kZygoteIntermediateSandbox;
+@@ -266,7 +266,7 @@ std::string StringFromUtilitySandboxType
+       return switches::kUtilitySandbox;
+     case Sandbox::kAudio:
+       return switches::kAudioSandbox;
+-#if BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+     case Sandbox::kVideoCapture:
+       return switches::kVideoCaptureSandbox;
+ #endif
+@@ -296,11 +296,11 @@ std::string StringFromUtilitySandboxType
+     case Sandbox::kMirroring:
+       return switches::kMirroringSandbox;
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+     case Sandbox::kHardwareVideoDecoding:
+       return switches::kHardwareVideoDecodingSandbox;
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     case Sandbox::kHardwareVideoEncoding:
+       return switches::kHardwareVideoEncodingSandbox;
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -322,7 +322,7 @@ std::string StringFromUtilitySandboxType
+ #if BUILDFLAG(IS_MAC)
+     case Sandbox::kNaClLoader:
+ #endif  // BUILDFLAG(IS_MAC)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     case Sandbox::kZygoteIntermediateSandbox:
+ #endif
+       NOTREACHED_IN_MIGRATION();
+@@ -394,11 +394,11 @@ sandbox::mojom::Sandbox UtilitySandboxTy
+   if (sandbox_string == switches::kScreenAISandbox)
+     return Sandbox::kScreenAI;
+ #endif
+-#if BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   if (sandbox_string == switches::kVideoCaptureSandbox)
+     return Sandbox::kVideoCapture;
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   if (sandbox_string == switches::kHardwareVideoDecodingSandbox)
+     return Sandbox::kHardwareVideoDecoding;
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chromium/patches/patch-sandbox_policy_switches.cc b/chromium/patches/patch-sandbox_policy_switches.cc
new file mode 100644
index 0000000000..91ad4058f6
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_switches.cc
@@ -0,0 +1,32 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/switches.cc.orig	2024-07-24 02:44:43.565452600 +0000
++++ sandbox/policy/switches.cc
+@@ -54,10 +54,10 @@ const char kWindowsSystemProxyResolverSa
+ const char kMirroringSandbox[] = "mirroring";
+ #endif  // BUILDFLAG(IS_MAC)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ const char kHardwareVideoDecodingSandbox[] = "hardware_video_decoding";
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ const char kHardwareVideoEncodingSandbox[] = "hardware_video_encoding";
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+@@ -97,7 +97,9 @@ const char kGpuSandboxFailuresFatal[] = 
+ // Meant to be used as a browser-level switch for testing purposes only.
+ const char kNoSandbox[] = "no-sandbox";
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++const char kDisableUnveil[] = "disable-unveil";
++
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Instructs the zygote to launch without a sandbox. Processes forked from this
+ // type of zygote will apply their own custom sandboxes later.
+ const char kNoZygoteSandbox[] = "no-zygote-sandbox";
diff --git a/chromium/patches/patch-sandbox_policy_switches.h b/chromium/patches/patch-sandbox_policy_switches.h
new file mode 100644
index 0000000000..ba87ea6bfb
--- /dev/null
+++ b/chromium/patches/patch-sandbox_policy_switches.h
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- sandbox/policy/switches.h.orig	2024-07-24 02:44:43.565452600 +0000
++++ sandbox/policy/switches.h
+@@ -57,10 +57,10 @@ SANDBOX_POLICY_EXPORT extern const char 
+ SANDBOX_POLICY_EXPORT extern const char kMirroringSandbox[];
+ #endif  // BUILDFLAG(IS_MAC)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ SANDBOX_POLICY_EXPORT extern const char kHardwareVideoDecodingSandbox[];
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ SANDBOX_POLICY_EXPORT extern const char kHardwareVideoEncodingSandbox[];
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ 
+@@ -82,7 +82,8 @@ SANDBOX_POLICY_EXPORT extern const char 
+ SANDBOX_POLICY_EXPORT extern const char kGpuSandboxAllowSysVShm[];
+ SANDBOX_POLICY_EXPORT extern const char kGpuSandboxFailuresFatal[];
+ SANDBOX_POLICY_EXPORT extern const char kNoSandbox[];
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++SANDBOX_POLICY_EXPORT extern const char kDisableUnveil[];
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ SANDBOX_POLICY_EXPORT extern const char kNoZygoteSandbox[];
+ #endif
+ #if BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-services_audio_BUILD.gn b/chromium/patches/patch-services_audio_BUILD.gn
deleted file mode 100644
index d0d0734a68..0000000000
--- a/chromium/patches/patch-services_audio_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/audio/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ services/audio/BUILD.gn
-@@ -74,7 +74,7 @@ source_set("audio") {
-     "//services/service_manager/sandbox",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "audio_sandbox_hook_linux.cc",
-       "audio_sandbox_hook_linux.h",
diff --git a/chromium/patches/patch-services_audio_audio__sandbox__hook__linux.cc b/chromium/patches/patch-services_audio_audio__sandbox__hook__linux.cc
new file mode 100644
index 0000000000..16ec98b696
--- /dev/null
+++ b/chromium/patches/patch-services_audio_audio__sandbox__hook__linux.cc
@@ -0,0 +1,37 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/audio/audio_sandbox_hook_linux.cc.orig	2024-07-24 02:44:43.597455700 +0000
++++ services/audio/audio_sandbox_hook_linux.cc
+@@ -143,6 +143,7 @@ void AddPulseAudioFilePermissions(
+ }
+ #endif
+ 
++#if !BUILDFLAG(IS_BSD)
+ std::vector<BrokerFilePermission> GetAudioFilePermissions() {
+   std::vector<BrokerFilePermission> permissions{
+       BrokerFilePermission::ReadOnly("/dev/urandom"),
+@@ -171,10 +172,12 @@ void LoadAudioLibraries() {
+     }
+   }
+ }
++#endif
+ 
+ }  // namespace
+ 
+ bool AudioPreSandboxHook(sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+   LoadAudioLibraries();
+   auto* instance = sandbox::policy::SandboxLinux::GetInstance();
+   instance->StartBrokerProcess(MakeBrokerCommandSet({
+@@ -192,6 +195,7 @@ bool AudioPreSandboxHook(sandbox::policy
+   // TODO(crbug.com/40579955) enable namespace sandbox. Currently, if
+   // enabled, connect() on pulse native socket fails with ENOENT (called from
+   // pa_context_connect).
++#endif
+ 
+   return true;
+ }
diff --git a/chromium/patches/patch-services_audio_audio__sandbox__hook__linux.h b/chromium/patches/patch-services_audio_audio__sandbox__hook__linux.h
new file mode 100644
index 0000000000..6440ffae92
--- /dev/null
+++ b/chromium/patches/patch-services_audio_audio__sandbox__hook__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/audio/audio_sandbox_hook_linux.h.orig	2024-07-24 02:44:43.597455700 +0000
++++ services/audio/audio_sandbox_hook_linux.h
+@@ -5,7 +5,13 @@
+ #ifndef SERVICES_AUDIO_AUDIO_SANDBOX_HOOK_LINUX_H_
+ #define SERVICES_AUDIO_AUDIO_SANDBOX_HOOK_LINUX_H_
+ 
++#include "build/build_config.h"
++
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ 
+ namespace audio {
+ 
diff --git a/chromium/patches/patch-services_device_BUILD.gn b/chromium/patches/patch-services_device_BUILD.gn
index 0cade2b970..235890ab9f 100644
--- a/chromium/patches/patch-services_device_BUILD.gn
+++ b/chromium/patches/patch-services_device_BUILD.gn
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- services/device/BUILD.gn.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/BUILD.gn.orig	2024-07-24 02:44:43.621458000 +0000
 +++ services/device/BUILD.gn
-@@ -8,7 +8,7 @@ if (is_android) {
-   import("//build/config/android/rules.gni")
+@@ -14,7 +14,7 @@ if (is_android) {
  }
  
--is_serial_enabled_platform = is_win || (is_linux && use_udev) || is_mac
-+is_serial_enabled_platform = is_win || ((is_linux || is_bsd) && use_udev) || is_mac
+ is_serial_enabled_platform =
+-    is_win || ((is_linux || is_chromeos) && use_udev) || is_mac
++    is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac
  
  source_set("lib") {
    # This should be visible only to embedders of the Device Service, and the
-@@ -92,7 +92,7 @@ component("binder_overrides") {
-   defines = [ "IS_DEVICE_SERVICE_BINDER_OVERRIDES_IMPL" ]
- }
- 
--is_linux_without_udev = is_linux && !use_udev
-+is_linux_without_udev = (is_linux || is_bsd) && !use_udev
- 
- source_set("perftests") {
-   testonly = true
diff --git a/chromium/patches/patch-services_device_battery_BUILD.gn b/chromium/patches/patch-services_device_battery_BUILD.gn
deleted file mode 100644
index 7fb47bdd61..0000000000
--- a/chromium/patches/patch-services_device_battery_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/device/battery/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ services/device/battery/BUILD.gn
-@@ -49,7 +49,7 @@ if (!is_android) {
-       ]
-     }
- 
--    if (is_linux && !is_chromeos) {
-+    if ((is_linux || is_bsd) && !is_chromeos) {
-       if (use_dbus) {
-         configs += [ "//build/config/linux/dbus" ]
-         deps += [ "//dbus" ]
diff --git a/chromium/patches/patch-services_device_geolocation_BUILD.gn b/chromium/patches/patch-services_device_geolocation_BUILD.gn
deleted file mode 100644
index a5ff59f42a..0000000000
--- a/chromium/patches/patch-services_device_geolocation_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/device/geolocation/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ services/device/geolocation/BUILD.gn
-@@ -98,7 +98,7 @@ source_set("geolocation") {
-   if (is_chromeos || (is_linux && !use_dbus)) {
-     sources -= [ "wifi_data_provider_linux.cc" ]
-   }
--  if (is_linux && use_dbus) {
-+  if ((is_linux || is_bsd) && use_dbus) {
-     sources -= [ "empty_wifi_data_provider.cc" ]
-     deps += [ "//dbus" ]
-   }
diff --git a/chromium/patches/patch-services_device_geolocation_location__arbitrator.cc b/chromium/patches/patch-services_device_geolocation_location__arbitrator.cc
deleted file mode 100644
index 619bcee461..0000000000
--- a/chromium/patches/patch-services_device_geolocation_location__arbitrator.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/device/geolocation/location_arbitrator.cc.orig	2020-07-15 18:56:01.000000000 +0000
-+++ services/device/geolocation/location_arbitrator.cc
-@@ -156,7 +156,7 @@ LocationArbitrator::NewNetworkLocationPr
- 
- std::unique_ptr<LocationProvider>
- LocationArbitrator::NewSystemLocationProvider() {
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
-   return nullptr;
- #else
-   return device::NewSystemLocationProvider();
diff --git a/chromium/patches/patch-services_device_hid_BUILD.gn b/chromium/patches/patch-services_device_hid_BUILD.gn
index 0bce1459e8..bccbaf1d8d 100644
--- a/chromium/patches/patch-services_device_hid_BUILD.gn
+++ b/chromium/patches/patch-services_device_hid_BUILD.gn
@@ -1,16 +1,27 @@
 $NetBSD$
 
---- services/device/hid/BUILD.gn.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/BUILD.gn.orig	2024-07-24 02:44:43.649460800 +0000
 +++ services/device/hid/BUILD.gn
-@@ -51,6 +51,26 @@ source_set("hid") {
-     deps += [ "//device/udev_linux" ]
-   }
+@@ -36,7 +36,35 @@ source_set("hid") {
+     "//services/device/public/mojom",
+   ]
  
-+  if (is_freebsd) {
-+    sources -= [
-+      "hid_connection_linux.cc",
-+      "hid_connection_linux.h",
+-  if ((is_linux || is_chromeos) && use_udev) {
++  if (is_openbsd) {
++    sources += [
++      "hid_connection_fido.cc",
++      "hid_connection_fido.h",
++      "hid_service_fido.cc",
++      "hid_service_fido.h",
 +    ]
++    libs = ["fido2", "cbor", "usbhid", "crypto", "util"]
++  }
++
++  if (is_freebsd) {
 +    sources += [
 +      "hid_connection_freebsd.cc",
 +      "hid_connection_freebsd.h",
@@ -19,13 +30,16 @@ $NetBSD$
 +    ]
 +  }
 +
-+  if (is_netbsd) {
-+    sources -= [
-+      "hid_connection_linux.cc",
-+      "hid_connection_linux.h",
-+    ]
-+  }
++#  if (is_netbsd) {
++#    sources += [
++#      "hid_connection_netbsd.cc",
++#      "hid_connection_netbsd.h",
++#      "hid_service_netbsd.cc",
++#      "hid_service_netbsd.h",
++#    ]
++#  }
 +
-   if (is_chromeos) {
-     deps += [ "//chromeos/dbus/permission_broker" ]
-   }
++  if ((is_linux || is_chromeos) && !is_bsd && use_udev) {
+     sources += [
+       "hid_connection_linux.cc",
+       "hid_connection_linux.h",
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__fido.cc b/chromium/patches/patch-services_device_hid_hid__connection__fido.cc
new file mode 100644
index 0000000000..aff9fae79b
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__connection__fido.cc
@@ -0,0 +1,225 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_connection_fido.cc.orig	2024-08-01 14:09:00.320974628 +0000
++++ services/device/hid/hid_connection_fido.cc
+@@ -0,0 +1,216 @@
++// Copyright 2014 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "services/device/hid/hid_connection_fido.h"
++
++#include <errno.h>
++#include <sys/ioctl.h>
++
++#include <memory>
++#include <string>
++#include <utility>
++
++#include "base/files/file_descriptor_watcher_posix.h"
++#include "base/memory/ref_counted_memory.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/hid/hid_service.h"
++
++namespace device {
++
++class HidConnectionFido::BlockingTaskRunnerHelper {
++ public:
++  BlockingTaskRunnerHelper(base::ScopedFD fd,
++                           scoped_refptr<HidDeviceInfo> device_info,
++                           base::WeakPtr<HidConnectionFido> connection)
++      : fd_(std::move(fd)),
++        connection_(connection),
++        origin_task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++    DETACH_FROM_SEQUENCE(sequence_checker_);
++    // Report buffers must always have room for the report ID.
++    report_buffer_size_ = device_info->max_input_report_size() + 1;
++    has_report_id_ = device_info->has_report_id();
++  }
++
++  BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++  BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++  ~BlockingTaskRunnerHelper() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++  }
++
++  // Starts the FileDescriptorWatcher that reads input events from the device.
++  // Must be called on a thread that has a base::MessageLoopForIO.
++  void Start() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++    file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
++        fd_.get(), base::BindRepeating(
++                       &BlockingTaskRunnerHelper::OnFileCanReadWithoutBlocking,
++                       base::Unretained(this)));
++  }
++
++  void Write(scoped_refptr<base::RefCountedBytes> buffer,
++             WriteCallback callback) {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++
++    auto data = buffer->data();
++    size_t size = buffer->size();
++    // if report id is 0, it shouldn't be included
++    if (data[0] == 0) {
++      data++;
++      size--;
++    }
++
++    ssize_t result =
++        HANDLE_EINTR(write(fd_.get(), data, size));
++    if (result < 0) {
++      HID_PLOG(EVENT) << "Write failed";
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), false));
++    } else {
++      if (static_cast<size_t>(result) != size) {
++        HID_LOG(EVENT) << "Incomplete HID write: " << result
++                       << " != " << buffer->size();
++      }
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), true));
++    }
++  }
++
++  void GetFeatureReport(uint8_t report_id,
++                        scoped_refptr<base::RefCountedBytes> buffer,
++                        ReadCallback callback) {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++    HID_PLOG(EVENT) << "GendFeatureReport not implemented on OpenBSD";
++    origin_task_runner_->PostTask(
++        FROM_HERE, base::BindOnce(std::move(callback), false, nullptr, 0));
++  }
++
++  void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++                         WriteCallback callback) {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++    HID_PLOG(EVENT) << "SendFeatureReport not implemented on OpenBSD";
++    origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), false));
++  }
++
++ private:
++  void OnFileCanReadWithoutBlocking() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++    auto buffer =
++        base::MakeRefCounted<base::RefCountedBytes>(report_buffer_size_);
++    uint8_t* data = buffer->as_vector().data();
++    size_t length = report_buffer_size_;
++    if (!has_report_id_) {
++      // Fido will not prefix the buffer with a report ID if report IDs are not
++      // used by the device. Prefix the buffer with 0.
++      *data++ = 0;
++      length--;
++    }
++
++    ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length));
++    if (bytes_read < 0) {
++      if (errno != EAGAIN) {
++        HID_PLOG(EVENT) << "Read failed";
++        // This assumes that the error is unrecoverable and disables reading
++        // from the device until it has been re-opened.
++        // TODO(reillyg): Investigate starting and stopping the file descriptor
++        // watcher in response to pending read requests so that per-request
++        // errors can be returned to the client.
++        file_watcher_.reset();
++      }
++      return;
++    }
++    if (!has_report_id_) {
++      // Behave as if the byte prefixed above as the the report ID was read.
++      bytes_read++;
++    }
++
++    origin_task_runner_->PostTask(
++        FROM_HERE, base::BindOnce(&HidConnectionFido::ProcessInputReport,
++                                  connection_, buffer, bytes_read));
++  }
++
++  SEQUENCE_CHECKER(sequence_checker_);
++  base::ScopedFD fd_;
++  size_t report_buffer_size_;
++  bool has_report_id_;
++  base::WeakPtr<HidConnectionFido> connection_;
++  const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_;
++  std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
++};
++
++HidConnectionFido::HidConnectionFido(
++    scoped_refptr<HidDeviceInfo> device_info,
++    base::ScopedFD fd,
++    scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++    bool allow_protected_reports,
++    bool allow_fido_reports)
++    : HidConnection(device_info, allow_protected_reports, allow_fido_reports),
++      helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner)),
++      blocking_task_runner_(std::move(blocking_task_runner)) {
++  helper_.reset(new BlockingTaskRunnerHelper(std::move(fd), device_info,
++                                             weak_factory_.GetWeakPtr()));
++  blocking_task_runner_->PostTask(
++      FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start,
++                                base::Unretained(helper_.get())));
++}
++
++HidConnectionFido::~HidConnectionFido() {}
++
++void HidConnectionFido::PlatformClose() {
++  // By closing the device on the blocking task runner 1) the requirement that
++  // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied
++  // and 2) any tasks posted to this task runner that refer to this file will
++  // complete before it is closed.
++  helper_.reset();
++}
++
++void HidConnectionFido::PlatformWrite(
++    scoped_refptr<base::RefCountedBytes> buffer,
++    WriteCallback callback) {
++  // Fido expects the first byte of the buffer to always be a report ID so the
++  // buffer can be used directly.
++  blocking_task_runner_->PostTask(
++      FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Write,
++                                base::Unretained(helper_.get()), buffer,
++                                std::move(callback)));
++}
++
++void HidConnectionFido::PlatformGetFeatureReport(uint8_t report_id,
++                                                  ReadCallback callback) {
++  // The first byte of the destination buffer is the report ID being requested
++  // and is overwritten by the feature report.
++  DCHECK_GT(device_info()->max_feature_report_size(), 0u);
++  auto buffer = base::MakeRefCounted<base::RefCountedBytes>(
++      device_info()->max_feature_report_size() + 1);
++  buffer->as_vector().data()[0] = report_id;
++
++  blocking_task_runner_->PostTask(
++      FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::GetFeatureReport,
++                                base::Unretained(helper_.get()), report_id,
++                                buffer, std::move(callback)));
++}
++
++void HidConnectionFido::PlatformSendFeatureReport(
++    scoped_refptr<base::RefCountedBytes> buffer,
++    WriteCallback callback) {
++  // Fido expects the first byte of the buffer to always be a report ID so the
++  // buffer can be used directly.
++  blocking_task_runner_->PostTask(
++      FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::SendFeatureReport,
++                                base::Unretained(helper_.get()), buffer,
++                                std::move(callback)));
++}
++
++}  // namespace device
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__fido.h b/chromium/patches/patch-services_device_hid_hid__connection__fido.h
new file mode 100644
index 0000000000..d70c71e227
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__connection__fido.h
@@ -0,0 +1,69 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_connection_fido.h.orig	2024-08-01 14:09:00.324055191 +0000
++++ services/device/hid/hid_connection_fido.h
+@@ -0,0 +1,60 @@
++// Copyright 2014 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef SERVICES_DEVICE_HID_HID_CONNECTION_LINUX_H_
++#define SERVICES_DEVICE_HID_HID_CONNECTION_LINUX_H_
++
++#include <stddef.h>
++#include <stdint.h>
++
++#include "base/files/scoped_file.h"
++#include "base/memory/weak_ptr.h"
++#include "base/task/sequenced_task_runner.h"
++#include "services/device/hid/hid_connection.h"
++
++namespace base {
++class SequencedTaskRunner;
++}
++
++namespace device {
++
++class HidConnectionFido : public HidConnection {
++ public:
++  HidConnectionFido(
++      scoped_refptr<HidDeviceInfo> device_info,
++      base::ScopedFD fd,
++      scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++      bool allow_protected_reports,
++      bool allow_fido_reports);
++  HidConnectionFido(HidConnectionFido&) = delete;
++  HidConnectionFido& operator=(HidConnectionFido&) = delete;
++
++ private:
++  friend class base::RefCountedThreadSafe<HidConnectionFido>;
++  class BlockingTaskRunnerHelper;
++
++  ~HidConnectionFido() override;
++
++  // HidConnection implementation.
++  void PlatformClose() override;
++  void PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
++                     WriteCallback callback) override;
++  void PlatformGetFeatureReport(uint8_t report_id,
++                                ReadCallback callback) override;
++  void PlatformSendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++                                 WriteCallback callback) override;
++
++  // |helper_| lives on the sequence to which |blocking_task_runner_| posts
++  // tasks so all calls must be posted there including this object's
++  // destruction.
++  std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++
++  const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
++
++  base::WeakPtrFactory<HidConnectionFido> weak_factory_{this};
++};
++
++}  // namespace device
++
++#endif  // SERVICES_DEVICE_HID_HID_CONNECTION_LINUX_H_
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__freebsd.cc b/chromium/patches/patch-services_device_hid_hid__connection__freebsd.cc
new file mode 100644
index 0000000000..506d7d7cfb
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__connection__freebsd.cc
@@ -0,0 +1,249 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_connection_freebsd.cc.orig	2024-08-01 14:09:00.326470306 +0000
++++ services/device/hid/hid_connection_freebsd.cc
+@@ -0,0 +1,240 @@
++// 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 "services/device/hid/hid_connection_freebsd.h"
++
++#include <dev/usb/usbhid.h>
++#include <dev/usb/usb_ioctl.h>
++
++#include "base/files/file_descriptor_watcher_posix.h"
++#include "base/location.h"
++#include "base/numerics/safe_math.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/stringprintf.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "base/threading/thread_restrictions.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/hid/hid_service.h"
++
++namespace device {
++
++class HidConnectionFreeBSD::BlockingTaskRunnerHelper {
++ public:
++  BlockingTaskRunnerHelper(base::ScopedFD fd,
++                     scoped_refptr<HidDeviceInfo> device_info,
++                     base::WeakPtr<HidConnectionFreeBSD> connection)
++      : fd_(std::move(fd)),
++        connection_(connection),
++	origin_task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++    DETACH_FROM_SEQUENCE(sequence_checker_);
++    // Report buffers must always have room for the report ID.
++    report_buffer_size_ = device_info->max_input_report_size() + 1;
++    has_report_id_ = device_info->has_report_id();
++  }
++
++  BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++  BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++  ~BlockingTaskRunnerHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); }
++
++  // Starts the FileDescriptorWatcher that reads input events from the device.
++  // Must be called on a thread that has a base::MessageLoopForIO.
++  void Start() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::internal::AssertBlockingAllowed();
++
++    file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
++        fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnFileCanReadWithoutBlocking,
++                                       base::Unretained(this)));
++  }
++
++  void Write(scoped_refptr<base::RefCountedBytes> buffer,
++             WriteCallback callback) {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++
++    auto data = buffer->as_vector().data();
++    size_t size = buffer->size();
++    // if report id is 0, it shouldn't be included
++    if (data[0] == 0) {
++      data++;
++      size--;
++    }
++
++    ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size));
++    if (result < 0) {
++      HID_PLOG(EVENT) << "Write failed";
++      origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false));
++    } else {
++      if (static_cast<size_t>(result) != size)
++        HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size;
++      origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true));
++    }
++  }
++
++  void GetFeatureReport(uint8_t report_id,
++                        scoped_refptr<base::RefCountedBytes> buffer,
++                        ReadCallback callback) {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++    struct usb_gen_descriptor ugd;
++    ugd.ugd_report_type = UHID_FEATURE_REPORT;
++    ugd.ugd_data = buffer->data();
++    ugd.ugd_maxlen = buffer->size();
++    int result = HANDLE_EINTR(
++        ioctl(fd_.get(), USB_GET_REPORT, &ugd));
++    if (result < 0) {
++      HID_PLOG(EVENT) << "Failed to get feature report";
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), false, nullptr, 0));
++    } else if (result == 0) {
++      HID_LOG(EVENT) << "Get feature result too short.";
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), false, nullptr, 0));
++    } else {
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), true, buffer, result));
++    }
++  }
++
++  void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++                         WriteCallback callback) {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    struct usb_gen_descriptor ugd;
++    ugd.ugd_report_type = UHID_FEATURE_REPORT;
++    ugd.ugd_data = buffer->data();
++    ugd.ugd_maxlen = buffer->size();
++    // FreeBSD does not require report id if it's not used
++    if (buffer->data()[0] == 0) {
++      ugd.ugd_data = buffer->data() + 1;
++      ugd.ugd_maxlen = buffer->size() - 1;
++    } else {
++      ugd.ugd_data = buffer->data();
++      ugd.ugd_maxlen = buffer->size();
++    }
++    int result = HANDLE_EINTR(
++        ioctl(fd_.get(), USB_SET_REPORT, &ugd));
++    if (result < 0) {
++      HID_PLOG(EVENT) << "Failed to send feature report";
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), false));
++    } else {
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), true));
++    }
++  }
++
++ private:
++  void OnFileCanReadWithoutBlocking() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++    scoped_refptr<base::RefCountedBytes> buffer(new base::RefCountedBytes(report_buffer_size_));
++    unsigned char* data = buffer->data();
++    size_t length = report_buffer_size_;
++    if (!has_report_id_) {
++      // FreeBSD will not prefix the buffer with a report ID if report IDs are not
++      // used by the device. Prefix the buffer with 0.
++      *data++ = 0;
++      length--;
++    }
++
++    ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length));
++    if (bytes_read < 0) {
++      if (errno != EAGAIN) {
++        HID_PLOG(EVENT) << "Read failed";
++        // This assumes that the error is unrecoverable and disables reading
++        // from the device until it has been re-opened.
++        // TODO(reillyg): Investigate starting and stopping the file descriptor
++        // watcher in response to pending read requests so that per-request
++        // errors can be returned to the client.
++        file_watcher_.reset();
++      }
++      return;
++    }
++    if (!has_report_id_) {
++      // Behave as if the byte prefixed above as the the report ID was read.
++      bytes_read++;
++    }
++
++    origin_task_runner_->PostTask(
++        FROM_HERE, base::BindOnce(&HidConnectionFreeBSD::ProcessInputReport,
++                              connection_, buffer, bytes_read));
++  }
++
++  SEQUENCE_CHECKER(sequence_checker_);
++  base::ScopedFD fd_;
++  size_t report_buffer_size_;
++  bool has_report_id_;
++  base::WeakPtr<HidConnectionFreeBSD> connection_;
++  const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_;
++  std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
++};
++
++HidConnectionFreeBSD::HidConnectionFreeBSD(
++    scoped_refptr<HidDeviceInfo> device_info,
++    base::ScopedFD fd,
++    scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++    bool allow_protected_reports,
++    bool allow_fido_reports)
++    : HidConnection(device_info, allow_protected_reports, allow_fido_reports),
++      helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner)),
++      blocking_task_runner_(std::move(blocking_task_runner)) {
++  helper_.reset(new BlockingTaskRunnerHelper(std::move(fd), device_info,
++                                                 weak_factory_.GetWeakPtr()));
++  blocking_task_runner_->PostTask(
++      FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start,
++                                base::Unretained(helper_.get())));
++}
++
++HidConnectionFreeBSD::~HidConnectionFreeBSD() {}
++
++void HidConnectionFreeBSD::PlatformClose() {
++  // By closing the device on the blocking task runner 1) the requirement that
++  // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied
++  // and 2) any tasks posted to this task runner that refer to this file will
++  // complete before it is closed.
++  blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release());
++}
++
++void HidConnectionFreeBSD::PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
++                                     WriteCallback callback) {
++
++  blocking_task_runner_->PostTask(
++      FROM_HERE,
++      base::BindOnce(&BlockingTaskRunnerHelper::Write, base::Unretained(helper_.get()),
++                 buffer, std::move(callback)));
++}
++
++void HidConnectionFreeBSD::PlatformGetFeatureReport(uint8_t report_id,
++                                                ReadCallback callback) {
++  // The first byte of the destination buffer is the report ID being requested
++  // and is overwritten by the feature report.
++  DCHECK_GT(device_info()->max_feature_report_size(), 0u);
++  scoped_refptr<base::RefCountedBytes> buffer(
++      new base::RefCountedBytes(device_info()->max_feature_report_size() + 1));
++  if (report_id != 0)
++    buffer->data()[0] = report_id;
++
++  blocking_task_runner_->PostTask(
++      FROM_HERE,
++      base::BindOnce(&BlockingTaskRunnerHelper::GetFeatureReport,
++                 base::Unretained(helper_.get()), report_id,
++                 buffer, std::move(callback)));
++}
++
++void HidConnectionFreeBSD::PlatformSendFeatureReport(
++    scoped_refptr<base::RefCountedBytes> buffer,
++    WriteCallback callback) {
++  base::ScopedBlockingCall scoped_blocking_call(
++      FROM_HERE, base::BlockingType::MAY_BLOCK);
++  blocking_task_runner_->PostTask(
++      FROM_HERE,
++      base::BindOnce(&BlockingTaskRunnerHelper::SendFeatureReport,
++                 base::Unretained(helper_.get()), buffer, std::move(callback)));
++}
++
++}  // namespace device
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__freebsd.h b/chromium/patches/patch-services_device_hid_hid__connection__freebsd.h
new file mode 100644
index 0000000000..a903f3da82
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__connection__freebsd.h
@@ -0,0 +1,76 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_connection_freebsd.h.orig	2024-08-01 14:09:00.334342545 +0000
++++ services/device/hid/hid_connection_freebsd.h
+@@ -0,0 +1,67 @@
++// 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 DEVICE_HID_HID_CONNECTION_FREEBSD_H_
++#define DEVICE_HID_HID_CONNECTION_FREEBSD_H_
++
++#include <stddef.h>
++#include <stdint.h>
++
++#include "base/files/scoped_file.h"
++#include "base/memory/weak_ptr.h"
++#include "base/memory/ref_counted_memory.h"
++#include "base/task/sequenced_task_runner.h"
++#include "services/device/hid/hid_connection.h"
++
++namespace base {
++class SequencedTaskRunner;
++}
++
++namespace net {
++class IOBuffer;
++}
++
++namespace device {
++
++class HidConnectionFreeBSD : public HidConnection {
++ public:
++  HidConnectionFreeBSD(
++      scoped_refptr<HidDeviceInfo> device_info,
++      base::ScopedFD fd,
++      scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++      bool allow_protected_reports,
++      bool allow_fido_reports);
++
++ private:
++  friend class base::RefCountedThreadSafe<HidConnectionFreeBSD>;
++  class BlockingTaskRunnerHelper;
++
++  HidConnectionFreeBSD(const HidConnectionFreeBSD&) = delete;
++  HidConnectionFreeBSD& operator=(const HidConnectionFreeBSD&) = delete;
++
++  ~HidConnectionFreeBSD() override;
++
++  // HidConnection implementation.
++  void PlatformClose() override;
++  void PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
++                     WriteCallback callback) override;
++  void PlatformGetFeatureReport(uint8_t report_id,
++                                ReadCallback callback) override;
++  void PlatformSendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++                                 WriteCallback callback) override;
++
++  // |helper_| lives on the sequence to which |blocking_task_runner_| posts
++  // tasks so all calls must be posted there including this object's
++  // destruction.
++  std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++
++  const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
++  const scoped_refptr<base::SequencedTaskRunner> task_runner_;
++
++  base::WeakPtrFactory<HidConnectionFreeBSD> weak_factory_{this};
++};
++
++}  // namespace device
++
++#endif  // DEVICE_HID_HID_CONNECTION_FREEBSD_H_
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__netbsd.c b/chromium/patches/patch-services_device_hid_hid__connection__netbsd.c
deleted file mode 100644
index ccf9fcfc16..0000000000
--- a/chromium/patches/patch-services_device_hid_hid__connection__netbsd.c
+++ /dev/null
@@ -1,245 +0,0 @@
-$NetBSD$
-
---- services/device/hid/hid_connection_netbsd.cc.orig	2020-07-23 00:19:17.901829453 +0000
-+++ services/device/hid/hid_connection_netbsd.cc
-@@ -0,0 +1,240 @@
-+// 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 "services/device/hid/hid_connection_netbsd.h"
-+
-+#include <dev/usb/usbhid.h>
-+#include <dev/usb/usb_ioctl.h>
-+
-+#include "base/bind.h"
-+#include "base/files/file_descriptor_watcher_posix.h"
-+#include "base/location.h"
-+#include "base/numerics/safe_math.h"
-+#include "base/posix/eintr_wrapper.h"
-+#include "base/single_thread_task_runner.h"
-+#include "base/strings/stringprintf.h"
-+#include "base/task/post_task.h"
-+#include "base/threading/scoped_blocking_call.h"
-+#include "base/threading/thread_restrictions.h"
-+#include "base/threading/thread_task_runner_handle.h"
-+#include "components/device_event_log/device_event_log.h"
-+#include "services/device/hid/hid_service.h"
-+
-+namespace device {
-+
-+class HidConnectionNetBSD::BlockingTaskHelper {
-+ public:
-+  BlockingTaskHelper(base::ScopedFD fd,
-+                     scoped_refptr<HidDeviceInfo> device_info,
-+                     base::WeakPtr<HidConnectionNetBSD> connection)
-+      : fd_(std::move(fd)),
-+        connection_(connection),
-+        origin_task_runner_(base::ThreadTaskRunnerHandle::Get()) {
-+    DETACH_FROM_SEQUENCE(sequence_checker_);
-+    // Report buffers must always have room for the report ID.
-+    report_buffer_size_ = device_info->max_input_report_size() + 1;
-+    has_report_id_ = device_info->has_report_id();
-+  }
-+
-+  ~BlockingTaskHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); }
-+
-+  // Starts the FileDescriptorWatcher that reads input events from the device.
-+  // Must be called on a thread that has a base::MessageLoopForIO.
-+  void Start() {
-+    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-+    base::internal::AssertBlockingAllowed();
-+
-+    file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
-+        fd_.get(), base::Bind(&BlockingTaskHelper::OnFileCanReadWithoutBlocking,
-+                              base::Unretained(this)));
-+  }
-+
-+  void Write(scoped_refptr<base::RefCountedBytes> buffer,
-+             WriteCallback callback) {
-+    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-+    base::ScopedBlockingCall scoped_blocking_call(
-+        FROM_HERE, base::BlockingType::MAY_BLOCK);
-+
-+    auto data = buffer->front();
-+    size_t size = buffer->size();
-+    // if report id is 0, it shouldn't be included
-+    if (data[0] == 0) {
-+      data++;
-+      size--;
-+    }
-+
-+    ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size));
-+    if (result < 0) {
-+      HID_PLOG(EVENT) << "Write failed";
-+      origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false));
-+    } else {
-+      if (static_cast<size_t>(result) != size)
-+        HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size;
-+      origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true));
-+    }
-+  }
-+
-+  void GetFeatureReport(uint8_t report_id,
-+                        scoped_refptr<base::RefCountedBytes> buffer,
-+                        ReadCallback callback) {
-+    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-+    base::ScopedBlockingCall scoped_blocking_call(
-+        FROM_HERE, base::BlockingType::MAY_BLOCK);
-+    struct usb_gen_descriptor ugd;
-+    ugd.ugd_report_type = UHID_FEATURE_REPORT;
-+    ugd.ugd_data = buffer->front();
-+    ugd.ugd_maxlen = buffer->size();
-+    int result = HANDLE_EINTR(
-+        ioctl(fd_.get(), USB_GET_REPORT, &ugd));
-+    if (result < 0) {
-+      HID_PLOG(EVENT) << "Failed to get feature report";
-+      origin_task_runner_->PostTask(FROM_HERE,
-+                                    base::BindOnce(std::move(callback), false, nullptr, 0));
-+    } else if (result == 0) {
-+      HID_LOG(EVENT) << "Get feature result too short.";
-+      origin_task_runner_->PostTask(FROM_HERE,
-+                                    base::BindOnce(std::move(callback), false, nullptr, 0));
-+    } else {
-+      origin_task_runner_->PostTask(FROM_HERE,
-+                                    base::BindOnce(std::move(callback), true, buffer, result));
-+    }
-+  }
-+
-+  void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
-+                         WriteCallback callback) {
-+    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-+    struct usb_gen_descriptor ugd;
-+    ugd.ugd_report_type = UHID_FEATURE_REPORT;
-+    ugd.ugd_data = buffer->front();
-+    ugd.ugd_maxlen = buffer->size();
-+    // NetBSD does not require report id if it's not used
-+    if (buffer->front()[0] == 0) {
-+      ugd.ugd_data = buffer->front() + 1;
-+      ugd.ugd_maxlen = buffer->size() - 1;
-+    } else {
-+      ugd.ugd_data = buffer->front();
-+      ugd.ugd_maxlen = buffer->size();
-+    }
-+    int result = HANDLE_EINTR(
-+        ioctl(fd_.get(), USB_SET_REPORT, &ugd));
-+    if (result < 0) {
-+      HID_PLOG(EVENT) << "Failed to send feature report";
-+      origin_task_runner_->PostTask(FROM_HERE,
-+                                    base::BindOnce(std::move(callback), false));
-+    } else {
-+      origin_task_runner_->PostTask(FROM_HERE,
-+                                    base::BindOnce(std::move(callback), true));
-+    }
-+  }
-+
-+ private:
-+  void OnFileCanReadWithoutBlocking() {
-+    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-+
-+    scoped_refptr<base::RefCountedBytes> buffer(new base::RefCountedBytes(report_buffer_size_));
-+    unsigned char* data = buffer->front();
-+    size_t length = report_buffer_size_;
-+    if (!has_report_id_) {
-+      // NetBSD will not prefix the buffer with a report ID if report IDs are not
-+      // used by the device. Prefix the buffer with 0.
-+      *data++ = 0;
-+      length--;
-+    }
-+
-+    ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length));
-+    if (bytes_read < 0) {
-+      if (errno != EAGAIN) {
-+        HID_PLOG(EVENT) << "Read failed";
-+        // This assumes that the error is unrecoverable and disables reading
-+        // from the device until it has been re-opened.
-+        // TODO(reillyg): Investigate starting and stopping the file descriptor
-+        // watcher in response to pending read requests so that per-request
-+        // errors can be returned to the client.
-+        file_watcher_.reset();
-+      }
-+      return;
-+    }
-+    if (!has_report_id_) {
-+      // Behave as if the byte prefixed above as the the report ID was read.
-+      bytes_read++;
-+    }
-+
-+    origin_task_runner_->PostTask(
-+        FROM_HERE, base::BindOnce(&HidConnectionNetBSD::ProcessInputReport,
-+                              connection_, buffer, bytes_read));
-+  }
-+
-+  SEQUENCE_CHECKER(sequence_checker_);
-+  base::ScopedFD fd_;
-+  size_t report_buffer_size_;
-+  bool has_report_id_;
-+  base::WeakPtr<HidConnectionNetBSD> connection_;
-+  const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_;
-+  std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
-+
-+  DISALLOW_COPY_AND_ASSIGN(BlockingTaskHelper);
-+};
-+
-+HidConnectionNetBSD::HidConnectionNetBSD(
-+    scoped_refptr<HidDeviceInfo> device_info,
-+    base::ScopedFD fd,
-+    scoped_refptr<base::SequencedTaskRunner> blocking_task_runner)
-+    : HidConnection(device_info),
-+      blocking_task_runner_(std::move(blocking_task_runner)),
-+      weak_factory_(this) {
-+  helper_ = std::make_unique<BlockingTaskHelper>(std::move(fd), device_info,
-+                                                 weak_factory_.GetWeakPtr());
-+  blocking_task_runner_->PostTask(
-+      FROM_HERE, base::BindOnce(&BlockingTaskHelper::Start,
-+                                base::Unretained(helper_.get())));
-+}
-+
-+HidConnectionNetBSD::~HidConnectionNetBSD() {}
-+
-+void HidConnectionNetBSD::PlatformClose() {
-+  // By closing the device on the blocking task runner 1) the requirement that
-+  // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied
-+  // and 2) any tasks posted to this task runner that refer to this file will
-+  // complete before it is closed.
-+  blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release());
-+}
-+
-+void HidConnectionNetBSD::PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
-+                                     WriteCallback callback) {
-+
-+  blocking_task_runner_->PostTask(
-+      FROM_HERE,
-+      base::BindOnce(&BlockingTaskHelper::Write, base::Unretained(helper_.get()),
-+                 buffer, std::move(callback)));
-+}
-+
-+void HidConnectionNetBSD::PlatformGetFeatureReport(uint8_t report_id,
-+                                                ReadCallback callback) {
-+  // The first byte of the destination buffer is the report ID being requested
-+  // and is overwritten by the feature report.
-+  DCHECK_GT(device_info()->max_feature_report_size(), 0u);
-+  scoped_refptr<base::RefCountedBytes> buffer(
-+      new base::RefCountedBytes(device_info()->max_feature_report_size() + 1));
-+  if (report_id != 0)
-+    buffer->data()[0] = report_id;
-+
-+  blocking_task_runner_->PostTask(
-+      FROM_HERE,
-+      base::BindOnce(&BlockingTaskHelper::GetFeatureReport,
-+                 base::Unretained(helper_.get()), report_id,
-+                 buffer, std::move(callback)));
-+}
-+
-+void HidConnectionNetBSD::PlatformSendFeatureReport(
-+    scoped_refptr<base::RefCountedBytes> buffer,
-+    WriteCallback callback) {
-+  base::ScopedBlockingCall scoped_blocking_call(
-+      FROM_HERE, base::BlockingType::MAY_BLOCK);
-+  blocking_task_runner_->PostTask(
-+      FROM_HERE,
-+      base::BindOnce(&BlockingTaskHelper::SendFeatureReport,
-+                 base::Unretained(helper_.get()), buffer, std::move(callback)));
-+}
-+
-+}  // namespace device
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__netbsd.cc b/chromium/patches/patch-services_device_hid_hid__connection__netbsd.cc
new file mode 100644
index 0000000000..224b04f0cf
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__connection__netbsd.cc
@@ -0,0 +1,249 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_connection_netbsd.cc.orig	2024-08-01 14:09:00.336335818 +0000
++++ services/device/hid/hid_connection_netbsd.cc
+@@ -0,0 +1,240 @@
++// 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 "services/device/hid/hid_connection_netbsd.h"
++
++#include <dev/usb/usbhid.h>
++#include <dev/usb/usb_ioctl.h>
++
++#include "base/files/file_descriptor_watcher_posix.h"
++#include "base/location.h"
++#include "base/numerics/safe_math.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/strings/stringprintf.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "base/threading/thread_restrictions.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/hid/hid_service.h"
++
++namespace device {
++
++class HidConnectionNetBSD::BlockingTaskRunnerHelper {
++ public:
++  BlockingTaskRunnerHelper(base::ScopedFD fd,
++                     scoped_refptr<HidDeviceInfo> device_info,
++                     base::WeakPtr<HidConnectionNetBSD> connection)
++      : fd_(std::move(fd)),
++        connection_(connection),
++	origin_task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++    DETACH_FROM_SEQUENCE(sequence_checker_);
++    // Report buffers must always have room for the report ID.
++    report_buffer_size_ = device_info->max_input_report_size() + 1;
++    has_report_id_ = device_info->has_report_id();
++  }
++
++  BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++  BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++  ~BlockingTaskRunnerHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); }
++
++  // Starts the FileDescriptorWatcher that reads input events from the device.
++  // Must be called on a thread that has a base::MessageLoopForIO.
++  void Start() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::internal::AssertBlockingAllowed();
++
++    file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
++        fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnFileCanReadWithoutBlocking,
++                                       base::Unretained(this)));
++  }
++
++  void Write(scoped_refptr<base::RefCountedBytes> buffer,
++             WriteCallback callback) {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++
++    auto data = buffer->as_vector().data();
++    size_t size = buffer->size();
++    // if report id is 0, it shouldn't be included
++    if (data[0] == 0) {
++      data++;
++      size--;
++    }
++
++    ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size));
++    if (result < 0) {
++      HID_PLOG(EVENT) << "Write failed";
++      origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false));
++    } else {
++      if (static_cast<size_t>(result) != size)
++        HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size;
++      origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true));
++    }
++  }
++
++  void GetFeatureReport(uint8_t report_id,
++                        scoped_refptr<base::RefCountedBytes> buffer,
++                        ReadCallback callback) {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++    struct usb_gen_descriptor ugd;
++    ugd.ugd_report_type = UHID_FEATURE_REPORT;
++    ugd.ugd_data = buffer->as_vector().data();
++    ugd.ugd_maxlen = buffer->size();
++    int result = HANDLE_EINTR(
++        ioctl(fd_.get(), USB_GET_REPORT, &ugd));
++    if (result < 0) {
++      HID_PLOG(EVENT) << "Failed to get feature report";
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), false, nullptr, 0));
++    } else if (result == 0) {
++      HID_LOG(EVENT) << "Get feature result too short.";
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), false, nullptr, 0));
++    } else {
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), true, buffer, result));
++    }
++  }
++
++  void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer,
++                         WriteCallback callback) {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    struct usb_gen_descriptor ugd;
++    ugd.ugd_report_type = UHID_FEATURE_REPORT;
++    ugd.ugd_data = buffer->as_vector().data();
++    ugd.ugd_maxlen = buffer->size();
++    // NetBSD does not require report id if it's not used
++    if (buffer->data()[0] == 0) {
++      ugd.ugd_data = buffer->as_vector().data() + 1;
++      ugd.ugd_maxlen = buffer->size() - 1;
++    } else {
++      ugd.ugd_data = buffer->as_vector().data();
++      ugd.ugd_maxlen = buffer->size();
++    }
++    int result = HANDLE_EINTR(
++        ioctl(fd_.get(), USB_SET_REPORT, &ugd));
++    if (result < 0) {
++      HID_PLOG(EVENT) << "Failed to send feature report";
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), false));
++    } else {
++      origin_task_runner_->PostTask(FROM_HERE,
++                                    base::BindOnce(std::move(callback), true));
++    }
++  }
++
++ private:
++  void OnFileCanReadWithoutBlocking() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++    scoped_refptr<base::RefCountedBytes> buffer(new base::RefCountedBytes(report_buffer_size_));
++    unsigned char* data = buffer->as_vector().data();
++    size_t length = report_buffer_size_;
++    if (!has_report_id_) {
++      // NetBSD will not prefix the buffer with a report ID if report IDs are not
++      // used by the device. Prefix the buffer with 0.
++      *data++ = 0;
++      length--;
++    }
++
++    ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length));
++    if (bytes_read < 0) {
++      if (errno != EAGAIN) {
++        HID_PLOG(EVENT) << "Read failed";
++        // This assumes that the error is unrecoverable and disables reading
++        // from the device until it has been re-opened.
++        // TODO(reillyg): Investigate starting and stopping the file descriptor
++        // watcher in response to pending read requests so that per-request
++        // errors can be returned to the client.
++        file_watcher_.reset();
++      }
++      return;
++    }
++    if (!has_report_id_) {
++      // Behave as if the byte prefixed above as the the report ID was read.
++      bytes_read++;
++    }
++
++    origin_task_runner_->PostTask(
++        FROM_HERE, base::BindOnce(&HidConnectionNetBSD::ProcessInputReport,
++                              connection_, buffer, bytes_read));
++  }
++
++  SEQUENCE_CHECKER(sequence_checker_);
++  base::ScopedFD fd_;
++  size_t report_buffer_size_;
++  bool has_report_id_;
++  base::WeakPtr<HidConnectionNetBSD> connection_;
++  const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_;
++  std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
++};
++
++HidConnectionNetBSD::HidConnectionNetBSD(
++    scoped_refptr<HidDeviceInfo> device_info,
++    base::ScopedFD fd,
++    scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++    bool allow_protected_reports,
++    bool allow_fido_reports)
++    : HidConnection(device_info, allow_protected_reports, allow_fido_reports),
++      helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner)),
++      blocking_task_runner_(std::move(blocking_task_runner)) {
++  helper_.reset(new BlockingTaskRunnerHelper(std::move(fd), device_info,
++                                                 weak_factory_.GetWeakPtr()));
++  blocking_task_runner_->PostTask(
++      FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start,
++                                base::Unretained(helper_.get())));
++}
++
++HidConnectionNetBSD::~HidConnectionNetBSD() {}
++
++void HidConnectionNetBSD::PlatformClose() {
++  // By closing the device on the blocking task runner 1) the requirement that
++  // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied
++  // and 2) any tasks posted to this task runner that refer to this file will
++  // complete before it is closed.
++  blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release());
++}
++
++void HidConnectionNetBSD::PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer,
++                                     WriteCallback callback) {
++
++  blocking_task_runner_->PostTask(
++      FROM_HERE,
++      base::BindOnce(&BlockingTaskRunnerHelper::Write, base::Unretained(helper_.get()),
++                 buffer, std::move(callback)));
++}
++
++void HidConnectionNetBSD::PlatformGetFeatureReport(uint8_t report_id,
++                                                ReadCallback callback) {
++  // The first byte of the destination buffer is the report ID being requested
++  // and is overwritten by the feature report.
++  DCHECK_GT(device_info()->max_feature_report_size(), 0u);
++  scoped_refptr<base::RefCountedBytes> buffer(
++      new base::RefCountedBytes(device_info()->max_feature_report_size() + 1));
++  if (report_id != 0)
++    buffer->as_vector().data()[0] = report_id;
++
++  blocking_task_runner_->PostTask(
++      FROM_HERE,
++      base::BindOnce(&BlockingTaskRunnerHelper::GetFeatureReport,
++                 base::Unretained(helper_.get()), report_id,
++                 buffer, std::move(callback)));
++}
++
++void HidConnectionNetBSD::PlatformSendFeatureReport(
++    scoped_refptr<base::RefCountedBytes> buffer,
++    WriteCallback callback) {
++  base::ScopedBlockingCall scoped_blocking_call(
++      FROM_HERE, base::BlockingType::MAY_BLOCK);
++  blocking_task_runner_->PostTask(
++      FROM_HERE,
++      base::BindOnce(&BlockingTaskRunnerHelper::SendFeatureReport,
++                 base::Unretained(helper_.get()), buffer, std::move(callback)));
++}
++
++}  // namespace device
diff --git a/chromium/patches/patch-services_device_hid_hid__connection__netbsd.h b/chromium/patches/patch-services_device_hid_hid__connection__netbsd.h
index 1b20ab8bb7..fe3aae273c 100644
--- a/chromium/patches/patch-services_device_hid_hid__connection__netbsd.h
+++ b/chromium/patches/patch-services_device_hid_hid__connection__netbsd.h
@@ -1,8 +1,12 @@
 $NetBSD$
 
---- services/device/hid/hid_connection_netbsd.h.orig	2020-07-23 00:19:44.670620204 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_connection_netbsd.h.orig	2024-08-01 14:09:00.340300851 +0000
 +++ services/device/hid/hid_connection_netbsd.h
-@@ -0,0 +1,68 @@
+@@ -0,0 +1,67 @@
 +// 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.
@@ -14,11 +18,9 @@ $NetBSD$
 +#include <stdint.h>
 +
 +#include "base/files/scoped_file.h"
-+#include "base/macros.h"
-+#include "base/memory/ptr_util.h"
-+#include "base/memory/ref_counted_memory.h"
 +#include "base/memory/weak_ptr.h"
-+#include "base/sequence_checker.h"
++#include "base/memory/ref_counted_memory.h"
++#include "base/task/sequenced_task_runner.h"
 +#include "services/device/hid/hid_connection.h"
 +
 +namespace base {
@@ -36,11 +38,16 @@ $NetBSD$
 +  HidConnectionNetBSD(
 +      scoped_refptr<HidDeviceInfo> device_info,
 +      base::ScopedFD fd,
-+      scoped_refptr<base::SequencedTaskRunner> blocking_task_runner);
++      scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
++      bool allow_protected_reports,
++      bool allow_fido_reports);
 +
 + private:
 +  friend class base::RefCountedThreadSafe<HidConnectionNetBSD>;
-+  class BlockingTaskHelper;
++  class BlockingTaskRunnerHelper;
++
++  HidConnectionNetBSD(const HidConnectionNetBSD&) = delete;
++  HidConnectionNetBSD& operator=(const HidConnectionNetBSD&) = delete;
 +
 +  ~HidConnectionNetBSD() override;
 +
@@ -56,18 +63,14 @@ $NetBSD$
 +  // |helper_| lives on the sequence to which |blocking_task_runner_| posts
 +  // tasks so all calls must be posted there including this object's
 +  // destruction.
-+  std::unique_ptr<BlockingTaskHelper> helper_;
++  std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
 +
 +  const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
 +  const scoped_refptr<base::SequencedTaskRunner> task_runner_;
 +
-+  SEQUENCE_CHECKER(sequence_checker_);
-+
-+  base::WeakPtrFactory<HidConnectionNetBSD> weak_factory_;
-+
-+  DISALLOW_COPY_AND_ASSIGN(HidConnectionNetBSD);
++  base::WeakPtrFactory<HidConnectionNetBSD> weak_factory_{this};
 +};
 +
 +}  // namespace device
 +
-+#endif  // DEVICE_HID_HID_CONNECTION_NETBSD_H_
++#endif  // DEVICE_HID_HID_CONNECTION_FREEBSD_H_
diff --git a/chromium/patches/patch-services_device_hid_hid__service.cc b/chromium/patches/patch-services_device_hid_hid__service.cc
new file mode 100644
index 0000000000..39921627f2
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__service.cc
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service.cc.orig	2024-07-24 02:44:43.653461000 +0000
++++ services/device/hid/hid_service.cc
+@@ -20,6 +20,10 @@
+ 
+ #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_UDEV)
+ #include "services/device/hid/hid_service_linux.h"
++#elif BUILDFLAG(IS_OPENBSD)
++#include "services/device/hid/hid_service_fido.h"
++#elif BUILDFLAG(IS_FREEBSD)
++#include "services/device/hid/hid_service_freebsd.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include "services/device/hid/hid_service_mac.h"
+ #elif BUILDFLAG(IS_WIN)
+@@ -68,6 +72,10 @@ constexpr base::TaskTraits HidService::k
+ std::unique_ptr<HidService> HidService::Create() {
+ #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_UDEV)
+   return std::make_unique<HidServiceLinux>();
++#elif BUILDFLAG(IS_OPENBSD)
++  return std::make_unique<HidServiceFido>();
++#elif BUILDFLAG(IS_FREEBSD)
++  return std::make_unique<HidServiceFreeBSD>();
+ #elif BUILDFLAG(IS_MAC)
+   return std::make_unique<HidServiceMac>();
+ #elif BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-services_device_hid_hid__service__fido.cc b/chromium/patches/patch-services_device_hid_hid__service__fido.cc
new file mode 100644
index 0000000000..4cc5bf0951
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__service__fido.cc
@@ -0,0 +1,405 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service_fido.cc.orig	2024-08-01 14:09:00.343141998 +0000
++++ services/device/hid/hid_service_fido.cc
+@@ -0,0 +1,396 @@
++// Copyright 2014 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "services/device/hid/hid_service_fido.h"
++
++#include <fcntl.h>
++#include <poll.h>
++#include <stdint.h>
++
++#include <dlfcn.h>
++#include <fido.h>
++
++#include <limits>
++#include <memory>
++#include <string>
++#include <utility>
++
++#include "base/files/file.h"
++#include "base/files/file_path.h"
++#include "base/files/file_util.h"
++#include "base/files/scoped_file.h"
++#include "base/location.h"
++#include "base/sequence_checker.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/strings/string_split.h"
++#include "base/strings/string_util.h"
++#include "base/task/sequenced_task_runner.h"
++#include "base/task/thread_pool.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "build/build_config.h"
++#include "build/chromeos_buildflags.h"
++#include "components/device_event_log/device_event_log.h"
++#include "device/udev_linux/scoped_udev.h"
++#include "device/udev_linux/udev_watcher.h"
++#include "services/device/hid/hid_connection_fido.h"
++
++namespace device {
++
++namespace {
++
++bool terrible_ping_kludge(int fd, const std::string &path) {
++  u_char data[256];
++  int i, n;
++  struct pollfd pfd;
++
++  for (i = 0; i < 4; i++) {
++    memset(data, 0, sizeof(data));
++    /* broadcast channel ID */
++    data[1] = 0xff;
++    data[2] = 0xff;
++    data[3] = 0xff;
++    data[4] = 0xff;
++    /* Ping command */
++    data[5] = 0x81;
++    /* One byte ping only, Vasili */
++    data[6] = 0;   
++    data[7] = 1;   
++    HID_LOG(EVENT) << "send ping " << i << " " << path;
++    if (write(fd, data, 64) == -1) {
++      HID_PLOG(ERROR) << "write " << path;
++      return false;
++    }
++    HID_LOG(EVENT) << "wait reply " << path;
++    memset(&pfd, 0, sizeof(pfd));
++    pfd.fd = fd; 
++    pfd.events = POLLIN;
++    if ((n = poll(&pfd, 1, 100)) == -1) {
++      HID_PLOG(EVENT) << "poll " << path;
++      return false;
++    } else if (n == 0) {
++      HID_LOG(EVENT) << "timed out " << path;
++      continue;
++    }
++    if (read(fd, data, 64) == -1) {  
++      HID_PLOG(ERROR) << "read " << path;
++      return false;
++    }
++    /*
++     * Ping isn't always supported on the broadcast channel,
++     * so we might get an error, but we don't care - we're
++     * synched now.
++     */
++    HID_LOG(EVENT) << "got reply " << path;
++    return true;
++  }
++  HID_LOG(ERROR) << "no response " << path;
++  return false;
++}
++
++// HID report descriptor for U2F interface. Copied from:
++// https://chromium.googlesource.com/chromiumos/platform2/+/c6c7e4e54fce11932fedaa3ea10236bf75d85a2b%5E%21/u2fd/u2fhid.cc
++// Apparently Chromium wants to see these bytes, but OpenBSD fido(4)
++// devices prohibit USB_GET_REPORT_DESC ioctl that could be used to
++// get the bytes from the USB device.
++constexpr uint8_t kU2fReportDesc[] = {
++    0x06, 0xD0, 0xF1, /* Usage Page (FIDO Alliance), FIDO_USAGE_PAGE */
++    0x09, 0x01,       /* Usage (U2F HID Auth. Device) FIDO_USAGE_U2FHID */
++    0xA1, 0x01,       /* Collection (Application), HID_APPLICATION */
++    0x09, 0x20,       /*  Usage (Input Report Data), FIDO_USAGE_DATA_IN */
++    0x15, 0x00,       /*  Logical Minimum (0) */
++    0x26, 0xFF, 0x00, /*  Logical Maximum (255) */
++    0x75, 0x08,       /*  Report Size (8) */
++    0x95, 0x40,       /*  Report Count (64), HID_INPUT_REPORT_BYTES */
++    0x81, 0x02,       /*  Input (Data, Var, Abs), Usage */
++    0x09, 0x21,       /*  Usage (Output Report Data), FIDO_USAGE_DATA_OUT */
++    0x15, 0x00,       /*  Logical Minimum (0) */
++    0x26, 0xFF, 0x00, /*  Logical Maximum (255) */
++    0x75, 0x08,       /*  Report Size (8) */
++    0x95, 0x40,       /*  Report Count (64), HID_OUTPUT_REPORT_BYTES */
++    0x91, 0x02,       /*  Output (Data, Var, Abs), Usage */
++    0xC0              /* End Collection */
++};
++
++}  // namespace
++
++struct HidServiceFido::ConnectParams {
++  ConnectParams(scoped_refptr<HidDeviceInfo> device_info,
++                bool allow_protected_reports,
++                bool allow_fido_reports,
++                ConnectCallback callback)
++      : device_info(std::move(device_info)),
++        allow_protected_reports(allow_protected_reports),
++        allow_fido_reports(allow_fido_reports),
++        callback(std::move(callback)),
++	task_runner(base::SequencedTaskRunner::GetCurrentDefault()),
++        blocking_task_runner(
++            base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)) {}
++  ~ConnectParams() {}
++
++  scoped_refptr<HidDeviceInfo> device_info;
++  bool allow_protected_reports;
++  bool allow_fido_reports;
++  ConnectCallback callback;
++  scoped_refptr<base::SequencedTaskRunner> task_runner;
++  scoped_refptr<base::SequencedTaskRunner> blocking_task_runner;
++  base::ScopedFD fd;
++};
++
++class HidServiceFido::BlockingTaskRunnerHelper : public UdevWatcher::Observer {
++ public:
++  BlockingTaskRunnerHelper(base::WeakPtr<HidServiceFido> service)
++      : service_(std::move(service)),
++        task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++    DETACH_FROM_SEQUENCE(sequence_checker_);
++  }
++
++  BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++  BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++  ~BlockingTaskRunnerHelper() override {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++  }
++
++  void Start() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++    void *library = dlopen("libudev.so", RTLD_NOW | RTLD_LOCAL);
++    if (library) {
++      dlclose(library);
++      watcher_ = UdevWatcher::StartWatching(this);
++      watcher_->EnumerateExistingDevices();
++    } else {
++      HID_LOG(ERROR) << "No udev available, failling back to single enumeration";
++      WalkFidoDevices(nullptr);
++    }
++
++    task_runner_->PostTask(
++        FROM_HERE,
++        base::BindOnce(&HidServiceFido::FirstEnumerationComplete, service_));
++  }
++
++ private:
++  void WalkFidoDevices(const char *name) {
++    fido_dev_info_t *devlist = NULL;
++    fido_dev_t *dev = NULL;
++    size_t devlist_len = 0, i;
++    const char *path;
++    int r;
++    const int MAX_FIDO_DEVICES = 256;
++
++    if ((devlist = fido_dev_info_new(MAX_FIDO_DEVICES)) == NULL) {
++      HID_LOG(ERROR) << "fido_dev_info_new failed";
++      goto out;
++    }
++    if ((r = fido_dev_info_manifest(devlist, MAX_FIDO_DEVICES, &devlist_len)) !=
++        FIDO_OK) {
++      HID_LOG(ERROR) << "fido_dev_info_manifest: " << fido_strerr(r);
++      goto out;
++    }
++
++    HID_LOG(EVENT) << "fido_dev_info_manifest found " << devlist_len
++                   << " device(s)";
++
++    for (i = 0; i < devlist_len; i++) {
++      const fido_dev_info_t *di = fido_dev_info_ptr(devlist, i);
++
++      if (di == NULL) {
++        HID_LOG(ERROR) << "fido_dev_info_ptr " << i << " failed";
++        continue;
++      }
++
++      if ((path = fido_dev_info_path(di)) == NULL) {
++        HID_LOG(ERROR) << "fido_dev_info_path " << i << " failed";
++        continue;
++      }
++
++      if (name != nullptr && !strcmp(path, name)) {
++        HID_LOG(EVENT) << "hotplug device " << i << ": " << path;
++        OnFidoDeviceAdded(di);
++        break;
++      }
++
++      HID_LOG(EVENT) << "trying device " << i << ": " << path;
++      if ((dev = fido_dev_new()) == NULL) {
++        HID_LOG(ERROR) << "fido_dev_new failed";
++        continue;
++      }
++
++      if ((r = fido_dev_open(dev, path)) != FIDO_OK) {
++        HID_LOG(ERROR) << "fido_dev_open failed " << path;
++        fido_dev_free(&dev);
++        continue;
++      }
++
++      fido_dev_close(dev);
++      fido_dev_free(&dev);
++
++      OnFidoDeviceAdded(di);
++    }
++  out:
++    if (devlist != NULL)
++      fido_dev_info_free(&devlist, MAX_FIDO_DEVICES);
++  }
++
++  void OnFidoDeviceAdded(const fido_dev_info_t *di) {
++    auto null_as_empty = [](const char *r) -> std::string {
++      return (r != nullptr) ? r : "";
++    };
++    std::string device_node(null_as_empty(fido_dev_info_path(di)));  
++    std::vector<uint8_t> report_descriptor(
++        kU2fReportDesc, kU2fReportDesc + sizeof(kU2fReportDesc));
++
++    auto device_info = base::MakeRefCounted<HidDeviceInfo>(
++        device_node, /*physical_device_id*/"", fido_dev_info_vendor(di),
++        fido_dev_info_product(di), null_as_empty(fido_dev_info_product_string(di)),
++        null_as_empty(fido_dev_info_manufacturer_string(di)),
++	device::mojom::HidBusType::kHIDBusTypeUSB, report_descriptor,
++        device_node);
++
++    task_runner_->PostTask(
++        FROM_HERE,
++        base::BindOnce(&HidServiceFido::AddDevice, service_, device_info));
++  }
++
++  // UdevWatcher::Observer
++  void OnDeviceAdded(ScopedUdevDevicePtr device) override {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++
++    const char* subsystem = udev_device_get_subsystem(device.get());
++    if (!subsystem || strcmp(subsystem, "fido") != 0)
++      return;
++
++    const char* device_path = udev_device_get_syspath(device.get());
++    if (!device_path)
++      return;
++
++    WalkFidoDevices(device_path);
++  }
++
++  void OnDeviceRemoved(ScopedUdevDevicePtr device) override {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++
++    const char* device_path = udev_device_get_syspath(device.get());
++    if (device_path) {
++      task_runner_->PostTask(
++          FROM_HERE, base::BindOnce(&HidServiceFido::RemoveDevice, service_,
++                                    std::string(device_path)));
++    }
++  }
++
++  void OnDeviceChanged(ScopedUdevDevicePtr) override {}
++
++  SEQUENCE_CHECKER(sequence_checker_);
++  std::unique_ptr<UdevWatcher> watcher_;
++
++  // This weak pointer is only valid when checked on this task runner.
++  base::WeakPtr<HidServiceFido> service_;
++  scoped_refptr<base::SequencedTaskRunner> task_runner_;
++};
++
++HidServiceFido::HidServiceFido()
++    : blocking_task_runner_(
++          base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)),
++      helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)) {
++  // We need to properly initialize |blocking_task_helper_| here because we need
++  // |weak_factory_| to be created first.
++  helper_.reset(new BlockingTaskRunnerHelper(weak_factory_.GetWeakPtr()));
++  blocking_task_runner_->PostTask(
++      FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start,
++                                base::Unretained(helper_.get())));
++}
++
++HidServiceFido::~HidServiceFido() = default;
++
++base::WeakPtr<HidService> HidServiceFido::GetWeakPtr() {
++  return weak_factory_.GetWeakPtr();
++}
++
++void HidServiceFido::Connect(const std::string& device_guid,
++                              bool allow_protected_reports,
++                              bool allow_fido_reports,
++                              ConnectCallback callback) {
++  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++  const auto& map_entry = devices().find(device_guid);
++  if (map_entry == devices().end()) {
++    base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
++        FROM_HERE, base::BindOnce(std::move(callback), nullptr));
++    return;
++  }
++  scoped_refptr<HidDeviceInfo> device_info = map_entry->second;
++
++  auto params =
++      std::make_unique<ConnectParams>(device_info, allow_protected_reports,
++                                      allow_fido_reports, std::move(callback));
++  scoped_refptr<base::SequencedTaskRunner> blocking_task_runner =
++      params->blocking_task_runner;
++  blocking_task_runner->PostTask(
++      FROM_HERE, base::BindOnce(&HidServiceFido::OpenOnBlockingThread,
++                                std::move(params)));
++}
++
++// static
++void HidServiceFido::OpenOnBlockingThread(
++    std::unique_ptr<ConnectParams> params) {
++  base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
++                                                base::BlockingType::MAY_BLOCK);
++  scoped_refptr<base::SequencedTaskRunner> task_runner = params->task_runner;
++
++  base::FilePath device_path(params->device_info->device_node());
++  base::File device_file;
++  int flags =
++      base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++  device_file.Initialize(device_path, flags);
++  if (!device_file.IsValid()) {
++    base::File::Error file_error = device_file.error_details();
++
++    if (file_error == base::File::FILE_ERROR_ACCESS_DENIED) {
++      HID_LOG(EVENT)
++          << "Access denied opening device read-write, trying read-only.";
++      flags = base::File::FLAG_OPEN | base::File::FLAG_READ;
++      device_file.Initialize(device_path, flags);
++    }
++  }
++  if (!device_file.IsValid()) {
++    HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node()
++                   << "': "
++                   << base::File::ErrorToString(device_file.error_details());
++    task_runner->PostTask(FROM_HERE,
++                          base::BindOnce(std::move(params->callback), nullptr));
++    return;
++  }
++  if (!terrible_ping_kludge(device_file.GetPlatformFile(), params->device_info->device_node())) {
++    HID_LOG(EVENT) << "Failed to ping " << params->device_info->device_node();
++    task_runner->PostTask(FROM_HERE, base::BindOnce(std::move(params->callback), nullptr));
++    return;
++  }
++  params->fd.reset(device_file.TakePlatformFile());
++
++  task_runner->PostTask(FROM_HERE, base::BindOnce(&HidServiceFido::FinishOpen,
++                                                  std::move(params)));
++}
++
++// static
++void HidServiceFido::FinishOpen(std::unique_ptr<ConnectParams> params) {
++  DCHECK(params->fd.is_valid());
++
++  if (!base::SetNonBlocking(params->fd.get())) {
++    HID_PLOG(DEBUG) << "Failed to set the non-blocking flag on the device fd";
++    std::move(params->callback).Run(nullptr);
++    return;
++  }
++
++  std::move(params->callback)
++      .Run(base::MakeRefCounted<HidConnectionFido>(
++          std::move(params->device_info), std::move(params->fd),
++          std::move(params->blocking_task_runner),
++          params->allow_protected_reports, params->allow_fido_reports));
++}
++
++}  // namespace device
diff --git a/chromium/patches/patch-services_device_hid_hid__service__fido.h b/chromium/patches/patch-services_device_hid_hid__service__fido.h
new file mode 100644
index 0000000000..70c43b833f
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__service__fido.h
@@ -0,0 +1,74 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service_fido.h.orig	2024-08-01 14:09:00.345086941 +0000
++++ services/device/hid/hid_service_fido.h
+@@ -0,0 +1,65 @@
++// Copyright 2014 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef SERVICES_DEVICE_HID_HID_SERVICE_LINUX_H_
++#define SERVICES_DEVICE_HID_HID_SERVICE_LINUX_H_
++
++#include <memory>
++
++#include "base/compiler_specific.h"
++#include "base/files/scoped_file.h"
++#include "base/memory/weak_ptr.h"
++#include "base/task/sequenced_task_runner.h"
++#include "build/build_config.h"
++#include "build/chromeos_buildflags.h"
++#include "services/device/hid/hid_device_info.h"
++#include "services/device/hid/hid_service.h"
++
++namespace device {
++
++class HidServiceFido : public HidService {
++ public:
++  HidServiceFido();
++  HidServiceFido(HidServiceFido&) = delete;
++  HidServiceFido& operator=(HidServiceFido&) = delete;
++  ~HidServiceFido() override;
++
++  // HidService:
++  void Connect(const std::string& device_id,
++               bool allow_protected_reports,
++               bool allow_fido_reports,
++               ConnectCallback callback) override;
++  base::WeakPtr<HidService> GetWeakPtr() override;
++
++ private:
++  struct ConnectParams;
++  class BlockingTaskRunnerHelper;
++
++// These functions implement the process of locating, requesting access to and
++// opening a device. Because this operation crosses multiple threads these
++// functions are static and the necessary parameters are passed as a single
++// struct.
++#if BUILDFLAG(IS_CHROMEOS_ASH)
++  static void OnPathOpenComplete(std::unique_ptr<ConnectParams> params,
++                                 base::ScopedFD fd);
++  static void OnPathOpenError(const std::string& device_path,
++                              ConnectCallback callback,
++                              const std::string& error_name,
++                              const std::string& error_message);
++#else
++  static void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params);
++#endif
++  static void FinishOpen(std::unique_ptr<ConnectParams> params);
++
++  const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
++
++  // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds
++  // a weak reference back to the service that owns it.
++  std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++  base::WeakPtrFactory<HidServiceFido> weak_factory_{this};
++};
++
++}  // namespace device
++
++#endif  // SERVICES_DEVICE_HID_HID_SERVICE_LINUX_H_
diff --git a/chromium/patches/patch-services_device_hid_hid__service__freebsd.cc b/chromium/patches/patch-services_device_hid_hid__service__freebsd.cc
new file mode 100644
index 0000000000..cd0be22f7b
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__service__freebsd.cc
@@ -0,0 +1,404 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service_freebsd.cc.orig	2024-08-01 14:09:00.347128264 +0000
++++ services/device/hid/hid_service_freebsd.cc
+@@ -0,0 +1,395 @@
++// 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 "services/device/hid/hid_service_freebsd.h"
++
++#include <dev/usb/usb_ioctl.h>
++#include <stdint.h>
++#include <sys/socket.h>
++#include <sys/un.h>
++
++#include <set>
++#include <string>
++#include <vector>
++
++#include "base/files/file_descriptor_watcher_posix.h"
++#include "base/files/file_enumerator.h"
++#include "base/files/file_util.h"
++#include "base/files/file.h"
++#include "base/location.h"
++#include "base/logging.h"
++#include "base/posix/eintr_wrapper.h"
++#include "base/stl_util.h"
++#include "base/strings/pattern.h"
++#include "base/strings/stringprintf.h"
++#include "base/strings/sys_string_conversions.h"
++#include "base/strings/string_util.h"
++#include "base/strings/string_split.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/task/thread_pool.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "base/threading/thread_restrictions.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/hid/hid_connection_freebsd.h"
++
++const int kMaxPermissionChecks = 5;
++
++namespace device {
++
++struct HidServiceFreeBSD::ConnectParams {
++  ConnectParams(scoped_refptr<HidDeviceInfo> device_info,
++                bool allow_protected_reports,
++		bool allow_fido_reports,
++                ConnectCallback callback)
++      : device_info(std::move(device_info)),
++	allow_protected_reports(allow_protected_reports),
++	allow_fido_reports(allow_fido_reports),
++        callback(std::move(callback)),
++	task_runner(base::SequencedTaskRunner::GetCurrentDefault()),
++        blocking_task_runner(
++            base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)) {}
++  ~ConnectParams() {}
++
++  scoped_refptr<HidDeviceInfo> device_info;
++  bool allow_protected_reports;
++  bool allow_fido_reports;
++  ConnectCallback callback;
++  scoped_refptr<base::SequencedTaskRunner> task_runner;
++  scoped_refptr<base::SequencedTaskRunner> blocking_task_runner;
++  base::ScopedFD fd;
++};
++
++class HidServiceFreeBSD::BlockingTaskRunnerHelper {
++ public:
++  BlockingTaskRunnerHelper(base::WeakPtr<HidServiceFreeBSD> service)
++      : service_(std::move(service)),
++	task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++    DETACH_FROM_SEQUENCE(sequence_checker_);
++
++    timer_.reset(new base::RepeatingTimer());
++    devd_buffer_ = new net::IOBufferWithSize(1024);
++  }
++
++  BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++  BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++  ~BlockingTaskRunnerHelper() {
++  }
++
++  void Start() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++    const base::FilePath kDevRoot("/dev");
++    const std::string kUHIDPattern("/dev/uhid*");
++
++    base::FileEnumerator enumerator(kDevRoot, false, base::FileEnumerator::FILES);
++    do {
++      const base::FilePath next_device_path(enumerator.Next());
++      const std::string next_device = next_device_path.value();
++      if (next_device.empty())
++        break;
++
++      if (base::MatchPattern(next_device, kUHIDPattern))
++        OnDeviceAdded(next_device.substr(5));
++    } while (true);
++
++    SetupDevdMonitor();
++
++    task_runner_->PostTask(
++        FROM_HERE,
++        base::BindOnce(&HidServiceFreeBSD::FirstEnumerationComplete, service_));
++  }
++
++  bool HaveReadWritePermissions(std::string device_id) {
++    std::string device_node = "/dev/" + device_id;
++    base::internal::AssertBlockingAllowed();
++
++    base::FilePath device_path(device_node);
++    base::File device_file;
++    int flags =
++        base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++    device_file.Initialize(device_path, flags);
++    if (!device_file.IsValid())
++      return false;
++
++    return true;
++  }
++
++  void OnDeviceAdded(std::string device_id) {
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++    std::string device_node = "/dev/" + device_id;
++    uint16_t vendor_id = 0xffff;
++    uint16_t product_id = 0xffff;
++    std::string product_name = "";
++    std::string serial_number = "";
++
++    std::vector<uint8_t> report_descriptor;
++
++    base::internal::AssertBlockingAllowed();
++
++    base::FilePath device_path(device_node);
++    base::File device_file;
++    int flags =
++        base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++    device_file.Initialize(device_path, flags);
++    if (!device_file.IsValid()) {
++      HID_LOG(ERROR) << "Failed to open '" << device_node
++                     << "': "
++                     << base::File::ErrorToString(device_file.error_details());
++      return;
++    }
++
++    base::ScopedFD fd;
++    fd.reset(device_file.TakePlatformFile());
++
++    struct usb_gen_descriptor ugd;
++    ugd.ugd_data = NULL;
++    ugd.ugd_maxlen = 0xffff;
++    int result = HANDLE_EINTR(
++        ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd));
++
++    if (result < 0) {
++      HID_LOG(ERROR) << "Failed to get report descriptor size";
++      return;
++    }
++
++    report_descriptor.resize(ugd.ugd_actlen);
++
++    ugd.ugd_data = report_descriptor.data();
++    ugd.ugd_maxlen = ugd.ugd_actlen;
++    result = HANDLE_EINTR(
++        ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd));
++
++    if (result < 0) {
++      HID_LOG(ERROR) << "Failed to get report descriptor";
++      return;
++    }
++
++    scoped_refptr<HidDeviceInfo> device_info(new HidDeviceInfo(
++        device_id,
++        /*physical_device_id*/"",
++	vendor_id,
++	product_id,
++	product_name,
++	serial_number,
++        device::mojom::HidBusType::kHIDBusTypeUSB,
++        report_descriptor,
++	device_node));
++
++    task_runner_->PostTask(FROM_HERE, base::BindOnce(&HidServiceFreeBSD::AddDevice,
++                                                 service_, device_info));
++  }
++
++  void OnDeviceRemoved(std::string device_id) {
++    base::ScopedBlockingCall scoped_blocking_call(
++        FROM_HERE, base::BlockingType::MAY_BLOCK);
++    task_runner_->PostTask(
++        FROM_HERE, base::BindOnce(&HidServiceFreeBSD::RemoveDevice, service_,
++                                  device_id));
++  }
++
++ private:
++
++  void CheckPendingPermissionChange() {
++    base::internal::AssertBlockingAllowed();
++    std::map<std::string, int>::iterator it;
++    for (it = permissions_checks_attempts_.begin(); it != permissions_checks_attempts_.end();) {
++      std::string device_name = it->first;
++      bool keep = true;
++      if (HaveReadWritePermissions(device_name)) {
++        OnDeviceAdded(device_name);
++        keep = false;
++      }
++      else if (it->second-- <= 0) {
++        HID_LOG(ERROR) << "Still don't have write permissions to '" << device_name
++                       << "' after " << kMaxPermissionChecks << " attempts";
++        keep = false;
++      }
++
++      if (keep)
++        ++it;
++      else
++        permissions_checks_attempts_.erase(it++);
++    }
++
++    if (permissions_checks_attempts_.empty())
++      timer_->Stop();
++  }
++
++  void SetupDevdMonitor() {
++    base::internal::AssertBlockingAllowed();
++
++    int devd_fd = socket(AF_UNIX, SOCK_SEQPACKET, 0);
++    if (devd_fd < 0)
++      return;
++
++    struct sockaddr_un sa;
++
++    sa.sun_family = AF_UNIX;
++    strlcpy(sa.sun_path, "@VARBASE@/run/devd.seqpacket.pipe", sizeof(sa.sun_path));
++    if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) {
++      close(devd_fd);
++      return;
++    } 
++
++    devd_fd_.reset(devd_fd);
++    file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
++        devd_fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnDevdMessageCanBeRead,
++                                            base::Unretained(this)));
++  }
++
++  void OnDevdMessageCanBeRead() {
++    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++    ssize_t bytes_read = HANDLE_EINTR(recv(devd_fd_.get(), devd_buffer_->data(),
++                                      devd_buffer_->size() - 1, MSG_WAITALL));
++    if (bytes_read < 0) {
++      if (errno != EAGAIN) {
++        HID_LOG(ERROR) << "Read failed";
++        file_watcher_.reset();
++      }
++      return;
++    }
++
++    devd_buffer_->data()[bytes_read] = 0;
++    char *data = devd_buffer_->data();
++    // It may take some time for devd to change permissions
++    // on /dev/uhidX node. So do not fail immediately if
++    // open fail. Retry each second for kMaxPermissionChecks
++    // times before giving up entirely
++    if (base::StartsWith(data, "+uhid", base::CompareCase::SENSITIVE)) {
++      std::vector<std::string> parts = base::SplitString(
++        data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
++      if (!parts.empty()) {
++        std::string device_name = parts[0].substr(1); // skip '+'
++        if (HaveReadWritePermissions(device_name))
++          OnDeviceAdded(parts[0].substr(1));
++        else {
++          // Do not re-add to checks
++          if (permissions_checks_attempts_.find(device_name) == permissions_checks_attempts_.end()) {
++            permissions_checks_attempts_.insert(std::pair<std::string, int>(device_name, kMaxPermissionChecks));
++            timer_->Start(FROM_HERE, base::Seconds(1),
++                          this, &BlockingTaskRunnerHelper::CheckPendingPermissionChange);
++          }
++        }
++      }
++    }
++
++    if (base::StartsWith(data, "-uhid", base::CompareCase::SENSITIVE)) {
++      std::vector<std::string> parts = base::SplitString(
++        data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
++      if (!parts.empty()) {
++        std::string device_name = parts[0].substr(1); // skip '-'
++        auto it = permissions_checks_attempts_.find(device_name);
++        if (it != permissions_checks_attempts_.end()) {
++          permissions_checks_attempts_.erase(it);
++          if (permissions_checks_attempts_.empty())
++            timer_->Stop();
++        }
++        OnDeviceRemoved(parts[0].substr(1));
++      }
++    }
++  }
++
++  SEQUENCE_CHECKER(sequence_checker_);
++
++  // This weak pointer is only valid when checked on this task runner.
++  base::WeakPtr<HidServiceFreeBSD> service_;
++  scoped_refptr<base::SequencedTaskRunner> task_runner_;
++  std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_;
++  std::unique_ptr<base::RepeatingTimer> timer_;
++  base::ScopedFD devd_fd_;
++  scoped_refptr<net::IOBufferWithSize> devd_buffer_;
++  std::map<std::string, int> permissions_checks_attempts_;
++};
++
++HidServiceFreeBSD::HidServiceFreeBSD()
++    : blocking_task_runner_(
++          base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)),
++      helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)) {
++  helper_.reset(new BlockingTaskRunnerHelper(weak_factory_.GetWeakPtr()));
++  blocking_task_runner_->PostTask(
++      FROM_HERE,
++      base::BindOnce(&BlockingTaskRunnerHelper::Start, base::Unretained(helper_.get())));
++}
++
++HidServiceFreeBSD::~HidServiceFreeBSD() {
++  blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release());
++}
++
++base::WeakPtr<HidService> HidServiceFreeBSD::GetWeakPtr() {
++  return weak_factory_.GetWeakPtr();
++}
++
++// static
++void HidServiceFreeBSD::OpenOnBlockingThread(
++    std::unique_ptr<ConnectParams> params) {
++  base::ScopedBlockingCall scoped_blocking_call(
++      FROM_HERE, base::BlockingType::MAY_BLOCK);
++  scoped_refptr<base::SequencedTaskRunner> task_runner = params->task_runner;
++
++  base::FilePath device_path(params->device_info->device_node());
++  base::File device_file;
++  int flags =
++      base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE;
++  device_file.Initialize(device_path, flags);
++  if (!device_file.IsValid()) {
++    HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node()
++                   << "': "
++                   << base::File::ErrorToString(device_file.error_details());
++    task_runner->PostTask(FROM_HERE,
++		          base::BindOnce(std::move(params->callback), nullptr));
++    return;
++  }
++  params->fd.reset(device_file.TakePlatformFile());
++  task_runner->PostTask(FROM_HERE, base::BindOnce(&HidServiceFreeBSD::FinishOpen,
++			                          std::move(params)));
++}
++
++void HidServiceFreeBSD::Connect(const std::string& device_guid,
++                                bool allow_protected_reports,
++				bool allow_fido_reports,
++                                ConnectCallback callback) {
++  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++
++  const auto& map_entry = devices().find(device_guid);
++  if (map_entry == devices().end()) {
++    base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
++        FROM_HERE, base::BindOnce(std::move(callback), nullptr));
++    return;
++  }
++
++  scoped_refptr<HidDeviceInfo> device_info = map_entry->second;
++
++  auto params = std::make_unique<ConnectParams>(device_info,
++                                                allow_protected_reports,
++						allow_fido_reports,
++						std::move(callback));
++  scoped_refptr<base::SequencedTaskRunner> blocking_task_runner =
++      params->blocking_task_runner;
++
++  blocking_task_runner->PostTask(
++      FROM_HERE, base::BindOnce(&HidServiceFreeBSD::OpenOnBlockingThread,
++                                std::move(params)));
++}
++
++// static
++void HidServiceFreeBSD::FinishOpen(std::unique_ptr<ConnectParams> params) {
++  DCHECK(params->fd.is_valid());
++
++  if (!base::SetNonBlocking(params->fd.get())) {
++    HID_PLOG(ERROR) << "Failed to set the non-blocking flag on the device fd";
++    std::move(params->callback).Run(nullptr);
++  }
++
++  std::move(params->callback).Run(base::MakeRefCounted<HidConnectionFreeBSD>(
++    std::move(params->device_info),
++    std::move(params->fd),
++    std::move(params->blocking_task_runner),
++    params->allow_protected_reports,
++    params->allow_fido_reports
++  ));
++}
++
++}  // namespace device
diff --git a/chromium/patches/patch-services_device_hid_hid__service__freebsd.h b/chromium/patches/patch-services_device_hid_hid__service__freebsd.h
new file mode 100644
index 0000000000..327d3447a2
--- /dev/null
+++ b/chromium/patches/patch-services_device_hid_hid__service__freebsd.h
@@ -0,0 +1,58 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service_freebsd.h.orig	2024-08-01 14:09:00.351348359 +0000
++++ services/device/hid/hid_service_freebsd.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 DEVICE_HID_HID_SERVICE_FREEBSD_H_
++#define DEVICE_HID_HID_SERVICE_FREEBSD_H_
++
++#include <string>
++
++#include "base/memory/ref_counted.h"
++#include "base/memory/weak_ptr.h"
++#include "base/timer/timer.h"
++#include "services/device/hid/hid_service.h"
++#include "net/base/io_buffer.h"
++
++namespace device {
++
++class HidServiceFreeBSD : public HidService {
++ public:
++  HidServiceFreeBSD();
++
++  HidServiceFreeBSD(const HidServiceFreeBSD&) = delete;
++  HidServiceFreeBSD& operator=(const HidServiceFreeBSD&) = delete;
++
++  ~HidServiceFreeBSD() override;
++
++  void Connect(const std::string& device_guid,
++               bool allow_protected_reports,
++	       bool allow_fido_reports,
++               ConnectCallback connect) override;
++  base::WeakPtr<HidService> GetWeakPtr() override;
++
++ private:
++  struct ConnectParams;
++  class BlockingTaskRunnerHelper;
++
++  static void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params);
++  static void FinishOpen(std::unique_ptr<ConnectParams> params);
++
++  const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
++  // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds
++  // a weak reference back to the service that owns it.
++  std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++  base::WeakPtrFactory<HidServiceFreeBSD> weak_factory_{this};
++};
++
++}  // namespace device
++
++#endif  // DEVICE_HID_HID_SERVICE_FREEBSD_H_
diff --git a/chromium/patches/patch-services_device_hid_hid__service__netbsd.cc b/chromium/patches/patch-services_device_hid_hid__service__netbsd.cc
index b1ecfcdc58..e27a1c5ad8 100644
--- a/chromium/patches/patch-services_device_hid_hid__service__netbsd.cc
+++ b/chromium/patches/patch-services_device_hid_hid__service__netbsd.cc
@@ -1,14 +1,19 @@
 $NetBSD$
 
---- services/device/hid/hid_service_netbsd.cc.orig	2020-07-23 00:21:06.085104546 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service_netbsd.cc.orig	2024-08-01 14:09:00.354105137 +0000
 +++ services/device/hid/hid_service_netbsd.cc
-@@ -0,0 +1,382 @@
+@@ -0,0 +1,395 @@
 +// 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 "services/device/hid/hid_service_netbsd.h"
 +
++#include <dev/usb/usb_ioctl.h>
 +#include <stdint.h>
 +#include <sys/socket.h>
 +#include <sys/un.h>
@@ -17,7 +22,6 @@ $NetBSD$
 +#include <string>
 +#include <vector>
 +
-+#include "base/bind.h"
 +#include "base/files/file_descriptor_watcher_posix.h"
 +#include "base/files/file_enumerator.h"
 +#include "base/files/file_util.h"
@@ -25,16 +29,16 @@ $NetBSD$
 +#include "base/location.h"
 +#include "base/logging.h"
 +#include "base/posix/eintr_wrapper.h"
-+#include "base/single_thread_task_runner.h"
 +#include "base/stl_util.h"
 +#include "base/strings/pattern.h"
 +#include "base/strings/stringprintf.h"
 +#include "base/strings/sys_string_conversions.h"
 +#include "base/strings/string_util.h"
 +#include "base/strings/string_split.h"
-+#include "base/task/post_task.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/task/thread_pool.h"
 +#include "base/threading/scoped_blocking_call.h"
-+#include "base/threading/thread_task_runner_handle.h"
++#include "base/threading/thread_restrictions.h"
 +#include "components/device_event_log/device_event_log.h"
 +#include "services/device/hid/hid_connection_netbsd.h"
 +
@@ -44,33 +48,42 @@ $NetBSD$
 +
 +struct HidServiceNetBSD::ConnectParams {
 +  ConnectParams(scoped_refptr<HidDeviceInfo> device_info,
++                bool allow_protected_reports,
++		bool allow_fido_reports,
 +                ConnectCallback callback)
 +      : device_info(std::move(device_info)),
++	allow_protected_reports(allow_protected_reports),
++	allow_fido_reports(allow_fido_reports),
 +        callback(std::move(callback)),
-+        task_runner(base::ThreadTaskRunnerHandle::Get()),
++	task_runner(base::SequencedTaskRunner::GetCurrentDefault()),
 +        blocking_task_runner(
-+            base::CreateSequencedTaskRunner(kBlockingTaskTraits)) {}
++            base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)) {}
 +  ~ConnectParams() {}
 +
 +  scoped_refptr<HidDeviceInfo> device_info;
++  bool allow_protected_reports;
++  bool allow_fido_reports;
 +  ConnectCallback callback;
 +  scoped_refptr<base::SequencedTaskRunner> task_runner;
 +  scoped_refptr<base::SequencedTaskRunner> blocking_task_runner;
 +  base::ScopedFD fd;
 +};
 +
-+class HidServiceNetBSD::BlockingTaskHelper {
++class HidServiceNetBSD::BlockingTaskRunnerHelper {
 + public:
-+  BlockingTaskHelper(base::WeakPtr<HidServiceNetBSD> service)
++  BlockingTaskRunnerHelper(base::WeakPtr<HidServiceNetBSD> service)
 +      : service_(std::move(service)),
-+        task_runner_(base::ThreadTaskRunnerHandle::Get()) {
++	task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
 +    DETACH_FROM_SEQUENCE(sequence_checker_);
 +
 +    timer_.reset(new base::RepeatingTimer());
 +    devd_buffer_ = new net::IOBufferWithSize(1024);
 +  }
 +
-+  ~BlockingTaskHelper() {
++  BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete;
++  BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete;
++
++  ~BlockingTaskRunnerHelper() {
 +  }
 +
 +  void Start() {
@@ -94,7 +107,7 @@ $NetBSD$
 +
 +    task_runner_->PostTask(
 +        FROM_HERE,
-+        base::Bind(&HidServiceNetBSD::FirstEnumerationComplete, service_));
++        base::BindOnce(&HidServiceNetBSD::FirstEnumerationComplete, service_));
 +  }
 +
 +  bool HaveReadWritePermissions(std::string device_id) {
@@ -174,7 +187,7 @@ $NetBSD$
 +        report_descriptor,
 +	device_node));
 +
-+    task_runner_->PostTask(FROM_HERE, base::Bind(&HidServiceNetBSD::AddDevice,
++    task_runner_->PostTask(FROM_HERE, base::BindOnce(&HidServiceNetBSD::AddDevice,
 +                                                 service_, device_info));
 +  }
 +
@@ -182,8 +195,8 @@ $NetBSD$
 +    base::ScopedBlockingCall scoped_blocking_call(
 +        FROM_HERE, base::BlockingType::MAY_BLOCK);
 +    task_runner_->PostTask(
-+        FROM_HERE, base::Bind(&HidServiceNetBSD::RemoveDevice, service_,
-+                              device_id));
++        FROM_HERE, base::BindOnce(&HidServiceNetBSD::RemoveDevice, service_,
++                                  device_id));
 +  }
 +
 + private:
@@ -224,16 +237,16 @@ $NetBSD$
 +    struct sockaddr_un sa;
 +
 +    sa.sun_family = AF_UNIX;
-+    strlcpy(sa.sun_path, "/var/run/devd.seqpacket.pipe", sizeof(sa.sun_path));
++    strlcpy(sa.sun_path, "@VARBASE@/run/devd.seqpacket.pipe", sizeof(sa.sun_path));
 +    if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) {
 +      close(devd_fd);
 +      return;
-+    } 
++    }
 +
 +    devd_fd_.reset(devd_fd);
 +    file_watcher_ = base::FileDescriptorWatcher::WatchReadable(
-+        devd_fd_.get(), base::Bind(&BlockingTaskHelper::OnDevdMessageCanBeRead,
-+                                   base::Unretained(this)));
++        devd_fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnDevdMessageCanBeRead,
++                                            base::Unretained(this)));
 +  }
 +
 +  void OnDevdMessageCanBeRead() {
@@ -265,8 +278,8 @@ $NetBSD$
 +          // Do not re-add to checks
 +          if (permissions_checks_attempts_.find(device_name) == permissions_checks_attempts_.end()) {
 +            permissions_checks_attempts_.insert(std::pair<std::string, int>(device_name, kMaxPermissionChecks));
-+            timer_->Start(FROM_HERE, base::TimeDelta::FromSeconds(1),
-+                          this, &BlockingTaskHelper::CheckPendingPermissionChange);
++            timer_->Start(FROM_HERE, base::Seconds(1),
++                          this, &BlockingTaskRunnerHelper::CheckPendingPermissionChange);
 +          }
 +        }
 +      }
@@ -298,19 +311,16 @@ $NetBSD$
 +  base::ScopedFD devd_fd_;
 +  scoped_refptr<net::IOBufferWithSize> devd_buffer_;
 +  std::map<std::string, int> permissions_checks_attempts_;
-+
-+  DISALLOW_COPY_AND_ASSIGN(BlockingTaskHelper);
 +};
 +
 +HidServiceNetBSD::HidServiceNetBSD()
-+    : task_runner_(base::ThreadTaskRunnerHandle::Get()),
-+      blocking_task_runner_(
-+          base::CreateSequencedTaskRunner(kBlockingTaskTraits)),
-+      weak_factory_(this) {
-+  helper_ = std::make_unique<BlockingTaskHelper>(weak_factory_.GetWeakPtr());
++    : blocking_task_runner_(
++          base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)),
++      helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)) {
++  helper_.reset(new BlockingTaskRunnerHelper(weak_factory_.GetWeakPtr()));
 +  blocking_task_runner_->PostTask(
 +      FROM_HERE,
-+      base::Bind(&BlockingTaskHelper::Start, base::Unretained(helper_.get())));
++      base::BindOnce(&BlockingTaskRunnerHelper::Start, base::Unretained(helper_.get())));
 +}
 +
 +HidServiceNetBSD::~HidServiceNetBSD() {
@@ -347,19 +357,24 @@ $NetBSD$
 +}
 +
 +void HidServiceNetBSD::Connect(const std::string& device_guid,
-+                            ConnectCallback callback) {
++                                bool allow_protected_reports,
++				bool allow_fido_reports,
++                                ConnectCallback callback) {
 +  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 +
 +  const auto& map_entry = devices().find(device_guid);
 +  if (map_entry == devices().end()) {
-+    base::ThreadTaskRunnerHandle::Get()->PostTask(
++    base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
 +        FROM_HERE, base::BindOnce(std::move(callback), nullptr));
 +    return;
 +  }
 +
 +  scoped_refptr<HidDeviceInfo> device_info = map_entry->second;
 +
-+  auto params = std::make_unique<ConnectParams>(device_info, std::move(callback));
++  auto params = std::make_unique<ConnectParams>(device_info,
++                                                allow_protected_reports,
++						allow_fido_reports,
++						std::move(callback));
 +  scoped_refptr<base::SequencedTaskRunner> blocking_task_runner =
 +      params->blocking_task_runner;
 +
@@ -380,7 +395,9 @@ $NetBSD$
 +  std::move(params->callback).Run(base::MakeRefCounted<HidConnectionNetBSD>(
 +    std::move(params->device_info),
 +    std::move(params->fd),
-+    std::move(params->blocking_task_runner)
++    std::move(params->blocking_task_runner),
++    params->allow_protected_reports,
++    params->allow_fido_reports
 +  ));
 +}
 +
diff --git a/chromium/patches/patch-services_device_hid_hid__service__netbsd.h b/chromium/patches/patch-services_device_hid_hid__service__netbsd.h
index 387d7a10b7..0096a5db64 100644
--- a/chromium/patches/patch-services_device_hid_hid__service__netbsd.h
+++ b/chromium/patches/patch-services_device_hid_hid__service__netbsd.h
@@ -1,8 +1,12 @@
 $NetBSD$
 
---- services/device/hid/hid_service_netbsd.h.orig	2020-07-23 00:21:18.942556354 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/hid/hid_service_netbsd.h.orig	2024-08-01 14:09:00.357545802 +0000
 +++ services/device/hid/hid_service_netbsd.h
-@@ -0,0 +1,47 @@
+@@ -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.
@@ -12,7 +16,6 @@ $NetBSD$
 +
 +#include <string>
 +
-+#include "base/macros.h"
 +#include "base/memory/ref_counted.h"
 +#include "base/memory/weak_ptr.h"
 +#include "base/timer/timer.h"
@@ -24,29 +27,32 @@ $NetBSD$
 +class HidServiceNetBSD : public HidService {
 + public:
 +  HidServiceNetBSD();
++
++  HidServiceNetBSD(const HidServiceNetBSD&) = delete;
++  HidServiceNetBSD& operator=(const HidServiceNetBSD&) = delete;
++
 +  ~HidServiceNetBSD() override;
 +
 +  void Connect(const std::string& device_guid,
++               bool allow_protected_reports,
++	       bool allow_fido_reports,
 +               ConnectCallback connect) override;
 +  base::WeakPtr<HidService> GetWeakPtr() override;
 +
 + private:
 +  struct ConnectParams;
-+  class BlockingTaskHelper;
++  class BlockingTaskRunnerHelper;
 +
 +  static void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params);
 +  static void FinishOpen(std::unique_ptr<ConnectParams> params);
 +
-+  const scoped_refptr<base::SequencedTaskRunner> task_runner_;
 +  const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
 +  // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds
 +  // a weak reference back to the service that owns it.
-+  std::unique_ptr<BlockingTaskHelper> helper_;
-+  base::WeakPtrFactory<HidServiceNetBSD> weak_factory_;
-+
-+  DISALLOW_COPY_AND_ASSIGN(HidServiceNetBSD);
++  std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_;
++  base::WeakPtrFactory<HidServiceNetBSD> weak_factory_{this};
 +};
 +
 +}  // namespace device
 +
-+#endif  // DEVICE_HID_HID_SERVICE_NETBSD_H_
++#endif  // DEVICE_HID_HID_SERVICE_FREEBSD_H_
diff --git a/chromium/patches/patch-services_device_public_cpp_generic__sensor_sensor__reading.h b/chromium/patches/patch-services_device_public_cpp_generic__sensor_sensor__reading.h
new file mode 100644
index 0000000000..c0c83f975c
--- /dev/null
+++ b/chromium/patches/patch-services_device_public_cpp_generic__sensor_sensor__reading.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/public/cpp/generic_sensor/sensor_reading.h.orig	2024-07-24 02:44:43.657461400 +0000
++++ services/device/public/cpp/generic_sensor/sensor_reading.h
+@@ -8,6 +8,8 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
++#include <cstdint>
++
+ #include <type_traits>
+ 
+ namespace device {
diff --git a/chromium/patches/patch-services_device_public_mojom_BUILD.gn b/chromium/patches/patch-services_device_public_mojom_BUILD.gn
new file mode 100644
index 0000000000..e4625c4a3b
--- /dev/null
+++ b/chromium/patches/patch-services_device_public_mojom_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/public/mojom/BUILD.gn.orig	2024-07-24 02:44:43.665462300 +0000
++++ services/device/public/mojom/BUILD.gn
+@@ -96,7 +96,7 @@ mojom("device_service") {
+   enable_js_fuzzing = false
+ 
+   enabled_features = []
+-  if ((is_linux || is_chromeos) && use_udev) {
++  if ((is_linux || is_chromeos) && !is_bsd && use_udev) {
+     enabled_features += [ "enable_input_device_manager" ]
+   }
+ 
diff --git a/chromium/patches/patch-services_device_serial_BUILD.gn b/chromium/patches/patch-services_device_serial_BUILD.gn
index 8b49484c76..2b2bb4ab36 100644
--- a/chromium/patches/patch-services_device_serial_BUILD.gn
+++ b/chromium/patches/patch-services_device_serial_BUILD.gn
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- services/device/serial/BUILD.gn.orig	2020-06-25 09:31:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/serial/BUILD.gn.orig	2024-07-24 02:44:43.669462700 +0000
 +++ services/device/serial/BUILD.gn
-@@ -4,7 +4,7 @@
- 
+@@ -5,7 +5,7 @@
+ import("//build/config/chromeos/ui_mode.gni")
  import("//build/config/features.gni")
  
--if (is_win || (is_linux && use_udev) || is_mac) {
-+if (is_win || (is_linux && use_udev) || is_mac || is_bsd) {
+-if (is_win || ((is_linux || is_chromeos) && use_udev) || is_mac) {
++if (is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac) {
    config("platform_support") {
      visibility = [ ":serial" ]
      if (is_win) {
diff --git a/chromium/patches/patch-services_device_serial_serial__device__enumerator.cc b/chromium/patches/patch-services_device_serial_serial__device__enumerator.cc
index b136ff90e7..1c8e98cb47 100644
--- a/chromium/patches/patch-services_device_serial_serial__device__enumerator.cc
+++ b/chromium/patches/patch-services_device_serial_serial__device__enumerator.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- services/device/serial/serial_device_enumerator.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/serial/serial_device_enumerator.cc.orig	2024-07-24 02:44:43.669462700 +0000
 +++ services/device/serial/serial_device_enumerator.cc
-@@ -9,7 +9,7 @@
- #include "base/unguessable_token.h"
+@@ -12,7 +12,7 @@
  #include "build/build_config.h"
+ #include "components/device_event_log/device_event_log.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "services/device/serial/serial_device_enumerator_linux.h"
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_MAC)
  #include "services/device/serial/serial_device_enumerator_mac.h"
-@@ -22,7 +22,7 @@ namespace device {
+@@ -25,7 +25,7 @@ namespace device {
  // static
  std::unique_ptr<SerialDeviceEnumerator> SerialDeviceEnumerator::Create(
      scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   return std::make_unique<SerialDeviceEnumeratorLinux>();
- #elif defined(OS_MACOSX)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   return SerialDeviceEnumeratorLinux::Create();
+ #elif BUILDFLAG(IS_MAC)
    return std::make_unique<SerialDeviceEnumeratorMac>();
diff --git a/chromium/patches/patch-services_device_serial_serial__io__handler__posix.cc b/chromium/patches/patch-services_device_serial_serial__io__handler__posix.cc
index 8baf0f4d05..eebef2ebe1 100644
--- a/chromium/patches/patch-services_device_serial_serial__io__handler__posix.cc
+++ b/chromium/patches/patch-services_device_serial_serial__io__handler__posix.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- services/device/serial/serial_io_handler_posix.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/serial/serial_io_handler_posix.cc.orig	2024-07-24 02:44:43.673463000 +0000
 +++ services/device/serial/serial_io_handler_posix.cc
-@@ -66,7 +66,7 @@ bool BitrateToSpeedConstant(int bitrate,
+@@ -68,7 +68,7 @@ bool BitrateToSpeedConstant(int bitrate,
      BITRATE_TO_SPEED_CASE(9600)
      BITRATE_TO_SPEED_CASE(19200)
      BITRATE_TO_SPEED_CASE(38400)
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_MAC)
++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD)
      BITRATE_TO_SPEED_CASE(57600)
      BITRATE_TO_SPEED_CASE(115200)
      BITRATE_TO_SPEED_CASE(230400)
diff --git a/chromium/patches/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc b/chromium/patches/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc
index eb4f6d12d3..6a43770738 100644
--- a/chromium/patches/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc
+++ b/chromium/patches/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc
@@ -1,16 +1,20 @@
 $NetBSD$
 
---- services/device/time_zone_monitor/time_zone_monitor_linux.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/time_zone_monitor/time_zone_monitor_linux.cc.orig	2024-07-24 02:44:43.673463000 +0000
 +++ services/device/time_zone_monitor/time_zone_monitor_linux.cc
-@@ -127,7 +127,11 @@ class TimeZoneMonitorLinuxImpl
+@@ -131,7 +131,11 @@ class TimeZoneMonitorLinuxImpl
      // false positives are harmless, assuming the false positive rate is
      // reasonable.
      const char* const kFilesToWatch[] = {
-+#if defined(OS_BSD)
-+        "/etc/localtime",
++#if BUILDFLAG(IS_BSD)
++        "@PKG_SYSCONFBASE@/localtime",
 +#else
          "/etc/localtime", "/etc/timezone", "/etc/TZ",
 +#endif
      };
-     for (size_t index = 0; index < base::size(kFilesToWatch); ++index) {
+     for (size_t index = 0; index < std::size(kFilesToWatch); ++index) {
        file_path_watchers_.push_back(std::make_unique<base::FilePathWatcher>());
diff --git a/chromium/patches/patch-services_device_usb_BUILD.gn b/chromium/patches/patch-services_device_usb_BUILD.gn
new file mode 100644
index 0000000000..43a6b30e50
--- /dev/null
+++ b/chromium/patches/patch-services_device_usb_BUILD.gn
@@ -0,0 +1,40 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/usb/BUILD.gn.orig	2024-07-24 02:44:43.673463000 +0000
++++ services/device/usb/BUILD.gn
+@@ -91,7 +91,7 @@ static_library("usb") {
+     deps += [ "//third_party/re2" ]
+   }
+ 
+-  if (is_mac) {
++  if (is_mac || is_openbsd) {
+     # These sources and deps are required for libusb.
+     # TODO(crbug.com/40136337) Remove these sources.
+     sources += [
+@@ -114,6 +114,13 @@ static_library("usb") {
+     deps += [ "//third_party/libusb" ]
+   }
+ 
++  if (is_freebsd || is_netbsd) {
++    sources += [
++      "usb_service_fake.cc",
++      "usb_service_fake.h",
++    ]
++  }
++
+   if (is_linux || is_chromeos) {
+     sources += [
+       "usb_device_linux.cc",
+@@ -131,7 +138,7 @@ static_library("usb") {
+     deps += [ "//device/udev_linux" ]
+   }
+ 
+-  if (is_android || is_chromeos || is_linux) {
++  if (is_android || is_chromeos || is_linux && !is_bsd) {
+     sources += [
+       "usb_device_handle_usbfs.cc",
+       "usb_device_handle_usbfs.h",
diff --git a/chromium/patches/patch-services_device_usb_usb__service.cc b/chromium/patches/patch-services_device_usb_usb__service.cc
new file mode 100644
index 0000000000..328704c52b
--- /dev/null
+++ b/chromium/patches/patch-services_device_usb_usb__service.cc
@@ -0,0 +1,42 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/usb/usb_service.cc.orig	2024-07-24 02:44:43.681463700 +0000
++++ services/device/usb/usb_service.cc
+@@ -20,12 +20,16 @@
+ 
+ #if BUILDFLAG(IS_ANDROID)
+ #include "services/device/usb/usb_service_android.h"
+-#elif defined(USE_UDEV)
++#elif defined(USE_UDEV) && !BUILDFLAG(IS_BSD)
+ #include "services/device/usb/usb_service_linux.h"
+ #elif BUILDFLAG(IS_MAC)
+ #include "services/device/usb/usb_service_impl.h"
+ #elif BUILDFLAG(IS_WIN)
+ #include "services/device/usb/usb_service_win.h"
++#elif BUILDFLAG(IS_OPENBSD)
++#include "services/device/usb/usb_service_impl.h"
++#elif BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
++#include "services/device/usb/usb_service_fake.h"
+ #endif
+ 
+ namespace device {
+@@ -48,12 +52,14 @@ constexpr base::TaskTraits UsbService::k
+ std::unique_ptr<UsbService> UsbService::Create() {
+ #if BUILDFLAG(IS_ANDROID)
+   return base::WrapUnique(new UsbServiceAndroid());
+-#elif defined(USE_UDEV)
++#elif defined(USE_UDEV) && !BUILDFLAG(IS_BSD)
+   return base::WrapUnique(new UsbServiceLinux());
+ #elif BUILDFLAG(IS_WIN)
+   return base::WrapUnique(new UsbServiceWin());
+ #elif BUILDFLAG(IS_MAC)
+   return base::WrapUnique(new UsbServiceImpl());
++#elif BUILDFLAG(IS_BSD)
++  return base::WrapUnique(new UsbServiceImpl());
+ #else
+   return nullptr;
+ #endif
diff --git a/chromium/patches/patch-services_device_usb_usb__service__fake.cc b/chromium/patches/patch-services_device_usb_usb__service__fake.cc
new file mode 100644
index 0000000000..221b1cad97
--- /dev/null
+++ b/chromium/patches/patch-services_device_usb_usb__service__fake.cc
@@ -0,0 +1,58 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/usb/usb_service_fake.cc.orig	2024-08-01 14:09:00.383248542 +0000
++++ services/device/usb/usb_service_fake.cc
+@@ -0,0 +1,49 @@
++// Copyright 2014 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "services/device/usb/usb_service_fake.h"
++
++#include <stdint.h>
++
++#include <list>
++#include <memory>
++#include <set>
++#include <utility>
++
++#include "base/barrier_closure.h"
++#include "base/containers/contains.h"
++#include "base/location.h"
++#include "base/memory/ref_counted_memory.h"
++#include "base/memory/weak_ptr.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/strings/utf_string_conversions.h"
++#include "base/task/sequenced_task_runner.h"
++#include "base/task/single_thread_task_runner.h"
++#include "base/task/thread_pool.h"
++#include "base/threading/scoped_blocking_call.h"
++#include "build/build_config.h"
++#include "components/device_event_log/device_event_log.h"
++#include "services/device/usb/usb_device_handle.h"
++#include "services/device/usb/usb_error.h"
++#include "services/device/usb/webusb_descriptors.h"
++
++namespace device {
++
++UsbServiceImpl::UsbServiceImpl()
++    : task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
++  NOTIMPLEMENTED();
++}
++
++UsbServiceImpl::~UsbServiceImpl() {
++  NOTIMPLEMENTED();
++  NotifyWillDestroyUsbService();
++}
++
++void UsbServiceImpl::GetDevices(GetDevicesCallback callback) {
++  NOTIMPLEMENTED();
++  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
++  UsbService::GetDevices(std::move(callback));
++}
++
++}  // namespace device
diff --git a/chromium/patches/patch-services_device_usb_usb__service__fake.h b/chromium/patches/patch-services_device_usb_usb__service__fake.h
new file mode 100644
index 0000000000..836fef8cfc
--- /dev/null
+++ b/chromium/patches/patch-services_device_usb_usb__service__fake.h
@@ -0,0 +1,57 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/device/usb/usb_service_fake.h.orig	2024-08-01 14:09:00.384441153 +0000
++++ services/device/usb/usb_service_fake.h
+@@ -0,0 +1,48 @@
++// Copyright 2015 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef SERVICES_DEVICE_USB_USB_SERVICE_IMPL_H_
++#define SERVICES_DEVICE_USB_USB_SERVICE_IMPL_H_
++
++#include "services/device/usb/usb_service.h"
++
++#include <stddef.h>
++
++#include <map>
++#include <set>
++#include <string>
++#include <vector>
++
++#include "base/containers/queue.h"
++#include "base/memory/weak_ptr.h"
++#include "build/build_config.h"
++#include "services/device/usb/usb_context.h"
++#include "services/device/usb/usb_device_impl.h"
++#include "third_party/abseil-cpp/absl/types/optional.h"
++
++namespace device {
++
++class UsbDeviceImpl;
++
++class UsbServiceImpl final : public UsbService {
++ public:
++  UsbServiceImpl();
++
++  UsbServiceImpl(const UsbServiceImpl&) = delete;
++  UsbServiceImpl& operator=(const UsbServiceImpl&) = delete;
++
++  ~UsbServiceImpl() override;
++
++ private:
++  // device::UsbService implementation
++  void GetDevices(GetDevicesCallback callback) override;
++
++  void OnUsbContext(scoped_refptr<UsbContext> context);
++
++  scoped_refptr<base::SequencedTaskRunner> task_runner_;
++};
++
++}  // namespace device
++
++#endif  // SERVICES_DEVICE_USB_USB_SERVICE_IMPL_H_
diff --git a/chromium/patches/patch-services_device_wake__lock_power__save__blocker_BUILD.gn b/chromium/patches/patch-services_device_wake__lock_power__save__blocker_BUILD.gn
deleted file mode 100644
index a7af44d5aa..0000000000
--- a/chromium/patches/patch-services_device_wake__lock_power__save__blocker_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/device/wake_lock/power_save_blocker/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ services/device/wake_lock/power_save_blocker/BUILD.gn
-@@ -40,7 +40,7 @@ source_set("power_save_blocker") {
-       "//chromeos/dbus/power",
-       "//chromeos/dbus/power:power_manager_proto",
-     ]
--  } else if (is_linux && use_dbus) {
-+  } else if ((is_linux || is_bsd) && use_dbus) {
-     sources += [ "power_save_blocker_linux.cc" ]
-     deps += [
-       "//dbus",
diff --git a/chromium/patches/patch-services_network_BUILD.gn b/chromium/patches/patch-services_network_BUILD.gn
index 9f39a1c2c5..b9c89ffa74 100644
--- a/chromium/patches/patch-services_network_BUILD.gn
+++ b/chromium/patches/patch-services_network_BUILD.gn
@@ -1,25 +1,16 @@
 $NetBSD$
 
---- services/network/BUILD.gn.orig	2020-06-25 09:31:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/network/BUILD.gn.orig	2024-07-24 02:44:43.697465400 +0000
 +++ services/network/BUILD.gn
-@@ -256,13 +256,19 @@ jumbo_component("network_service") {
-     deps += [ "//components/certificate_transparency" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [
-       "//sandbox/linux:sandbox_services",
-       "//services/service_manager/sandbox:sandbox",
+@@ -418,7 +418,6 @@ if (is_linux || is_chromeos) {
+     ]
+     deps = [
+       "//base:base",
+-      "//sandbox/linux:sandbox_services",
+       "//sandbox/policy:policy",
      ]
-   }
- 
-+  if (is_bsd) {
-+    deps -= [
-+      "//sandbox/linux:sandbox_services",
-+    ]
-+  }
-+
-   if (is_android) {
-     deps += [
-       "//crypto",
+     configs += [ "//build/config/compiler:wexit_time_destructors" ]
diff --git a/chromium/patches/patch-services_network_network__context.cc b/chromium/patches/patch-services_network_network__context.cc
index ff5e9c07c5..63d2fa0202 100644
--- a/chromium/patches/patch-services_network_network__context.cc
+++ b/chromium/patches/patch-services_network_network__context.cc
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- services/network/network_context.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/network/network_context.cc.orig	2024-07-24 02:44:43.717467300 +0000
 +++ services/network/network_context.cc
-@@ -1819,7 +1819,7 @@ URLRequestContextOwner NetworkContext::M
+@@ -589,7 +589,7 @@ NetworkContext::NetworkContextHttpAuthPr
+ NetworkContext::NetworkContextHttpAuthPreferences::
+     ~NetworkContextHttpAuthPreferences() = default;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ bool NetworkContext::NetworkContextHttpAuthPreferences::AllowGssapiLibraryLoad()
+     const {
+   if (network_service_) {
+@@ -2355,7 +2355,7 @@ void NetworkContext::OnHttpAuthDynamicPa
+       http_auth_dynamic_network_service_params->android_negotiate_account_type);
+ #endif  // BUILDFLAG(IS_ANDROID)
  
-     net::CookieCryptoDelegate* crypto_delegate = nullptr;
-     if (params_->enable_encrypted_cookies) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
-       DCHECK(network_service_->os_crypt_config_set())
-           << "NetworkService::SetCryptConfig must be called before creating a "
-              "NetworkContext with encrypted cookies.";
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   http_auth_merged_preferences_.set_allow_gssapi_library_load(
+       http_auth_dynamic_network_service_params->allow_gssapi_library_load);
+ #endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
diff --git a/chromium/patches/patch-services_network_network__context.h b/chromium/patches/patch-services_network_network__context.h
new file mode 100644
index 0000000000..844ef4aa75
--- /dev/null
+++ b/chromium/patches/patch-services_network_network__context.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/network/network_context.h.orig	2024-07-24 02:44:43.717467300 +0000
++++ services/network/network_context.h
+@@ -685,7 +685,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) 
+    public:
+     explicit NetworkContextHttpAuthPreferences(NetworkService* network_service);
+     ~NetworkContextHttpAuthPreferences() override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     bool AllowGssapiLibraryLoad() const override;
+ #endif  // BUILDFLAG(IS_LINUX)
+    private:
diff --git a/chromium/patches/patch-services_network_network__sandbox__hook__linux.cc b/chromium/patches/patch-services_network_network__sandbox__hook__linux.cc
index 3f9f5f36ca..66193cb6ed 100644
--- a/chromium/patches/patch-services_network_network__sandbox__hook__linux.cc
+++ b/chromium/patches/patch-services_network_network__sandbox__hook__linux.cc
@@ -1,20 +1,43 @@
 $NetBSD$
 
---- services/network/network_sandbox_hook_linux.cc.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/network/network_sandbox_hook_linux.cc.orig	2024-07-24 02:44:43.721467700 +0000
 +++ services/network/network_sandbox_hook_linux.cc
-@@ -14,6 +14,7 @@ using sandbox::syscall_broker::MakeBroke
- namespace network {
+@@ -15,11 +15,14 @@
+ #include "sandbox/linux/syscall_broker/broker_file_permission.h"
+ #include "sandbox/policy/features.h"
  
- bool NetworkPreSandboxHook(service_manager::SandboxLinux::Options options) {
-+#if !defined(OS_BSD)
-   auto* instance = service_manager::SandboxLinux::GetInstance();
++#if !BUILDFLAG(IS_BSD)
+ using sandbox::syscall_broker::BrokerFilePermission;
+ using sandbox::syscall_broker::MakeBrokerCommandSet;
++#endif
  
-   // TODO(tsepez): remove universal permission under filesytem root.
-@@ -32,6 +33,7 @@ bool NetworkPreSandboxHook(service_manag
-       service_manager::SandboxLinux::PreSandboxHook(), options);
+ namespace network {
  
-   instance->EngageNamespaceSandboxIfPossible();
++#if !BUILDFLAG(IS_BSD)
+ sandbox::syscall_broker::BrokerCommandSet GetNetworkBrokerCommandSet() {
+   return MakeBrokerCommandSet({
+       sandbox::syscall_broker::COMMAND_ACCESS,
+@@ -103,9 +106,11 @@ void LoadNetworkLibraries() {
+   }
+ }
+ #endif  // BUILDFLAG(IS_CHROMEOS)
 +#endif
+ 
+ bool NetworkPreSandboxHook(std::vector<std::string> network_context_parent_dirs,
+                            sandbox::policy::SandboxLinux::Options options) {
++#if !BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_CHROMEOS)
+   LoadNetworkLibraries();
+ #endif
+@@ -118,6 +123,7 @@ bool NetworkPreSandboxHook(std::vector<s
+       GetNetworkBrokerCommandSet(),
+       GetNetworkFilePermissions(std::move(network_context_parent_dirs)),
+       options);
++#endif
+ 
    return true;
  }
- 
diff --git a/chromium/patches/patch-services_network_network__sandbox__hook__linux.h b/chromium/patches/patch-services_network_network__sandbox__hook__linux.h
new file mode 100644
index 0000000000..cdc9b812c2
--- /dev/null
+++ b/chromium/patches/patch-services_network_network__sandbox__hook__linux.h
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/network/network_sandbox_hook_linux.h.orig	2024-07-24 02:44:43.721467700 +0000
++++ services/network/network_sandbox_hook_linux.h
+@@ -6,7 +6,11 @@
+ #define SERVICES_NETWORK_NETWORK_SANDBOX_HOOK_LINUX_H_
+ 
+ #include "base/component_export.h"
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ 
+ namespace network {
+ 
diff --git a/chromium/patches/patch-services_network_network__service.cc b/chromium/patches/patch-services_network_network__service.cc
index 73befb89a3..4137a91307 100644
--- a/chromium/patches/patch-services_network_network__service.cc
+++ b/chromium/patches/patch-services_network_network__service.cc
@@ -1,22 +1,35 @@
 $NetBSD$
 
---- services/network/network_service.cc.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/network/network_service.cc.orig	2024-07-24 02:44:43.721467700 +0000
 +++ services/network/network_service.cc
-@@ -67,7 +67,7 @@
+@@ -99,7 +99,7 @@
  #include "third_party/boringssl/src/include/openssl/cpu.h"
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
- #include "components/os_crypt/key_storage_config_linux.h"
- #endif
+-#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || \
++#if ((BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_BSD)) || \
+     BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+ #include "components/os_crypt/sync/key_storage_config_linux.h"
+@@ -983,7 +983,7 @@ void NetworkService::SetExplicitlyAllowe
+   net::SetExplicitlyAllowedPorts(ports);
+ }
  
-@@ -646,7 +646,7 @@ void NetworkService::OnCertDBChanged() {
-   net::CertDatabase::GetInstance()->NotifyObserversCertDBChanged();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void NetworkService::SetGssapiLibraryLoadObserver(
+     mojo::PendingRemote<mojom::GssapiLibraryLoadObserver>
+         gssapi_library_load_observer) {
+@@ -1065,7 +1065,7 @@ NetworkService::CreateHttpAuthHandlerFac
+   );
  }
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- void NetworkService::SetCryptConfig(mojom::CryptConfigPtr crypt_config) {
- #if !BUILDFLAG(IS_CHROMECAST)
-   DCHECK(!os_crypt_config_set_);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void NetworkService::OnBeforeGssapiLibraryLoad() {
+   if (gssapi_library_load_observer_.is_bound()) {
+     gssapi_library_load_observer_->OnBeforeGssapiLibraryLoad();
diff --git a/chromium/patches/patch-services_network_network__service.h b/chromium/patches/patch-services_network_network__service.h
index 5b73173e7e..6b9b1d4dfb 100644
--- a/chromium/patches/patch-services_network_network__service.h
+++ b/chromium/patches/patch-services_network_network__service.h
@@ -1,13 +1,35 @@
 $NetBSD$
 
---- services/network/network_service.h.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/network/network_service.h.orig	2024-07-24 02:44:43.721467700 +0000
 +++ services/network/network_service.h
-@@ -192,7 +192,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) 
-       base::span<const uint8_t> config,
-       mojom::NetworkService::UpdateLegacyTLSConfigCallback callback) override;
-   void OnCertDBChanged() override;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   void SetCryptConfig(mojom::CryptConfigPtr crypt_config) override;
- #endif
- #if defined(OS_WIN) || (defined(OS_MACOSX) && !defined(OS_IOS))
+@@ -238,7 +238,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) 
+       const std::vector<ContentSettingPatternSource>& settings) override;
+ 
+   void SetExplicitlyAllowedPorts(const std::vector<uint16_t>& ports) override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   void SetGssapiLibraryLoadObserver(
+       mojo::PendingRemote<mojom::GssapiLibraryLoadObserver>
+           gssapi_library_load_observer) override;
+@@ -264,7 +264,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) 
+   std::unique_ptr<net::HttpAuthHandlerFactory> CreateHttpAuthHandlerFactory(
+       NetworkContext* network_context);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // This is called just before a GSSAPI library may be loaded.
+   void OnBeforeGssapiLibraryLoad();
+ #endif  // BUILDFLAG(IS_LINUX)
+@@ -494,7 +494,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) 
+   // leaking stale listeners between tests.
+   std::unique_ptr<net::NetworkChangeNotifier> mock_network_change_notifier_;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   mojo::Remote<mojom::GssapiLibraryLoadObserver> gssapi_library_load_observer_;
+ #endif  // BUILDFLAG(IS_LINUX)
+ 
diff --git a/chromium/patches/patch-services_network_public_cpp_BUILD.gn b/chromium/patches/patch-services_network_public_cpp_BUILD.gn
new file mode 100644
index 0000000000..17cfaaa395
--- /dev/null
+++ b/chromium/patches/patch-services_network_public_cpp_BUILD.gn
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/network/public/cpp/BUILD.gn.orig	2024-07-24 02:44:43.729468300 +0000
++++ services/network/public/cpp/BUILD.gn
+@@ -515,7 +515,7 @@ component("cpp_base") {
+     sources += [ "transferable_directory_fuchsia.cc" ]
+   }
+ 
+-  if (is_linux) {
++  if (is_linux && !is_bsd) {
+     sources += [
+       "network_interface_change_listener_mojom_traits.cc",
+       "network_interface_change_listener_mojom_traits.h",
+@@ -637,7 +637,7 @@ source_set("tests") {
+     ]
+   }
+ 
+-  if (is_linux) {
++  if ((is_linux) && !is_bsd) {
+     sources += [ "network_interface_change_listener_mojom_traits_unittest.cc" ]
+   }
+ 
diff --git a/chromium/patches/patch-services_network_public_cpp_features.cc b/chromium/patches/patch-services_network_public_cpp_features.cc
new file mode 100644
index 0000000000..3c45d14fc9
--- /dev/null
+++ b/chromium/patches/patch-services_network_public_cpp_features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/network/public/cpp/features.cc.orig	2024-07-24 02:44:43.741469600 +0000
++++ services/network/public/cpp/features.cc
+@@ -120,7 +120,7 @@ BASE_FEATURE(kSplitAuthCacheByNetworkIso
+ BASE_FEATURE(kDnsOverHttpsUpgrade,
+              "DnsOverHttpsUpgrade",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-services_network_public_mojom_BUILD.gn b/chromium/patches/patch-services_network_public_mojom_BUILD.gn
index c55f20a9aa..61b3870d74 100644
--- a/chromium/patches/patch-services_network_public_mojom_BUILD.gn
+++ b/chromium/patches/patch-services_network_public_mojom_BUILD.gn
@@ -1,13 +1,31 @@
 $NetBSD$
 
---- services/network/public/mojom/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/network/public/mojom/BUILD.gn.orig	2024-07-24 02:44:43.761471500 +0000
 +++ services/network/public/mojom/BUILD.gn
-@@ -506,7 +506,7 @@ mojom("mojom") {
+@@ -529,11 +529,11 @@ mojom("url_loader_base") {
+   }
+ 
+   enabled_features = []
+-  if (is_android || is_chromeos || is_linux) {
++  if (!is_bsd && (is_android || is_chromeos || is_linux)) {
+     enabled_features += [ "network_change_notifier_in_browser" ]
+   }
  
-   # This is only needed on desktop linux, but the defines make this difficult
-   # because IS_CHROMECAST is not available in build/build_config.h.
--  if (is_linux && !is_chromeos) {
-+  if ((is_linux || is_bsd) && !is_chromeos) {
-     enabled_features += [ "needs_crypt_config" ]
+-  if (is_linux) {
++  if (is_linux && !is_bsd) {
+     # TODO(crbug.com/40263697): Remove this once is_linux in the mojom IDL does
+     # not include lacros.
+     enabled_features += [ "use_network_interface_change_listener" ]
+@@ -1495,7 +1495,7 @@ mojom("mojom") {
+     }
    }
  
+-  if (is_linux) {
++  if (is_linux && !is_bsd) {
+     # TODO(crbug.com/40263697): Remove this once is_linux in the mojom IDL does
+     # not include lacros.
+     enabled_features += [ "use_network_interface_change_listener" ]
diff --git a/chromium/patches/patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h b/chromium/patches/patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h
new file mode 100644
index 0000000000..cee90bf274
--- /dev/null
+++ b/chromium/patches/patch-services_network_shared__dictionary_shared__dictionary__writer__in__memory.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/network/shared_dictionary/shared_dictionary_writer_in_memory.h.orig	2024-07-24 02:44:43.781473400 +0000
++++ services/network/shared_dictionary/shared_dictionary_writer_in_memory.h
+@@ -9,6 +9,8 @@
+ #include <string>
+ #include <vector>
+ 
++#include <vector>
++
+ #include "base/component_export.h"
+ #include "base/functional/callback.h"
+ #include "crypto/secure_hash.h"
diff --git a/chromium/patches/patch-services_on__device__model_on__device__model__service.h b/chromium/patches/patch-services_on__device__model_on__device__model__service.h
new file mode 100644
index 0000000000..458de6922d
--- /dev/null
+++ b/chromium/patches/patch-services_on__device__model_on__device__model__service.h
@@ -0,0 +1,28 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/on_device_model/on_device_model_service.h.orig	2024-07-24 02:44:43.805475700 +0000
++++ services/on_device_model/on_device_model_service.h
+@@ -22,6 +22,10 @@
+ #include "sandbox/policy/linux/sandbox_linux.h"
+ #endif
+ 
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#endif
++
+ namespace on_device_model {
+ 
+ class COMPONENT_EXPORT(ON_DEVICE_MODEL) OnDeviceModelService
+@@ -35,7 +39,7 @@ class COMPONENT_EXPORT(ON_DEVICE_MODEL) 
+   // Must be called in the service's process after the run loop finished.
+   [[nodiscard]] static bool Shutdown();
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   static void AddSandboxLinuxOptions(
+       sandbox::policy::SandboxLinux::Options& options);
+ #endif
diff --git a/chromium/patches/patch-services_on__device__model_pre__sandbox__init.cc b/chromium/patches/patch-services_on__device__model_pre__sandbox__init.cc
new file mode 100644
index 0000000000..11e0c78f4f
--- /dev/null
+++ b/chromium/patches/patch-services_on__device__model_pre__sandbox__init.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/on_device_model/pre_sandbox_init.cc.orig	2024-07-24 02:44:43.805475700 +0000
++++ services/on_device_model/pre_sandbox_init.cc
+@@ -14,7 +14,7 @@
+ #include "services/on_device_model/ml/chrome_ml.h"  // nogncheck
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "gpu/config/gpu_info_collector.h"                    // nogncheck
+ #include "third_party/dawn/include/dawn/dawn_proc.h"          // nogncheck
+ #include "third_party/dawn/include/dawn/native/DawnNative.h"  // nogncheck
+@@ -31,7 +31,7 @@ namespace on_device_model {
+ 
+ namespace {
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ constexpr uint32_t kVendorIdAMD = 0x1002;
+ constexpr uint32_t kVendorIdIntel = 0x8086;
+ constexpr uint32_t kVendorIdNVIDIA = 0x10DE;
+@@ -80,7 +80,7 @@ bool OnDeviceModelService::PreSandboxIni
+   }
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Warm any relevant drivers before attempting to bring up the sandbox. For
+   // good measure we initialize a device instance for any adapter with an
+   // appropriate backend on top of any integrated or discrete GPU.
+@@ -116,7 +116,7 @@ bool OnDeviceModelService::PreSandboxIni
+   return true;
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // static
+ void OnDeviceModelService::AddSandboxLinuxOptions(
+     sandbox::policy::SandboxLinux::Options& options) {
diff --git a/chromium/patches/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc b/chromium/patches/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc
index 431a196d37..86cb71d3d9 100644
--- a/chromium/patches/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc
+++ b/chromium/patches/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc
@@ -1,31 +1,71 @@
 $NetBSD$
 
---- services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc.orig	2024-07-24 02:44:43.825477800 +0000
 +++ services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc
-@@ -43,7 +43,7 @@ namespace {
- uint32_t CalculatePrivateFootprintKb(const mojom::RawOSMemDump& os_dump,
+@@ -54,7 +54,7 @@ uint32_t CalculatePrivateFootprintKb(con
                                       uint32_t shared_resident_kb) {
    DCHECK(os_dump.platform_private_footprint);
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
    uint64_t rss_anon_bytes = os_dump.platform_private_footprint->rss_anon_bytes;
    uint64_t vm_swap_bytes = os_dump.platform_private_footprint->vm_swap_bytes;
    return (rss_anon_bytes + vm_swap_bytes) / 1024;
-@@ -82,7 +82,7 @@ memory_instrumentation::mojom::OSMemDump
+@@ -83,7 +83,7 @@ memory_instrumentation::mojom::OSMemDump
    os_dump->is_peak_rss_resettable = internal_os_dump.is_peak_rss_resettable;
    os_dump->private_footprint_kb =
        CalculatePrivateFootprintKb(internal_os_dump, shared_resident_kb);
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
    os_dump->private_footprint_swap_kb =
        internal_os_dump.platform_private_footprint->vm_swap_bytes / 1024;
  #endif
-@@ -243,7 +243,7 @@ void QueuedRequestDispatcher::SetUpAndDi
+@@ -219,7 +219,7 @@ void QueuedRequestDispatcher::SetUpAndDi
  
  // On most platforms each process can dump data about their own process
  // so ask each process to do so Linux is special see below.
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
      request->pending_responses.insert({client_info.pid, ResponseType::kOSDump});
      client->RequestOSMemoryDump(request->memory_map_option(),
                                  {base::kNullProcessId},
+@@ -234,7 +234,7 @@ void QueuedRequestDispatcher::SetUpAndDi
+ 
+ // In some cases, OS stats can only be dumped from a privileged process to
+ // get around to sandboxing/selinux restrictions (see crbug.com/461788).
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   std::vector<base::ProcessId> pids;
+   mojom::ClientProcess* browser_client = nullptr;
+   base::ProcessId browser_client_pid = base::kNullProcessId;
+@@ -280,7 +280,7 @@ void QueuedRequestDispatcher::SetUpAndDi
+     const OsCallback& os_callback) {
+ // On Linux, OS stats can only be dumped from a privileged process to
+ // get around to sandboxing/selinux restrictions (see crbug.com/461788).
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   mojom::ClientProcess* browser_client = nullptr;
+   base::ProcessId browser_client_pid = 0;
+   for (const auto& client_info : clients) {
+@@ -330,7 +330,7 @@ QueuedRequestDispatcher::FinalizeVmRegio
+     // each client process provides 1 OS dump, % the case where the client is
+     // disconnected mid dump.
+     OSMemDumpMap& extra_os_dumps = response.second.os_dumps;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     for (auto& kv : extra_os_dumps) {
+       auto pid = kv.first == base::kNullProcessId ? original_pid : kv.first;
+       DCHECK(results.find(pid) == results.end());
+@@ -391,7 +391,7 @@ void QueuedRequestDispatcher::Finalize(Q
+     // crash). In the latter case (OS_LINUX) we expect the full map to come
+     // from the browser process response.
+     OSMemDumpMap& extra_os_dumps = response.second.os_dumps;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     for (const auto& kv : extra_os_dumps) {
+       auto pid = kv.first == base::kNullProcessId ? original_pid : kv.first;
+       DCHECK_EQ(pid_to_os_dump[pid], nullptr);
diff --git a/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn
new file mode 100644
index 0000000000..feb528310c
--- /dev/null
+++ b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/resource_coordinator/public/cpp/memory_instrumentation/BUILD.gn.orig	2024-07-24 02:44:43.825477800 +0000
++++ services/resource_coordinator/public/cpp/memory_instrumentation/BUILD.gn
+@@ -29,10 +29,14 @@ component("memory_instrumentation") {
+     sources += [ "os_metrics_win.cc" ]
+   }
+ 
+-  if (is_android || is_linux || is_chromeos) {
++  if ((is_android || is_linux || is_chromeos) && !is_bsd) {
+     sources += [ "os_metrics_linux.cc" ]
+   }
+ 
++  if (is_bsd) {
++    sources += [ "os_metrics_bsd.cc" ]
++  }
++
+   if (is_fuchsia) {
+     sources += [ "os_metrics_fuchsia.cc" ]
+   }
diff --git a/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h
index 3fa43465e9..906b58e6f2 100644
--- a/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h
+++ b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h.orig	2024-07-24 02:44:43.825477800 +0000
 +++ services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h
-@@ -28,7 +28,7 @@ class COMPONENT_EXPORT(
+@@ -45,7 +45,7 @@ class COMPONENT_EXPORT(
                                      mojom::RawOSMemDump*);
    static std::vector<mojom::VmRegionPtr> GetProcessMemoryMaps(base::ProcessId);
  
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
    static void SetProcSmapsForTesting(FILE*);
- #endif  // defined(OS_LINUX) || defined(OS_ANDROID)
- 
-@@ -44,7 +44,7 @@ class COMPONENT_EXPORT(
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
+         // BUILDFLAG(IS_ANDROID)
+@@ -62,7 +62,7 @@ class COMPONENT_EXPORT(
    static std::vector<mojom::VmRegionPtr> GetProcessModules(base::ProcessId);
  #endif
  
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
    // Provides information on the dump state of resident pages. These values are
    // written to logs. New enum values can be added, but existing enums must
    // never be renumbered or deleted and reused.
diff --git a/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc
new file mode 100644
index 0000000000..42405538b3
--- /dev/null
+++ b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc
@@ -0,0 +1,75 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc.orig	2024-08-01 14:09:00.473365973 +0000
++++ services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc
+@@ -0,0 +1,66 @@
++// Copyright 2022 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 "services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h"
++
++#include "base/memory/page_size.h"
++#include "base/process/process.h"
++#include "base/process/process_handle.h"
++
++#include <sys/sysctl.h>
++
++#include <vector>
++
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_NETBSD)
++#define vm_rssize info.p_vm_rssize
++#elif BUILDFLAG(IS_FREEBSD)
++#include <sys/user.h>
++#define vm_rssize info.ki_rssize
++#endif
++
++namespace memory_instrumentation {
++
++// static
++bool OSMetrics::FillOSMemoryDump(base::ProcessId pid,
++                                 mojom::RawOSMemDump* dump) {
++  base::Process process = pid == base::kNullProcessId
++                              ? base::Process::Current()
++                              : base::Process::Open(pid);
++  const size_t kPageSize = base::GetPageSize();
++#if BUILDFLAG(IS_NETBSD)
++  struct kinfo_proc2 info;
++  size_t length = sizeof(struct kinfo_proc2);
++#else
++  struct kinfo_proc info;
++  size_t length = sizeof(struct kinfo_proc);
++#endif
++#if BUILDFLAG(IS_OPENBSD)
++  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process.Handle(),
++                static_cast<int>(length), 1 };
++#elif BUILDFLAG(IS_FREEBSD)
++  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process.Handle() };
++#elif BUILDFLAG(IS_NETBSD)
++  int mib[] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, process.Handle(),
++                sizeof(struct kinfo_proc2), 1 };
++#endif
++
++  if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0)
++    return false;
++
++  dump->resident_set_kb = (vm_rssize * kPageSize) / 1024;
++  dump->platform_private_footprint->rss_anon_bytes =
++      vm_rssize * kPageSize;
++  dump->platform_private_footprint->vm_swap_bytes = 0;
++
++  return true;
++}
++
++// static
++std::vector<mojom::VmRegionPtr> OSMetrics::GetProcessMemoryMaps(
++    base::ProcessId) {
++  NOTIMPLEMENTED();
++  return std::vector<mojom::VmRegionPtr>();
++}
++
++}  // namespace memory_instrumentation
diff --git a/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__linux.cc b/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__linux.cc
deleted file mode 100644
index 473c6a660d..0000000000
--- a/chromium/patches/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__linux.cc
+++ /dev/null
@@ -1,75 +0,0 @@
-$NetBSD$
-
---- services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_linux.cc.orig	2020-07-15 18:56:01.000000000 +0000
-+++ services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_linux.cc
-@@ -23,8 +23,10 @@
- #include "build/build_config.h"
- #include "services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h"
- 
-+#if !defined(OS_BSD)
- // Symbol with virtual address of the start of ELF header of the current binary.
- extern char __ehdr_start;
-+#endif
- 
- namespace memory_instrumentation {
- 
-@@ -36,6 +38,7 @@ using mojom::VmRegionPtr;
- const char kClearPeakRssCommand[] = "5";
- const uint32_t kMaxLineSize = 4096;
- 
-+#if !defined(OS_BSD)
- // TODO(chiniforooshan): Many of the utility functions in this anonymous
- // namespace should move to base/process/process_metrics_linux.cc to make the
- // code a lot cleaner.  However, we should do so after we made sure the metrics
-@@ -227,6 +230,7 @@ uint32_t ReadLinuxProcSmapsFile(FILE* sm
-   }
-   return num_valid_regions;
- }
-+#endif
- 
- }  // namespace
- 
-@@ -240,6 +244,9 @@ void OSMetrics::SetProcSmapsForTesting(F
- // static
- bool OSMetrics::FillOSMemoryDump(base::ProcessId pid,
-                                  mojom::RawOSMemDump* dump) {
-+#if defined(OS_BSD)
-+  return false;
-+#else
-   // TODO(chiniforooshan): There is no need to read both /statm and /status
-   // files. Refactor to get everything from /status using ProcessMetric.
-   auto statm_file = GetProcPidDir(pid).Append("statm");
-@@ -296,10 +303,15 @@ bool OSMetrics::FillOSMemoryDump(base::P
- #endif  //  defined(OS_ANDROID)
- 
-   return true;
-+#endif
- }
- 
- // static
- std::vector<VmRegionPtr> OSMetrics::GetProcessMemoryMaps(base::ProcessId pid) {
-+#if defined(OS_BSD)
-+  NOTIMPLEMENTED();
-+  return std::vector<VmRegionPtr>();
-+#else
-   std::vector<VmRegionPtr> maps;
-   uint32_t res = 0;
-   if (g_proc_smaps_for_testing) {
-@@ -317,8 +329,10 @@ std::vector<VmRegionPtr> OSMetrics::GetP
-     return std::vector<VmRegionPtr>();
- 
-   return maps;
-+#endif
- }
- 
-+#if !defined(OS_BSD)
- // static
- OSMetrics::MappedAndResidentPagesDumpState OSMetrics::GetMappedAndResidentPages(
-     const size_t start_address,
-@@ -400,5 +414,6 @@ size_t OSMetrics::GetPeakResidentSetSize
-   }
-   return 0;
- }
-+#endif
- 
- }  // namespace memory_instrumentation
diff --git a/chromium/patches/patch-services_resource__coordinator_public_mojom_BUILD.gn b/chromium/patches/patch-services_resource__coordinator_public_mojom_BUILD.gn
deleted file mode 100644
index 6b1243ab54..0000000000
--- a/chromium/patches/patch-services_resource__coordinator_public_mojom_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/resource_coordinator/public/mojom/BUILD.gn.orig	2020-07-15 18:56:01.000000000 +0000
-+++ services/resource_coordinator/public/mojom/BUILD.gn
-@@ -20,7 +20,7 @@ mojom_component("mojom") {
-   ]
- 
-   enabled_features = []
--  if (is_linux || is_android) {
-+  if (is_linux || is_android || is_bsd) {
-     enabled_features += [ "private_swap_info" ]
-   }
- }
diff --git a/chromium/patches/patch-services_screen__ai_public_cpp_utilities.cc b/chromium/patches/patch-services_screen__ai_public_cpp_utilities.cc
new file mode 100644
index 0000000000..85d3ad14e3
--- /dev/null
+++ b/chromium/patches/patch-services_screen__ai_public_cpp_utilities.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/screen_ai/public/cpp/utilities.cc.orig	2024-07-24 02:44:43.829478000 +0000
++++ services/screen_ai/public/cpp/utilities.cc
+@@ -19,7 +19,7 @@ namespace screen_ai {
+ 
+ namespace {
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ constexpr char kBinaryPathSwitch[] = "screen-ai-binary";
+ #endif
+ 
+@@ -40,7 +40,7 @@ constexpr char kScreenAIDlcRootPath[] =
+ #endif
+ 
+ #if BUILDFLAG(ENABLE_SCREEN_AI_BROWSERTESTS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ constexpr base::FilePath::CharType kScreenAIResourcePathForTests[] =
+     FILE_PATH_LITERAL("third_party/screen-ai/linux/resources");
+ #elif BUILDFLAG(IS_MAC)
+@@ -127,7 +127,7 @@ base::FilePath GetComponentBinaryPathFor
+ 
+ const char* GetBinaryPathSwitch() {
+   // This is only used on Linux and ChromeOS.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   return kBinaryPathSwitch;
+ #else
+   return nullptr;
diff --git a/chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc b/chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc
new file mode 100644
index 0000000000..b2255e101d
--- /dev/null
+++ b/chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.cc.orig	2024-07-24 02:44:43.829478000 +0000
++++ services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.cc
+@@ -53,6 +53,7 @@ bool ScreenAIPreSandboxHook(base::FilePa
+     }
+   }
+ 
++#if !BUILDFLAG(IS_BSD)
+   auto* instance = sandbox::policy::SandboxLinux::GetInstance();
+ 
+   std::vector<BrokerFilePermission> permissions{
+@@ -75,6 +76,7 @@ bool ScreenAIPreSandboxHook(base::FilePa
+                             sandbox::syscall_broker::COMMAND_OPEN}),
+       permissions, options);
+   instance->EngageNamespaceSandboxIfPossible();
++#endif
+ 
+   return true;
+ }
diff --git a/chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h b/chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h
new file mode 100644
index 0000000000..f08f095051
--- /dev/null
+++ b/chromium/patches/patch-services_screen__ai_sandbox_screen__ai__sandbox__hook__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h.orig	2024-07-24 02:44:43.829478000 +0000
++++ services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h
+@@ -6,7 +6,13 @@
+ #define SERVICES_SCREEN_AI_SANDBOX_SCREEN_AI_SANDBOX_HOOK_LINUX_H_
+ 
+ #include "base/files/file_path.h"
++#include "build/build_config.h"
++
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#else
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ 
+ namespace screen_ai {
+ 
diff --git a/chromium/patches/patch-services_service__manager_BUILD.gn b/chromium/patches/patch-services_service__manager_BUILD.gn
new file mode 100644
index 0000000000..1b4858518b
--- /dev/null
+++ b/chromium/patches/patch-services_service__manager_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/service_manager/BUILD.gn.orig	2024-07-24 02:44:43.829478000 +0000
++++ services/service_manager/BUILD.gn
+@@ -66,7 +66,7 @@ source_set("service_manager") {
+     ]
+   }
+ 
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
+     deps += [ "//sandbox/linux:sandbox_services" ]
+   }
+ }
diff --git a/chromium/patches/patch-services_service__manager_embedder_BUILD.gn b/chromium/patches/patch-services_service__manager_embedder_BUILD.gn
deleted file mode 100644
index 1657dbf863..0000000000
--- a/chromium/patches/patch-services_service__manager_embedder_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- services/service_manager/embedder/BUILD.gn.orig	2020-06-25 09:31:34.000000000 +0000
-+++ services/service_manager/embedder/BUILD.gn
-@@ -58,7 +58,7 @@ if (!is_ios) {
-       deps += [ "//ui/base" ]
-     }
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       deps += [ ":set_process_title_linux" ]
-     }
- 
-@@ -79,7 +79,7 @@ source_set("embedder_result_codes") {
-   sources = [ "result_codes.h" ]
- }
- 
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   source_set("set_process_title_linux") {
-     public = [ "set_process_title_linux.h" ]
-     sources = [ "set_process_title_linux.cc" ]
diff --git a/chromium/patches/patch-services_service__manager_embedder_main.cc b/chromium/patches/patch-services_service__manager_embedder_main.cc
deleted file mode 100644
index 4ff35f7657..0000000000
--- a/chromium/patches/patch-services_service__manager_embedder_main.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/service_manager/embedder/main.cc.orig	2020-07-15 18:56:47.000000000 +0000
-+++ services/service_manager/embedder/main.cc
-@@ -275,7 +275,7 @@ int Main(const MainParams& params) {
- #endif
-     base::EnableTerminationOnOutOfMemory();
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     // The various desktop environments set this environment variable that
-     // allows the dbus client library to connect directly to the bus. When this
-     // variable is not set (test environments like xvfb-run), the dbus client
diff --git a/chromium/patches/patch-services_service__manager_embedder_set__process__title__linux.h b/chromium/patches/patch-services_service__manager_embedder_set__process__title__linux.h
deleted file mode 100644
index 7190a5dbb0..0000000000
--- a/chromium/patches/patch-services_service__manager_embedder_set__process__title__linux.h
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- services/service_manager/embedder/set_process_title_linux.h.orig	2020-07-15 18:56:01.000000000 +0000
-+++ services/service_manager/embedder/set_process_title_linux.h
-@@ -5,6 +5,9 @@
- #ifndef SERVICES_SERVICE_MANAGER_EMBEDDER_SET_PROCESS_TITLE_LINUX_H_
- #define SERVICES_SERVICE_MANAGER_EMBEDDER_SET_PROCESS_TITLE_LINUX_H_
- 
-+#include "build/build_config.h"
-+
-+#if !defined(OS_BSD)
- // Set the process title that will show in "ps" and similar tools. Takes
- // printf-style format string and arguments. After calling setproctitle()
- // the original main() argv[] array should not be used. By default, the
-@@ -14,6 +17,7 @@
- // This signature and naming is to be compatible with most other Unix
- // implementations of setproctitle().
- void setproctitle(const char* fmt, ...);
-+#endif
- 
- // Initialize state needed for setproctitle() on Linux. Pass the argv pointer
- // from main() to setproctitle_init() before calling setproctitle().
diff --git a/chromium/patches/patch-services_service__manager_public_cpp_service__executable_BUILD.gn b/chromium/patches/patch-services_service__manager_public_cpp_service__executable_BUILD.gn
index 5fad888313..bfef7300c5 100644
--- a/chromium/patches/patch-services_service__manager_public_cpp_service__executable_BUILD.gn
+++ b/chromium/patches/patch-services_service__manager_public_cpp_service__executable_BUILD.gn
@@ -1,24 +1,17 @@
 $NetBSD$
 
---- services/service_manager/public/cpp/service_executable/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/service_manager/public/cpp/service_executable/BUILD.gn.orig	2024-07-24 02:44:43.833478500 +0000
 +++ services/service_manager/public/cpp/service_executable/BUILD.gn
-@@ -22,13 +22,18 @@ source_set("support") {
+@@ -22,7 +22,7 @@ source_set("support") {
      "//services/service_manager/public/mojom",
    ]
  
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
      deps += [
        "//sandbox/linux:sandbox",
        "//sandbox/linux:sandbox_services",
-       "//sandbox/linux:seccomp_bpf",
-     ]
-   }
-+  if (is_bsd) {
-+    deps -= [
-+      "//sandbox/linux:seccomp_bpf"
-+    ]
-+  }
- }
- 
- source_set("switches") {
diff --git a/chromium/patches/patch-services_service__manager_sandbox_switches.cc b/chromium/patches/patch-services_service__manager_sandbox_switches.cc
deleted file mode 100644
index 8b99d711bc..0000000000
--- a/chromium/patches/patch-services_service__manager_sandbox_switches.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/service_manager/sandbox/switches.cc.orig	2020-07-15 18:56:47.000000000 +0000
-+++ services/service_manager/sandbox/switches.cc
-@@ -85,7 +85,7 @@ const char kGpuSandboxFailuresFatal[] = 
- // Meant to be used as a browser-level switch for testing purposes only.
- const char kNoSandbox[] = "no-sandbox";
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Instructs the zygote to launch without a sandbox. Processes forked from this
- // type of zygote will apply their own custom sandboxes later.
- const char kNoZygoteSandbox[] = "no-zygote-sandbox";
diff --git a/chromium/patches/patch-services_service__manager_sandbox_switches.h b/chromium/patches/patch-services_service__manager_sandbox_switches.h
deleted file mode 100644
index e55c502c81..0000000000
--- a/chromium/patches/patch-services_service__manager_sandbox_switches.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/service_manager/sandbox/switches.h.orig	2020-07-15 18:56:47.000000000 +0000
-+++ services/service_manager/sandbox/switches.h
-@@ -55,7 +55,7 @@ SERVICE_MANAGER_SANDBOX_EXPORT extern co
- SERVICE_MANAGER_SANDBOX_EXPORT extern const char kGpuSandboxAllowSysVShm[];
- SERVICE_MANAGER_SANDBOX_EXPORT extern const char kGpuSandboxFailuresFatal[];
- SERVICE_MANAGER_SANDBOX_EXPORT extern const char kNoSandbox[];
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- SERVICE_MANAGER_SANDBOX_EXPORT extern const char kNoZygoteSandbox[];
- #endif
- #if defined(OS_WIN)
diff --git a/chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.cc b/chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.cc
deleted file mode 100644
index 7115aca648..0000000000
--- a/chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-$NetBSD$
-
---- services/tracing/public/cpp/perfetto/trace_time.cc.orig	2020-07-15 18:56:01.000000000 +0000
-+++ services/tracing/public/cpp/perfetto/trace_time.cc
-@@ -12,13 +12,19 @@ namespace tracing {
- 
- int64_t TraceBootTicksNow() {
-   // On Windows and Mac, TRACE_TIME_TICKS_NOW() behaves like boottime already.
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD)
-   struct timespec ts;
-+#if defined(OS_FREEBSD)
-+  int res = clock_gettime(CLOCK_UPTIME, &ts);
-+#elif defined(OS_NETBSD)
-+  int res = clock_gettime(CLOCK_MONOTONIC, &ts);
-+#else
-   int res = clock_gettime(CLOCK_BOOTTIME, &ts);
-+#endif
-   if (res != -1)
-     return static_cast<int64_t>(perfetto::base::FromPosixTimespec(ts).count());
- #endif
-   return TRACE_TIME_TICKS_NOW().since_origin().InNanoseconds();
- }
- 
--}  // namespace tracing
-\ No newline at end of file
-+}  // namespace tracing
diff --git a/chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.h b/chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.h
deleted file mode 100644
index e370e2564e..0000000000
--- a/chromium/patches/patch-services_tracing_public_cpp_perfetto_trace__time.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/tracing/public/cpp/perfetto/trace_time.h.orig	2020-07-15 18:56:01.000000000 +0000
-+++ services/tracing/public/cpp/perfetto/trace_time.h
-@@ -10,7 +10,7 @@
- 
- namespace tracing {
- 
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD)
- // Linux, Android, and Fuchsia all use CLOCK_MONOTONIC. See crbug.com/166153
- // about efforts to unify base::TimeTicks across all platforms.
- constexpr perfetto::protos::pbzero::BuiltinClock kTraceClockId =
diff --git a/chromium/patches/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc b/chromium/patches/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc
index df12041070..fe81e0f375 100644
--- a/chromium/patches/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc
+++ b/chromium/patches/patch-services_tracing_public_cpp_stack__sampling_tracing__sampler__profiler.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc.orig	2024-07-24 02:44:43.873482500 +0000
 +++ services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
-@@ -525,7 +525,7 @@ void TracingSamplerProfiler::TracingProf
+@@ -38,7 +38,7 @@
+ #include "third_party/perfetto/protos/perfetto/trace/track_event/process_descriptor.pbzero.h"
+ #include "third_party/perfetto/protos/perfetto/trace/track_event/thread_descriptor.pbzero.h"
  
- // static
- void TracingSamplerProfiler::MangleModuleIDIfNeeded(std::string* module_id) {
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
-   // Linux ELF module IDs are 160bit integers, which we need to mangle
-   // down to 128bit integers to match the id that Breakpad outputs.
-   // Example on version '66.0.3359.170' x64:
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)
+ #include "base/profiler/thread_delegate_posix.h"
+ #define INITIALIZE_THREAD_DELEGATE_POSIX 1
+ #else  // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_APPLE)
diff --git a/chromium/patches/patch-services_video__capture_broadcasting__receiver.cc b/chromium/patches/patch-services_video__capture_broadcasting__receiver.cc
deleted file mode 100644
index 5503bf0ca7..0000000000
--- a/chromium/patches/patch-services_video__capture_broadcasting__receiver.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- services/video_capture/broadcasting_receiver.cc.orig	2020-07-15 18:56:01.000000000 +0000
-+++ services/video_capture/broadcasting_receiver.cc
-@@ -39,7 +39,7 @@ void CloneSharedBufferHandle(const mojo:
- void CloneSharedBufferToRawFileDescriptorHandle(
-     const mojo::ScopedSharedBufferHandle& source,
-     media::mojom::VideoBufferHandlePtr* target) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // |source| is unwrapped to a |PlatformSharedMemoryRegion|, from whence a file
-   // descriptor can be extracted which is then mojo-wrapped.
-   base::subtle::PlatformSharedMemoryRegion platform_region =
-@@ -182,7 +182,7 @@ void BroadcastingReceiver::BufferContext
-     ConvertRawFileDescriptorToSharedBuffer() {
-   DCHECK(buffer_handle_->is_shared_memory_via_raw_file_descriptor());
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // The conversion unwraps the descriptor from its mojo handle to the raw file
-   // descriptor (ie, an int). This is used to create a
-   // PlatformSharedMemoryRegion which is then wrapped as a
diff --git a/chromium/patches/patch-services_video__capture_public_mojom_video__capture__service.mojom b/chromium/patches/patch-services_video__capture_public_mojom_video__capture__service.mojom
new file mode 100644
index 0000000000..f991fe56bf
--- /dev/null
+++ b/chromium/patches/patch-services_video__capture_public_mojom_video__capture__service.mojom
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/video_capture/public/mojom/video_capture_service.mojom.orig	2024-07-24 02:44:43.881483000 +0000
++++ services/video_capture/public/mojom/video_capture_service.mojom
+@@ -25,10 +25,10 @@ interface AcceleratorFactory {
+       pending_receiver<chromeos_camera.mojom.MjpegDecodeAccelerator> jda);
+ };
+ 
+-[EnableIf=is_fuchsia]
++[EnableIf=is_openbsd]
+ const sandbox.mojom.Sandbox kVideoCaptureSandbox
+   = sandbox.mojom.Sandbox.kVideoCapture;
+-[EnableIfNot=is_fuchsia]
++[EnableIfNot=is_openbsd]
+ const sandbox.mojom.Sandbox kVideoCaptureSandbox
+   = sandbox.mojom.Sandbox.kNoSandbox;
+ 
diff --git a/chromium/patches/patch-services_video__capture_video__capture__service__impl.cc b/chromium/patches/patch-services_video__capture_video__capture__service__impl.cc
new file mode 100644
index 0000000000..69a250d895
--- /dev/null
+++ b/chromium/patches/patch-services_video__capture_video__capture__service__impl.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/video_capture/video_capture_service_impl.cc.orig	2024-07-24 02:44:43.885483500 +0000
++++ services/video_capture/video_capture_service_impl.cc
+@@ -41,7 +41,7 @@
+ #include "services/video_capture/lacros/device_factory_adapter_lacros.h"
+ #endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "media/capture/capture_switches.h"
+ #include "media/capture/video/video_capture_gpu_channel_host.h"
+ #include "services/viz/public/cpp/gpu/context_provider_command_buffer.h"
+@@ -109,7 +109,7 @@ class VideoCaptureServiceImpl::GpuDepend
+       this};
+ };
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ // Intended usage of this class is to create viz::Gpu in utility process and
+ // connect to viz::GpuClient of browser process, which will call to Gpu service.
+ // Also, this class holds the viz::ContextProvider to listen and monitor Gpu
+@@ -311,7 +311,7 @@ void VideoCaptureServiceImpl::LazyInitia
+     gpu_dependencies_context_ = std::make_unique<GpuDependenciesContext>();
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
+-#if BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   {
+ #else
+   if (switches::IsVideoCaptureUseGpuMemoryBufferEnabled()) {
+@@ -433,7 +433,7 @@ void VideoCaptureServiceImpl::OnGpuInfoU
+ }
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ void VideoCaptureServiceImpl::SetVizGpu(std::unique_ptr<viz::Gpu> viz_gpu) {
+   viz_gpu_ = std::move(viz_gpu);
+ }
diff --git a/chromium/patches/patch-services_video__capture_video__capture__service__impl.h b/chromium/patches/patch-services_video__capture_video__capture__service__impl.h
new file mode 100644
index 0000000000..dc4671cbe8
--- /dev/null
+++ b/chromium/patches/patch-services_video__capture_video__capture__service__impl.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- services/video_capture/video_capture_service_impl.h.orig	2024-07-24 02:44:43.885483500 +0000
++++ services/video_capture/video_capture_service_impl.h
+@@ -27,7 +27,7 @@
+ #include "services/video_capture/ash/video_capture_device_factory_ash.h"
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+ #include "services/viz/public/cpp/gpu/gpu.h"
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+         // BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -71,7 +71,7 @@ class VideoCaptureServiceImpl : public m
+ #if BUILDFLAG(IS_WIN)
+   void OnGpuInfoUpdate(const CHROME_LUID& luid) override;
+ #endif
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   void SetVizGpu(std::unique_ptr<viz::Gpu> viz_gpu);
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ||
+         // BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -112,7 +112,7 @@ class VideoCaptureServiceImpl : public m
+       factory_receivers_ash_;
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
+   class VizGpuContextProvider;
+   std::unique_ptr<VizGpuContextProvider> viz_gpu_context_provider_;
+   std::unique_ptr<viz::Gpu> viz_gpu_;
diff --git a/chromium/patches/patch-services_viz_privileged_mojom_compositing_display__private.mojom b/chromium/patches/patch-services_viz_privileged_mojom_compositing_display__private.mojom
deleted file mode 100644
index 0f8f2fa08c..0000000000
--- a/chromium/patches/patch-services_viz_privileged_mojom_compositing_display__private.mojom
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- services/viz/privileged/mojom/compositing/display_private.mojom.orig	2020-07-15 18:56:01.000000000 +0000
-+++ services/viz/privileged/mojom/compositing/display_private.mojom
-@@ -90,6 +90,8 @@ interface DisplayClient {
-   // Notifies that a swap has occurred with a new size.
-   [EnableIf=is_linux]
-   DidCompleteSwapWithNewSize(gfx.mojom.Size size);
-+  [EnableIf=is_bsd]
-+  DidCompleteSwapWithNewSize(gfx.mojom.Size size);
- 
-   // Notifies the client of the result of context creation attempt. On Android we can't
-   // fall back to SW in failure cases, so we need to handle this specifically.
diff --git a/chromium/patches/patch-skia_BUILD.gn b/chromium/patches/patch-skia_BUILD.gn
deleted file mode 100644
index 40fb25cb24..0000000000
--- a/chromium/patches/patch-skia_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- skia/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ skia/BUILD.gn
-@@ -150,7 +150,7 @@ config("skia_library_config") {
-   }
- 
-   # Settings for text blitting, chosen to approximate the system browser.
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     defines += [
-       "SK_GAMMA_EXPONENT=1.2",
-       "SK_GAMMA_CONTRAST=0.2",
-@@ -447,7 +447,7 @@ component("skia") {
-     set_sources_assignment_filter(sources_assignment_filter)
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "//third_party/skia/src/ports/SkFontConfigInterface.cpp",
-       "//third_party/skia/src/ports/SkFontConfigInterface_direct.cpp",
-@@ -456,7 +456,7 @@ component("skia") {
-     ]
-   }
- 
--  if (is_linux || is_android) {
-+  if (is_linux || is_android || is_bsd) {
-     sources += [
-       # Retain the files for the SkFontMgr_Android on linux to emulate android
-       # fonts. See content/zygote/zygote_main_linux.cc
-@@ -534,7 +534,7 @@ component("skia") {
-     ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [
-       "//third_party/expat",
-       "//third_party/fontconfig",
diff --git a/chromium/patches/patch-skia_ext_SkMemory__new__handler.cpp b/chromium/patches/patch-skia_ext_SkMemory__new__handler.cpp
index 9509d864e6..4ee9d99de5 100644
--- a/chromium/patches/patch-skia_ext_SkMemory__new__handler.cpp
+++ b/chromium/patches/patch-skia_ext_SkMemory__new__handler.cpp
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- skia/ext/SkMemory_new_handler.cpp.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- skia/ext/SkMemory_new_handler.cpp.orig	2024-07-24 02:44:43.913486200 +0000
 +++ skia/ext/SkMemory_new_handler.cpp
-@@ -78,7 +78,7 @@ static void* malloc_nothrow(size_t size)
+@@ -19,7 +19,7 @@
+ #include <windows.h>
+ #elif BUILDFLAG(IS_APPLE)
+ #include <malloc/malloc.h>
+-#else
++#elif !BUILDFLAG(IS_BSD)
+ #include <malloc.h>
+ #endif
+ 
+@@ -105,7 +105,7 @@ static void* malloc_nothrow(size_t size,
    // TODO(b.kelemen): we should always use UncheckedMalloc but currently it
    // doesn't work as intended everywhere.
    void* result;
--#if  defined(OS_IOS)
-+#if  defined(OS_IOS) || defined(OS_BSD)
-     result = malloc(size);
- #else
-     // It's the responsibility of the caller to check the return value.
-@@ -98,7 +98,7 @@ static void* calloc_nothrow(size_t size)
-   // TODO(b.kelemen): we should always use UncheckedCalloc but currently it
-   // doesn't work as intended everywhere.
-   void* result;
--#if  defined(OS_IOS)
-+#if  defined(OS_IOS) || defined(OS_BSD)
-     result = calloc(1, size);
+-#if BUILDFLAG(IS_IOS)
++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+   result = malloc(size);
  #else
-     // It's the responsibility of the caller to check the return value.
+   // It's the responsibility of the caller to check the return value.
diff --git a/chromium/patches/patch-skia_ext_font__utils.cc b/chromium/patches/patch-skia_ext_font__utils.cc
new file mode 100644
index 0000000000..e56d23c5e9
--- /dev/null
+++ b/chromium/patches/patch-skia_ext_font__utils.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- skia/ext/font_utils.cc.orig	2024-07-24 02:44:43.917486700 +0000
++++ skia/ext/font_utils.cc
+@@ -19,7 +19,7 @@
+ #include "third_party/skia/include/ports/SkFontMgr_mac_ct.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "third_party/skia/include/ports/SkFontConfigInterface.h"
+ #include "third_party/skia/include/ports/SkFontMgr_FontConfigInterface.h"
+ #endif
+@@ -60,7 +60,7 @@ static sk_sp<SkFontMgr> fontmgr_factory(
+   return SkFontMgr_New_Android(nullptr);
+ #elif BUILDFLAG(IS_APPLE)
+   return SkFontMgr_New_CoreText(nullptr);
+-#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   sk_sp<SkFontConfigInterface> fci(SkFontConfigInterface::RefGlobal());
+   return fci ? SkFontMgr_New_FCI(std::move(fci)) : nullptr;
+ #elif BUILDFLAG(IS_FUCHSIA)
diff --git a/chromium/patches/patch-skia_ext_platform__canvas.h b/chromium/patches/patch-skia_ext_platform__canvas.h
index f0e73397f0..432c68620b 100644
--- a/chromium/patches/patch-skia_ext_platform__canvas.h
+++ b/chromium/patches/patch-skia_ext_platform__canvas.h
@@ -1,6 +1,10 @@
 $NetBSD$
 
---- skia/ext/platform_canvas.h.orig	2020-07-15 18:56:01.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- skia/ext/platform_canvas.h.orig	2024-07-24 02:44:43.921487000 +0000
 +++ skia/ext/platform_canvas.h
 @@ -58,7 +58,7 @@ SK_API HDC GetNativeDrawingContext(SkCan
  
diff --git a/chromium/patches/patch-skia_ext_skcolorspace__trfn.cc b/chromium/patches/patch-skia_ext_skcolorspace__trfn.cc
new file mode 100644
index 0000000000..3b77b3bafc
--- /dev/null
+++ b/chromium/patches/patch-skia_ext_skcolorspace__trfn.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- skia/ext/skcolorspace_trfn.cc.orig	2024-07-24 02:44:43.921487000 +0000
++++ skia/ext/skcolorspace_trfn.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include <cmath>
++
+ #include "skia/ext/skcolorspace_trfn.h"
+ 
+ #include <cmath>
diff --git a/chromium/patches/patch-third__party_abseil-cpp_absl_base_config.h b/chromium/patches/patch-third__party_abseil-cpp_absl_base_config.h
new file mode 100644
index 0000000000..5a5df40c9d
--- /dev/null
+++ b/chromium/patches/patch-third__party_abseil-cpp_absl_base_config.h
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/abseil-cpp/absl/base/config.h.orig	2024-07-24 02:44:44.181512000 +0000
++++ third_party/abseil-cpp/absl/base/config.h
+@@ -412,7 +412,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMES
+ #ifdef ABSL_HAVE_SCHED_YIELD
+ #error ABSL_HAVE_SCHED_YIELD cannot be directly set
+ #elif defined(__linux__) || defined(__ros__) || defined(__native_client__) || \
+-    defined(__VXWORKS__)
++    defined(__VXWORKS__) || defined(__OpenBSD__) || defined(__FreeBSD__)
+ #define ABSL_HAVE_SCHED_YIELD 1
+ #endif
+ 
+@@ -427,7 +427,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMES
+ // platforms.
+ #ifdef ABSL_HAVE_SEMAPHORE_H
+ #error ABSL_HAVE_SEMAPHORE_H cannot be directly set
+-#elif defined(__linux__) || defined(__ros__) || defined(__VXWORKS__)
++#elif defined(__linux__) || defined(__ros__) || defined(__VXWORKS__) || \
++    defined(__OpenBSD__) || defined(__FreeBSD__)
+ #define ABSL_HAVE_SEMAPHORE_H 1
+ #endif
+ 
diff --git a/chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_raw__logging.cc b/chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_raw__logging.cc
new file mode 100644
index 0000000000..f337e9d087
--- /dev/null
+++ b/chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_raw__logging.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/abseil-cpp/absl/base/internal/raw_logging.cc.orig	2024-07-24 02:44:44.185512500 +0000
++++ third_party/abseil-cpp/absl/base/internal/raw_logging.cc
+@@ -44,7 +44,7 @@
+ #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
+     defined(__hexagon__) || defined(__Fuchsia__) ||                     \
+     defined(__native_client__) || defined(__OpenBSD__) ||               \
+-    defined(__EMSCRIPTEN__) || defined(__ASYLO__)
++    defined(__EMSCRIPTEN__) || defined(__ASYLO__) || defined(__NetBSD__)
+ 
+ #include <unistd.h>
+ 
diff --git a/chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc b/chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc
new file mode 100644
index 0000000000..568ec35834
--- /dev/null
+++ b/chromium/patches/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc
@@ -0,0 +1,71 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/abseil-cpp/absl/base/internal/sysinfo.cc.orig	2024-07-24 02:44:44.189513000 +0000
++++ third_party/abseil-cpp/absl/base/internal/sysinfo.cc
+@@ -30,7 +30,7 @@
+ #include <sys/syscall.h>
+ #endif
+ 
+-#if defined(__APPLE__) || defined(__FreeBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
+ #include <sys/sysctl.h>
+ #endif
+ 
+@@ -194,6 +194,7 @@ static double GetNominalCPUFrequency() {
+ 
+ #else
+ 
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__)
+ // Helper function for reading a long from a file. Returns true if successful
+ // and the memory location pointed to by value is set to the value read.
+ static bool ReadLongFromFile(const char *file, long *value) {
+@@ -226,6 +227,7 @@ static bool ReadLongFromFile(const char 
+   }
+   return ret;
+ }
++#endif
+ 
+ #if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY)
+ 
+@@ -325,9 +327,11 @@ static double GetNominalCPUFrequency() {
+   // a new mode (turbo mode). Essentially, those frequencies cannot
+   // always be relied upon. The same reasons apply to /proc/cpuinfo as
+   // well.
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) // pledge violation
+   if (ReadLongFromFile("/sys/devices/system/cpu/cpu0/tsc_freq_khz", &freq)) {
+     return freq * 1e3;  // Value is kHz.
+   }
++#endif
+ 
+ #if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY)
+   // On these platforms, the TSC frequency is the nominal CPU
+@@ -346,10 +350,12 @@ static double GetNominalCPUFrequency() {
+   // If CPU scaling is in effect, we want to use the *maximum*
+   // frequency, not whatever CPU speed some random processor happens
+   // to be using now.
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) // pledge violation
+   if (ReadLongFromFile("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq",
+                        &freq)) {
+     return freq * 1e3;  // Value is kHz.
+   }
++#endif
+ 
+   return 1.0;
+ #endif  // !ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY
+@@ -461,6 +467,12 @@ pid_t GetTID() {
+   return reinterpret_cast<pid_t>(thread);
+ }
+ 
++#elif defined(__OpenBSD__)
++
++pid_t GetTID() {
++  return getthrid();
++}
++
+ #else
+ 
+ // Fallback implementation of `GetTID` using `pthread_self`.
diff --git a/chromium/patches/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h b/chromium/patches/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h
new file mode 100644
index 0000000000..be7cd4bd48
--- /dev/null
+++ b/chromium/patches/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h.orig	2024-07-24 02:44:44.209514900 +0000
++++ third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h
+@@ -34,7 +34,8 @@
+ #if defined(__ELF__) && !defined(__OpenBSD__) && !defined(__QNX__) && \
+     !defined(__native_client__) && !defined(__asmjs__) &&             \
+     !defined(__wasm__) && !defined(__HAIKU__) && !defined(__sun) &&   \
+-    !defined(__VXWORKS__) && !defined(__hexagon__)
++    !defined(__VXWORKS__) && !defined(__hexagon__) && !defined(__FreeBSD__) && \
++    !defined(__NetBSD__)
+ #define ABSL_HAVE_ELF_MEM_IMAGE 1
+ #endif
+ 
diff --git a/chromium/patches/patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc b/chromium/patches/patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc
new file mode 100644
index 0000000000..d6e374348a
--- /dev/null
+++ b/chromium/patches/patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc.orig	2024-07-24 02:44:44.273521200 +0000
++++ third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc
+@@ -19,7 +19,8 @@
+ #endif
+ 
+ #if defined(HAS_STRPTIME) && HAS_STRPTIME
+-#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
++#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && \
++    !defined(__NetBSD__)
+ #define _XOPEN_SOURCE 500  // Exposes definitions for SUSv2 (UNIX 98).
+ #endif
+ #endif
diff --git a/chromium/patches/patch-third__party_afl_src_afl-fuzz.c b/chromium/patches/patch-third__party_afl_src_afl-fuzz.c
new file mode 100644
index 0000000000..5ecf6e77ec
--- /dev/null
+++ b/chromium/patches/patch-third__party_afl_src_afl-fuzz.c
@@ -0,0 +1,48 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/afl/src/afl-fuzz.c.orig	2024-07-24 02:44:44.345528100 +0000
++++ third_party/afl/src/afl-fuzz.c
+@@ -58,7 +58,8 @@
+ #include <sys/ioctl.h>
+ #include <sys/file.h>
+ 
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++    defined (__NetBSD__)
+ #  include <sys/sysctl.h>
+ #endif /* __APPLE__ || __FreeBSD__ || __OpenBSD__ */
+ 
+@@ -3531,7 +3532,8 @@ static double get_runnable_processes(voi
+ 
+   static double res;
+ 
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++    defined (__NetBSD__)
+ 
+   /* I don't see any portable sysctl or so that would quickly give us the
+      number of runnable processes; the 1-minute load average can be a
+@@ -7347,7 +7349,8 @@ static void get_core_count(void) {
+ 
+   u32 cur_runnable = 0;
+ 
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++    defined (__NetBSD__)
+ 
+   size_t s = sizeof(cpu_core_count);
+ 
+@@ -7392,7 +7395,8 @@ static void get_core_count(void) {
+ 
+     cur_runnable = (u32)get_runnable_processes();
+ 
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__)
++#if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || \
++    defined (__NetBSD__)
+ 
+     /* Add ourselves, since the 1-minute average doesn't include that yet. */
+ 
diff --git a/chromium/patches/patch-third__party_angle_BUILD.gn b/chromium/patches/patch-third__party_angle_BUILD.gn
index 167dda0bdd..a8f168422c 100644
--- a/chromium/patches/patch-third__party_angle_BUILD.gn
+++ b/chromium/patches/patch-third__party_angle_BUILD.gn
@@ -1,39 +1,35 @@
 $NetBSD$
 
---- third_party/angle/BUILD.gn.orig	2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/BUILD.gn.orig	2024-07-24 02:45:19.152899500 +0000
 +++ third_party/angle/BUILD.gn
-@@ -19,7 +19,7 @@ if (angle_has_build) {
- 
- declare_args() {
-   # Use the PCI lib to collect GPU information on Linux.
--  use_libpci = is_linux && (!is_chromecast || is_cast_desktop_build) &&
-+  use_libpci = (is_linux || is_bsd) && (!is_chromecast || is_cast_desktop_build) &&
-                (angle_use_x11 || use_ozone)
+@@ -347,7 +347,6 @@ config("extra_warnings") {
+       "-Wtautological-type-limit-compare",
+       "-Wundefined-reinterpret-cast",
+       "-Wunneeded-internal-declaration",
+-      "-Wunused-but-set-variable",
+       "-Wsuggest-destructor-override",
+       "-Wsuggest-override",
  
-   # Link in system libGL, to work with apitrace.  See doc/DebuggingTips.md.
-@@ -352,7 +352,7 @@ angle_static_library("angle_gpu_info_uti
-     libs += [ "dxgi.lib" ]
-   }
+@@ -524,7 +523,7 @@ template("angle_common_lib") {
+       all_dependent_configs = [ ":angle_disable_pool_alloc" ]
+     }
  
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += libangle_gpu_info_util_linux_sources
+-    if (is_linux || is_chromeos) {
++    if ((is_linux || is_chromeos) && !is_bsd) {
+       libs = [ "dl" ]
+     }
  
-     if (angle_use_x11) {
-@@ -363,6 +363,7 @@ angle_static_library("angle_gpu_info_uti
-         "X11",
+@@ -679,6 +678,9 @@ angle_static_library("angle_gpu_info_uti
          "Xi",
          "Xext",
-+        "GL",
        ]
++      if (is_bsd) {
++        libs += [ "GL" ]
++      }
      }
-   }
-@@ -684,7 +685,7 @@ angle_source_set("libANGLE_base") {
-       sources += libangle_gl_egl_dl_sources
-       sources += libangle_gl_egl_android_sources
-     }
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources += libangle_gl_egl_sources
-       sources += libangle_gl_egl_dl_sources
-     }
+ 
+     if (angle_use_wayland && angle_has_build) {
diff --git a/chromium/patches/patch-third__party_angle_gni_angle.gni b/chromium/patches/patch-third__party_angle_gni_angle.gni
deleted file mode 100644
index cad9b86883..0000000000
--- a/chromium/patches/patch-third__party_angle_gni_angle.gni
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD$
-
---- third_party/angle/gni/angle.gni.orig	2020-07-15 19:01:32.000000000 +0000
-+++ third_party/angle/gni/angle.gni
-@@ -33,7 +33,7 @@ if (angle_has_build) {
-     is_asan = false
-     build_with_chromium = false
-     dcheck_always_on = false
--    angle_use_x11 = is_linux && !is_ggp
-+    angle_use_x11 = (is_linux || is_bsd) && !is_ggp
-     use_ozone = false
-     use_fuzzing_engine = false
-   }
-@@ -100,7 +100,7 @@ declare_args() {
-   angle_enable_d3d9 = is_win && !angle_is_winuwp
-   angle_enable_d3d11 = is_win
-   angle_enable_gl =
--      (ozone_platform_gbm || !is_linux || (angle_use_x11 && !is_chromeos)) &&
-+      (ozone_platform_gbm || !(is_linux || is_bsd) || (angle_use_x11 && !is_chromeos)) &&
-       !is_fuchsia && !angle_is_winuwp && !is_ggp && !is_win_arm64
- 
-   # ANGLE Vulkan backend on Android requires API level 26, i.e. Oreo, due to
-@@ -154,7 +154,7 @@ if (angle_has_build) {
-   angle_remove_configs += [ "//build/config/compiler:default_include_dirs" ]
- }
- angle_better_stack_traces =
--    (is_debug || dcheck_always_on) && is_linux && !is_asan && !is_cfi
-+    (is_debug || dcheck_always_on) && (is_linux || is_bsd) && !is_asan && !is_cfi
- 
- if (angle_has_build && is_clang) {
-   angle_remove_configs += [ "//build/config/clang:find_bad_constructs" ]
-@@ -349,7 +349,7 @@ template("angle_test") {
-         configs -= [ "//build/config/android:hide_all_but_jni" ]
-       }
- 
--      if (is_linux && !is_component_build) {
-+      if ((is_linux || is_bsd) && !is_component_build) {
-         # Set rpath to find shared libs in a non-component build.
-         configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-       }
-@@ -371,7 +371,7 @@ template("angle_test") {
-     }
-     data = invoker.data + [ "//testing/xvfb.py" ]
- 
--    if (is_linux && !is_component_build) {
-+    if ((is_linux || is_bsd) && !is_component_build) {
-       # Set rpath to find shared libs in a non-component build.
-       configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-     }
diff --git a/chromium/patches/patch-third__party_angle_src_common_platform.h b/chromium/patches/patch-third__party_angle_src_common_platform.h
new file mode 100644
index 0000000000..02da899d1f
--- /dev/null
+++ b/chromium/patches/patch-third__party_angle_src_common_platform.h
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/common/platform.h.orig	2024-07-24 02:45:19.284912300 +0000
++++ third_party/angle/src/common/platform.h
+@@ -26,8 +26,19 @@
+ #elif defined(__linux__) || defined(EMSCRIPTEN)
+ #    define ANGLE_PLATFORM_LINUX 1
+ #    define ANGLE_PLATFORM_POSIX 1
+-#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) ||              \
+-    defined(__DragonFly__) || defined(__sun) || defined(__GLIBC__) || defined(__GNU__) || \
++#elif defined(__OpenBSD__)
++#    define ANGLE_PLATFORM_OPENBSD 1
++#    define ANGLE_PLATFORM_POSIX 1
++#    define ANGLE_PLATFORM_BSD 1
++#elif defined(__NetBSD__)
++#    define ANGLE_PLATFORM_NETBSD 1
++#    define ANGLE_PLATFORM_POSIX 1
++#    define ANGLE_PLATFORM_BSD 1
++#elif defined(__FreeBSD__)
++#    define ANGLE_PLATFORM_FREEBSD 1
++#    define ANGLE_PLATFORM_POSIX 1
++#    define ANGLE_PLATFORM_BSD 1
++#elif defined(__DragonFly__) || defined(__sun) || defined(__GLIBC__) || defined(__GNU__) || \
+     defined(__QNX__) || defined(__Fuchsia__) || defined(__HAIKU__)
+ #    define ANGLE_PLATFORM_POSIX 1
+ #else
diff --git a/chromium/patches/patch-third__party_angle_src_common_platform__helpers.h b/chromium/patches/patch-third__party_angle_src_common_platform__helpers.h
new file mode 100644
index 0000000000..43ad050b3c
--- /dev/null
+++ b/chromium/patches/patch-third__party_angle_src_common_platform__helpers.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/common/platform_helpers.h.orig	2024-07-24 02:45:19.284912300 +0000
++++ third_party/angle/src/common/platform_helpers.h
+@@ -62,7 +62,7 @@ inline constexpr bool IsIOS()
+ 
+ inline constexpr bool IsLinux()
+ {
+-#if defined(ANGLE_PLATFORM_LINUX)
++#if defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
+     return true;
+ #else
+     return false;
diff --git a/chromium/patches/patch-third__party_angle_src_common_system__utils.cpp b/chromium/patches/patch-third__party_angle_src_common_system__utils.cpp
new file mode 100644
index 0000000000..4636b3bae8
--- /dev/null
+++ b/chromium/patches/patch-third__party_angle_src_common_system__utils.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/common/system_utils.cpp.orig	2024-07-24 02:45:19.288912800 +0000
++++ third_party/angle/src/common/system_utils.cpp
+@@ -25,7 +25,7 @@ namespace angle
+ {
+ std::string GetExecutableName()
+ {
+-#if defined(ANGLE_PLATFORM_ANDROID) && __ANDROID_API__ >= 21
++#if (defined(ANGLE_PLATFORM_ANDROID) && __ANDROID_API__ >= 21) || defined(ANGLE_PLATFORM_BSD)
+     // Support for "getprogname" function in bionic was introduced in L (API level 21)
+     const char *executableName = getprogname();
+     return (executableName) ? std::string(executableName) : "ANGLE";
diff --git a/chromium/patches/patch-third__party_angle_src_common_system__utils__linux.cpp b/chromium/patches/patch-third__party_angle_src_common_system__utils__linux.cpp
new file mode 100644
index 0000000000..ca1fa9915c
--- /dev/null
+++ b/chromium/patches/patch-third__party_angle_src_common_system__utils__linux.cpp
@@ -0,0 +1,45 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/common/system_utils_linux.cpp.orig	2024-07-24 02:45:19.288912800 +0000
++++ third_party/angle/src/common/system_utils_linux.cpp
+@@ -15,8 +15,15 @@
+ 
+ #include <array>
+ 
++#if ANGLE_PLATFORM_OPENBSD
++#include <pthread_np.h>
++#elif ANGLE_PLATFORM_NETBSD
++#include <pthread.h>
++#endif
++
+ namespace angle
+ {
++#if ANGLE_PLATFORM_LINUX
+ std::string GetExecutablePath()
+ {
+     // We cannot use lstat to get the size of /proc/self/exe as it always returns 0
+@@ -32,6 +39,7 @@ std::string GetExecutablePath()
+     path[result] = '\0';
+     return path;
+ }
++#endif
+ 
+ std::string GetExecutableDirectory()
+ {
+@@ -56,6 +64,12 @@ void SetCurrentThreadName(const char *na
+ {
+     // There's a 15-character (16 including '\0') limit.  If the name is too big (and ERANGE is
+     // returned), just ignore the name.
++#if ANGLE_PLATFORM_OPENBSD
++    pthread_set_name_np(pthread_self(), name);
++#elif ANGLE_PLATFORM_NETBSD
++    pthread_setname_np(pthread_self(), "%s", (void *)name);
++#else
+     pthread_setname_np(pthread_self(), name);
++#endif
+ }
+ }  // namespace angle
diff --git a/chromium/patches/patch-third__party_angle_src_compiler_translator_InfoSink.h b/chromium/patches/patch-third__party_angle_src_compiler_translator_InfoSink.h
deleted file mode 100644
index 932bb7c2c6..0000000000
--- a/chromium/patches/patch-third__party_angle_src_compiler_translator_InfoSink.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/angle/src/compiler/translator/InfoSink.h.orig	2020-07-15 19:01:32.000000000 +0000
-+++ third_party/angle/src/compiler/translator/InfoSink.h
-@@ -7,7 +7,7 @@
- #ifndef COMPILER_TRANSLATOR_INFOSINK_H_
- #define COMPILER_TRANSLATOR_INFOSINK_H_
- 
--#include <math.h>
-+#include <cmath>
- #include <stdlib.h>
- #include "compiler/translator/Common.h"
- #include "compiler/translator/Severity.h"
diff --git a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h
index 3892d56df0..3c4dad2322 100644
--- a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h
+++ b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h
@@ -1,14 +1,22 @@
 $NetBSD$
 
---- third_party/angle/src/gpu_info_util/SystemInfo_internal.h.orig	2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/gpu_info_util/SystemInfo_internal.h.orig	2024-07-24 02:45:19.668949600 +0000
 +++ third_party/angle/src/gpu_info_util/SystemInfo_internal.h
-@@ -16,6 +18,9 @@ namespace angle
+@@ -15,6 +15,13 @@
+ namespace angle
+ {
  
- // Defined in SystemInfo_libpci when GPU_INFO_USE_LIBPCI is defined.
- bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices);
-+#if defined(OS_FREEBSD)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
++bool CollectMesaCardInfo(std::vector<GPUDeviceInfo> *devices);                
++#if defined(__FreeBSD__)
 +bool GetPCIDevicesFreeBSD(std::vector<GPUDeviceInfo> *devices);
 +#endif
++#endif
++
+ // Defined in SystemInfo_libpci when GPU_INFO_USE_LIBPCI is defined.
+ bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices);
  // Defined in SystemInfo_x11 when GPU_INFO_USE_X11 is defined.
- bool GetNvidiaDriverVersionWithXNVCtrl(std::string *version);
- 
diff --git a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp
index 1049e886d2..df26a4ec15 100644
--- a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp
+++ b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp
@@ -1,15 +1,96 @@
 $NetBSD$
 
-* Use pci.h from pkgsrc pciutils.
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
 
---- third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp.orig	2020-07-15 19:01:32.000000000 +0000
+--- third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp.orig	2024-07-24 02:45:19.668949600 +0000
 +++ third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp
-@@ -9,7 +9,7 @@
- #include "gpu_info_util/SystemInfo_internal.h"
- 
- #include <dlfcn.h>
--#include <pci/pci.h>
-+#include <pciutils/pci.h>
+@@ -12,6 +12,11 @@
+ #include <pci/pci.h>
  #include <unistd.h>
  
++#if defined(__FreeBSD__)
++#include <fcntl.h>
++#include <sys/pciio.h>
++#endif
++
  #include "common/angleutils.h"
+ #include "common/debug.h"
+ 
+@@ -86,6 +91,75 @@ struct LibPCI : private angle::NonCopyab
+ 
+ }  // anonymous namespace
+ 
++#if defined(__FreeBSD__)
++// Adds an entry per PCI GPU found and fills the device and vendor ID.
++bool GetPCIDevicesFreeBSD(std::vector<GPUDeviceInfo> *devices)
++{
++    int fd;
++    struct pci_conf_io conf;
++    struct pci_conf *matches;
++    uint32_t offset = 0;
++
++    fd = open("/dev/pci", O_RDONLY);
++    if (fd < 0)
++        return false;
++
++    matches = new struct pci_conf[32];
++    conf.generation = 0;
++    do {
++        conf.pat_buf_len = 0;
++        conf.num_patterns = 0;
++        conf.patterns = NULL;
++        conf.match_buf_len = 32 * sizeof(struct pci_conf);
++        conf.num_matches = 32;
++        conf.matches = matches;
++        conf.offset = offset;
++        conf.status = PCI_GETCONF_ERROR;
++        if (ioctl(fd, PCIOCGETCONF, &conf) < 0) {
++            if (errno == ENODEV)
++                break;
++        }
++        /* PCI_GETCONF_LIST_CHANGED would require us to start over. */
++        if (conf.status == PCI_GETCONF_ERROR || conf.status == PCI_GETCONF_LIST_CHANGED) {
++            break;
++        }
++
++        for (unsigned int i = 0; i < conf.num_matches; i++) {
++            uint16_t device_class = (matches[i].pc_class << 8) |  matches[i].pc_subclass;
++
++            // Skip non-GPU devices
++            switch (device_class)
++            {
++                case PCI_CLASS_DISPLAY_VGA:
++                case PCI_CLASS_DISPLAY_XGA:
++                case PCI_CLASS_DISPLAY_3D:
++                    break;
++                default:
++                    continue;
++            }
++
++            // Skip unknown devices
++            if (matches[i].pc_vendor == 0 || matches[i].pc_device == 0) {
++                continue;
++            }
++
++            GPUDeviceInfo info;
++            info.vendorId = matches[i].pc_vendor;
++            info.deviceId = matches[i].pc_device;
++
++            devices->push_back(info);
++        }
++        offset += conf.num_matches;
++    } while (conf.status == PCI_GETCONF_MORE_DEVS);
++
++    delete[] matches;
++
++    close(fd);
++
++    return true;
++}
++#endif
++
+ // Adds an entry per PCI GPU found and fills the device and vendor ID.
+ bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices)
+ {
diff --git a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp
index 55514d8d76..9df01c8f55 100644
--- a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp
+++ b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp
@@ -1,22 +1,41 @@
 $NetBSD$
 
---- third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp.orig	2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp.orig	2024-07-24 02:45:19.668949600 +0000
 +++ third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp
-@@ -71,10 +73,17 @@ bool GetPCIDevicesWithLibPCI(std::vector
+@@ -71,6 +71,24 @@ bool GetPCIDevicesWithLibPCI(std::vector
  
  bool GetSystemInfo(SystemInfo *info)
  {
-+#if defined(OS_OPENBSD) || defined(OS_FREEBSD) || defined(OS_NETBSD)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
 +    if (!CollectMesaCardInfo(&(info->gpus)))
 +    {
-+        return false;
++#if defined(__FreeBSD__)
++        if (!GetPCIDevicesFreeBSD(&(info->gpus)))
++        {
++#endif
++#if defined(ANGLE_USE_VULKAN_SYSTEM_INFO)
++            // Try vulkan backend to get GPU info
++            return GetSystemInfoVulkan(info);
++#else
++            return false;
++#endif
++#if defined(__FreeBSD__)
++        }
++#endif
 +    }
 +#else
      if (!GetPCIDevicesWithLibPCI(&(info->gpus)))
+     {
+ #if defined(ANGLE_USE_VULKAN_SYSTEM_INFO)
+@@ -85,6 +103,7 @@ bool GetSystemInfo(SystemInfo *info)
      {
          return false;
      }
 +#endif
  
-     if (info->gpus.size() == 0)
-     {
+     GetDualGPUInfo(info);
+ 
diff --git a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp
index 4bfdf00f60..fab68b4c8e 100644
--- a/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp
+++ b/chromium/patches/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp
@@ -1,29 +1,37 @@
 $NetBSD$
 
---- third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp.orig	2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp.orig	2024-07-24 02:45:19.672950000 +0000
 +++ third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp
-@@ -8,6 +8,8 @@
+@@ -8,6 +8,10 @@
  
  #include "gpu_info_util/SystemInfo_internal.h"
  
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
 +#include <GL/glx.h>
 +#include <GL/glxext.h>
++#endif
  #include <X11/Xlib.h>
  
  #include "common/debug.h"
-@@ -18,9 +20,44 @@
+@@ -18,9 +22,47 @@
  #    error SystemInfo_x11.cpp compiled without GPU_INFO_USE_X11
  #endif
  
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
 +#define GLX_RENDERER_VENDOR_ID_MESA	0x8183
 +#define GLX_RENDERER_DEVICE_ID_MESA	0x8184
++#endif
 +
  namespace angle
  {
  
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
 +bool CollectMesaCardInfo(std::vector<GPUDeviceInfo> *devices)
 +{
-+
 +    unsigned int vid[3], did[3];
 +
 +    Display *display = XOpenDisplay(NULL);
@@ -52,6 +60,7 @@ $NetBSD$
 +
 +    return true;
 +}
++#endif
 +
  bool GetNvidiaDriverVersionWithXNVCtrl(std::string *version)
  {
diff --git a/chromium/patches/patch-third__party_angle_src_libANGLE_Display.cpp b/chromium/patches/patch-third__party_angle_src_libANGLE_Display.cpp
index 787e1ac2e1..314215037e 100644
--- a/chromium/patches/patch-third__party_angle_src_libANGLE_Display.cpp
+++ b/chromium/patches/patch-third__party_angle_src_libANGLE_Display.cpp
@@ -1,49 +1,53 @@
 $NetBSD$
 
---- third_party/angle/src/libANGLE/Display.cpp.orig	2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/libANGLE/Display.cpp.orig	2024-07-24 02:45:19.704953200 +0000
 +++ third_party/angle/src/libANGLE/Display.cpp
-@@ -55,7 +55,7 @@
+@@ -60,7 +60,7 @@
  #        include "libANGLE/renderer/gl/cgl/DisplayCGL.h"
- #    elif defined(ANGLE_PLATFORM_IOS)
+ #    elif ANGLE_ENABLE_EAGL
  #        include "libANGLE/renderer/gl/eagl/DisplayEAGL.h"
 -#    elif defined(ANGLE_PLATFORM_LINUX)
-+#    elif defined(ANGLE_PLATFORM_POSIX)
++#    elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
  #        include "libANGLE/renderer/gl/egl/DisplayEGL.h"
- #        if defined(ANGLE_USE_GBM)
- #            include "libANGLE/renderer/gl/egl/gbm/DisplayGbm.h"
-@@ -264,7 +264,7 @@ rx::DisplayImpl *CreateDisplayFromAttrib
-             impl = new rx::DisplayCGL(state);
- #    elif defined(ANGLE_PLATFORM_IOS)
+ #        if defined(ANGLE_USE_X11)
+ #            include "libANGLE/renderer/gl/glx/DisplayGLX_api.h"
+@@ -416,7 +416,7 @@ rx::DisplayImpl *CreateDisplayFromAttrib
              impl = new rx::DisplayEAGL(state);
+             break;
+ 
 -#    elif defined(ANGLE_PLATFORM_LINUX)
-+#    elif defined(ANGLE_PLATFORM_POSIX)
++#    elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
  #        if defined(ANGLE_USE_GBM)
              if (platformType == 0)
              {
-@@ -305,7 +305,7 @@ rx::DisplayImpl *CreateDisplayFromAttrib
+@@ -462,7 +462,7 @@ rx::DisplayImpl *CreateDisplayFromAttrib
  #if defined(ANGLE_ENABLE_OPENGL)
  #    if defined(ANGLE_PLATFORM_WINDOWS)
              impl = new rx::DisplayWGL(state);
 -#    elif defined(ANGLE_PLATFORM_LINUX)
-+#    elif defined(ANGLE_PLATFORM_POSIX)
++#    elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
  #        if defined(ANGLE_USE_GBM)
              if (platformType == 0)
              {
-@@ -346,7 +346,7 @@ rx::DisplayImpl *CreateDisplayFromAttrib
-             {
+@@ -513,7 +513,7 @@ rx::DisplayImpl *CreateDisplayFromAttrib
                  impl = rx::CreateVulkanWin32Display(state);
              }
+             break;
 -#    elif defined(ANGLE_PLATFORM_LINUX)
-+#    elif defined(ANGLE_PLATFORM_POSIX)
- #        if defined(ANGLE_USE_X11)
-             if (platformType == EGL_PLATFORM_X11_EXT && rx::IsVulkanXcbDisplayAvailable())
++#    elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
+ #        if defined(ANGLE_USE_GBM)
+             if (platformType == EGL_PLATFORM_GBM_KHR && rx::IsVulkanGbmDisplayAvailable())
              {
-@@ -1508,7 +1508,7 @@ static ClientExtensions GenerateClientEx
+@@ -2157,7 +2157,7 @@ static ClientExtensions GenerateClientEx
      extensions.x11Visual = true;
  #endif
  
 -#if defined(ANGLE_PLATFORM_LINUX)
-+#if defined(ANGLE_PLATFORM_POSIX)
++#if defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
      extensions.platformANGLEDeviceTypeEGLANGLE = true;
  #endif
  
diff --git a/chromium/patches/patch-third__party_angle_src_libANGLE_formatutils.cpp b/chromium/patches/patch-third__party_angle_src_libANGLE_formatutils.cpp
new file mode 100644
index 0000000000..6763acd0d4
--- /dev/null
+++ b/chromium/patches/patch-third__party_angle_src_libANGLE_formatutils.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/libANGLE/formatutils.cpp.orig	2024-07-24 02:45:19.772959700 +0000
++++ third_party/angle/src/libANGLE/formatutils.cpp
+@@ -1475,7 +1475,7 @@ static InternalFormatInfoMap BuildIntern
+     AddYUVFormat(&map,  GL_G8_B8R8_2PLANE_420_UNORM_ANGLE,            true,   8,   8,  8,   0,  0,  GL_G8_B8R8_2PLANE_420_UNORM_ANGLE,    GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::yuvInternalFormatANGLE>,          RequireExt<&Extensions::yuvInternalFormatANGLE>,          RequireExt<&Extensions::yuvInternalFormatANGLE>,          NeverSupported, NeverSupported);
+     AddYUVFormat(&map,  GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE,           true,   8,   8,  8,   0,  0,  GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE,   GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::yuvInternalFormatANGLE>,          RequireExt<&Extensions::yuvInternalFormatANGLE>,          RequireExt<&Extensions::yuvInternalFormatANGLE>,          NeverSupported, NeverSupported);
+ 
+-#if defined(ANGLE_PLATFORM_LINUX)
++#if defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD)
+     // From GL_OES_required_internalformat
+     // The |shared| bit shouldn't be 2. But given this hits assertion when bits
+     // are checked, it's fine to have this bit set as 2 as a workaround.
diff --git a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.cpp b/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.cpp
deleted file mode 100644
index dd14f246ac..0000000000
--- a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-$NetBSD$
-
---- third_party/angle/src/libANGLE/renderer/driver_utils.cpp.orig	2020-07-15 19:01:32.000000000 +0000
-+++ third_party/angle/src/libANGLE/renderer/driver_utils.cpp
-@@ -16,7 +18,7 @@
- #    include <sys/system_properties.h>
- #endif
- 
--#if defined(ANGLE_PLATFORM_LINUX)
-+#if defined(ANGLE_PLATFORM_POSIX)
- #    include <sys/utsname.h>
- #endif
- 
-@@ -206,12 +208,20 @@ OSVersion GetMacOSVersion()
- }
- #endif
- 
--#if defined(ANGLE_PLATFORM_LINUX)
-+#if defined(ANGLE_PLATFORM_POSIX)
- bool ParseLinuxOSVersion(const char *version, int *major, int *minor, int *patch)
- {
-     errno = 0;  // reset global error flag.
-     char *next;
-     *major = static_cast<int>(strtol(version, &next, 10));
-+#if defined(OS_BSD)
-+    if (next == nullptr || *next != '-' || errno != 0)
-+    {
-+        return false;
-+    }
-+
-+    *patch = 0;
-+#else
-     if (next == nullptr || *next != '.' || errno != 0)
-     {
-         return false;
-@@ -228,6 +238,7 @@ bool ParseLinuxOSVersion(const char *ver
-     {
-         return false;
-     }
-+#endif
- 
-     return true;
- }
-@@ -235,7 +246,7 @@ bool ParseLinuxOSVersion(const char *ver
- 
- OSVersion GetLinuxOSVersion()
- {
--#if defined(ANGLE_PLATFORM_LINUX)
-+#if defined(ANGLE_PLATFORM_POSIX)
-     struct utsname uname_info;
-     if (uname(&uname_info) != 0)
-     {
diff --git a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.h b/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.h
deleted file mode 100644
index fc79620529..0000000000
--- a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_driver__utils.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/angle/src/libANGLE/renderer/driver_utils.h.orig	2020-07-15 19:01:32.000000000 +0000
-+++ third_party/angle/src/libANGLE/renderer/driver_utils.h
-@@ -139,7 +139,7 @@ inline bool IsWindows()
- 
- inline bool IsLinux()
- {
--#if defined(ANGLE_PLATFORM_LINUX)
-+#if defined(ANGLE_PLATFORM_POSIX)
-     return true;
- #else
-     return false;
diff --git a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp b/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp
new file mode 100644
index 0000000000..0ae6e6bb10
--- /dev/null
+++ b/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp.orig	2024-07-24 02:45:19.900972100 +0000
++++ third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp
+@@ -144,10 +144,10 @@ bool FunctionsGLX::initialize(Display *x
+     // which a GLXWindow was ever created.
+     if (!sLibHandle)
+     {
+-        sLibHandle = dlopen("libGL.so.1", RTLD_NOW);
++        sLibHandle = dlopen("libGL.so", RTLD_NOW);
+         if (!sLibHandle)
+         {
+-            *errorString = std::string("Could not dlopen libGL.so.1: ") + dlerror();
++            *errorString = std::string("Could not dlopen libGL.so: ") + dlerror();
+             return false;
+         }
+     }
diff --git a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h b/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h
index 1a79b1b62f..ef61d024f0 100644
--- a/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h
+++ b/chromium/patches/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h.orig	2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h.orig	2024-07-24 02:45:19.940976000 +0000
 +++ third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h
-@@ -19,7 +19,7 @@ bool IsVulkanWin32DisplayAvailable();
+@@ -23,7 +23,7 @@ bool IsVulkanWin32DisplayAvailable();
  DisplayImpl *CreateVulkanWin32Display(const egl::DisplayState &state);
  #endif  // defined(ANGLE_PLATFORM_WINDOWS)
  
 -#if defined(ANGLE_PLATFORM_LINUX)
 +#if defined(ANGLE_PLATFORM_POSIX)
- bool IsVulkanXcbDisplayAvailable();
- DisplayImpl *CreateVulkanXcbDisplay(const egl::DisplayState &state);
- #endif  // defined(ANGLE_PLATFORM_LINUX)
+ bool IsVulkanWaylandDisplayAvailable();
+ DisplayImpl *CreateVulkanWaylandDisplay(const egl::DisplayState &state);
+ 
diff --git a/chromium/patches/patch-third__party_angle_src_libGLESv2.gni b/chromium/patches/patch-third__party_angle_src_libGLESv2.gni
deleted file mode 100644
index a4fc9a125b..0000000000
--- a/chromium/patches/patch-third__party_angle_src_libGLESv2.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/angle/src/libGLESv2.gni.orig	2020-07-15 19:01:32.000000000 +0000
-+++ third_party/angle/src/libGLESv2.gni
-@@ -74,7 +74,7 @@ angle_system_utils_sources = [
-   "src/common/system_utils.h",
- ]
- 
--if (is_linux || is_android || is_fuchsia) {
-+if (is_linux || is_android || is_fuchsia || is_bsd) {
-   angle_system_utils_sources += [
-     "src/common/system_utils_linux.cpp",
-     "src/common/system_utils_posix.cpp",
diff --git a/chromium/patches/patch-third__party_angle_src_tests_BUILD.gn b/chromium/patches/patch-third__party_angle_src_tests_BUILD.gn
deleted file mode 100644
index 902ae0238e..0000000000
--- a/chromium/patches/patch-third__party_angle_src_tests_BUILD.gn
+++ /dev/null
@@ -1,92 +0,0 @@
-$NetBSD$
-
---- third_party/angle/src/tests/BUILD.gn.orig	2020-06-25 09:34:42.000000000 +0000
-+++ third_party/angle/src/tests/BUILD.gn
-@@ -134,7 +134,7 @@ angle_test("angle_unittests") {
-   }
- }
- 
--if (is_win || is_linux || is_mac || is_android || is_fuchsia) {
-+if (is_win || is_linux || is_mac || is_android || is_fuchsia || is_bsd) {
-   import("angle_end2end_tests.gni")
- 
-   angle_test("angle_end2end_tests") {
-@@ -187,7 +187,7 @@ if (is_win || is_linux || is_mac || is_a
-   }
- }
- 
--if (is_win || is_linux || is_mac || is_android) {
-+if (is_win || is_linux || is_mac || is_android || is_bsd) {
-   import("angle_white_box_tests.gni")
- 
-   angle_test("angle_white_box_tests") {
-@@ -251,7 +251,7 @@ angle_perftests_common("angle_perftests_
-   test_utils = ":angle_common_test_utils_static"
- }
- 
--if (is_win || is_linux || is_android || is_mac) {
-+if (is_win || is_linux || is_android || is_mac || is_bsd) {
-   import("angle_perftests.gni")
- 
-   # This test suite is for perf tests that use ANGLE's internals in some direct way.
-@@ -279,7 +279,7 @@ if (is_win || is_linux || is_android || 
-   }
- }
- 
--if (is_win || is_linux || is_android || is_mac || is_fuchsia) {
-+if (is_win || is_linux || is_android || is_mac || is_fuchsia || is_bsd) {
-   import("angle_perftests.gni")
- 
-   angle_source_set("angle_trace_perftests") {
-@@ -367,13 +367,13 @@ if (is_win || is_linux || is_android || 
-       "${angle_root}:libGLESv2",
-     ]
- 
--    if (is_win || is_linux) {
-+    if (is_win || is_linux || is_bsd) {
-       data_deps += [ "${angle_root}/third_party/glmark2:glmark2_angle" ]
-     }
-     if (is_win && target_cpu != "arm64") {
-       data_deps += [ "${angle_root}/third_party/glmark2:glmark2_wgl" ]
-     }
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       data_deps += [ "${angle_root}/third_party/glmark2:glmark2_glx" ]
-     }
- 
-@@ -793,7 +793,7 @@ if (build_angle_gles1_conform_tests) {
- 
-     sources += angle_gles1_conform_common_source
- 
--    if (!is_win && !is_linux) {
-+    if (!is_win && !is_linux || !is_bsd) {
-       defines = [ "NULLWS" ]
-     }
-   }
-@@ -807,7 +807,7 @@ if (build_angle_gles1_conform_tests) {
- 
-     if (is_win) {
-       sources += [ "$gles1_conform_root/conform/covegl/native_w32.c" ]
--    } else if (is_linux) {
-+    } else if (is_linux || is_bsd) {
-       sources += [ "$gles1_conform_root/conform/covegl/native.c" ]
-     } else {
-       sources += [ "$gles1_conform_root/conform/covegl/native_nws.c" ]
-@@ -910,7 +910,7 @@ if (build_angle_deqp_tests && !is_fuchsi
-     # Ask the system headers to expose all the regular function otherwise
-     # dEQP doesn't compile and produces warnings about implicitly defined
-     # functions.
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       # This has to be GNU_SOURCE as on Linux dEQP uses syscall()
-       defines += [ "_GNU_SOURCE" ]
-     }
-@@ -1045,7 +1045,7 @@ if (build_angle_deqp_tests && !is_fuchsi
-     if (is_win) {
-       sources += deqp_framework_delibs_sources_win
-     }
--    if (is_linux || is_android || is_mac) {
-+    if (is_linux || is_android || is_mac || is_bsd) {
-       sources += deqp_framework_delibs_sources_unix
-     }
- 
diff --git a/chromium/patches/patch-third__party_angle_third__party_glmark2_BUILD.gn b/chromium/patches/patch-third__party_angle_third__party_glmark2_BUILD.gn
deleted file mode 100644
index c843c76a3d..0000000000
--- a/chromium/patches/patch-third__party_angle_third__party_glmark2_BUILD.gn
+++ /dev/null
@@ -1,38 +0,0 @@
-$NetBSD$
-
---- third_party/angle/third_party/glmark2/BUILD.gn.orig	2020-06-25 09:34:42.000000000 +0000
-+++ third_party/angle/third_party/glmark2/BUILD.gn
-@@ -111,7 +111,7 @@ source_set("glmark2_headers") {
-     "src/src/texture.h",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [ "src/src/gl-state-glx.h" ]
-   }
-   if (is_win) {
-@@ -346,7 +346,7 @@ template("glmark2_exe") {
-         "src/src/native-state-win32.h",
-       ]
-     }
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       defines += [ "GLMARK2_USE_X11" ]
-       sources += [
-         "src/src/native-state-x11.cpp",
-@@ -370,13 +370,13 @@ glmark2_exe("glmark2_angle") {
-     "GLMARK2_USE_EGL",
-   ]
- 
--  if (is_linux && !is_component_build) {
-+  if ((is_linux || is_bsd) && !is_component_build) {
-     # Set rpath to find shared libs in a non-component build.
-     public_configs = [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-   }
- }
- 
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   glmark2_exe("glmark2_glx") {
-     sources = [
-       "src/src/gl-state-glx.cpp",
diff --git a/chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_loader.c b/chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_loader.c
deleted file mode 100644
index 56d61022b8..0000000000
--- a/chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_loader.c
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/angle/third_party/vulkan-loader/src/loader/loader.c.orig	2020-07-15 19:01:42.000000000 +0000
-+++ third_party/angle/third_party/vulkan-loader/src/loader/loader.c
-@@ -246,7 +246,7 @@ void *loader_device_heap_realloc(const s
- }
- 
- // Environment variables
--#if defined(__linux__) || defined(__APPLE__)
-+#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
- 
- static inline bool IsHighIntegrity() {
-     return geteuid() != getuid() || getegid() != getgid();
diff --git a/chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_vk__loader__platform.h b/chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_vk__loader__platform.h
deleted file mode 100644
index 5b5d1931a6..0000000000
--- a/chromium/patches/patch-third__party_angle_third__party_vulkan-loader_src_loader_vk__loader__platform.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/angle/third_party/vulkan-loader/src/loader/vk_loader_platform.h.orig	2020-07-15 19:01:42.000000000 +0000
-+++ third_party/angle/third_party/vulkan-loader/src/loader/vk_loader_platform.h
-@@ -31,7 +31,7 @@
- #include "vulkan/vk_platform.h"
- #include "vulkan/vk_sdk_platform.h"
- 
--#if defined(__linux__) || defined(__APPLE__)
-+#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
- /* Linux-specific common code: */
- 
- // Headers:
diff --git a/chromium/patches/patch-third__party_angle_third__party_vulkan-validation-layers_src_layers_vk__loader__platform.h b/chromium/patches/patch-third__party_angle_third__party_vulkan-validation-layers_src_layers_vk__loader__platform.h
deleted file mode 100644
index 668bc5104c..0000000000
--- a/chromium/patches/patch-third__party_angle_third__party_vulkan-validation-layers_src_layers_vk__loader__platform.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_loader_platform.h.orig	2020-07-15 19:01:42.000000000 +0000
-+++ third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_loader_platform.h
-@@ -33,7 +33,7 @@
- #undef NOMINMAX
- #include "vulkan/vk_sdk_platform.h"
- 
--#if defined(__linux__) || defined(__APPLE__)
-+#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
- /* Linux-specific common code: */
- 
- // Headers:
diff --git a/chromium/patches/patch-third__party_angle_util_BUILD.gn b/chromium/patches/patch-third__party_angle_util_BUILD.gn
index c463c63a99..0c0f4515a3 100644
--- a/chromium/patches/patch-third__party_angle_util_BUILD.gn
+++ b/chromium/patches/patch-third__party_angle_util_BUILD.gn
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- third_party/angle/util/BUILD.gn.orig	2020-07-15 19:01:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/angle/util/BUILD.gn.orig	2024-07-24 02:45:20.825061600 +0000
 +++ third_party/angle/util/BUILD.gn
-@@ -135,7 +135,7 @@ angle_source_set("angle_util_loader") {
- config("angle_util_config") {
-   # Force users to include "util/header.h" instead of just "header.h".
-   include_dirs = [ ".." ]
--  if (is_linux && angle_use_x11) {
-+  if ((is_linux || is_bsd) && angle_use_x11) {
-     libs = [ "X11" ]
-   }
- }
-@@ -165,7 +165,7 @@ foreach(is_shared_library,
+@@ -311,7 +311,7 @@ foreach(is_shared_library,
      ]
      libs = []
  
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
+-    if (is_linux || is_chromeos) {
++    if ((is_linux || is_chromeos) && !is_bsd) {
        libs += [
          "rt",
          "dl",
diff --git a/chromium/patches/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc b/chromium/patches/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc
new file mode 100644
index 0000000000..a65c7ae0e7
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/common/renderer_preferences/renderer_preferences_mojom_traits.cc.orig	2024-07-24 02:44:44.489542000 +0000
++++ third_party/blink/common/renderer_preferences/renderer_preferences_mojom_traits.cc
+@@ -68,7 +68,7 @@ bool StructTraits<blink::mojom::Renderer
+ 
+   out->send_subresource_notification = data.send_subresource_notification();
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (!data.ReadSystemFontFamilyName(&out->system_font_family_name))
+     return false;
+ #endif
diff --git a/chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h b/chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h
new file mode 100644
index 0000000000..6c7d4cc29c
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/public/common/renderer_preferences/renderer_preferences.h.orig	2024-07-24 02:44:45.049596300 +0000
++++ third_party/blink/public/common/renderer_preferences/renderer_preferences.h
+@@ -65,7 +65,7 @@ struct BLINK_COMMON_EXPORT RendererPrefe
+   UserAgentOverride user_agent_override;
+   std::string accept_languages;
+   bool send_subresource_notification{false};
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   std::string system_font_family_name;
+ #endif
+ #if BUILDFLAG(IS_WIN)
diff --git a/chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h b/chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h
new file mode 100644
index 0000000000..0a6f0ec72e
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/public/common/renderer_preferences/renderer_preferences_mojom_traits.h.orig	2024-07-24 02:44:45.049596300 +0000
++++ third_party/blink/public/common/renderer_preferences/renderer_preferences_mojom_traits.h
+@@ -166,7 +166,7 @@ struct BLINK_COMMON_EXPORT
+     return data.send_subresource_notification;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   static const std::string& system_font_family_name(
+       const ::blink::RendererPreferences& data) {
+     return data.system_font_family_name;
diff --git a/chromium/patches/patch-third__party_blink_public_mojom_BUILD.gn b/chromium/patches/patch-third__party_blink_public_mojom_BUILD.gn
deleted file mode 100644
index 410589365a..0000000000
--- a/chromium/patches/patch-third__party_blink_public_mojom_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/blink/public/mojom/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ third_party/blink/public/mojom/BUILD.gn
-@@ -237,7 +237,7 @@ mojom("mojom_platform") {
-     ]
-   }
- 
--  if (is_linux || is_chromeos) {
-+  if (is_linux || is_chromeos || is_bsd) {
-     enabled_features = [ "renderer_pref_system_font_family_name" ]
-   }
- 
diff --git a/chromium/patches/patch-third__party_blink_public_platform_platform.h b/chromium/patches/patch-third__party_blink_public_platform_platform.h
new file mode 100644
index 0000000000..ab8b68f71f
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_public_platform_platform.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/public/platform/platform.h.orig	2024-07-24 02:44:45.109602200 +0000
++++ third_party/blink/public/platform/platform.h
+@@ -354,7 +354,7 @@ class BLINK_PLATFORM_EXPORT Platform {
+     return nullptr;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // This is called after the thread is created, so the embedder
+   // can initiate an IPC to change its thread type (on Linux we can't
+   // increase the nice value, so we need to ask the browser process). This
diff --git a/chromium/patches/patch-third__party_blink_public_platform_web__vector.h b/chromium/patches/patch-third__party_blink_public_platform_web__vector.h
new file mode 100644
index 0000000000..f59abaff2a
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_public_platform_web__vector.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/public/platform/web_vector.h.orig	2024-07-24 02:44:45.117602800 +0000
++++ third_party/blink/public/platform/web_vector.h
+@@ -86,7 +86,7 @@ class WebVector {
+   // The vector can be populated using reserve() and emplace_back().
+   WebVector() = default;
+ 
+-#if defined(ARCH_CPU_64_BITS)
++#if defined(ARCH_CPU_64_BITS) || defined(__OpenBSD__)
+   // Create a vector with |size| default-constructed elements. We define
+   // a constructor with size_t otherwise we'd have a duplicate define.
+   explicit WebVector(size_t size) : data_(size) {}
diff --git a/chromium/patches/patch-third__party_blink_renderer_BUILD.gn b/chromium/patches/patch-third__party_blink_renderer_BUILD.gn
deleted file mode 100644
index 6513504a50..0000000000
--- a/chromium/patches/patch-third__party_blink_renderer_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/blink/renderer/BUILD.gn.orig	2020-06-25 09:31:36.000000000 +0000
-+++ third_party/blink/renderer/BUILD.gn
-@@ -45,8 +45,6 @@ config("inside_blink") {
-       "-Wconversion",
-       "-Wno-float-conversion",
-       "-Wno-sign-conversion",
--      "-Wno-implicit-float-conversion",
--      "-Wno-implicit-int-conversion",
-     ]
- 
-     if (!is_chromeos || default_toolchain != "//build/toolchain/cros:target") {
diff --git a/chromium/patches/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py b/chromium/patches/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py
index 227d468621..f494c60587 100644
--- a/chromium/patches/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py
+++ b/chromium/patches/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py
@@ -1,28 +1,17 @@
 $NetBSD$
 
---- third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py.orig	2020-07-15 18:56:02.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py.orig	2024-07-24 02:44:45.217612500 +0000
 +++ third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
-@@ -29,6 +29,15 @@ def init(root_src_dir):
-     elif sys.platform.startswith(("cygwin", "win")):
-         platform = "win"
-         exe_suffix = ".exe"
-+    elif sys.platform.startswith("freebsd"):
-+        platform = "freebsd"
-+        exe_suffix = ""
-+    elif sys.platform.startswith("openbsd"):
-+        platform = "openbsd"
-+        exe_suffix = ""
-+    elif sys.platform.startswith("netbsd"):
-+        platform = "netbsd"
-+        exe_suffix = ""
-     else:
-         assert False, "Unknown platform: {}".format(sys.platform)
-     buildtools_platform_dir = os.path.join(root_src_dir, "buildtools",
-@@ -37,6 +46,7 @@ def init(root_src_dir):
-     # //buildtools/<platform>/clang-format
-     _clang_format_command_path = os.path.join(
-         buildtools_platform_dir, "clang-format{}".format(exe_suffix))
-+    _clang_format_command_path = "@PREFIX@/bin/clang-format"
+@@ -30,7 +30,7 @@ def init(root_src_dir, enable_style_form
  
-     # //buildtools/<platform>/gn
-     _gn_command_path = os.path.join(buildtools_platform_dir,
+     # Determine //buildtools/<platform>/ directory
+     new_path_platform_suffix = ""
+-    if sys.platform.startswith("linux"):
++    if sys.platform.startswith(("linux","openbsd","freebsd","netbsd")):
+         platform = "linux64"
+         exe_suffix = ""
+     elif sys.platform.startswith("darwin"):
diff --git a/chromium/patches/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py b/chromium/patches/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py
new file mode 100644
index 0000000000..13cdc7edc3
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/build/scripts/run_with_pythonpath.py.orig	2024-07-24 02:44:45.233614200 +0000
++++ third_party/blink/renderer/build/scripts/run_with_pythonpath.py
+@@ -22,6 +22,7 @@ def main():
+         existing_pp = (
+             os.pathsep + env['PYTHONPATH']) if 'PYTHONPATH' in env else ''
+         env['PYTHONPATH'] = os.pathsep.join(python_paths) + existing_pp
++    env['LD_LIBRARY_PATH'] = "${WRKSRC}/out/Release"
+     sys.exit(subprocess.call([sys.executable] + args, env=env))
+ 
+ 
diff --git a/chromium/patches/patch-third__party_blink_renderer_controller_BUILD.gn b/chromium/patches/patch-third__party_blink_renderer_controller_BUILD.gn
deleted file mode 100644
index 4bea63ab94..0000000000
--- a/chromium/patches/patch-third__party_blink_renderer_controller_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- third_party/blink/renderer/controller/BUILD.gn.orig	2020-07-15 18:56:47.000000000 +0000
-+++ third_party/blink/renderer/controller/BUILD.gn
-@@ -45,7 +45,7 @@ jumbo_component("controller") {
-     "memory_usage_monitor.h",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "memory_usage_monitor_posix.cc",
-       "memory_usage_monitor_posix.h",
-@@ -81,7 +81,7 @@ jumbo_component("controller") {
- 
-   # HighestPmfReporter depends on MemoryUsageMonitor and MemoryUsageMonitor
-   # depends on platform specific code. Explicitly specify supported platforms.
--  if (is_linux || is_win || is_android || is_mac) {
-+  if (is_linux || is_win || is_android || is_mac || is_bsd) {
-     sources += [
-       "highest_pmf_reporter.cc",
-       "highest_pmf_reporter.h",
-@@ -165,7 +165,7 @@ jumbo_source_set("blink_unittests_source
- 
-   sources = [ "tests/run_all_tests.cc" ]
-   sources += bindings_unittest_files
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [ "memory_usage_monitor_posix_test.cc" ]
-   }
-   if (is_android) {
-@@ -176,7 +176,7 @@ jumbo_source_set("blink_unittests_source
-     ]
-   }
- 
--  if (is_linux || is_android || is_mac || is_win) {
-+  if (is_linux || is_android || is_mac || is_win || is_bsd) {
-     sources += [
-       "highest_pmf_reporter_test.cc",
-       "memory_usage_monitor_test.cc",
diff --git a/chromium/patches/patch-third__party_blink_renderer_controller_blink__initializer.cc b/chromium/patches/patch-third__party_blink_renderer_controller_blink__initializer.cc
index e7b065f749..186de3cf37 100644
--- a/chromium/patches/patch-third__party_blink_renderer_controller_blink__initializer.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_controller_blink__initializer.cc
@@ -1,37 +1,41 @@
 $NetBSD$
 
---- third_party/blink/renderer/controller/blink_initializer.cc.orig	2020-07-15 18:56:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/controller/blink_initializer.cc.orig	2024-07-24 02:44:45.381628500 +0000
 +++ third_party/blink/renderer/controller/blink_initializer.cc
-@@ -66,12 +66,12 @@
- #include "third_party/blink/renderer/controller/oom_intervention_impl.h"
+@@ -81,12 +81,12 @@
+ #include "third_party/blink/renderer/controller/private_memory_footprint_provider.h"
  #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "third_party/blink/renderer/controller/memory_usage_monitor_posix.h"
  #endif
  
- #if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_MACOSX) || \
--    defined(OS_WIN)
-+    defined(OS_WIN) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
  #include "third_party/blink/renderer/controller/highest_pmf_reporter.h"
  #include "third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h"
  #endif
-@@ -143,7 +143,7 @@ void InitializeCommon(Platform* platform
+@@ -256,7 +256,7 @@ void BlinkInitializer::RegisterInterface
+       main_thread_task_runner);
  #endif
  
- #if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_MACOSX) || \
--    defined(OS_WIN)
-+    defined(OS_WIN) || defined(OS_BSD)
-   // Initialize UserLevelMemoryPressureSignalGenerator so it starts monitoring.
-   if (UserLevelMemoryPressureSignalGenerator::Enabled())
-     UserLevelMemoryPressureSignalGenerator::Instance();
-@@ -195,7 +195,7 @@ void BlinkInitializer::RegisterInterface
-                   &CrashMemoryMetricsReporterImpl::Bind)),
-               main_thread->GetTaskRunner());
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   binders.Add<mojom::blink::MemoryUsageMonitorLinux>(
+       ConvertToBaseRepeatingCallback(
+           CrossThreadBindRepeating(&MemoryUsageMonitorPosix::Bind)),
+@@ -303,7 +303,7 @@ void BlinkInitializer::RegisterMemoryWat
  #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   binders.Add(ConvertToBaseRepeatingCallback(
-                   CrossThreadBindRepeating(&MemoryUsageMonitorPosix::Bind)),
-               main_thread->GetTaskRunner());
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN)
++    BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
+   // Start reporting the highest private memory footprint after the first
+   // navigation.
+   HighestPmfReporter::Initialize(main_thread_task_runner);
diff --git a/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc b/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc
index 5afcbbc57f..bebda43575 100644
--- a/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc
@@ -1,13 +1,27 @@
 $NetBSD$
 
---- third_party/blink/renderer/controller/memory_usage_monitor_posix.cc.orig	2020-07-15 18:56:02.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/controller/memory_usage_monitor_posix.cc.orig	2024-07-24 02:44:45.381628500 +0000
 +++ third_party/blink/renderer/controller/memory_usage_monitor_posix.cc
-@@ -134,7 +134,7 @@ void MemoryUsageMonitorPosix::SetProcFil
+@@ -128,15 +128,17 @@ void MemoryUsageMonitorPosix::ResetFileD
+ 
+ void MemoryUsageMonitorPosix::SetProcFiles(base::File statm_file,
+                                            base::File status_file) {
++#if !BUILDFLAG(IS_BSD)
+   DCHECK(statm_file.IsValid());
+   DCHECK(status_file.IsValid());
+   DCHECK_EQ(-1, statm_fd_.get());
+   DCHECK_EQ(-1, status_fd_.get());
+   statm_fd_.reset(statm_file.TakePlatformFile());
    status_fd_.reset(status_file.TakePlatformFile());
++#endif
  }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // static
  void MemoryUsageMonitorPosix::Bind(
      mojo::PendingReceiver<mojom::blink::MemoryUsageMonitorLinux> receiver) {
diff --git a/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h b/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h
index 35ccf9297b..8a2ea29245 100644
--- a/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h
+++ b/chromium/patches/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h
@@ -1,49 +1,53 @@
 $NetBSD$
 
---- third_party/blink/renderer/controller/memory_usage_monitor_posix.h.orig	2020-07-15 18:56:02.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/controller/memory_usage_monitor_posix.h.orig	2024-07-24 02:44:45.381628500 +0000
 +++ third_party/blink/renderer/controller/memory_usage_monitor_posix.h
-@@ -12,7 +12,7 @@
+@@ -13,7 +13,7 @@
  #include "third_party/blink/renderer/controller/controller_export.h"
  #include "third_party/blink/renderer/controller/memory_usage_monitor.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "third_party/blink/public/mojom/memory_usage_monitor_linux.mojom-blink.h"
  #endif
  
-@@ -21,7 +21,7 @@ namespace blink {
+@@ -22,7 +22,7 @@ namespace blink {
  // MemoryUsageMonitor implementation for Android and Linux.
  class CONTROLLER_EXPORT MemoryUsageMonitorPosix
      : public MemoryUsageMonitor
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      ,
        public mojom::blink::MemoryUsageMonitorLinux
  #endif
-@@ -29,7 +29,7 @@ class CONTROLLER_EXPORT MemoryUsageMonit
+@@ -30,7 +30,7 @@ class CONTROLLER_EXPORT MemoryUsageMonit
   public:
    MemoryUsageMonitorPosix() = default;
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    static void Bind(
        mojo::PendingReceiver<mojom::blink::MemoryUsageMonitorLinux> receiver);
  #endif
-@@ -47,7 +47,7 @@ class CONTROLLER_EXPORT MemoryUsageMonit
+@@ -48,7 +48,7 @@ class CONTROLLER_EXPORT MemoryUsageMonit
                                                uint64_t* vm_size,
                                                uint64_t* vm_hwm_size);
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // mojom::MemoryUsageMonitorLinux implementations:
    void SetProcFiles(base::File statm_file, base::File status_file) override;
  #endif
-@@ -65,7 +65,7 @@ class CONTROLLER_EXPORT MemoryUsageMonit
+@@ -66,7 +66,7 @@ class CONTROLLER_EXPORT MemoryUsageMonit
    base::ScopedFD statm_fd_;
    base::ScopedFD status_fd_;
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    mojo::Receiver<mojom::blink::MemoryUsageMonitorLinux> receiver_{this};
  #endif
  };
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_editing_editing__behavior.cc b/chromium/patches/patch-third__party_blink_renderer_core_editing_editing__behavior.cc
index d4a210c5a8..ec01dbcc91 100644
--- a/chromium/patches/patch-third__party_blink_renderer_core_editing_editing__behavior.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_core_editing_editing__behavior.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/blink/renderer/core/editing/editing_behavior.cc.orig	2020-07-15 18:56:02.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/editing/editing_behavior.cc.orig	2024-07-24 02:44:45.601649800 +0000
 +++ third_party/blink/renderer/core/editing/editing_behavior.cc
-@@ -274,7 +274,7 @@ bool EditingBehavior::ShouldInsertCharac
+@@ -324,7 +324,7 @@ bool EditingBehavior::ShouldInsertCharac
    // unexpected behaviour
    if (ch < ' ')
      return false;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // According to XKB map no keyboard combinations with ctrl key are mapped to
    // printable characters, however we need the filter as the DomKey/text could
    // contain printable characters.
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_execution__context_navigator__base.cc b/chromium/patches/patch-third__party_blink_renderer_core_execution__context_navigator__base.cc
new file mode 100644
index 0000000000..23e2800391
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_core_execution__context_navigator__base.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/execution_context/navigator_base.cc.orig	2024-07-24 02:44:45.649654400 +0000
++++ third_party/blink/renderer/core/execution_context/navigator_base.cc
+@@ -31,7 +31,7 @@ String GetReducedNavigatorPlatform() {
+   return "Win32";
+ #elif BUILDFLAG(IS_FUCHSIA)
+   return "";
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   return "Linux x86_64";
+ #elif BUILDFLAG(IS_IOS)
+   return "iPhone";
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_exported_web__view__impl.cc b/chromium/patches/patch-third__party_blink_renderer_core_exported_web__view__impl.cc
new file mode 100644
index 0000000000..322d429d78
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_core_exported_web__view__impl.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/exported/web_view_impl.cc.orig	2024-07-24 02:44:45.661655700 +0000
++++ third_party/blink/renderer/core/exported/web_view_impl.cc
+@@ -427,7 +427,7 @@ SkFontHinting RendererPreferencesToSkiaH
+     const blink::RendererPreferences& prefs) {
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   if (!prefs.should_antialias_text) {
+     // When anti-aliasing is off, GTK maps all non-zero hinting settings to
+     // 'Normal' hinting so we do the same. Otherwise, folks who have 'Slight'
+@@ -3380,7 +3380,7 @@ void WebViewImpl::UpdateFontRenderingFro
+       renderer_preferences_.use_subpixel_positioning);
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) && \
+     !BUILDFLAG(IS_ANDROID)
+   if (!renderer_preferences_.system_font_family_name.empty()) {
+     WebFontRenderStyle::SetSystemFontFamily(blink::WebString::FromUTF8(
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_frame_web__frame__test.cc b/chromium/patches/patch-third__party_blink_renderer_core_frame_web__frame__test.cc
new file mode 100644
index 0000000000..357aacb011
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_core_frame_web__frame__test.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/frame/web_frame_test.cc.orig	2024-07-24 02:44:45.721661300 +0000
++++ third_party/blink/renderer/core/frame/web_frame_test.cc
+@@ -6471,7 +6471,7 @@ TEST_F(WebFrameTest, DISABLED_PositionFo
+ }
+ 
+ #if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/1090246): Fix these tests on Fuchsia and re-enable.
+ // TODO(crbug.com/1317375): Build these tests on all platforms.
+ #define MAYBE_SelectRangeStaysHorizontallyAlignedWhenMoved \
+@@ -6880,7 +6880,7 @@ TEST_F(CompositedSelectionBoundsTest, La
+ TEST_F(CompositedSelectionBoundsTest, LargeSelectionNoScroll) {
+   RunTest("composited_selection_bounds_large_selection_noscroll.html");
+ }
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #if !BUILDFLAG(IS_ANDROID)
+ TEST_F(CompositedSelectionBoundsTest, Input) {
+   web_view_helper_.GetWebView()->GetSettings()->SetDefaultFontSize(16);
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc b/chromium/patches/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc
index 25357e2072..f8e36a4814 100644
--- a/chromium/patches/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc.orig	2020-07-15 18:56:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc.orig	2024-07-24 02:44:45.733662600 +0000
 +++ third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc
-@@ -43,7 +43,7 @@ constexpr base::TimeDelta kEncodeRowSlac
-     base::TimeDelta::FromMicroseconds(100);
+@@ -50,7 +50,7 @@ constexpr base::TimeDelta kEncodeRowSlac
  
  /* The value is based on user statistics on Nov 2017. */
--#if (defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN))
-+#if (defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)) || defined(OS_BSD)
+ #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
+-     BUILDFLAG(IS_WIN))
++     BUILDFLAG(IS_WIN)) || BUILDFLAG(IS_BSD)
  const double kIdleTaskStartTimeoutDelayMs = 1000.0;
  #else
  const double kIdleTaskStartTimeoutDelayMs = 4000.0;  // For ChromeOS, Mobile
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc b/chromium/patches/patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc
deleted file mode 100644
index 14a0083571..0000000000
--- a/chromium/patches/patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/blink/renderer/core/html/forms/internal_popup_menu.cc.orig	2020-07-15 18:56:02.000000000 +0000
-+++ third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
-@@ -113,7 +113,7 @@ class InternalPopupMenu::ItemIterationCo
-         is_in_group_(false),
-         buffer_(buffer) {
-     DCHECK(buffer_);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     // On other platforms, the <option> background color is the same as the
-     // <select> background color. On Linux, that makes the <option>
-     // background color very dark, so by default, try to use a lighter
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc b/chromium/patches/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc
index 1f3c83d026..fac63055ea 100644
--- a/chromium/patches/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/blink/renderer/core/inspector/inspector_memory_agent.cc.orig	2020-07-15 18:56:02.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/inspector/inspector_memory_agent.cc.orig	2024-07-24 02:44:45.837672700 +0000
 +++ third_party/blink/renderer/core/inspector/inspector_memory_agent.cc
-@@ -185,7 +185,7 @@ InspectorMemoryAgent::GetSamplingProfile
+@@ -192,7 +192,7 @@ InspectorMemoryAgent::GetSamplingProfile
  
  Vector<String> InspectorMemoryAgent::Symbolize(
-     const WebVector<void*>& addresses) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+     const WebVector<const void*>& addresses) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // TODO(alph): Move symbolization to the client.
-   Vector<void*> addresses_to_symbolize;
-   for (size_t i = 0; i < addresses.size(); i++) {
+   Vector<const void*> addresses_to_symbolize;
+   for (const void* address : addresses) {
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_layout_BUILD.gn b/chromium/patches/patch-third__party_blink_renderer_core_layout_BUILD.gn
deleted file mode 100644
index 88be40a3f4..0000000000
--- a/chromium/patches/patch-third__party_blink_renderer_core_layout_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/blink/renderer/core/layout/BUILD.gn.orig	2020-07-15 18:56:48.000000000 +0000
-+++ third_party/blink/renderer/core/layout/BUILD.gn
-@@ -614,7 +614,7 @@ blink_core_sources("layout") {
-     sources += [ "layout_theme_font_provider_default.cc" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "layout_theme_linux.cc",
-       "layout_theme_linux.h",
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_layout_layout__view.cc b/chromium/patches/patch-third__party_blink_renderer_core_layout_layout__view.cc
index 5d61924366..3fa4678c8a 100644
--- a/chromium/patches/patch-third__party_blink_renderer_core_layout_layout__view.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_core_layout_layout__view.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- third_party/blink/renderer/core/layout/layout_view.cc.orig	2020-07-15 18:56:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/layout/layout_view.cc.orig	2024-07-24 02:44:45.937682400 +0000
 +++ third_party/blink/renderer/core/layout/layout_view.cc
-@@ -62,7 +62,7 @@
- #include "third_party/blink/renderer/platform/instrumentation/tracing/traced_value.h"
- #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
+@@ -72,7 +72,7 @@
+ #include "ui/display/screen_info.h"
+ #include "ui/gfx/geometry/quad_f.h"
  
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "third_party/blink/renderer/platform/fonts/font_cache.h"
  #endif
  
-@@ -330,7 +330,7 @@ void LayoutView::UpdateLayout() {
-   DCHECK(!layout_state_);
-   LayoutState root_layout_state(*this);
+@@ -775,7 +775,7 @@ void LayoutView::LayoutRoot() {
+     intrinsic_logical_widths_ = LogicalWidth();
+   }
  
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // The font code in FontPlatformData does not have a direct connection to the
    // document, the frame or anything from which we could retrieve the device
    // scale factor. After using zoom for DSF, the GraphicsContext does only ever
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_paint_paint__layer.cc b/chromium/patches/patch-third__party_blink_renderer_core_paint_paint__layer.cc
index 8a6c17e31b..8db1e0ca55 100644
--- a/chromium/patches/patch-third__party_blink_renderer_core_paint_paint__layer.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_core_paint_paint__layer.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/blink/renderer/core/paint/paint_layer.cc.orig	2020-07-15 18:56:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/paint/paint_layer.cc.orig	2024-07-24 02:44:46.045692700 +0000
 +++ third_party/blink/renderer/core/paint/paint_layer.cc
-@@ -108,7 +108,7 @@ namespace {
- static CompositingQueryMode g_compositing_query_mode =
-     kCompositingQueriesAreOnlyAllowedInCertainDocumentLifecyclePhases;
+@@ -122,7 +122,7 @@ namespace blink {
+ 
+ namespace {
  
--#ifdef OS_LINUX
-+#if defined(OS_LINUX) || defined(OS_BSD)
- struct SameSizeAsPaintLayer : DisplayItemClient {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ struct SameSizeAsPaintLayer : GarbageCollected<PaintLayer>, DisplayItemClient {
    // The bit fields may fit into the machine word of DisplayItemClient which
    // has only 8-bit data.
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc b/chromium/patches/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc
index ce7211fb3f..e98145bf74 100644
--- a/chromium/patches/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc.orig	2020-07-15 18:56:03.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc.orig	2024-07-24 02:44:46.093697500 +0000
 +++ third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc
-@@ -137,7 +137,7 @@ bool ScrollbarThemeAura::SupportsDragSna
- // Disable snapback on desktop Linux to better integrate with the desktop
- // behavior. Typically, Linux apps do not implement scrollbar snapback (this
+@@ -149,7 +149,7 @@ bool ScrollbarThemeAura::SupportsDragSna
  // is true for at least GTK and QT apps).
--#if (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    return false;
  #else
    return true;
-@@ -301,7 +301,7 @@ ScrollbarPart ScrollbarThemeAura::PartsT
- 
- bool ScrollbarThemeAura::ShouldCenterOnThumb(const Scrollbar& scrollbar,
-                                              const WebMouseEvent& event) {
--#if (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+@@ -371,7 +371,7 @@ bool ScrollbarThemeAura::ShouldCenterOnT
+                                              const WebMouseEvent& event) const {
+ // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is
+ // complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    if (event.button == WebPointerProperties::Button::kMiddle)
      return true;
  #endif
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor.h b/chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor.h
new file mode 100644
index 0000000000..0b2d11cc4f
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor.h
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/xml/xslt_processor.h.orig	2024-07-24 02:44:46.249712500 +0000
++++ third_party/blink/renderer/core/xml/xslt_processor.h
+@@ -77,7 +77,11 @@ class XSLTProcessor final : public Scrip
+ 
+   void reset();
+ 
++#if (LIBXML_VERSION >= 21200)
+   static void ParseErrorFunc(void* user_data, const xmlError*);
++#else
++  static void ParseErrorFunc(void* user_data, xmlError*);
++#endif
+   static void GenericErrorFunc(void* user_data, const char* msg, ...);
+ 
+   // Only for libXSLT callbacks
diff --git a/chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc b/chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc
new file mode 100644
index 0000000000..253f4662a7
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_core_xml_xslt__processor__libxslt.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc.orig	2024-07-24 02:44:46.249712500 +0000
++++ third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
+@@ -66,7 +66,11 @@ void XSLTProcessor::GenericErrorFunc(voi
+   // It would be nice to do something with this error message.
+ }
+ 
++#if (LIBXML_VERSION >= 21200)
+ void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) {
++#else
++void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {
++#endif
+   FrameConsole* console = static_cast<FrameConsole*>(user_data);
+   if (!console)
+     return;
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc b/chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc
new file mode 100644
index 0000000000..c5e3d51bd4
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/modules/media/audio/audio_device_factory.cc.orig	2024-07-24 02:44:46.397726800 +0000
++++ third_party/blink/renderer/modules/media/audio/audio_device_factory.cc
+@@ -35,7 +35,7 @@ namespace {
+ AudioDeviceFactory* g_factory_override = nullptr;
+ 
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS_LACROS)
++    BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+ // Due to driver deadlock issues on Windows (http://crbug/422522) there is a
+ // chance device authorization response is never received from the browser side.
+ // In this case we will time out, to avoid renderer hang forever waiting for
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc b/chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc
new file mode 100644
index 0000000000..979c079a02
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc.orig	2024-07-24 02:44:46.397726800 +0000
++++ third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc
+@@ -813,7 +813,7 @@ TEST_F(AudioRendererMixerManagerTest, Mi
+             mixer->get_output_params_for_testing().sample_rate());
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   // Use 10 ms buffer (441 frames per buffer).
+   EXPECT_EQ(output_sample_rate / 100,
+             mixer->get_output_params_for_testing().frames_per_buffer());
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_mediastream_processed__local__audio__source.cc b/chromium/patches/patch-third__party_blink_renderer_modules_mediastream_processed__local__audio__source.cc
deleted file mode 100644
index 2462102843..0000000000
--- a/chromium/patches/patch-third__party_blink_renderer_modules_mediastream_processed__local__audio__source.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/blink/renderer/modules/mediastream/processed_local_audio_source.cc.orig	2020-07-15 18:56:03.000000000 +0000
-+++ third_party/blink/renderer/modules/mediastream/processed_local_audio_source.cc
-@@ -408,7 +408,7 @@ void ProcessedLocalAudioSource::CaptureU
-     bool key_pressed) {
- #if defined(OS_WIN) || defined(OS_MACOSX)
-   DCHECK_LE(volume, 1.0);
--#elif (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_OPENBSD)
-+#elif (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
-   // We have a special situation on Linux where the microphone volume can be
-   // "higher than maximum". The input volume slider in the sound preference
-   // allows the user to set a scaling that is higher than 100%. It means that
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc b/chromium/patches/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc
new file mode 100644
index 0000000000..bc8b1b0497
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc.orig	2024-07-24 02:44:46.529739600 +0000
++++ third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc
+@@ -301,7 +301,7 @@ TEST_F(WebRtcAudioRendererTest, DISABLED
+   SetupRenderer(kDefaultOutputDeviceId);
+   renderer_proxy_->Start();
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   static const int kExpectedBufferSize = kHardwareSampleRate / 100;
+ #elif BUILDFLAG(IS_ANDROID)
+   static const int kExpectedBufferSize = 2 * kHardwareSampleRate / 100;
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc b/chromium/patches/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc
new file mode 100644
index 0000000000..a204b63c67
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc.orig	2024-07-24 02:44:46.601746600 +0000
++++ third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
+@@ -463,7 +463,7 @@ class AudioWorkletThreadPriorityTest
+ 
+     // TODO(crbug.com/1022888): The worklet thread priority is always NORMAL
+     // on OS_LINUX and OS_CHROMEOS regardless of the thread priority setting.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     if (expected_priority == base::ThreadPriorityForTest::kRealtimeAudio ||
+         expected_priority == base::ThreadPriorityForTest::kDisplay) {
+       EXPECT_EQ(actual_priority, base::ThreadPriorityForTest::kNormal);
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc b/chromium/patches/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc
new file mode 100644
index 0000000000..375f23ec44
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc.orig	2024-07-24 02:44:46.661752500 +0000
++++ third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
+@@ -6310,7 +6310,7 @@ void WebGLRenderingContextBase::TexImage
+   constexpr bool kAllowZeroCopyImages = true;
+ #endif
+ 
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // TODO(crbug.com/1175907): Only TexImage2D seems to work with the GPU path on
+   // Android M -- appears to work fine on R, but to avoid regressions in <video>
+   // limit to TexImage2D only for now. Fails conformance test on Nexus 5X:
diff --git a/chromium/patches/patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc b/chromium/patches/patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc
new file mode 100644
index 0000000000..6494b2eec1
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_modules_webgpu_gpu__queue.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/modules/webgpu/gpu_queue.cc.orig	2024-07-24 02:44:46.673753500 +0000
++++ third_party/blink/renderer/modules/webgpu/gpu_queue.cc
+@@ -783,7 +783,7 @@ bool GPUQueue::CopyFromCanvasSourceImage
+ // on linux platform.
+ // TODO(crbug.com/1424119): using a webgpu mailbox texture on the OpenGLES
+ // backend is failing for unknown reasons.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   bool forceReadback = true;
+ #elif BUILDFLAG(IS_ANDROID)
+   // TODO(crbug.com/dawn/1969): Some Android devices don't fail to copy from
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_BUILD.gn b/chromium/patches/patch-third__party_blink_renderer_platform_BUILD.gn
index 4dd7eea79f..9114ad3d9b 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_BUILD.gn
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_BUILD.gn
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/blink/renderer/platform/BUILD.gn.orig	2020-07-15 18:56:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/BUILD.gn.orig	2024-07-24 02:44:46.709757000 +0000
 +++ third_party/blink/renderer/platform/BUILD.gn
-@@ -2211,7 +2211,7 @@ test("blink_fuzzer_unittests") {
- 
-   sources = [ "testing/run_all_tests.cc" ]
+@@ -1993,7 +1993,7 @@ static_library("test_support") {
+   ]
  
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [
-       "//third_party/blink/renderer/platform/scheduler:scheduler_fuzzer_tests",
-     ]
+   # fuzzed_data_provider may not work with a custom toolchain.
+-  if (custom_toolchain == "" && is_clang) {
++  if ((custom_toolchain == "" && is_clang) && !is_bsd) {
+     sources += [
+       "testing/fuzzed_data_provider.cc",
+       "testing/fuzzed_data_provider.h",
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.cc b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.cc
index c0d691a9fe..9291be353e 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- third_party/blink/renderer/platform/fonts/font_cache.cc.orig	2020-07-15 18:56:03.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/font_cache.cc.orig	2024-07-24 02:44:46.757761700 +0000
 +++ third_party/blink/renderer/platform/fonts/font_cache.cc
-@@ -80,7 +80,7 @@ const char kColorEmojiLocale[] = "und-Zs
+@@ -73,7 +73,7 @@ extern const char kNotoColorEmojiCompat[
  
  SkFontMgr* FontCache::static_font_manager_ = nullptr;
  
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  float FontCache::device_scale_factor_ = 1.0;
  #endif
  
-@@ -120,7 +120,7 @@ FontCache::FontCache()
- FontPlatformData* FontCache::SystemFontPlatformData(
+@@ -124,7 +124,7 @@ const FontPlatformData* FontCache::Syste
      const FontDescription& font_description) {
    const AtomicString& family = FontCache::SystemFontFamily();
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
-   if (family.IsEmpty() || family == font_family_names::kSystemUi)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || \
+-    BUILDFLAG(IS_IOS)
++    BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD)
+   if (family.empty() || family == font_family_names::kSystemUi)
      return nullptr;
  #else
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.h b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.h
index e6280322e9..beb21d3961 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.h
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__cache.h
@@ -1,49 +1,53 @@
 $NetBSD$
 
---- third_party/blink/renderer/platform/fonts/font_cache.h.orig	2020-07-15 18:56:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/font_cache.h.orig	2024-07-24 02:44:46.757761700 +0000
 +++ third_party/blink/renderer/platform/fonts/font_cache.h
-@@ -58,7 +58,7 @@
+@@ -55,7 +55,7 @@
  #include "third_party/skia/include/core/SkFontMgr.h"
  #include "third_party/skia/include/core/SkRefCnt.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "ui/gfx/font_fallback_linux.h"
  #endif
  
-@@ -174,7 +174,7 @@ class PLATFORM_EXPORT FontCache {
-   sk_sp<SkFontMgr> FontManager() { return font_manager_; }
-   static void SetFontManager(sk_sp<SkFontMgr>);
+@@ -163,7 +163,7 @@ class PLATFORM_EXPORT FontCache final {
+   static void PrewarmFamily(const AtomicString& family_name) {}
+ #endif
  
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // These are needed for calling QueryRenderStyleForStrike, since
    // gfx::GetFontRenderParams makes distinctions based on DSF.
    static float DeviceScaleFactor() { return device_scale_factor_; }
-@@ -249,7 +249,7 @@ class PLATFORM_EXPORT FontCache {
-       const FontDescription&);
- #endif  // defined(OS_ANDROID)
+@@ -239,7 +239,7 @@ class PLATFORM_EXPORT FontCache final {
+       const char* locale_family_name);
+ #endif  // BUILDFLAG(IS_ANDROID)
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    static bool GetFontForCharacter(UChar32,
                                    const char* preferred_locale,
                                    gfx::FallbackFontData*);
-@@ -334,7 +334,7 @@ class PLATFORM_EXPORT FontCache {
+@@ -312,7 +312,7 @@ class PLATFORM_EXPORT FontCache final {
                                     const FontFaceCreationParams&,
                                     std::string& name);
  
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    static AtomicString GetFamilyNameForCharacter(SkFontMgr*,
                                                  UChar32,
                                                  const FontDescription&,
-@@ -379,7 +379,7 @@ class PLATFORM_EXPORT FontCache {
-   std::unique_ptr<FallbackFamilyStyleCache> fallback_params_cache_;
- #endif  // defined(OS_WIN)
+@@ -349,7 +349,7 @@ class PLATFORM_EXPORT FontCache final {
+   bool is_test_font_mgr_ = false;
+ #endif  // BUILDFLAG(IS_WIN)
  
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    static float device_scale_factor_;
  #endif
  
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__description.cc b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__description.cc
index 534eacd3e2..14f693605d 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__description.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__description.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- third_party/blink/renderer/platform/fonts/font_description.cc.orig	2020-07-15 18:56:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/font_description.cc.orig	2024-07-24 02:44:46.757761700 +0000
 +++ third_party/blink/renderer/platform/fonts/font_description.cc
-@@ -38,7 +38,7 @@
+@@ -39,7 +39,7 @@
  #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
  #include "third_party/blink/renderer/platform/wtf/text/string_hasher.h"
  
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
  #include "third_party/blink/renderer/platform/fonts/font_cache.h"
  #endif
  
-@@ -239,7 +239,7 @@ FontCacheKey FontDescription::CacheKey(
-       static_cast<unsigned>(fields_.orientation_) << 1 |          // bit 2-3
-       static_cast<unsigned>(fields_.subpixel_text_position_);     // bit 1
+@@ -277,7 +277,7 @@ FontCacheKey FontDescription::CacheKey(
+       static_cast<unsigned>(fields_.orientation_) << 1 |            // bit 2-3
+       static_cast<unsigned>(fields_.subpixel_text_position_);       // bit 1
  
--#if defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    float device_scale_factor_for_key = FontCache::DeviceScaleFactor();
  #else
    float device_scale_factor_for_key = 1.0f;
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc
index 1da8da2f70..ac54234d67 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc
@@ -1,31 +1,35 @@
 $NetBSD$
 
---- third_party/blink/renderer/platform/fonts/font_metrics.cc.orig	2020-07-15 18:56:03.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/font_metrics.cc.orig	2024-07-24 02:44:46.761762100 +0000
 +++ third_party/blink/renderer/platform/fonts/font_metrics.cc
-@@ -38,7 +38,7 @@
- 
+@@ -39,7 +39,7 @@
  namespace blink {
  
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
  // This is the largest VDMX table which we'll try to load and parse.
  static const size_t kMaxVDMXTableSize = 1024 * 1024;  // 1 MB
  #endif
-@@ -60,7 +60,7 @@ void FontMetrics::AscentDescentWithHacks
-   int vdmx_ascent = 0, vdmx_descent = 0;
+@@ -67,7 +67,7 @@ void FontMetrics::AscentDescentWithHacks
    bool is_vdmx_valid = false;
  
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
    // Manually digging up VDMX metrics is only applicable when bytecode hinting
    // using FreeType.  With DirectWrite or CoreText, no bytecode hinting is ever
    // done.  This code should be pushed into FreeType (hinted font metrics).
-@@ -106,7 +106,7 @@ void FontMetrics::AscentDescentWithHacks
-       visual_overflow_inflation_for_ascent = 1;
-     if (descent < metrics.fDescent) {
-       visual_overflow_inflation_for_descent = 1;
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD)
-       // When subpixel positioning is enabled, if the descent is rounded down,
-       // the descent part of the glyph may be truncated when displayed in a
-       // 'overflow: hidden' container.  To avoid that, borrow 1 unit from the
+@@ -111,7 +111,7 @@ void FontMetrics::AscentDescentWithHacks
+     descent = SkScalarRoundToScalar(metrics.fDescent);
+ 
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+     // When subpixel positioning is enabled, if the descent is rounded down,
+     // the descent part of the glyph may be truncated when displayed in a
+     // 'overflow: hidden' container.  To avoid that, borrow 1 unit from the
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__platform__data.cc b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__platform__data.cc
new file mode 100644
index 0000000000..0e2925e21e
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__platform__data.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/font_platform_data.cc.orig	2024-07-24 02:44:46.761762100 +0000
++++ third_party/blink/renderer/platform/fonts/font_platform_data.cc
+@@ -49,7 +49,7 @@
+ namespace blink {
+ namespace {
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Getting the system font render style takes a significant amount of time on
+ // Linux because looking up fonts using fontconfig can be very slow. We fetch
+ // the render style for each font family and text size, while it's very
+@@ -128,7 +128,7 @@ FontPlatformData::FontPlatformData(sk_sp
+   style_ = WebFontRenderStyle::GetDefault();
+ #if !BUILDFLAG(IS_WIN)
+   WebFontRenderStyle system_style;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   bool override_font_name_and_size =
+       base::FeatureList::IsEnabled(kOptimizeLinuxFonts);
+ #else
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc
index ed99eaa746..2f3aa6868b 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc.orig	2020-07-15 18:56:03.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc.orig	2024-07-24 02:44:46.761762100 +0000
 +++ third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc
-@@ -8,7 +8,7 @@
- #if defined(OS_ANDROID)
+@@ -9,7 +9,7 @@
+ #if BUILDFLAG(IS_ANDROID)
  #include "third_party/blink/public/mojom/font_unique_name_lookup/font_unique_name_lookup.mojom-blink.h"
  #include "third_party/blink/renderer/platform/fonts/android/font_unique_name_lookup_android.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "third_party/blink/renderer/platform/fonts/linux/font_unique_name_lookup_linux.h"
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
  #include "third_party/blink/renderer/platform/fonts/win/font_unique_name_lookup_win.h"
-@@ -23,7 +23,7 @@ std::unique_ptr<FontUniqueNameLookup>
+@@ -24,7 +24,7 @@ std::unique_ptr<FontUniqueNameLookup>
  FontUniqueNameLookup::GetPlatformUniqueNameLookup() {
- #if defined(OS_ANDROID)
+ #if BUILDFLAG(IS_ANDROID)
    return std::make_unique<FontUniqueNameLookupAndroid>();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    return std::make_unique<FontUniqueNameLookupLinux>();
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
    return std::make_unique<FontUniqueNameLookupWin>();
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
index 4bb63edac7..a8db13e446 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
@@ -1,31 +1,26 @@
 $NetBSD$
 
---- third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc.orig	2020-07-15 18:56:03.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc.orig	2024-07-24 02:44:46.777763600 +0000
 +++ third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
-@@ -61,7 +61,7 @@ AtomicString ToAtomicString(const SkStri
+@@ -65,7 +65,7 @@ AtomicString ToAtomicString(const SkStri
    return AtomicString::FromUTF8(str.c_str(), str.size());
  }
  
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // This function is called on android or when we are emulating android fonts on
  // linux and the embedder has overriden the default fontManager with
  // WebFontRendering::setSkiaFontMgr.
-@@ -229,7 +229,7 @@ sk_sp<SkTypeface> FontCache::CreateTypef
-   }
- #endif
- 
--#if defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
-   // On linux if the fontManager has been overridden then we should be calling
-   // the embedder provided font Manager rather than calling
-   // SkTypeface::CreateFromName which may redirect the call to the default font
-@@ -263,7 +263,7 @@ std::unique_ptr<FontPlatformData> FontCa
+@@ -246,7 +246,7 @@ const FontPlatformData* FontCache::Creat
    std::string name;
  
    sk_sp<SkTypeface> typeface;
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
-   if (alternate_name == AlternateFontName::kLocalUniqueFace &&
-       RuntimeEnabledFeatures::FontSrcLocalMatchingEnabled()) {
-     typeface = CreateTypefaceFromUniqueName(creation_params);
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   bool noto_color_emoji_from_gmscore = false;
+ #if BUILDFLAG(IS_ANDROID)
+   // Use the unique local matching pathway for fetching Noto Color Emoji Compat
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc b/chromium/patches/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc
new file mode 100644
index 0000000000..545dce3c14
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/graphics/begin_frame_provider.cc.orig	2024-07-24 02:44:46.785764500 +0000
++++ third_party/blink/renderer/platform/graphics/begin_frame_provider.cc
+@@ -71,8 +71,12 @@ void BeginFrameProvider::CreateComposito
+ 
+   // Once we are using RAF, this thread is driving user interactive display
+   // updates. Update priority accordingly.
++  // pledge(2)
++  // stop this baloney
++#if !defined(OS_OPENBSD)
+   base::PlatformThread::SetCurrentThreadType(
+       base::ThreadType::kDisplayCritical);
++#endif
+ 
+   mojo::Remote<mojom::blink::EmbeddedFrameSinkProvider> provider;
+   Platform::Current()->GetBrowserInterfaceBroker()->GetInterface(
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc b/chromium/patches/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc
index d0722473be..9135c50ac2 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/blink/renderer/platform/graphics/video_frame_submitter.cc.orig	2020-07-15 18:56:03.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/graphics/video_frame_submitter.cc.orig	2024-07-24 02:44:46.837769500 +0000
 +++ third_party/blink/renderer/platform/graphics/video_frame_submitter.cc
-@@ -195,7 +195,7 @@ void VideoFrameSubmitter::OnBeginFrame(
-     if (viz::FrameTokenGT(pair.key, *next_frame_token_))
+@@ -407,7 +407,7 @@ void VideoFrameSubmitter::OnBeginFrame(
        continue;
-     auto& feedback = pair.value.presentation_feedback;
--#ifdef OS_LINUX
-+#if defined(OS_LINUX) || defined(OS_BSD)
+     auto& feedback =
+         timing_details.find(frame_token)->value.presentation_feedback;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
      // TODO: On Linux failure flag is unreliable, and perfectly rendered frames
      // are reported as failures all the time.
      bool presentation_failure = false;
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc b/chromium/patches/patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc
new file mode 100644
index 0000000000..ac64918e77
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_instrumentation_partition__alloc__memory__dump__provider.cc
@@ -0,0 +1,34 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/instrumentation/partition_alloc_memory_dump_provider.cc.orig	2024-07-24 02:44:46.857771400 +0000
++++ third_party/blink/renderer/platform/instrumentation/partition_alloc_memory_dump_provider.cc
+@@ -14,7 +14,9 @@
+ 
+ namespace blink {
+ 
++#if !BUILDFLAG(IS_BSD)
+ const char kPartitionAllocDumpName[] = "partition_alloc";
++#endif
+ 
+ PartitionAllocMemoryDumpProvider* PartitionAllocMemoryDumpProvider::Instance() {
+   DEFINE_STATIC_LOCAL(PartitionAllocMemoryDumpProvider, instance, ());
+@@ -24,6 +26,7 @@ PartitionAllocMemoryDumpProvider* Partit
+ bool PartitionAllocMemoryDumpProvider::OnMemoryDump(
+     const base::trace_event::MemoryDumpArgs& args,
+     base::trace_event::ProcessMemoryDump* memory_dump) {
++#if !BUILDFLAG(IS_BSD)
+   using base::trace_event::MemoryDumpLevelOfDetail;
+ 
+   MemoryDumpLevelOfDetail level_of_detail = args.level_of_detail;
+@@ -49,6 +52,7 @@ bool PartitionAllocMemoryDumpProvider::O
+       "size", "bytes", partition_stats_dumper.total_active_bytes());
+   memory_dump->AddOwnershipEdge(allocated_objects_dump->guid(),
+                                 partitions_dump->guid());
++#endif
+ 
+   return true;
+ }
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc b/chromium/patches/patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc
new file mode 100644
index 0000000000..88c17ca146
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_peerconnection_rtc__video__encoder__factory.cc
@@ -0,0 +1,23 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc.orig	2024-07-24 02:44:46.917777300 +0000
++++ third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc
+@@ -254,12 +254,12 @@ SupportedFormats GetSupportedFormatsInte
+       supported_formats.scalability_modes.push_back(profile.scalability_modes);
+       supported_formats.sdp_formats.push_back(std::move(*format));
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #if BUILDFLAG(IS_WIN)
+       const bool kShouldAddH264Cbp =
+           base::FeatureList::IsEnabled(kMediaFoundationH264CbpEncoding) &&
+           profile.profile == media::VideoCodecProfile::H264PROFILE_BASELINE;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       const bool kShouldAddH264Cbp =
+           profile.profile == media::VideoCodecProfile::H264PROFILE_BASELINE;
+ #endif
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 b/chromium/patches/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
new file mode 100644
index 0000000000..c06dd0d1e0
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
@@ -0,0 +1,98 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig	2024-07-24 02:44:46.921777700 +0000
++++ third_party/blink/renderer/platform/runtime_enabled_features.json5
+@@ -324,7 +324,7 @@
+       name: "AppTitle",
+       status: "experimental",
+       origin_trial_feature_name: "AppTitle",
+-      origin_trial_os: ["win", "mac", "linux", "chromeos"],
++      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+       base_feature: "WebAppEnableAppTitle",
+     },
+     {
+@@ -1528,7 +1528,7 @@
+       status: "test",
+       base_feature: "none",
+       origin_trial_feature_name: "FedCmContinueOnBundle",
+-      origin_trial_os: ["win", "mac", "linux", "chromeos"],
++      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+       origin_trial_allows_third_party: true,
+     },
+     {
+@@ -1545,7 +1545,7 @@
+       status: "test",
+       base_feature: "none",
+       origin_trial_feature_name: "FedCmButtonMode",
+-      origin_trial_os: ["win", "mac", "linux", "chromeos"],
++      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+       origin_trial_allows_third_party: true,
+     },
+     {
+@@ -1590,7 +1590,7 @@
+       base_feature: "none",
+       public: true,
+       origin_trial_feature_name: "FedCmMultipleIdentityProviders",
+-      origin_trial_os: ["win", "mac", "linux", "chromeos"],
++      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+       origin_trial_allows_third_party: true,
+     },
+     {
+@@ -1928,7 +1928,7 @@
+       base_feature_status: "enabled",
+       copied_from_base_feature_if: "overridden",
+       origin_trial_feature_name: "FullscreenPopupWindows",
+-      origin_trial_os: ["win", "mac", "linux", "chromeos"],
++      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+     },
+     {
+       name: "GamepadButtonAxisEvents",
+@@ -3005,7 +3005,7 @@
+       // Tracking bug for the implementation: https://crbug.com/1462930
+       name: "PermissionElement",
+       origin_trial_feature_name: "PermissionElement",
+-      origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos"],
++      origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd", "netbsd"],
+       status: "experimental",
+       public: true,
+       base_feature_status: "enabled",
+@@ -3140,7 +3140,7 @@
+     {
+       name: "PrivateNetworkAccessPermissionPrompt",
+       origin_trial_feature_name: "PrivateNetworkAccessPermissionPrompt",
+-      origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos"],
++      origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd", "netbsd"],
+       status: "stable",
+       public: true,
+       base_feature: "none",
+@@ -4116,7 +4116,7 @@
+       name: "UnrestrictedSharedArrayBuffer",
+       base_feature: "none",
+       origin_trial_feature_name: "UnrestrictedSharedArrayBuffer",
+-      origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos"],
++      origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd", "netbsd"],
+     },
+     // Enables using policy-controlled feature "usb-unrestricted" to allow
+     // isolated context to access protected USB interface classes and to
+@@ -4285,7 +4285,7 @@
+     {
+       name: "WebAppScopeExtensions",
+       origin_trial_feature_name: "WebAppScopeExtensions",
+-      origin_trial_os: ["win", "mac", "linux", "chromeos"],
++      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd", "netbsd"],
+       status: "experimental",
+       base_feature: "none",
+     },
+@@ -4328,7 +4328,7 @@
+       status: "experimental",
+       base_feature: "none",
+       origin_trial_feature_name: "WebAppUrlHandling",
+-      origin_trial_os: ["win", "mac", "linux"],
++      origin_trial_os: ["win", "mac", "linux", "openbsd", "freebsd", "netbsd"],
+     },
+     {
+       // WebAssembly JS Promise Integration,
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_scheduler_BUILD.gn b/chromium/patches/patch-third__party_blink_renderer_platform_scheduler_BUILD.gn
deleted file mode 100644
index 74cce3b8ec..0000000000
--- a/chromium/patches/patch-third__party_blink_renderer_platform_scheduler_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/blink/renderer/platform/scheduler/BUILD.gn.orig	2020-07-15 18:56:48.000000000 +0000
-+++ third_party/blink/renderer/platform/scheduler/BUILD.gn
-@@ -287,7 +287,7 @@ jumbo_source_set("scheduler_fuzzer_tests
-     "//third_party/blink/renderer/platform/scheduler:test_support",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "test/fuzzer/sequence_manager_fuzzer_processor.cc",
-       "test/fuzzer/sequence_manager_fuzzer_processor.h",
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc b/chromium/patches/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc
new file mode 100644
index 0000000000..bbd6ba677f
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/scheduler/common/thread.cc.orig	2024-07-24 02:44:46.925778000 +0000
++++ third_party/blink/renderer/platform/scheduler/common/thread.cc
+@@ -82,7 +82,7 @@ void Thread::CreateAndSetCompositorThrea
+       std::make_unique<scheduler::CompositorThread>(params);
+   compositor_thread->Init();
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_OPENBSD)
+   compositor_thread->GetTaskRunner()->PostTaskAndReplyWithResult(
+       FROM_HERE, base::BindOnce(&base::PlatformThread::CurrentId),
+       base::BindOnce([](base::PlatformThreadId compositor_thread_id) {
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_video__capture_video__capture__impl.cc b/chromium/patches/patch-third__party_blink_renderer_platform_video__capture_video__capture__impl.cc
new file mode 100644
index 0000000000..19834a7805
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_video__capture_video__capture__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/video_capture/video_capture_impl.cc.orig	2024-07-24 02:44:46.993784700 +0000
++++ third_party/blink/renderer/platform/video_capture/video_capture_impl.cc
+@@ -608,7 +608,7 @@ bool VideoCaptureImpl::BindVideoFrameOnM
+   }
+ 
+   const unsigned texture_target =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       // Explicitly set GL_TEXTURE_EXTERNAL_OES if necessary:
+       // `media::VideoFrame::RequiresExternalSampler()` requires it for NV12
+       // format, while `ClientSharedImage::GetTextureTarget(BufferUsage,
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc b/chromium/patches/patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc
new file mode 100644
index 0000000000..36e64b1f99
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_widget_compositing_blink__categorized__worker__pool__delegate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/widget/compositing/blink_categorized_worker_pool_delegate.cc.orig	2024-07-24 02:44:47.001785300 +0000
++++ third_party/blink/renderer/platform/widget/compositing/blink_categorized_worker_pool_delegate.cc
+@@ -27,7 +27,7 @@ BlinkCategorizedWorkerPoolDelegate& Blin
+ 
+ void BlinkCategorizedWorkerPoolDelegate::NotifyThreadWillRun(
+     base::PlatformThreadId tid) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   scoped_refptr<base::TaskRunner> task_runner =
+       Thread::MainThread()->GetTaskRunner(MainThreadTaskRunnerRestricted());
+   task_runner->PostTask(FROM_HERE, base::BindOnce(
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_container__annotations.h b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_container__annotations.h
index 70aa8c7be5..202909c947 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_container__annotations.h
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_container__annotations.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/blink/renderer/platform/wtf/container_annotations.h.orig	2020-07-15 18:56:04.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/wtf/container_annotations.h.orig	2024-07-24 02:44:47.013786600 +0000
 +++ third_party/blink/renderer/platform/wtf/container_annotations.h
-@@ -10,7 +10,7 @@
- 
+@@ -12,7 +12,7 @@
  // TODO(ochang): Remove the ARCH_CPU_X86_64 condition to enable this for X86
  // once the crashes there have been fixed: http://crbug.com/461406
--#if defined(ADDRESS_SANITIZER) && defined(OS_LINUX) && defined(ARCH_CPU_X86_64)
-+#if defined(ADDRESS_SANITIZER) && (defined(OS_LINUX) || defined(OS_BSD)) && defined(ARCH_CPU_X86_64)
- #define ANNOTATE_CONTIGUOUS_CONTAINER
- #define ANNOTATE_NEW_BUFFER(buffer, capacity, newSize)                       \
-   if (buffer) {                                                              \
+ #if defined(ADDRESS_SANITIZER) &&                      \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+     defined(ARCH_CPU_X86_64)
+ 
+ // Annotations require buffers to begin on an 8-byte boundary. See
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_math__extras.h b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_math__extras.h
new file mode 100644
index 0000000000..cb790d3156
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_math__extras.h
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/wtf/math_extras.h.orig	2024-07-24 02:44:47.017787000 +0000
++++ third_party/blink/renderer/platform/wtf/math_extras.h
+@@ -128,6 +128,10 @@ constexpr float Grad2turn(float g) {
+   return g * (1.0f / 400.0f);
+ }
+ 
++#if defined(OS_FREEBSD)
++#pragma clang diagnostic push
++#pragma clang diagnostic ignored "-Winvalid-constexpr"
++#endif
+ constexpr double RoundHalfTowardsPositiveInfinity(double value) {
+   return std::floor(value + 0.5);
+ }
+@@ -135,6 +139,9 @@ constexpr double RoundHalfTowardsPositiv
+ constexpr float RoundHalfTowardsPositiveInfinity(float value) {
+   return std::floor(value + 0.5f);
+ }
++#if defined(OS_FREEBSD)
++#pragma clang diagnostic pop
++#endif
+ 
+ // ClampTo() is implemented by templated helper classes (to allow for partial
+ // template specialization) as well as several helper functions.
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_stack__util.cc b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_stack__util.cc
index 2df2694764..3fb5012d6a 100644
--- a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_stack__util.cc
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_stack__util.cc
@@ -1,36 +1,82 @@
 $NetBSD$
 
---- third_party/blink/renderer/platform/wtf/stack_util.cc.orig	2020-07-15 18:56:04.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/wtf/stack_util.cc.orig	2024-07-24 02:44:47.021787400 +0000
 +++ third_party/blink/renderer/platform/wtf/stack_util.cc
-@@ -18,6 +18,13 @@
+@@ -19,6 +19,13 @@
  extern "C" void* __libc_stack_end;  // NOLINT
  #endif
  
-+#if defined(OS_FREEBSD)
++#if BUILDFLAG(IS_BSD)
++#include <sys/signal.h>
++#if !BUILDFLAG(IS_NETBSD)
 +#include <pthread_np.h>
 +#endif
-+#if defined(OS_BSD)
-+#include <sys/signal.h>
 +#endif
 +
  namespace WTF {
  
  size_t GetUnderestimatedStackSize() {
-@@ -29,7 +36,7 @@ size_t GetUnderestimatedStackSize() {
- // FIXME: On Mac OSX and Linux, this method cannot estimate stack size
+@@ -31,7 +38,8 @@ size_t GetUnderestimatedStackSize() {
  // correctly for the main thread.
  
--#elif defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
-+#elif defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_BSD) || \
-     defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA) || \
++    BUILDFLAG(IS_NETBSD)
    // pthread_getattr_np() can fail if the thread is not invoked by
    // pthread_create() (e.g., the main thread of blink_unittests).
-@@ -97,7 +104,7 @@ return Threading::ThreadStackSize();
- }
+   // If so, a conservative size estimate is returned.
+@@ -52,7 +60,7 @@ size_t GetUnderestimatedStackSize() {
+     pthread_attr_destroy(&attr);
+     return size;
+   }
+-#if BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+   pthread_attr_destroy(&attr);
+ #endif
+ 
+@@ -63,6 +71,8 @@ size_t GetUnderestimatedStackSize() {
+   //    low as 512k.
+   //
+   return 512 * 1024;
++#elif BUILDFLAG(IS_OPENBSD)
++  return 512 * 1024;
+ #elif BUILDFLAG(IS_APPLE)
+   // pthread_get_stacksize_np() returns too low a value for the main thread on
+   // OSX 10.9,
+@@ -99,7 +109,7 @@ size_t GetUnderestimatedStackSize() {
  
  void* GetStackStart() {
--#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
-+#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_BSD) || \
-     defined(OS_FUCHSIA)
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_NETBSD)
    pthread_attr_t attr;
    int error;
+ #if BUILDFLAG(IS_FREEBSD)
+@@ -116,7 +126,7 @@ void* GetStackStart() {
+     pthread_attr_destroy(&attr);
+     return reinterpret_cast<uint8_t*>(base) + size;
+   }
+-#if BUILDFLAG(IS_FREEBSD)
++#if BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
+   pthread_attr_destroy(&attr);
+ #endif
+ #if defined(__GLIBC__)
+@@ -150,6 +160,13 @@ void* GetStackStart() {
+   ::GetCurrentThreadStackLimits(&lowLimit, &highLimit);
+   return reinterpret_cast<void*>(highLimit);
+ #endif
++#elif BUILDFLAG(IS_OPENBSD)
++  stack_t ss;
++  void *base;
++  int error = pthread_stackseg_np(pthread_self(), &ss);
++  CHECK(!error);
++  base = (void*)((size_t) ss.ss_sp - ss.ss_size);
++  return reinterpret_cast<uint8_t*>(base) + ss.ss_size;
+ #else
+ #error Unsupported getStackStart on this platform.
+ #endif
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_text_text__codec__icu.cc b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_text_text__codec__icu.cc
new file mode 100644
index 0000000000..9f68026ec9
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_text_text__codec__icu.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc.orig	2024-07-24 02:44:47.029788000 +0000
++++ third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
+@@ -610,6 +610,7 @@ static void GbkUrlEscapedEntityCallack(
+                               code_point, reason, err);
+ }
+ 
++#if !BUILDFLAG(IS_BSD)
+ static void GbkCallbackSubstitute(const void* context,
+                                   UConverterFromUnicodeArgs* from_unicode_args,
+                                   const UChar* code_units,
+@@ -627,6 +628,7 @@ static void GbkCallbackSubstitute(const 
+   UCNV_FROM_U_CALLBACK_SUBSTITUTE(context, from_unicode_args, code_units,
+                                   length, code_point, reason, err);
+ }
++#endif
+ #endif  // USING_SYSTEM_ICU
+ 
+ static void NotReachedEntityCallback(const void* context,
diff --git a/chromium/patches/patch-third__party_blink_renderer_platform_wtf_thread__specific.h b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_thread__specific.h
new file mode 100644
index 0000000000..4f7660cb14
--- /dev/null
+++ b/chromium/patches/patch-third__party_blink_renderer_platform_wtf_thread__specific.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/blink/renderer/platform/wtf/thread_specific.h.orig	2024-07-24 02:44:47.033788400 +0000
++++ third_party/blink/renderer/platform/wtf/thread_specific.h
+@@ -104,7 +104,8 @@ inline bool ThreadSpecific<T>::IsSet() {
+ template <typename T>
+ inline ThreadSpecific<T>::operator T*() {
+   T* off_thread_ptr;
+-#if defined(__GLIBC__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD)
++#if defined(__GLIBC__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \
++    BUILDFLAG(IS_NETBSD)
+   // TLS is fast on these platforms.
+   // TODO(csharrison): Qualify this statement for Android.
+   const bool kMainThreadAlwaysChecksTLS = true;
diff --git a/chromium/patches/patch-third__party_boringssl_BUILD.gn b/chromium/patches/patch-third__party_boringssl_BUILD.gn
deleted file mode 100644
index 26b936ca57..0000000000
--- a/chromium/patches/patch-third__party_boringssl_BUILD.gn
+++ /dev/null
@@ -1,46 +0,0 @@
-$NetBSD$
-
---- third_party/boringssl/BUILD.gn.orig	2020-07-15 18:56:30.000000000 +0000
-+++ third_party/boringssl/BUILD.gn
-@@ -35,7 +35,6 @@ config("internal_config") {
-   ]
-   if (is_posix || is_fuchsia) {
-     cflags_c = [ "-std=c99" ]
--    defines += [ "_XOPEN_SOURCE=700" ]
-   }
- }
- 
-@@ -72,7 +71,7 @@ if (is_win && !is_msan && current_cpu !=
-     } else if (current_cpu == "x64") {
-       if (is_mac) {
-         sources += crypto_sources_mac_x86_64
--      } else if (is_linux || is_android) {
-+      } else if (is_linux || is_android || is_bsd) {
-         sources += crypto_sources_linux_x86_64
-       } else {
-         public_configs = [ ":no_asm_config" ]
-@@ -80,13 +79,13 @@ if (is_win && !is_msan && current_cpu !=
-     } else if (current_cpu == "x86") {
-       if (is_mac) {
-         sources += crypto_sources_mac_x86
--      } else if (is_linux || is_android) {
-+      } else if (is_linux || is_android || is_bsd) {
-         sources += crypto_sources_linux_x86
-       } else {
-         public_configs = [ ":no_asm_config" ]
-       }
-     } else if (current_cpu == "arm") {
--      if (is_linux || is_android) {
-+      if (is_linux || is_android || is_bsd) {
-         sources += crypto_sources_linux_arm
-       } else if (is_ios) {
-         sources += crypto_sources_ios_arm
-@@ -94,7 +93,7 @@ if (is_win && !is_msan && current_cpu !=
-         public_configs = [ ":no_asm_config" ]
-       }
-     } else if (current_cpu == "arm64") {
--      if (is_linux || is_android) {
-+      if (is_linux || is_android || is_bsd) {
-         sources += crypto_sources_linux_aarch64
-       } else if (is_ios) {
-         sources += crypto_sources_ios_aarch64
diff --git a/chromium/patches/patch-third__party_boringssl_src_crypto_bio_socket__helper.c b/chromium/patches/patch-third__party_boringssl_src_crypto_bio_socket__helper.c
deleted file mode 100644
index 66e2ef755e..0000000000
--- a/chromium/patches/patch-third__party_boringssl_src_crypto_bio_socket__helper.c
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/boringssl/src/crypto/bio/socket_helper.c.orig	2020-07-15 19:01:31.000000000 +0000
-+++ third_party/boringssl/src/crypto/bio/socket_helper.c
-@@ -12,8 +12,8 @@
-  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
- 
--#undef _POSIX_C_SOURCE
--#define _POSIX_C_SOURCE 200112L
-+//#undef _POSIX_C_SOURCE
-+//#define _POSIX_C_SOURCE 200112L
- 
- #include <openssl/bio.h>
- #include <openssl/err.h>
diff --git a/chromium/patches/patch-third__party_boringssl_src_crypto_ex__data.c b/chromium/patches/patch-third__party_boringssl_src_crypto_ex__data.c
deleted file mode 100644
index f4da037163..0000000000
--- a/chromium/patches/patch-third__party_boringssl_src_crypto_ex__data.c
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/boringssl/src/crypto/ex_data.c.orig	2020-07-15 19:01:32.000000000 +0000
-+++ third_party/boringssl/src/crypto/ex_data.c
-@@ -186,7 +186,9 @@ int CRYPTO_set_ex_data(CRYPTO_EX_DATA *a
-     }
-   }
- 
--  sk_void_set(ad->sk, index, val);
-+  // expression result unused; should this cast be to 'void'?
-+  // seems it should, feel free to investigate those #def
-+  (void) sk_void_set(ad->sk, index, val);
-   return 1;
- }
- 
diff --git a/chromium/patches/patch-third__party_boringssl_src_include_openssl_thread.h b/chromium/patches/patch-third__party_boringssl_src_include_openssl_thread.h
deleted file mode 100644
index 3efe0233d4..0000000000
--- a/chromium/patches/patch-third__party_boringssl_src_include_openssl_thread.h
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
-https://bugs.chromium.org/p/boringssl/issues/detail?id=482
-
---- third_party/boringssl/src/include/openssl/thread.h.orig	2020-06-25 09:34:42.000000000 +0000
-+++ third_party/boringssl/src/include/openssl/thread.h
-@@ -88,6 +88,9 @@ typedef pthread_rwlock_t CRYPTO_MUTEX;
- typedef union crypto_mutex_st {
-   double alignment;
-   uint8_t padding[3*sizeof(int) + 5*sizeof(unsigned) + 16 + 8];
-+#if defined(__NetBSD__)
-+  uint8_t      nbpad[64 + 8];
-+#endif
- } CRYPTO_MUTEX;
- #endif
- 
diff --git a/chromium/patches/patch-third__party_breakpad_BUILD.gn b/chromium/patches/patch-third__party_breakpad_BUILD.gn
deleted file mode 100644
index c5f34af520..0000000000
--- a/chromium/patches/patch-third__party_breakpad_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/breakpad/BUILD.gn.orig	2020-06-25 09:32:02.000000000 +0000
-+++ third_party/breakpad/BUILD.gn
-@@ -465,7 +465,7 @@ if (is_mac) {
-   }
- }
- 
--if (is_linux || is_android) {
-+if (is_linux || is_android || is_bsd) {
-   if (current_toolchain == host_toolchain) {
-     executable("symupload") {
-       sources = [
diff --git a/chromium/patches/patch-third__party_breakpad_breakpad_src_common_simple__string__dictionary.h b/chromium/patches/patch-third__party_breakpad_breakpad_src_common_simple__string__dictionary.h
deleted file mode 100644
index 42f6a11fe3..0000000000
--- a/chromium/patches/patch-third__party_breakpad_breakpad_src_common_simple__string__dictionary.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/breakpad/breakpad/src/common/simple_string_dictionary.h.orig	2020-07-15 19:01:31.000000000 +0000
-+++ third_party/breakpad/breakpad/src/common/simple_string_dictionary.h
-@@ -33,7 +33,7 @@
- #include <assert.h>
- #include <string.h>
- 
--#include "common/basictypes.h"
-+#include "third_party/breakpad/breakpad/src/common/basictypes.h"
- 
- namespace google_breakpad {
- 
diff --git a/chromium/patches/patch-third__party_brotli_common_platform.h b/chromium/patches/patch-third__party_brotli_common_platform.h
new file mode 100644
index 0000000000..1c78738b2b
--- /dev/null
+++ b/chromium/patches/patch-third__party_brotli_common_platform.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/brotli/common/platform.h.orig	2024-07-24 02:45:04.211452200 +0000
++++ third_party/brotli/common/platform.h
+@@ -28,7 +28,7 @@
+ #include <brotli/port.h>
+ #include <brotli/types.h>
+ 
+-#if defined(OS_LINUX) || defined(OS_CYGWIN) || defined(__EMSCRIPTEN__)
++#if defined(OS_LINUX) || defined(OS_CYGWIN) || defined(__EMSCRIPTEN__) || defined(OS_BSD)
+ #include <endian.h>
+ #elif defined(OS_FREEBSD)
+ #include <machine/endian.h>
diff --git a/chromium/patches/patch-third__party_brotli_common_transform.c b/chromium/patches/patch-third__party_brotli_common_transform.c
deleted file mode 100644
index cc044f1a28..0000000000
--- a/chromium/patches/patch-third__party_brotli_common_transform.c
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/brotli/common/transform.c.orig	2020-06-25 09:32:02.000000000 +0000
-+++ third_party/brotli/common/transform.c
-@@ -24,7 +24,7 @@ static const char kPrefixSuffix[217] =
- /* 8x  _0 _ _3    _8   _C _E _ _1     _7       _F */
-       " not \3er \3al \4ful \4ive \5less \4es"
- /* Ax       _5   _9   _D    _2    _7     _D */
--      "t \4ize \2\xc2\xa0\4ous \5 the \2e \0";
-+      "t \4ize \2\xc2\xa0\4ous \5 the \2e ";
- /* Cx    _2    _7___ ___ _A    _F     _5  _8 */
- 
- static const uint16_t kPrefixSuffixMap[50] = {
diff --git a/chromium/patches/patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h b/chromium/patches/patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h
deleted file mode 100644
index b48c801e83..0000000000
--- a/chromium/patches/patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/cacheinvalidation/src/google/cacheinvalidation/include/types.h.orig	2020-07-15 18:56:49.000000000 +0000
-+++ third_party/cacheinvalidation/src/google/cacheinvalidation/include/types.h
-@@ -335,6 +335,8 @@ class Status {
-     PERMANENT_FAILURE
-   };
- 
-+  Status() : code_(SUCCESS), message_() {}
-+
-   /* Creates a new Status object given the code and message. */
-   Status(Code code, const string& message) : code_(code), message_(message) {}
- 
diff --git a/chromium/patches/patch-third__party_closure__compiler_compile__js.gni b/chromium/patches/patch-third__party_closure__compiler_compile__js.gni
deleted file mode 100644
index f50e394a0c..0000000000
--- a/chromium/patches/patch-third__party_closure__compiler_compile__js.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/closure_compiler/compile_js.gni.orig	2020-07-15 18:56:30.000000000 +0000
-+++ third_party/closure_compiler/compile_js.gni
-@@ -8,7 +8,7 @@ declare_args() {
-   # Enable closure type-checking for Chrome's web technology-based UI. This
-   # enables the webui_closure_compile target which does a no-op without this
-   # flag enabled. Requires Java.
--  enable_js_type_check = is_chromeos || is_linux || is_android
-+  enable_js_type_check = is_chromeos || is_linux || is_android || is_bsd
- }
- 
- script_path = "//third_party/closure_compiler"
diff --git a/chromium/patches/patch-third__party_cpuinfo_cpuinfo.gni b/chromium/patches/patch-third__party_cpuinfo_cpuinfo.gni
new file mode 100644
index 0000000000..8c5afbd91f
--- /dev/null
+++ b/chromium/patches/patch-third__party_cpuinfo_cpuinfo.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/cpuinfo/cpuinfo.gni.orig	2024-07-24 02:45:04.339464700 +0000
++++ third_party/cpuinfo/cpuinfo.gni
+@@ -8,7 +8,7 @@ use_cpuinfo =
+     current_cpu != "s390" && current_cpu != "s390x" &&
+     current_cpu != "riscv64" &&
+     # cpuinfo is not supported on fuchsia.
+-    !is_fuchsia &&
++    !is_fuchsia && !is_bsd &&
+     # There's a few arm architectures that are not supported by cpuinfo,
+     # especially amongst ChromeOS devices.
+     # See //third_party/cpuinfo/src/src/arm/linux/cp.h.
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni b/chromium/patches/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni
index 53b102f1b9..f40dcea1b4 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- third_party/crashpad/crashpad/build/crashpad_buildconfig.gni.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/build/crashpad_buildconfig.gni.orig	2024-07-24 02:45:04.339464700 +0000
 +++ third_party/crashpad/crashpad/build/crashpad_buildconfig.gni
-@@ -41,6 +41,8 @@ if (crashpad_is_in_chromium) {
-   crashpad_is_linux = is_linux
+@@ -61,7 +61,7 @@ if (crashpad_is_in_chromium) {
+   crashpad_is_ios = is_ios
+   crashpad_is_apple = is_apple
+   crashpad_is_win = is_win
+-  crashpad_is_linux = is_linux || is_chromeos
++  crashpad_is_linux = (is_linux || is_chromeos) && !is_bsd
    crashpad_is_android = is_android
    crashpad_is_fuchsia = is_fuchsia
-+  crashpad_is_bsd = is_bsd
-+  crashpad_is_netbsd = is_netbsd
- 
-   crashpad_is_posix = is_posix
- 
-@@ -62,6 +64,8 @@ if (crashpad_is_in_chromium) {
-   crashpad_is_linux = mini_chromium_is_linux
-   crashpad_is_android = mini_chromium_is_android
-   crashpad_is_fuchsia = mini_chromium_is_fuchsia
-+  crashpad_is_bsd = mini_chromium_is_bsd
-+  crashpad_is_netbsd = is_netbsd
- 
-   crashpad_is_posix = mini_chromium_is_posix
  
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_client_BUILD.gn b/chromium/patches/patch-third__party_crashpad_crashpad_client_BUILD.gn
index 124acaedf4..dde6db1925 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_client_BUILD.gn
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_client_BUILD.gn
@@ -1,11 +1,16 @@
 $NetBSD$
 
---- third_party/crashpad/crashpad/client/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/client/BUILD.gn.orig	2024-07-24 02:45:04.339464700 +0000
 +++ third_party/crashpad/crashpad/client/BUILD.gn
-@@ -78,6 +78,12 @@ static_library("client") {
-     sources += [ "crashpad_client_fuchsia.cc" ]
+@@ -137,6 +137,13 @@ static_library("common") {
+   if (crashpad_is_win) {
+     sources += [ "crash_report_database_win.cc" ]
    }
- 
++
 +  if (crashpad_is_posix) {
 +    sources += [
 +      "crashpad_client_posix.cc",
@@ -13,5 +18,5 @@ $NetBSD$
 +  }
 +
    if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) {
-     sources += [ "crash_report_database_generic.cc" ]
-   }
+     sources += [
+       "crash_report_database_generic.cc",
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc b/chromium/patches/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc
index 597289d388..d00a3ded26 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc
@@ -1,8 +1,12 @@
 $NetBSD$
 
---- third_party/crashpad/crashpad/client/crashpad_client_posix.cc.orig	2020-07-18 10:06:29.144926214 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/client/crashpad_client_posix.cc.orig	2024-08-01 14:09:00.857856937 +0000
 +++ third_party/crashpad/crashpad/client/crashpad_client_posix.cc
-@@ -0,0 +1,38 @@
+@@ -0,0 +1,40 @@
 +// Copyright 2017 The Crashpad Authors. All rights reserved.
 +//
 +// Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,6 +24,7 @@ $NetBSD$
 +#include "client/crashpad_client.h"
 +
 +#include "base/logging.h"
++#include "base/notreached.h"
 +
 +namespace crashpad {
 +
@@ -35,7 +40,8 @@ $NetBSD$
 +    const std::map<std::string, std::string>& annotations,
 +    const std::vector<std::string>& arguments,
 +    bool restartable,
-+    bool asynchronous_start) {
++    bool asynchronous_start,   
++    const std::vector<base::FilePath>& attachments) {
 +  NOTREACHED();  // TODO(scottmg): https://crashpad.chromium.org/bug/196
 +  return false;
 +}
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc b/chromium/patches/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc
new file mode 100644
index 0000000000..62657aa08e
--- /dev/null
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc.orig	2024-07-24 02:45:04.363467000 +0000
++++ third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
+@@ -159,6 +159,12 @@ std::string MinidumpMiscInfoDebugBuildSt
+   static constexpr char kOS[] = "win";
+ #elif BUILDFLAG(IS_FUCHSIA)
+   static constexpr char kOS[] = "fuchsia";
++#elif defined(OS_OPENBSD)
++  static constexpr char kOS[] = "openbsd";
++#elif defined(OS_FREEBSD)
++  static constexpr char kOS[] = "freebsd";
++#elif defined(OS_NETBSD)
++  static constexpr char kOS[] = "netbsd";
+ #else
+ #error define kOS for this operating system
+ #endif
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_address__types.h b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_address__types.h
index f39148825b..310297d848 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_address__types.h
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_address__types.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- third_party/crashpad/crashpad/util/misc/address_types.h.orig	2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/misc/address_types.h.orig	2024-07-24 02:45:04.419472500 +0000
 +++ third_party/crashpad/crashpad/util/misc/address_types.h
 @@ -25,7 +25,7 @@
  #include <mach/mach_types.h>
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
  #include "util/win/address_types.h"
--#elif defined(OS_LINUX) || defined(OS_ANDROID)
-+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
  #include "util/linux/address_types.h"
- #elif defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_FUCHSIA)
  #include <zircon/types.h>
 @@ -55,7 +55,7 @@ using VMSize = mach_vm_size_t;
  using VMAddress = WinVMAddress;
  using VMSize = WinVMSize;
  
--#elif defined(OS_LINUX) || defined(OS_ANDROID)
-+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
  
  using VMAddress = LinuxVMAddress;
  using VMSize = LinuxVMSize;
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_capture__context.h b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_capture__context.h
index c8759e102c..ddc66b16f3 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_capture__context.h
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_capture__context.h
@@ -1,22 +1,28 @@
 $NetBSD$
 
---- third_party/crashpad/crashpad/util/misc/capture_context.h.orig	2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/misc/capture_context.h.orig	2024-07-24 02:45:04.419472500 +0000
 +++ third_party/crashpad/crashpad/util/misc/capture_context.h
-@@ -21,7 +21,7 @@
+@@ -21,7 +21,8 @@
  #include <mach/mach.h>
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
  #include <windows.h>
--#elif defined(OS_LINUX) || defined(OS_ANDROID)
-+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
++      BUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_NETBSD)
  #include <ucontext.h>
- #elif defined(OS_FUCHSIA)
- #include <signal.h>
-@@ -37,7 +37,7 @@ using NativeCPUContext = arm_unified_thr
+ #endif  // BUILDFLAG(IS_APPLE)
+ 
+@@ -35,7 +36,8 @@ using NativeCPUContext = arm_unified_thr
  #endif
- #elif defined(OS_WIN)
+ #elif BUILDFLAG(IS_WIN)
  using NativeCPUContext = CONTEXT;
--#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
-+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \
++      BUILDFLAG(IS_BSD)
  using NativeCPUContext = ucontext_t;
- #endif  // OS_MACOSX
+ #endif  // BUILDFLAG(IS_APPLE)
  
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_metrics.cc b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_metrics.cc
index 089fcd6e3c..9312f4816d 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_metrics.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_metrics.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/crashpad/crashpad/util/misc/metrics.cc.orig	2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/misc/metrics.cc.orig	2024-07-24 02:45:04.423473000 +0000
 +++ third_party/crashpad/crashpad/util/misc/metrics.cc
 @@ -25,7 +25,7 @@
  #define METRICS_OS_NAME "Win"
- #elif defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_ANDROID)
  #define METRICS_OS_NAME "Android"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #define METRICS_OS_NAME "Linux"
- #elif defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_FUCHSIA)
  #define METRICS_OS_NAME "Fuchsia"
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_uuid.cc b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_uuid.cc
index c832279ff8..6ec0caa535 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_uuid.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_misc_uuid.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/crashpad/crashpad/util/misc/uuid.cc.orig	2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/misc/uuid.cc.orig	2024-07-24 02:45:04.423473000 +0000
 +++ third_party/crashpad/crashpad/util/misc/uuid.cc
-@@ -94,7 +94,7 @@ bool UUID::InitializeWithNew() {
+@@ -110,7 +110,7 @@ bool UUID::InitializeWithNew() {
    InitializeFromBytes(uuid);
    return true;
- #elif defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || \
--    defined(OS_FUCHSIA)
-+    defined(OS_FUCHSIA) || defined(OS_BSD)
+ #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
    // Linux, Android, and Fuchsia do not provide a UUID generator in a
    // widely-available system library. On Linux and Android, uuid_generate()
    // from libuuid is not available everywhere.
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc
index a108e229c2..d45f0787d5 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- third_party/crashpad/crashpad/util/posix/close_multiple.cc.orig	2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/posix/close_multiple.cc.orig	2024-07-24 02:45:04.427473300 +0000
 +++ third_party/crashpad/crashpad/util/posix/close_multiple.cc
-@@ -31,7 +31,7 @@
- #include "util/file/directory_reader.h"
- #include "util/misc/implicit_cast.h"
- 
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
- #include <sys/sysctl.h>
- #endif
- 
-@@ -72,7 +72,7 @@ void CloseNowOrOnExec(int fd, bool ebadf
+@@ -73,7 +73,7 @@ void CloseNowOrOnExec(int fd, bool ebadf
  // This is an advantage over looping over all possible file descriptors, because
  // no attempt needs to be made to close file descriptors that are not open.
  bool CloseMultipleNowOrOnExecUsingFDDir(int min_fd, int preserve_fd) {
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
    static constexpr char kFDDir[] = "/dev/fd";
- #elif defined(OS_LINUX) || defined(OS_ANDROID)
+ #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
    static constexpr char kFDDir[] = "/proc/self/fd";
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc
index dc09f51520..2cca85dd78 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/crashpad/crashpad/util/posix/drop_privileges.cc.orig	2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/posix/drop_privileges.cc.orig	2024-07-24 02:45:04.427473300 +0000
 +++ third_party/crashpad/crashpad/util/posix/drop_privileges.cc
 @@ -25,7 +25,7 @@ void DropPrivileges() {
    gid_t gid = getgid();
    uid_t uid = getuid();
  
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_APPLE)
++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD)
    // Based on the POSIX.1-2008 2013 edition documentation for setreuid() and
    // setregid(), setreuid() and setregid() alone should be sufficient to drop
    // privileges. The standard specifies that the saved ID should be set to the
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_signals.cc b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_signals.cc
index 2f48998ab7..cf222030dc 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_signals.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_signals.cc
@@ -1,22 +1,39 @@
 $NetBSD$
 
---- third_party/crashpad/crashpad/util/posix/signals.cc.orig	2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/posix/signals.cc.orig	2024-07-24 02:45:04.427473300 +0000
 +++ third_party/crashpad/crashpad/util/posix/signals.cc
-@@ -46,7 +46,7 @@ constexpr int kCrashSignals[] = {
+@@ -51,7 +51,7 @@ constexpr int kCrashSignals[] = {
  #if defined(SIGEMT)
      SIGEMT,
  #endif  // defined(SIGEMT)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      SIGXCPU,
      SIGXFSZ,
- #endif  // defined(OS_LINUX)
-@@ -86,7 +86,7 @@ constexpr int kTerminateSignals[] = {
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+@@ -91,7 +91,7 @@ constexpr int kTerminateSignals[] = {
      SIGXCPU,
      SIGXFSZ,
- #endif  // defined(OS_MACOSX)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+ #endif  // BUILDFLAG(IS_APPLE)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      SIGIO,
- #endif  // defined(OS_LINUX)
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
  };
+@@ -251,8 +251,12 @@ bool Signals::WillSignalReraiseAutonomou
+          // remains. See 10.12.3 xnu-3789.41.3/bsd/kern/kern_sig.c
+          // psignal_internal().
+          (code > 0 &&
++#if defined(SI_ASYNCIO)
+           code != SI_ASYNCIO &&
++#endif
++#if defined(SI_MESGQ)
+           code != SI_MESGQ &&
++#endif
+           code != SI_QUEUE &&
+           code != SI_TIMER &&
+           code != SI_USER &&
diff --git a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc
index 2310f21829..68020ff6d8 100644
--- a/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc
+++ b/chromium/patches/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- third_party/crashpad/crashpad/util/posix/symbolic_constants_posix.cc.orig	2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crashpad/crashpad/util/posix/symbolic_constants_posix.cc.orig	2024-07-24 02:45:04.431473700 +0000
 +++ third_party/crashpad/crashpad/util/posix/symbolic_constants_posix.cc
-@@ -64,7 +64,7 @@ constexpr const char* kSignalNames[] = {
+@@ -67,7 +67,7 @@ constexpr const char* kSignalNames[] = {
      "INFO",
      "USR1",
      "USR2",
--#elif defined(OS_LINUX) || defined(OS_ANDROID)
-+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
  #if defined(ARCH_CPU_MIPS_FAMILY)
      "HUP",
      "INT",
-@@ -135,7 +135,7 @@ constexpr const char* kSignalNames[] = {
+@@ -138,7 +138,7 @@ constexpr const char* kSignalNames[] = {
  #endif  // defined(ARCH_CPU_MIPS_FAMILY)
  #endif
  };
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
  // NSIG is 64 to account for real-time signals.
- static_assert(base::size(kSignalNames) == 32, "kSignalNames length");
+ static_assert(std::size(kSignalNames) == 32, "kSignalNames length");
  #else
diff --git a/chromium/patches/patch-third__party_crc32c_BUILD.gn b/chromium/patches/patch-third__party_crc32c_BUILD.gn
index c4d09954a6..9fbe6c65c8 100644
--- a/chromium/patches/patch-third__party_crc32c_BUILD.gn
+++ b/chromium/patches/patch-third__party_crc32c_BUILD.gn
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/crc32c/BUILD.gn.orig	2020-07-15 18:56:30.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/crc32c/BUILD.gn.orig	2024-07-24 02:45:04.439474300 +0000
 +++ third_party/crc32c/BUILD.gn
-@@ -47,7 +47,7 @@ config("crc32c_config") {
+@@ -46,7 +46,7 @@ config("crc32c_config") {
    }
  
    # Android added <sys/auxv.h> in API level 18.
 -  if (is_linux || is_chromeos || is_android) {
-+  if (is_linux || is_chromeos || is_android || is_bsd) {
++  if (is_linux || is_chromeos || is_android && !is_bsd) {
      defines += [
        "HAVE_STRONG_GETAUXVAL=1",
        "HAVE_WEAK_GETAUXVAL=1",
diff --git a/chromium/patches/patch-third__party_dav1d_BUILD.gn b/chromium/patches/patch-third__party_dav1d_BUILD.gn
deleted file mode 100644
index 0a9bf15599..0000000000
--- a/chromium/patches/patch-third__party_dav1d_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/dav1d/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
-+++ third_party/dav1d/BUILD.gn
-@@ -113,7 +113,7 @@ if (is_win) {
-   if (is_mac) {
-     dav1d_copts += [ "-D_DARWIN_C_SOURCE" ]
-   }
--  if (is_linux || is_android || current_os == "aix") {
-+  if (is_linux || is_android || current_os == "aix" || is_bsd) {
-     if (!is_clang) {
-       dav1d_copts += [ "-D_GNU_SOURCE" ]
-     }
diff --git a/chromium/patches/patch-third__party_dawn_include_dawn_native_VulkanBackend.h b/chromium/patches/patch-third__party_dawn_include_dawn_native_VulkanBackend.h
new file mode 100644
index 0000000000..268370c3a7
--- /dev/null
+++ b/chromium/patches/patch-third__party_dawn_include_dawn_native_VulkanBackend.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/dawn/include/dawn/native/VulkanBackend.h.orig	2024-07-24 02:46:31.139872300 +0000
++++ third_party/dawn/include/dawn/native/VulkanBackend.h
+@@ -83,7 +83,8 @@ struct ExternalImageExportInfoVk : Exter
+ };
+ 
+ // Can't use DAWN_PLATFORM_IS(LINUX) since header included in both Dawn and Chrome
+-#if defined(__linux__) || defined(__Fuchsia__)
++#if defined(__linux__) || defined(__Fuchsia__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++    defined(__NetBSD__)
+ 
+ // Common properties of external images represented by FDs. On successful import the file
+ // descriptor's ownership is transferred to the Dawn implementation and they shouldn't be
diff --git a/chromium/patches/patch-third__party_dawn_scripts_dawn__component.gni b/chromium/patches/patch-third__party_dawn_scripts_dawn__component.gni
deleted file mode 100644
index 934f7cbd3d..0000000000
--- a/chromium/patches/patch-third__party_dawn_scripts_dawn__component.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/dawn/scripts/dawn_component.gni.orig	2020-07-15 19:01:32.000000000 +0000
-+++ third_party/dawn/scripts/dawn_component.gni
-@@ -63,7 +63,7 @@ template("dawn_component") {
-         "@executable_path/",
-       ]
-     }
--    if (is_linux && dawn_has_build) {
-+    if ((is_linux || is_bsd) && dawn_has_build) {
-       configs = [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-     }
-   }
diff --git a/chromium/patches/patch-third__party_dawn_scripts_dawn__features.gni b/chromium/patches/patch-third__party_dawn_scripts_dawn__features.gni
deleted file mode 100644
index 2ef724474e..0000000000
--- a/chromium/patches/patch-third__party_dawn_scripts_dawn__features.gni
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD$
-
---- third_party/dawn/scripts/dawn_features.gni.orig	2020-07-15 19:01:32.000000000 +0000
-+++ third_party/dawn/scripts/dawn_features.gni
-@@ -49,7 +49,7 @@ declare_args() {
- 
-   # Enables the compilation of Dawn's OpenGL backend
-   # (best effort, non-conformant)
--  dawn_enable_opengl = is_linux && !is_chromeos
-+  dawn_enable_opengl = (is_linux || is_bsd) && !is_chromeos
- 
-   # Enables the compilation of Dawn's Vulkan backend
-   dawn_enable_vulkan =
-@@ -67,7 +67,7 @@ declare_args() {
-       is_debug || (build_with_chromium && use_fuzzing_engine)
- 
-   # Whether Dawn should enable X11 support.
--  dawn_use_x11 = is_linux && !is_chromeos
-+  dawn_use_x11 = (is_linux || is_bsd) && !is_chromeos
- 
-   # Enable support WGSL for shaders. Currently this is
-   # experimental, and requires dawn_tint_dir to be set.
-@@ -88,4 +88,4 @@ declare_args() {
- }
- 
- dawn_supports_glfw_for_windowing =
--    is_win || (is_linux && !is_chromeos) || is_mac
-+    is_win || ((is_linux || is_bsd) && !is_chromeos) || is_mac
diff --git a/chromium/patches/patch-third__party_dawn_src_common_BUILD.gn b/chromium/patches/patch-third__party_dawn_src_common_BUILD.gn
deleted file mode 100644
index dc79003d04..0000000000
--- a/chromium/patches/patch-third__party_dawn_src_common_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/dawn/src/common/BUILD.gn.orig	2020-06-25 09:34:42.000000000 +0000
-+++ third_party/dawn/src/common/BUILD.gn
-@@ -135,7 +135,7 @@ config("dawn_internal") {
- # This GN file is discovered by all Chromium builds, but common doesn't support
- # all of Chromium's OSes so we explicitly make the target visible only on
- # systems we know Dawn is able to compile on.
--if (is_win || is_linux || is_mac || is_fuchsia || is_android) {
-+if (is_win || is_linux || is_mac || is_fuchsia || is_android || is_bsd) {
-   static_library("common") {
-     sources = [
-       "Assert.cpp",
diff --git a/chromium/patches/patch-third__party_dawn_src_dawn_common_Platform.h b/chromium/patches/patch-third__party_dawn_src_dawn_common_Platform.h
new file mode 100644
index 0000000000..02eb0595e1
--- /dev/null
+++ b/chromium/patches/patch-third__party_dawn_src_dawn_common_Platform.h
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/dawn/src/dawn/common/Platform.h.orig	2024-07-24 02:46:31.147873200 +0000
++++ third_party/dawn/src/dawn/common/Platform.h
+@@ -59,6 +59,11 @@
+ #error "Unsupported Windows platform."
+ #endif
+ 
++#elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
++#define DAWN_PLATFORM_IS_LINUX 1
++#define DAWN_PLATFORM_IS_BSD 1
++#define DAWN_PLATFORM_IS_POSIX 1
++
+ #elif defined(__linux__)
+ #define DAWN_PLATFORM_IS_LINUX 1
+ #define DAWN_PLATFORM_IS_POSIX 1
diff --git a/chromium/patches/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp b/chromium/patches/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp
new file mode 100644
index 0000000000..ade57ab673
--- /dev/null
+++ b/chromium/patches/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp.orig	2024-07-24 02:46:31.219880000 +0000
++++ third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp
+@@ -56,7 +56,7 @@ constexpr char kSwiftshaderLibName[] = "
+ #endif
+ 
+ #if DAWN_PLATFORM_IS(LINUX)
+-#if DAWN_PLATFORM_IS(ANDROID)
++#if DAWN_PLATFORM_IS(ANDROID) || DAWN_PLATFORM_IS(BSD)
+ constexpr char kVulkanLibName[] = "libvulkan.so";
+ #else
+ constexpr char kVulkanLibName[] = "libvulkan.so.1";
diff --git a/chromium/patches/patch-third__party_dawn_third__party_gn_glfw_BUILD.gn b/chromium/patches/patch-third__party_dawn_third__party_gn_glfw_BUILD.gn
deleted file mode 100644
index 232f58917b..0000000000
--- a/chromium/patches/patch-third__party_dawn_third__party_gn_glfw_BUILD.gn
+++ /dev/null
@@ -1,30 +0,0 @@
-$NetBSD$
-
---- third_party/dawn/third_party/gn/glfw/BUILD.gn.orig	2020-07-15 19:01:33.000000000 +0000
-+++ third_party/dawn/third_party/gn/glfw/BUILD.gn
-@@ -34,7 +34,7 @@ config("glfw_public") {
-     defines = [ "_GLFW_COCOA" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     defines = [ "_GLFW_X11" ]
-   }
- }
-@@ -89,14 +89,14 @@ static_library("glfw") {
-     ]
-   }
- 
--  if (is_linux || is_mac) {
-+  if (is_linux || is_mac || is_bsd) {
-     sources += [
-       "${glfw_dir}/src/posix_thread.c",
-       "${glfw_dir}/src/posix_thread.h",
-     ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "${glfw_dir}/src/glx_context.c",
-       "${glfw_dir}/src/glx_context.h",
diff --git a/chromium/patches/patch-third__party_devtools-frontend_src_BUILD.gn b/chromium/patches/patch-third__party_devtools-frontend_src_BUILD.gn
deleted file mode 100644
index 8a3c9c78cf..0000000000
--- a/chromium/patches/patch-third__party_devtools-frontend_src_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/devtools-frontend/src/BUILD.gn.orig	2020-07-15 19:01:33.000000000 +0000
-+++ third_party/devtools-frontend/src/BUILD.gn
-@@ -1749,7 +1749,7 @@ group("devtools_type_check") {
-   ]
- }
- 
--if (is_linux && !is_chromeos) {
-+if ((is_linux || is_bsd) && !is_chromeos) {
-   group("devtools_lint_check") {
-     data = [
-       # Needed for isolate script to execute.
-@@ -1787,7 +1787,7 @@ group("devtools_closure_compile") {
-   ]
- }
- 
--if (is_linux && !is_chromeos) {
-+if ((is_linux || is_bsd) && !is_chromeos) {
-   group("devtools_eslint") {
-     data = [
-       # Needed for isolate script to execute.
diff --git a/chromium/patches/patch-third__party_expat_BUILD.gn b/chromium/patches/patch-third__party_expat_BUILD.gn
deleted file mode 100644
index 3a89db1bd8..0000000000
--- a/chromium/patches/patch-third__party_expat_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/expat/BUILD.gn.orig	2020-07-15 18:56:30.000000000 +0000
-+++ third_party/expat/BUILD.gn
-@@ -9,7 +9,7 @@ import("//testing/libfuzzer/fuzzer_test.
- # let's not pull it in twice.
- # Chromecast doesn't ship expat as a system library.
- # Libfuzzer and AFL need to build library from sources.
--if (is_linux && !is_chromecast && !use_fuzzing_engine) {
-+if ((is_linux || is_bsd) && !is_chromecast && !use_fuzzing_engine) {
-   config("expat_config") {
-     libs = [ "expat" ]
-   }
diff --git a/chromium/patches/patch-third__party_ffmpeg_BUILD.gn b/chromium/patches/patch-third__party_ffmpeg_BUILD.gn
new file mode 100644
index 0000000000..bd77736f94
--- /dev/null
+++ b/chromium/patches/patch-third__party_ffmpeg_BUILD.gn
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ffmpeg/BUILD.gn.orig	2024-07-24 02:45:26.369598600 +0000
++++ third_party/ffmpeg/BUILD.gn
+@@ -343,7 +343,6 @@ target(link_target_type, "ffmpeg_interna
+       libs += [
+         "m",
+         "z",
+-        "rt",
+       ]
+     }
+     if (is_component_ffmpeg) {
diff --git a/chromium/patches/patch-third__party_ffmpeg_ffmpeg__generated.gni b/chromium/patches/patch-third__party_ffmpeg_ffmpeg__generated.gni
deleted file mode 100644
index 681c069bc0..0000000000
--- a/chromium/patches/patch-third__party_ffmpeg_ffmpeg__generated.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/ffmpeg/ffmpeg_generated.gni.orig	2020-07-15 19:01:33.000000000 +0000
-+++ third_party/ffmpeg/ffmpeg_generated.gni
-@@ -12,7 +12,7 @@ ffmpeg_c_sources = []
- ffmpeg_gas_sources = []
- ffmpeg_asm_sources = []
- 
--use_linux_config = is_linux || is_fuchsia
-+use_linux_config = is_linux || is_fuchsia || is_bsd
- 
- if ((is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_mac) || (is_win) || (use_linux_config)) {
-   ffmpeg_c_sources += [
diff --git a/chromium/patches/patch-third__party_ffmpeg_ffmpeg__options.gni b/chromium/patches/patch-third__party_ffmpeg_ffmpeg__options.gni
deleted file mode 100644
index 086b442be9..0000000000
--- a/chromium/patches/patch-third__party_ffmpeg_ffmpeg__options.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/ffmpeg/ffmpeg_options.gni.orig	2020-07-15 19:01:33.000000000 +0000
-+++ third_party/ffmpeg/ffmpeg_options.gni
-@@ -64,7 +64,7 @@ if (current_cpu == "x86") {
- }
- 
- os_config = current_os
--if ((is_linux || is_chromeos) && is_msan) {
-+if ((is_linux || is_chromeos || is_bsd) && is_msan) {
-   os_config = "linux-noasm"
- } else if (is_chromeos || is_fuchsia) {
-   os_config = "linux"
diff --git a/chromium/patches/patch-third__party_ffmpeg_libavcodec_x86_cabac.h b/chromium/patches/patch-third__party_ffmpeg_libavcodec_x86_cabac.h
new file mode 100644
index 0000000000..2d745896e5
--- /dev/null
+++ b/chromium/patches/patch-third__party_ffmpeg_libavcodec_x86_cabac.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ffmpeg/libavcodec/x86/cabac.h.orig	2024-07-24 02:45:26.949654800 +0000
++++ third_party/ffmpeg/libavcodec/x86/cabac.h
+@@ -31,7 +31,8 @@
+ 
+ #if   (defined(__i386) && defined(__clang__) && (__clang_major__<2 || (__clang_major__==2 && __clang_minor__<10)))\
+    || (                  !defined(__clang__) && defined(__llvm__) && __GNUC__==4 && __GNUC_MINOR__==2 && __GNUC_PATCHLEVEL__<=1)\
+-   || (defined(__INTEL_COMPILER) && defined(_MSC_VER))
++   || (defined(__INTEL_COMPILER) && defined(_MSC_VER)) \
++   || ((defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386))
+ #       define BROKEN_COMPILER 1
+ #else
+ #       define BROKEN_COMPILER 0
diff --git a/chromium/patches/patch-third__party_ffmpeg_libavutil_cpu.c b/chromium/patches/patch-third__party_ffmpeg_libavutil_cpu.c
new file mode 100644
index 0000000000..f6dd804f7c
--- /dev/null
+++ b/chromium/patches/patch-third__party_ffmpeg_libavutil_cpu.c
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ffmpeg/libavutil/cpu.c.orig	2024-07-24 02:45:27.321690800 +0000
++++ third_party/ffmpeg/libavutil/cpu.c
+@@ -38,10 +38,7 @@
+ #if HAVE_GETPROCESSAFFINITYMASK || HAVE_WINRT
+ #include <windows.h>
+ #endif
+-#if HAVE_SYSCTL
+-#if HAVE_SYS_PARAM_H
+-#include <sys/param.h>
+-#endif
++#if HAVE_SYSCTL && !defined(__OpenBSD__)
+ #include <sys/types.h>
+ #include <sys/sysctl.h>
+ #endif
diff --git a/chromium/patches/patch-third__party_ffmpeg_libavutil_mem.c b/chromium/patches/patch-third__party_ffmpeg_libavutil_mem.c
index 319c97e4a2..ba4f996f33 100644
--- a/chromium/patches/patch-third__party_ffmpeg_libavutil_mem.c
+++ b/chromium/patches/patch-third__party_ffmpeg_libavutil_mem.c
@@ -1,14 +1,18 @@
 $NetBSD$
 
---- third_party/ffmpeg/libavutil/mem.c.orig	2020-07-15 19:01:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ffmpeg/libavutil/mem.c.orig	2024-07-24 02:45:27.341692700 +0000
 +++ third_party/ffmpeg/libavutil/mem.c
-@@ -32,9 +32,6 @@
- #include <stdint.h>
+@@ -33,9 +33,6 @@
  #include <stdlib.h>
+ #include <stdatomic.h>
  #include <string.h>
 -#if HAVE_MALLOC_H
 -#include <malloc.h>
 -#endif
  
+ #include "attributes.h"
  #include "avassert.h"
- #include "avutil.h"
diff --git a/chromium/patches/patch-third__party_ffmpeg_libavutil_random__seed.c b/chromium/patches/patch-third__party_ffmpeg_libavutil_random__seed.c
new file mode 100644
index 0000000000..ada5abc435
--- /dev/null
+++ b/chromium/patches/patch-third__party_ffmpeg_libavutil_random__seed.c
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ffmpeg/libavutil/random_seed.c.orig	2024-07-24 02:45:27.349693500 +0000
++++ third_party/ffmpeg/libavutil/random_seed.c
+@@ -20,6 +20,10 @@
+ 
+ #include "config.h"
+ 
++#if defined(__NetBSD__)
++#define _NETBSD_SOURCE 1
++#endif
++
+ #if HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+@@ -35,6 +39,11 @@
+ #elif CONFIG_OPENSSL
+ #include <openssl/rand.h>
+ #endif
++#if HAVE_ARC4RANDOM_BUF
++#undef __BSD_VISIBLE
++#define __BSD_VISIBLE 1
++#include <stdlib.h>
++#endif
+ #include <fcntl.h>
+ #include <math.h>
+ #include <time.h>
diff --git a/chromium/patches/patch-third__party_ffmpeg_libavutil_x86_x86inc.asm b/chromium/patches/patch-third__party_ffmpeg_libavutil_x86_x86inc.asm
new file mode 100644
index 0000000000..fd9504cd51
--- /dev/null
+++ b/chromium/patches/patch-third__party_ffmpeg_libavutil_x86_x86inc.asm
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ffmpeg/libavutil/x86/x86inc.asm.orig	2024-07-24 02:45:27.365695200 +0000
++++ third_party/ffmpeg/libavutil/x86/x86inc.asm
+@@ -46,6 +46,12 @@
+     %endif
+ %endif
+ 
++%if ARCH_X86_64
++    %define _CET_ENDBR endbr64
++%else
++    %define _CET_ENDBR
++%endif
++
+ %define WIN64  0
+ %define UNIX64 0
+ %if ARCH_X86_64
+@@ -861,6 +867,7 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, 
+     %endif
+     align function_align
+     %2:
++    _CET_ENDBR
+     RESET_MM_PERMUTATION        ; needed for x86-64, also makes disassembly somewhat nicer
+     %xdefine rstk rsp           ; copy of the original stack pointer, used when greater alignment than the known stack alignment is required
+     %assign stack_offset 0      ; stack pointer offset relative to the return address
diff --git a/chromium/patches/patch-third__party_flatbuffers_src_src_util.cpp b/chromium/patches/patch-third__party_flatbuffers_src_src_util.cpp
deleted file mode 100644
index f9c3198ccc..0000000000
--- a/chromium/patches/patch-third__party_flatbuffers_src_src_util.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/flatbuffers/src/src/util.cpp.orig	2020-07-15 19:01:33.000000000 +0000
-+++ third_party/flatbuffers/src/src/util.cpp
-@@ -16,7 +16,7 @@
- 
- // clang-format off
- // Dont't remove `format off`, it prevent reordering of win-includes.
--#define _POSIX_C_SOURCE 200112L // For stat from stat/stat.h and fseeko() (POSIX extensions).
-+//#define _POSIX_C_SOURCE 200112L // For stat from stat/stat.h and fseeko() (POSIX extensions).
- #ifdef _WIN32
- #  ifndef WIN32_LEAN_AND_MEAN
- #    define WIN32_LEAN_AND_MEAN
-@@ -32,7 +32,7 @@
- #  include <winbase.h>
- #  undef interface  // This is also important because of reasons
- #else
--#  define _XOPEN_SOURCE 600 // For PATH_MAX from limits.h (SUSv2 extension) 
-+//#  define _XOPEN_SOURCE 600 // For PATH_MAX from limits.h (SUSv2 extension) 
- #  include <limits.h>
- #endif
- // clang-format on
diff --git a/chromium/patches/patch-third__party_fontconfig_BUILD.gn b/chromium/patches/patch-third__party_fontconfig_BUILD.gn
deleted file mode 100644
index b8c27702d6..0000000000
--- a/chromium/patches/patch-third__party_fontconfig_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/fontconfig/BUILD.gn.orig	2020-07-15 18:56:30.000000000 +0000
-+++ third_party/fontconfig/BUILD.gn
-@@ -5,7 +5,7 @@
- import("//build/config/sanitizers/sanitizers.gni")
- import("//third_party/fontconfig/fontconfig.gni")
- 
--assert(is_linux)
-+assert(is_linux || is_bsd)
- 
- if (use_bundled_fontconfig) {
-   config("fontconfig_config") {
diff --git a/chromium/patches/patch-third__party_fontconfig_fontconfig.gni b/chromium/patches/patch-third__party_fontconfig_fontconfig.gni
deleted file mode 100644
index 95436f8da8..0000000000
--- a/chromium/patches/patch-third__party_fontconfig_fontconfig.gni
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/fontconfig/fontconfig.gni.orig	2020-07-15 18:56:30.000000000 +0000
-+++ third_party/fontconfig/fontconfig.gni
-@@ -5,8 +5,8 @@
- import("//build/config/chromeos/args.gni")
- import("//build/config/features.gni")
- 
--assert(is_linux)
-+assert(is_linux || is_bsd)
- 
- declare_args() {
--  use_bundled_fontconfig = is_linux && !is_chromeos_device
-+  use_bundled_fontconfig = (is_linux || is_bsd) && !is_chromeos_device
- }
diff --git a/chromium/patches/patch-third__party_fontconfig_include_config.h b/chromium/patches/patch-third__party_fontconfig_include_config.h
new file mode 100644
index 0000000000..154790f3fc
--- /dev/null
+++ b/chromium/patches/patch-third__party_fontconfig_include_config.h
@@ -0,0 +1,55 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/fontconfig/include/config.h.orig	2024-07-24 02:45:04.467477000 +0000
++++ third_party/fontconfig/include/config.h
+@@ -13,7 +13,7 @@
+ 
+ #define FC_CACHEDIR "/var/cache/fontconfig"
+ 
+-#define FC_DEFAULT_FONTS "\t<dir>/usr/share/fonts</dir>\n\t<dir>/usr/local/share/fonts</dir>\n"
++#define FC_DEFAULT_FONTS "\t<dir>/usr/X11R6/lib/X11/fonts</dir>"
+ 
+ #define FC_FONTPATH ""
+ 
+@@ -66,7 +66,7 @@
+ 
+ #define HAVE_MMAP 1
+ 
+-#define HAVE_POSIX_FADVISE 1
++#define HAVE_POSIX_FADVISE 0
+ 
+ #define HAVE_PTHREAD 1
+ 
+@@ -74,10 +74,13 @@
+ 
+ #define HAVE_RANDOM 1
+ 
+-#define HAVE_RANDOM_R 1
++/* #undef HAVE_RANDOM_R */
+ 
+ #define HAVE_RAND_R 1
+ 
++/* Define to 1 if you have the `arc4_random' function. */
++#define HAVE_ARC4RANDOM 1
++
+ #define HAVE_READLINK 1
+ 
+ #define HAVE_STDATOMIC_PRIMITIVES 1
+@@ -92,11 +95,11 @@
+ 
+ #define HAVE_SYS_PARAM_H 1
+ 
+-#define HAVE_SYS_STATFS_H 1
++/* #undef HAVE_SYS_STATFS_H */
+ 
+ #define HAVE_SYS_STATVFS_H 1
+ 
+-#define HAVE_SYS_VFS_H 1
++/* #undef HAVE_SYS_VFS_H */
+ 
+ #define HAVE_UNISTD_H 1
+ 
diff --git a/chromium/patches/patch-third__party_fontconfig_src_src_fccompat.c b/chromium/patches/patch-third__party_fontconfig_src_src_fccompat.c
new file mode 100644
index 0000000000..0c0fd5b729
--- /dev/null
+++ b/chromium/patches/patch-third__party_fontconfig_src_src_fccompat.c
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/fontconfig/src/src/fccompat.c.orig	2024-07-24 02:45:26.453606800 +0000
++++ third_party/fontconfig/src/src/fccompat.c
+@@ -184,7 +184,9 @@ FcRandom(void)
+ {
+     int32_t result;
+ 
+-#if HAVE_RANDOM_R
++#if HAVE_ARC4RANDOM
++    result = arc4random() & 0x7fffffff;
++#elif HAVE_RANDOM_R
+     static struct random_data fcrandbuf;
+     static char statebuf[256];
+     static FcBool initialized = FcFalse;
diff --git a/chromium/patches/patch-third__party_freetype_BUILD.gn b/chromium/patches/patch-third__party_freetype_BUILD.gn
deleted file mode 100644
index b2e5baf1ca..0000000000
--- a/chromium/patches/patch-third__party_freetype_BUILD.gn
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- third_party/freetype/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
-+++ third_party/freetype/BUILD.gn
-@@ -121,13 +121,13 @@ source_set("freetype_source") {
-     ]
-   }
- 
--  if (is_linux || is_chromecast) {
-+  if (is_linux || is_chromecast || is_bsd) {
-     # Needed for content_shell on Linux and Chromecast, since fontconfig
-     # requires FT_Get_BDF_Property.
-     sources += [ "src/src/base/ftbdf.c" ]
-   }
- 
--  if (is_linux || is_chromecast) {
-+  if (is_linux || is_chromecast || is_bsd) {
-     # Needed on Fedora whose libfreetype builds ftsynth.c containing
-     # FT_GlyphSlot_Embolden, which we need to replace in content_shell if
-     # we are linking against our own FreeType.
diff --git a/chromium/patches/patch-third__party_icu_BUILD.gn b/chromium/patches/patch-third__party_icu_BUILD.gn
deleted file mode 100644
index 2b32faf8fb..0000000000
--- a/chromium/patches/patch-third__party_icu_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/icu/BUILD.gn.orig	2020-06-25 09:34:44.000000000 +0000
-+++ third_party/icu/BUILD.gn
-@@ -92,7 +92,7 @@ config("icu_code") {
-       "/wd4267",  # Conversion from size_t on 64-bits.
-       "/utf-8",   # ICU source files are in UTF-8.
-     ]
--  } else if (is_linux || is_android) {
-+  } else if (is_linux || is_android || is_bsd) {
-     cflags += [
-       "-Wno-unused-function",
-     ]
-@@ -110,7 +110,7 @@ config("icu_code") {
-       "-Wno-unused-variable",
-     ]
-   }
--  if (is_clang || is_linux || is_android) {
-+  if (is_clang || is_linux || is_android || is_bsd) {
-     cflags += [
-       # ICU uses its own deprecated functions.
-       "-Wno-deprecated-declarations",
-@@ -121,7 +121,7 @@ config("icu_code") {
- # Config used to set default visibility to hidden.
- config("visibility_hidden") {
-   cflags = []
--  if (is_mac || is_linux || is_android) {
-+  if (is_mac || is_linux || is_android || is_bsd) {
-     cflags += [ "-fvisibility=hidden" ]
-   }
- }
diff --git a/chromium/patches/patch-third__party_icu_source_common_putil.cpp b/chromium/patches/patch-third__party_icu_source_common_putil.cpp
deleted file mode 100644
index 7a6e6a2a87..0000000000
--- a/chromium/patches/patch-third__party_icu_source_common_putil.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/icu/source/common/putil.cpp.orig	2020-07-15 19:01:35.000000000 +0000
-+++ third_party/icu/source/common/putil.cpp
-@@ -41,7 +41,7 @@
- 
- // Defines _XOPEN_SOURCE for access to POSIX functions.
- // Must be before any other #includes.
--#include "uposixdefs.h"
-+//#include "uposixdefs.h"
- 
- // First, the platform type. Need this for U_PLATFORM.
- #include "unicode/platform.h"
diff --git a/chromium/patches/patch-third__party_icu_source_common_umapfile.cpp b/chromium/patches/patch-third__party_icu_source_common_umapfile.cpp
deleted file mode 100644
index cbde1d721c..0000000000
--- a/chromium/patches/patch-third__party_icu_source_common_umapfile.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/icu/source/common/umapfile.cpp.orig	2020-07-15 19:01:35.000000000 +0000
-+++ third_party/icu/source/common/umapfile.cpp
-@@ -19,7 +19,7 @@
-  *----------------------------------------------------------------------------*/
- /* Defines _XOPEN_SOURCE for access to POSIX functions.
-  * Must be before any other #includes. */
--#include "uposixdefs.h"
-+//#include "uposixdefs.h"
- 
- #include "unicode/putil.h"
- #include "unicode/ustring.h"
diff --git a/chromium/patches/patch-third__party_ijar_BUILD.gn b/chromium/patches/patch-third__party_ijar_BUILD.gn
deleted file mode 100644
index 5abb69368d..0000000000
--- a/chromium/patches/patch-third__party_ijar_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/ijar/BUILD.gn.orig	2020-07-15 18:56:30.000000000 +0000
-+++ third_party/ijar/BUILD.gn
-@@ -4,7 +4,7 @@
- 
- # A tool that removes all non-interface-specific parts from a .jar file.
- 
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   executable("ijar") {
-     sources = [
-       "classfile.cc",
diff --git a/chromium/patches/patch-third__party_ipcz_src_reference__drivers_random.cc b/chromium/patches/patch-third__party_ipcz_src_reference__drivers_random.cc
new file mode 100644
index 0000000000..0c19f0df55
--- /dev/null
+++ b/chromium/patches/patch-third__party_ipcz_src_reference__drivers_random.cc
@@ -0,0 +1,55 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ipcz/src/reference_drivers/random.cc.orig	2024-07-24 02:45:05.211549300 +0000
++++ third_party/ipcz/src/reference_drivers/random.cc
+@@ -14,7 +14,8 @@
+ #include <windows.h>
+ #elif BUILDFLAG(IS_FUCHSIA)
+ #include <zircon/syscalls.h>
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)) && \
++         !BUILDFLAG(IS_NETBSD)
+ #include <asm/unistd.h>
+ #include <sys/syscall.h>
+ #include <unistd.h>
+@@ -25,7 +26,7 @@
+ #include <nacl/nacl_random.h>
+ #endif
+ 
+-#if BUILDFLAG(IS_POSIX)
++#if BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_NETBSD)
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -55,7 +56,7 @@ decltype(&ProcessPrng) GetProcessPrng() 
+ }
+ #endif
+ 
+-#if defined(OS_POSIX) && !BUILDFLAG(IS_MAC)
++#if (defined(OS_POSIX) && !BUILDFLAG(IS_MAC)) || BUILDFLAG(IS_NETBSD)
+ void RandomBytesFromDevUrandom(absl::Span<uint8_t> destination) {
+   static int urandom_fd = [] {
+     for (;;) {
+@@ -86,7 +87,8 @@ void RandomBytes(absl::Span<uint8_t> des
+   process_prng_fn(destination.data(), destination.size());
+ #elif BUILDFLAG(IS_FUCHSIA)
+   zx_cprng_draw(destination.data(), destination.size());
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)) && \
++         !BUILDFLAG(IS_NETBSD)
+   while (!destination.empty()) {
+     ssize_t result =
+         syscall(__NR_getrandom, destination.data(), destination.size(), 0);
+@@ -102,7 +104,7 @@ void RandomBytes(absl::Span<uint8_t> des
+ #elif BUILDFLAG(IS_MAC)
+   const bool ok = getentropy(destination.data(), destination.size()) == 0;
+   ABSL_ASSERT(ok);
+-#elif BUILDFLAG(IS_IOS)
++#elif BUILDFLAG(IS_IOS) || BUILDFLAG(IS_NETBSD)
+   RandomBytesFromDevUrandom(destination);
+ #elif BUILDFLAG(IS_NACL)
+   while (!destination.empty()) {
diff --git a/chromium/patches/patch-third__party_ipcz_src_standalone_base_logging.cc b/chromium/patches/patch-third__party_ipcz_src_standalone_base_logging.cc
new file mode 100644
index 0000000000..4e37b8f5b5
--- /dev/null
+++ b/chromium/patches/patch-third__party_ipcz_src_standalone_base_logging.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/ipcz/src/standalone/base/logging.cc.orig	2024-07-24 02:45:05.215549700 +0000
++++ third_party/ipcz/src/standalone/base/logging.cc
+@@ -50,6 +50,9 @@ LogMessage::LogMessage(const char* file,
+ #elif BUILDFLAG(IS_ANDROID)
+   stream_ << getpid() << ":" << gettid() << ":";
+   const char* trimmed_file = strrchr(file, '/') + 1;
++#elif BUILDFLAG(IS_BSD)
++  stream_ << getpid() << ":" << pthread_self() << ":";
++  const char* trimmed_file = strrchr(file, '/') + 1;
+ #elif BUILDFLAG(IS_WIN)
+   const char* trimmed_file = file;
+   stream_ << (::GetCurrentProcessId()) << ":" << ::GetCurrentThreadId() << ":";
diff --git a/chromium/patches/patch-third__party_leveldatabase_env__chromium.cc b/chromium/patches/patch-third__party_leveldatabase_env__chromium.cc
index 9945ac8acd..e9e86077c6 100644
--- a/chromium/patches/patch-third__party_leveldatabase_env__chromium.cc
+++ b/chromium/patches/patch-third__party_leveldatabase_env__chromium.cc
@@ -1,13 +1,18 @@
 $NetBSD$
 
---- third_party/leveldatabase/env_chromium.cc.orig	2020-07-15 18:56:31.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/leveldatabase/env_chromium.cc.orig	2024-07-24 02:45:05.255553500 +0000
 +++ third_party/leveldatabase/env_chromium.cc
-@@ -37,7 +37,7 @@
- #include "third_party/leveldatabase/leveldb_chrome.h"
- #include "third_party/leveldatabase/leveldb_features.h"
- #include "third_party/leveldatabase/src/include/leveldb/options.h"
--#include "third_party/re2/src/re2/re2.h"
-+#include <re2/re2.h>
+@@ -326,7 +326,8 @@ ChromiumWritableFile::ChromiumWritableFi
  
- using base::FilePath;
- using base::trace_event::MemoryAllocatorDump;
+ Status ChromiumWritableFile::SyncParent() {
+   TRACE_EVENT0("leveldb", "SyncParent");
+-#if defined(OS_POSIX) || defined(OS_FUCHSIA)
++// pledge violation (directory passed as fd)
++#if (defined(OS_POSIX) || defined(OS_FUCHSIA)) && !defined(OS_OPENBSD)
+   FilePath path = FilePath::FromUTF8Unsafe(parent_dir_);
+   FileErrorOr<base::File> result = filesystem_->OpenFile(
+       path, base::File::FLAG_OPEN | base::File::FLAG_READ);
diff --git a/chromium/patches/patch-third__party_libXNVCtrl_NVCtrl.c b/chromium/patches/patch-third__party_libXNVCtrl_NVCtrl.c
deleted file mode 100644
index 3b6bd0a35a..0000000000
--- a/chromium/patches/patch-third__party_libXNVCtrl_NVCtrl.c
+++ /dev/null
@@ -1,27 +0,0 @@
-$NetBSD$
-
---- third_party/libXNVCtrl/NVCtrl.c.orig	2020-07-15 18:56:31.000000000 +0000
-+++ third_party/libXNVCtrl/NVCtrl.c
-@@ -27,10 +27,6 @@
-  * libXNVCtrl library properly protects the Display connection.
-  */
- 
--#if !defined(XTHREADS)
--#define XTHREADS
--#endif /* XTHREADS */
--
- #define NEED_EVENTS
- #define NEED_REPLIES
- #include <stdint.h>
-@@ -39,6 +35,11 @@
- #include <X11/Xutil.h>
- #include <X11/extensions/Xext.h>
- #include <X11/extensions/extutil.h>
-+
-+#if !defined(XTHREADS)
-+#define XTHREADS
-+#endif /* XTHREADS */
-+
- #include "NVCtrlLib.h"
- #include "nv_control.h"
- 
diff --git a/chromium/patches/patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c b/chromium/patches/patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c
new file mode 100644
index 0000000000..6d67a67abb
--- /dev/null
+++ b/chromium/patches/patch-third__party_libaom_source_libaom_aom__ports_aarch64__cpudetect.c
@@ -0,0 +1,56 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libaom/source/libaom/aom_ports/aarch64_cpudetect.c.orig	2024-07-24 02:45:29.389891100 +0000
++++ third_party/libaom/source/libaom/aom_ports/aarch64_cpudetect.c
+@@ -99,10 +99,46 @@ static int arm_get_cpu_caps(void) {
+   return flags;
+ }
+ 
+-#elif defined(__linux__)  // end defined(AOM_USE_ANDROID_CPU_FEATURES)
++#elif defined(__OpenBSD__)
++#include <sys/sysctl.h>
++#include <machine/cpu.h>
++#include <machine/armreg.h>
++
++static int arm_get_cpu_caps(void) {
++  int flags = 0;
++  int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 };
++  uint64_t cpu_id = 0;
++  size_t len = sizeof(cpu_id);
++
++  flags |= HAS_NEON;  // Neon is mandatory in Armv8.0-A.
++
++  if (sysctl(isar0_mib, 2, &cpu_id, &len, NULL, 0) < 0)
++    return flags;
++
++  if (ID_AA64ISAR0_CRC32(cpu_id) >= ID_AA64ISAR0_CRC32_BASE)
++    flags |= HAS_ARM_CRC32;
++
++  return flags;
++}
++
++#elif defined(__linux__) || defined(__FreeBSD__)  // end defined(AOM_USE_ANDROID_CPU_FEATURES)
+ 
+ #include <sys/auxv.h>
+ 
++#if defined(__FreeBSD__)
++static unsigned long getauxval(unsigned long type)
++{
++    /* Only AT_HWCAP* return unsigned long */
++    if (type != AT_HWCAP && type != AT_HWCAP2) {
++        return 0;
++    }
++
++    unsigned long ret = 0;
++    elf_aux_info(type, &ret, sizeof(ret));
++    return ret;
++}
++#endif
++
+ // Define hwcap values ourselves: building with an old auxv header where these
+ // hwcap values are not defined should not prevent features from being enabled.
+ #define AOM_AARCH64_HWCAP_CRC32 (1 << 7)
diff --git a/chromium/patches/patch-third__party_libc++_src_src_chrono.cpp b/chromium/patches/patch-third__party_libc++_src_src_chrono.cpp
new file mode 100644
index 0000000000..0db36b76ad
--- /dev/null
+++ b/chromium/patches/patch-third__party_libc++_src_src_chrono.cpp
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libc++/src/src/chrono.cpp.orig	2024-07-24 02:45:27.085668000 +0000
++++ third_party/libc++/src/src/chrono.cpp
+@@ -31,7 +31,8 @@
+ #  include <sys/time.h> // for gettimeofday and timeval
+ #endif
+ 
+-#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0)
++#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || \
++    defined(__FreeBSD__) || defined(__NetBSD__)
+ #  define _LIBCPP_HAS_CLOCK_GETTIME
+ #endif
+ 
diff --git a/chromium/patches/patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp b/chromium/patches/patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp
new file mode 100644
index 0000000000..c04957fb92
--- /dev/null
+++ b/chromium/patches/patch-third__party_libc++_src_src_filesystem_filesystem__clock.cpp
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libc++/src/src/filesystem/filesystem_clock.cpp.orig	2024-07-24 02:45:27.085668000 +0000
++++ third_party/libc++/src/src/filesystem/filesystem_clock.cpp
+@@ -29,7 +29,8 @@
+ #  include <sys/time.h> // for gettimeofday and timeval
+ #endif
+ 
+-#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0)
++#if defined(__APPLE__) || defined(__gnu_hurd__) || (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) || defined(__OpenBSD__) || \
++    defined(__FreeBSD__) || defined(__NetBSD__)
+ #  define _LIBCPP_HAS_CLOCK_GETTIME
+ #endif
+ 
diff --git a/chromium/patches/patch-third__party_libc++abi_src_src_cxa__guard__impl.h b/chromium/patches/patch-third__party_libc++abi_src_src_cxa__guard__impl.h
new file mode 100644
index 0000000000..dd808ce6d8
--- /dev/null
+++ b/chromium/patches/patch-third__party_libc++abi_src_src_cxa__guard__impl.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libc++abi/src/src/cxa_guard_impl.h.orig	2024-07-24 02:45:27.829740000 +0000
++++ third_party/libc++abi/src/src/cxa_guard_impl.h
+@@ -425,6 +425,17 @@ void PlatformFutexWake(int* addr) {
+   __tsan_release(addr);
+   futex(reinterpret_cast<volatile uint32_t*>(addr), WAKE, INT_MAX, NULL, NULL);
+ }
++#elif defined(__NetBSD__)
++void PlatformFutexWait(int* addr, int expect) {
++  constexpr int WAIT = 0;
++  syscall(SYS___futex, addr, WAIT, expect, NULL, NULL, 0, 0);
++  __tsan_acquire(addr);
++}
++void PlatformFutexWake(int* addr) {
++  constexpr int WAKE = 1;
++  __tsan_release(addr);
++  syscall(SYS___futex, addr, WAKE, INT_MAX, NULL, NULL, 0, 0);
++}
+ #elif defined(SYS_futex)
+ void PlatformFutexWait(int* addr, int expect) {
+   constexpr int WAIT = 0;
diff --git a/chromium/patches/patch-third__party_libdrm_BUILD.gn b/chromium/patches/patch-third__party_libdrm_BUILD.gn
deleted file mode 100644
index 7c54539cce..0000000000
--- a/chromium/patches/patch-third__party_libdrm_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/libdrm/BUILD.gn.orig	2020-07-15 18:56:31.000000000 +0000
-+++ third_party/libdrm/BUILD.gn
-@@ -1,7 +1,7 @@
- # Copyright 2016 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.
--assert(is_linux)
-+assert(is_linux || is_bsd)
- 
- config("libdrm_config") {
-   # TODO(thomasanderson): Remove this hack once
diff --git a/chromium/patches/patch-third__party_libdrm_src_xf86drmMode.c b/chromium/patches/patch-third__party_libdrm_src_xf86drmMode.c
new file mode 100644
index 0000000000..a0e84f94d5
--- /dev/null
+++ b/chromium/patches/patch-third__party_libdrm_src_xf86drmMode.c
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libdrm/src/xf86drmMode.c.orig	2024-07-24 02:46:53.990085800 +0000
++++ third_party/libdrm/src/xf86drmMode.c
+@@ -966,7 +966,7 @@ drm_public int drmCheckModesettingSuppor
+ 	}
+ #elif defined(__DragonFly__)
+ 	return 0;
+-#elif defined(__OpenBSD__)
++#elif defined(__OpenBSD__) || defined(__NetBSD__)
+ 	int	fd;
+ 	struct drm_mode_card_res res;
+ 	drmModeResPtr r = 0;
+@@ -1119,7 +1119,11 @@ drm_public int drmModePageFlipTarget(int
+ 
+ drm_public int drmModeSetPlane(int fd, uint32_t plane_id, uint32_t crtc_id,
+ 		    uint32_t fb_id, uint32_t flags,
++#if defined(__NetBSD__)
++			uint32_t crtc_x, uint32_t crtc_y,
++#else
+ 		    int32_t crtc_x, int32_t crtc_y,
++#endif
+ 		    uint32_t crtc_w, uint32_t crtc_h,
+ 		    uint32_t src_x, uint32_t src_y,
+ 		    uint32_t src_w, uint32_t src_h)
diff --git a/chromium/patches/patch-third__party_libjpeg__turbo_BUILD.gn b/chromium/patches/patch-third__party_libjpeg__turbo_BUILD.gn
deleted file mode 100644
index c1043208f1..0000000000
--- a/chromium/patches/patch-third__party_libjpeg__turbo_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/libjpeg_turbo/BUILD.gn.orig	2020-07-15 19:01:36.000000000 +0000
-+++ third_party/libjpeg_turbo/BUILD.gn
-@@ -128,7 +128,7 @@ if (current_cpu == "x86" || current_cpu 
-       }
-     } else if (is_mac || is_ios) {
-       defines += [ "MACHO" ]
--    } else if (is_linux || is_android || is_fuchsia) {
-+    } else if (is_linux || is_android || is_fuchsia || is_bsd) {
-       defines += [ "ELF" ]
-     }
-   }
diff --git a/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h b/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h
index 45ce9a87f5..925d6ac8be 100644
--- a/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h
+++ b/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h
@@ -1,13 +1,18 @@
 $NetBSD$
 
---- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h.orig	2020-07-15 19:01:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h.orig	2024-07-24 02:46:31.927948700 +0000
 +++ third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h
-@@ -56,7 +56,7 @@ template <class T> boost::once_flag Sing
- #include "phonenumbers/base/logging.h"
- #include "phonenumbers/base/thread_checker.h"
- 
--#if !defined(__linux__) && !defined(__APPLE__)
-+#if !defined(__linux__) && !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
- 
- namespace i18n {
- namespace phonenumbers {
+@@ -22,7 +22,8 @@
+ #elif (__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)
+ // C++11 Lock implementation based on std::mutex.
+ #include "phonenumbers/base/memory/singleton_stdmutex.h"
+-#elif defined(__linux__) || defined(__APPLE__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
++#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++    defined(__NetBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
+ #include "phonenumbers/base/memory/singleton_posix.h"
+ #elif defined(WIN32)
+ #include "phonenumbers/base/memory/singleton_win32.h"
diff --git a/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h b/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h
index d2c7a50e40..7e7d1975a7 100644
--- a/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h
+++ b/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h
@@ -1,13 +1,18 @@
 $NetBSD$
 
---- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h.orig	2020-07-15 19:01:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h.orig	2024-07-24 02:46:31.931949100 +0000
 +++ third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h
-@@ -63,7 +63,7 @@ private:
- // Dummy lock implementation on non-POSIX platforms. If you are running on a
- // different platform and care about thread-safety, please compile with
- // -DI18N_PHONENUMBERS_USE_BOOST.
--#elif !defined(__linux__) && !defined(__APPLE__)
-+#elif !defined(__linux__) && !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
- 
- namespace i18n {
- namespace phonenumbers {
+@@ -22,7 +22,8 @@
+ #elif (__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)
+ // C++11 Lock implementation based on std::mutex.
+ #include "phonenumbers/base/synchronization/lock_stdmutex.h"
+-#elif defined(__linux__) || defined(__APPLE__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
++#elif defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++  defined(__NetBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD)
+ #include "phonenumbers/base/synchronization/lock_posix.h"
+ #elif defined(WIN32)
+ #include "phonenumbers/base/synchronization/lock_win32.h"
diff --git a/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h b/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h
index a353b61cf0..58a3eda6d0 100644
--- a/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h
+++ b/chromium/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h
@@ -1,21 +1,29 @@
 $NetBSD$
 
---- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h.orig	2020-07-15 19:01:36.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h.orig	2024-07-24 02:46:31.931949100 +0000
 +++ third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h
-@@ -23,6 +23,7 @@
+@@ -22,8 +22,8 @@
+ // Note that I18N_PHONENUMBERS_NO_THREAD_SAFETY must be defined only to let the
  // user of the library know that it can't be used in a thread-safe manner when
  // it is not depending on Boost.
- #if !defined(__linux__) && !defined(__APPLE__) && \
-+    !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && \
-     !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY)
+-#if !defined(__linux__) && !defined(__APPLE__) && !defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD) && \
+-    !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY) && \
++#if !defined(__linux__) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD) && \
++    !defined(__NetBSD__) && !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY) && \
+ 	!((__cplusplus >= 201103L) && defined(I18N_PHONENUMBERS_USE_STDMUTEX)) && \
+ 	!defined(WIN32)
  #error Building without Boost, please provide \
-        -DI18N_PHONENUMBERS_NO_THREAD_SAFETY
-@@ -31,7 +32,7 @@
+@@ -33,7 +33,8 @@
  #endif
  
  #if !defined(NDEBUG) && !defined(I18N_PHONENUMBERS_USE_BOOST) && \
--    (defined(__linux__) || defined(__apple__))
-+    (defined(__linux__) || defined(__apple__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__))
+-    (defined(__linux__) || defined(__APPLE__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD))
++    (defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
++    defined(__NetBSD__) || defined(I18N_PHONENUMBERS_HAVE_POSIX_THREAD))
  
  #include <pthread.h>
  
diff --git a/chromium/patches/patch-third__party_libpng_pnglibconf.h b/chromium/patches/patch-third__party_libpng_pnglibconf.h
deleted file mode 100644
index 3915476519..0000000000
--- a/chromium/patches/patch-third__party_libpng_pnglibconf.h
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/libpng/pnglibconf.h.orig	2020-07-15 18:56:31.000000000 +0000
-+++ third_party/libpng/pnglibconf.h
-@@ -230,8 +230,10 @@
-  * This is necessary to build multiple copies of libpng.  We need this while pdfium builds
-  * its own copy of libpng.
-  */
-+#if 0
- #define PNG_PREFIX
- #include "pngprefix.h"
-+#endif
- /* end of chromium prefixing */
- 
- #endif /* PNGLCONF_H */
diff --git a/chromium/patches/patch-third__party_libsync_src_include_sync_sync.h b/chromium/patches/patch-third__party_libsync_src_include_sync_sync.h
new file mode 100644
index 0000000000..bce8437677
--- /dev/null
+++ b/chromium/patches/patch-third__party_libsync_src_include_sync_sync.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libsync/src/include/sync/sync.h.orig	2024-07-24 02:45:54.588332000 +0000
++++ third_party/libsync/src/include/sync/sync.h
+@@ -22,7 +22,9 @@
+ #include <sys/cdefs.h>
+ #include <stdint.h>
+ 
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+ #include <linux/types.h>
++#endif
+ 
+ __BEGIN_DECLS
+ 
diff --git a/chromium/patches/patch-third__party_libsync_src_sync.c b/chromium/patches/patch-third__party_libsync_src_sync.c
new file mode 100644
index 0000000000..85f63bb2a5
--- /dev/null
+++ b/chromium/patches/patch-third__party_libsync_src_sync.c
@@ -0,0 +1,31 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libsync/src/sync.c.orig	2024-07-24 02:45:54.588332000 +0000
++++ third_party/libsync/src/sync.c
+@@ -17,8 +17,8 @@
+  */
+ 
+ #include <fcntl.h>
+-#include <malloc.h>
+ #include <stdint.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include <errno.h>
+ #include <poll.h>
+@@ -29,6 +29,12 @@
+ 
+ #include <sync/sync.h>
+ 
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
++typedef __uint8_t __u8;
++typedef __uint32_t __u32;
++typedef __int32_t __s32;
++#define ETIME ETIMEDOUT
++#endif
+ 
+ struct sw_sync_create_fence_data {
+   __u32 value;
diff --git a/chromium/patches/patch-third__party_libusb_BUILD.gn b/chromium/patches/patch-third__party_libusb_BUILD.gn
new file mode 100644
index 0000000000..97de98b48d
--- /dev/null
+++ b/chromium/patches/patch-third__party_libusb_BUILD.gn
@@ -0,0 +1,58 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libusb/BUILD.gn.orig	2024-07-24 02:45:05.375565000 +0000
++++ third_party/libusb/BUILD.gn
+@@ -3,7 +3,7 @@
+ # found in the LICENSE file.
+ 
+ # libusb is only used by //services/device/usb on macOS.
+-assert(is_mac)
++assert(is_mac || is_bsd)
+ 
+ import("//build/config/chromeos/ui_mode.gni")
+ import("//build/config/features.gni")
+@@ -103,7 +103,7 @@ static_library("libusb") {
+     ]
+   }
+ 
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
+     sources += [
+       "src/libusb/os/linux_usbfs.c",
+       "src/libusb/os/linux_usbfs.h",
+@@ -114,11 +114,21 @@ static_library("libusb") {
+     ]
+   }
+ 
++  if (is_openbsd) {
++    sources += [
++      "src/libusb/os/openbsd_usb.c",
++    ]
++    defines += [
++      "OS_OPENBSD=1",
++      "_GNU_SOURCE=1",
++    ]
++  }
++
+   if (is_chromeos_ash) {
+     defines += [ "USBI_TIMERFD_AVAILABLE" ]
+   }
+ 
+-  if (use_udev) {
++  if (use_udev && !is_bsd) {
+     sources += [ "src/libusb/os/linux_udev.cc" ]
+     defines += [
+       "HAVE_LIBUDEV=1",
+@@ -127,7 +137,7 @@ static_library("libusb") {
+     deps += [ "//build/linux/libudev" ]
+   }
+ 
+-  if ((is_linux || is_chromeos) && !use_udev) {
++  if ((is_linux || is_chromeos) && !use_udev && !is_bsd) {
+     sources += [ "src/libusb/os/linux_netlink.c" ]
+     defines += [ "HAVE_LINUX_NETLINK_H" ]
+   }
diff --git a/chromium/patches/patch-third__party_libusb_src_libusb_core.c b/chromium/patches/patch-third__party_libusb_src_libusb_core.c
new file mode 100644
index 0000000000..7f6c0cae3c
--- /dev/null
+++ b/chromium/patches/patch-third__party_libusb_src_libusb_core.c
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libusb/src/libusb/core.c.orig	2024-07-24 02:45:05.375565000 +0000
++++ third_party/libusb/src/libusb/core.c
+@@ -448,7 +448,7 @@ libusb_free_device_list(list, 1);
+  * which grows when required. it can be freed once discovery has completed,
+  * eliminating the need for a list node in the libusb_device structure
+  * itself. */
+-#define DISCOVERED_DEVICES_SIZE_STEP 8
++#define DISCOVERED_DEVICES_SIZE_STEP 16
+ 
+ static struct discovered_devs *discovered_devs_alloc(void)
+ {
diff --git a/chromium/patches/patch-third__party_libusb_src_libusb_os_threads__posix.c b/chromium/patches/patch-third__party_libusb_src_libusb_os_threads__posix.c
new file mode 100644
index 0000000000..8012bd83ed
--- /dev/null
+++ b/chromium/patches/patch-third__party_libusb_src_libusb_os_threads__posix.c
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libusb/src/libusb/os/threads_posix.c.orig	2024-07-24 02:45:05.379565500 +0000
++++ third_party/libusb/src/libusb/os/threads_posix.c
+@@ -19,9 +19,11 @@
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ 
+-#if defined(__linux__) || defined(__OpenBSD__)
++#if defined(__linux__)
+ # include <unistd.h>
+ # include <sys/syscall.h>
++#elif defined(__OpenBSD__)
++# include <unistd.h>
+ #elif defined(__APPLE__)
+ # include <mach/mach.h>
+ #elif defined(__CYGWIN__)
+@@ -65,7 +67,7 @@ int usbi_get_tid(void)
+ #elif defined(__OpenBSD__)
+ 	/* The following only works with OpenBSD > 5.1 as it requires
+ 	   real thread support. For 5.1 and earlier, -1 is returned. */
+-	ret = syscall(SYS_getthrid);
++	ret = getthrid();
+ #elif defined(__APPLE__)
+ 	ret = mach_thread_self();
+ 	mach_port_deallocate(mach_task_self(), ret);
diff --git a/chromium/patches/patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c b/chromium/patches/patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c
new file mode 100644
index 0000000000..975f547251
--- /dev/null
+++ b/chromium/patches/patch-third__party_libvpx_source_libvpx_vpx__ports_aarch64__cpudetect.c
@@ -0,0 +1,34 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/libvpx/source/libvpx/vpx_ports/aarch64_cpudetect.c.orig	2024-07-24 02:45:33.802318600 +0000
++++ third_party/libvpx/source/libvpx/vpx_ports/aarch64_cpudetect.c
+@@ -92,10 +92,24 @@ static int arm_get_cpu_caps(void) {
+   return flags;
+ }
+ 
+-#elif defined(__linux__)  // end defined(VPX_USE_ANDROID_CPU_FEATURES)
++#elif defined(__linux__) || defined(__FreeBSD__)  // end defined(VPX_USE_ANDROID_CPU_FEATURES)
+ 
+ #include <sys/auxv.h>
+ 
++#if defined(__FreeBSD__)
++static unsigned long getauxval(unsigned long type)
++{
++    /* Only AT_HWCAP* return unsigned long */
++    if (type != AT_HWCAP && type != AT_HWCAP2) {
++        return 0;
++    }
++
++    unsigned long ret = 0;
++    elf_aux_info(type, &ret, sizeof(ret));
++    return ret;
++}
++#endif
++
+ // Define hwcap values ourselves: building with an old auxv header where these
+ // hwcap values are not defined should not prevent features from being enabled.
+ #define VPX_AARCH64_HWCAP_ASIMDDP (1 << 20)
diff --git a/chromium/patches/patch-third__party_libxml_BUILD.gn b/chromium/patches/patch-third__party_libxml_BUILD.gn
deleted file mode 100644
index dd229b6844..0000000000
--- a/chromium/patches/patch-third__party_libxml_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/libxml/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
-+++ third_party/libxml/BUILD.gn
-@@ -4,7 +4,7 @@
- 
- # Define an "os_include" variable that points at the OS-specific generated
- # headers.  These were generated by running the configure script offline.
--if (is_linux || is_android || is_nacl || is_fuchsia) {
-+if (is_linux || is_android || is_nacl || is_fuchsia || is_bsd) {
-   os_include = "linux"
- } else if (is_mac || is_ios) {
-   os_include = "mac"
-@@ -66,7 +66,7 @@ config("libxml_warnings") {
-       # TODO(hans): See if we can fix upstream (http://crbug.com/763944).
-       "-Wno-enum-compare",
-     ]
--  } else if (is_linux) {
-+  } else if (is_linux || is_bsd) {
-     cflags = [
-       # gcc spits out a bunch of warnings about passing too many arguments to
-       # __xmlSimpleError.
diff --git a/chromium/patches/patch-third__party_libxslt_BUILD.gn b/chromium/patches/patch-third__party_libxslt_BUILD.gn
deleted file mode 100644
index fd2bab7fbc..0000000000
--- a/chromium/patches/patch-third__party_libxslt_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/libxslt/BUILD.gn.orig	2020-07-15 18:56:31.000000000 +0000
-+++ third_party/libxslt/BUILD.gn
-@@ -81,7 +81,7 @@ static_library("libxslt") {
-   public_configs = [ ":libxslt_config" ]
- 
-   cflags = []
--  if (is_linux || is_android || is_fuchsia) {
-+  if (is_linux || is_android || is_fuchsia || is_bsd) {
-     include_dirs = [ "linux" ]
-   } else if (is_win) {
-     include_dirs = [ "win32" ]
diff --git a/chromium/patches/patch-third__party_libyuv_BUILD.gn b/chromium/patches/patch-third__party_libyuv_BUILD.gn
deleted file mode 100644
index 32830ad9f0..0000000000
--- a/chromium/patches/patch-third__party_libyuv_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/libyuv/BUILD.gn.orig	2020-07-15 19:01:37.000000000 +0000
-+++ third_party/libyuv/BUILD.gn
-@@ -312,7 +312,7 @@ if (libyuv_include_tests) {
-     ]
-     public_configs = [ ":libyuv_unittest_config" ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       cflags = [ "-fexceptions" ]
-     }
-     if (is_ios) {
-@@ -352,7 +352,7 @@ if (libyuv_include_tests) {
-     deps = [
-       ":libyuv",
-     ]
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       cflags = [ "-fexceptions" ]
-     }
-   }
-@@ -365,7 +365,7 @@ if (libyuv_include_tests) {
-     deps = [
-       ":libyuv",
-     ]
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       cflags = [ "-fexceptions" ]
-     }
-   }
diff --git a/chromium/patches/patch-third__party_lzma__sdk_C_CpuArch.c b/chromium/patches/patch-third__party_lzma__sdk_C_CpuArch.c
new file mode 100644
index 0000000000..9f235597ac
--- /dev/null
+++ b/chromium/patches/patch-third__party_lzma__sdk_C_CpuArch.c
@@ -0,0 +1,50 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/lzma_sdk/C/CpuArch.c.orig	2024-07-24 02:45:05.615588400 +0000
++++ third_party/lzma_sdk/C/CpuArch.c
+@@ -412,12 +412,40 @@ BoolInt CPU_IsSupported_SHA1(void) { ret
+ BoolInt CPU_IsSupported_SHA2(void) { return APPLE_CRYPTO_SUPPORT_VAL; }
+ BoolInt CPU_IsSupported_AES (void) { return APPLE_CRYPTO_SUPPORT_VAL; }
+ 
++#elif defined(__OpenBSD__)
++
++#include <sys/param.h>
++#include <sys/sysctl.h>
++#include <machine/cpu.h>
++#include <machine/armreg.h>
++
++BoolInt CPU_IsSupported_NEON() { return 1; }
++
++#define MY_HWCAP_CHECK_FUNC_2(name1, name2) \
++  BoolInt CPU_IsSupported_ ## name1() { \
++    int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 }; \
++    size_t len = sizeof(uint64_t); \
++    uint64_t cpu_id = 0; \
++    if (sysctl(isar0_mib, 2, &cpu_id, &len, NULL, 0) < 0) \
++      return 0; \
++    if (ID_AA64ISAR0_ ## name2(cpu_id) >= ID_AA64ISAR0_## name2 ##_BASE) \
++      return 1; \
++    return 0; \
++  }
++
++#define MY_HWCAP_CHECK_FUNC(name) \
++  MY_HWCAP_CHECK_FUNC_2(name, name)
++
++MY_HWCAP_CHECK_FUNC (CRC32)
++MY_HWCAP_CHECK_FUNC (SHA1)
++MY_HWCAP_CHECK_FUNC (SHA2)
++MY_HWCAP_CHECK_FUNC (AES)
+ 
+ #else // __APPLE__
+ 
+ #include <sys/auxv.h>
+ 
+-#if !defined(ARMV8_OS_FUCHSIA)
++#if !defined(ARMV8_OS_FUCHSIA) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+ #define USE_HWCAP
+ #endif // !defined(ARMV8_OS_FUCHSIA)
+ 
diff --git a/chromium/patches/patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc b/chromium/patches/patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc
new file mode 100644
index 0000000000..3dc4501517
--- /dev/null
+++ b/chromium/patches/patch-third__party_material__color__utilities_src_cpp_palettes_tones.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/material_color_utilities/src/cpp/palettes/tones.cc.orig	2024-07-24 02:45:30.594007700 +0000
++++ third_party/material_color_utilities/src/cpp/palettes/tones.cc
+@@ -14,6 +14,8 @@
+  * limitations under the License.
+  */
+ 
++#include <cmath>
++
+ #include "cpp/palettes/tones.h"
+ 
+ #include <cmath>
diff --git a/chromium/patches/patch-third__party_minigbm_BUILD.gn b/chromium/patches/patch-third__party_minigbm_BUILD.gn
deleted file mode 100644
index 87260dd8f2..0000000000
--- a/chromium/patches/patch-third__party_minigbm_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/minigbm/BUILD.gn.orig	2020-06-25 09:32:10.000000000 +0000
-+++ third_party/minigbm/BUILD.gn
-@@ -5,7 +5,7 @@
- import("//build/config/chromecast_build.gni")
- import("//build/config/linux/pkg_config.gni")
- 
--assert(is_linux)
-+assert(is_linux || is_bsd)
- 
- declare_args() {
-   # Controls whether the build should use the version of minigbm library shipped
diff --git a/chromium/patches/patch-third__party_nasm_BUILD.gn b/chromium/patches/patch-third__party_nasm_BUILD.gn
new file mode 100644
index 0000000000..c60e677930
--- /dev/null
+++ b/chromium/patches/patch-third__party_nasm_BUILD.gn
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/nasm/BUILD.gn.orig	2024-07-24 02:45:31.066053600 +0000
++++ third_party/nasm/BUILD.gn
+@@ -63,6 +63,13 @@ config("nasm_config") {
+ 
+   defines = [ "HAVE_CONFIG_H" ]
+ 
++  _string_h_lines =
++        read_file("/usr/include/string.h", "list lines")
++  _mempcpy = filter_include(_string_h_lines, [ "*\*mempcpy*" ])
++  if (_mempcpy != []) {
++    defines += [ "HAVE_MEMPCPY=1" ]
++  }
++
+   if (is_clang) {
+     cflags = [
+       # The inline functions in NASM's headers flag this.
diff --git a/chromium/patches/patch-third__party_nasm_config_config-linux.h b/chromium/patches/patch-third__party_nasm_config_config-linux.h
index f351b9090a..17e309197c 100644
--- a/chromium/patches/patch-third__party_nasm_config_config-linux.h
+++ b/chromium/patches/patch-third__party_nasm_config_config-linux.h
@@ -1,13 +1,108 @@
 $NetBSD$
 
---- third_party/nasm/config/config-linux.h.orig	2020-07-15 19:01:37.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/nasm/config/config-linux.h.orig	2024-07-24 02:45:31.078054700 +0000
 +++ third_party/nasm/config/config-linux.h
-@@ -117,7 +117,7 @@
- #define HAVE_ACCESS 1
+@@ -160,7 +160,7 @@
+ 
+ /* Define to 1 if you have the declaration of `strlcpy', and to 0 if you
+    don't. */
+-#define HAVE_DECL_STRLCPY 0
++#define HAVE_DECL_STRLCPY 1
+ 
+ /* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you
+    don't. */
+@@ -183,7 +183,7 @@
+ #define HAVE_DECL_STRSEP 1
+ 
+ /* Define to 1 if you have the <endian.h> header file. */
+-#define HAVE_ENDIAN_H 1
++/* #undef HAVE_ENDIAN_H */
+ 
+ /* Define to 1 if you have the `faccessat' function. */
+ #define HAVE_FACCESSAT 1
+@@ -327,16 +327,16 @@
+ #define HAVE_ISASCII 1
+ 
+ /* Define to 1 if you have the `iscntrl' function. */
+-/* #undef HAVE_ISCNTRL */
++#define HAVE_ISCNTRL 1
+ 
+ /* Define to 1 if you have the <machine/endian.h> header file. */
+-/* #undef HAVE_MACHINE_ENDIAN_H */
++#define HAVE_MACHINE_ENDIAN_H 1
+ 
+ /* Define to 1 if you have the <memory.h> header file. */
+ #define HAVE_MEMORY_H 1
+ 
+ /* Define to 1 if you have the `mempcpy' function. */
+-#define HAVE_MEMPCPY 1
++/* #undef HAVE_MEMPCPY */
+ 
+ /* Define to 1 if you have a working `mmap' system call. */
+ #define HAVE_MMAP 1
+@@ -357,7 +357,7 @@
+ #define HAVE_STDARG_H 1
+ 
+ /* Define to 1 if stdbool.h conforms to C99. */
+-/* #undef HAVE_STDBOOL_H */
++#define HAVE_STDBOOL_H 1
+ 
+ /* Define to 1 if your compiler supports C99 extern inline */
+ #define HAVE_STDC_INLINE 1
+@@ -384,7 +384,7 @@
+ #define HAVE_STRING_H 1
+ 
+ /* Define to 1 if you have the `strlcpy' function. */
+-/* #undef HAVE_STRLCPY */
++#define HAVE_STRLCPY 1
+ 
+ /* Define to 1 if you have the `strncasecmp' function. */
+ #define HAVE_STRNCASECMP 1
+@@ -411,7 +411,7 @@
+ #define HAVE_SYSCONF 1
+ 
+ /* Define to 1 if you have the <sys/endian.h> header file. */
+-/* #undef HAVE_SYS_ENDIAN_H */
++#define HAVE_SYS_ENDIAN_H 1
+ 
+ /* Define to 1 if you have the <sys/mman.h> header file. */
+ #define HAVE_SYS_MMAN_H 1
+@@ -486,13 +486,13 @@
+ /* #undef HAVE__STATI64 */
+ 
+ /* Define to 1 if you have the `__bswap_16' intrinsic function. */
+-#define HAVE___BSWAP_16 1
++/* #undef HAVE___BSWAP_16 */
+ 
+ /* Define to 1 if you have the `__bswap_32' intrinsic function. */
+-#define HAVE___BSWAP_32 1
++/* #undef HAVE___BSWAP_32 */
+ 
+ /* Define to 1 if you have the `__bswap_64' intrinsic function. */
+-#define HAVE___BSWAP_64 1
++/* #undef HAVE___BSWAP_64 */
+ 
+ /* Define to 1 if you have the `__builtin_bswap16' intrinsic function. */
+ #define HAVE___BUILTIN_BSWAP16 1
+@@ -620,7 +620,7 @@
+ /* Define to the equivalent of the C99 'restrict' keyword, or to
+    nothing if this is not supported.  Do not define if restrict is
+    supported directly.  */
+-#define restrict __restrict
++#define restrict __restrict__
+ /* Work around a bug in Sun C++: it does not support _Restrict or
+    __restrict__, even though the corresponding Sun C compiler ends up with
+    "#define restrict _Restrict" or "#define restrict __restrict__" in the
+@@ -637,7 +637,7 @@
+ /* Define if your snprintf function is not named snprintf. */
+ /* #undef snprintf */
  
- /* Define to 1 if you have the `canonicalize_file_name' function. */
--#define HAVE_CANONICALIZE_FILE_NAME 1
-+/* #undef HAVE_CANONICALIZE_FILE_NAME */
+-/* Define if your typeof operator is not named typeof. */
++/* Define if your typeof operator is not named `typeof'. */
+ #define typeof __typeof
  
- /* Define to 1 if you have the `cpu_to_le16' intrinsic function. */
- /* #undef HAVE_CPU_TO_LE16 */
+ /* Define to the type of an unsigned integer type wide enough to hold a
diff --git a/chromium/patches/patch-third__party_node_node.gni b/chromium/patches/patch-third__party_node_node.gni
new file mode 100644
index 0000000000..ca86b84eb9
--- /dev/null
+++ b/chromium/patches/patch-third__party_node_node.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/node/node.gni.orig	2024-07-24 02:45:05.847611000 +0000
++++ third_party/node/node.gni
+@@ -19,7 +19,7 @@ template("node") {
+ 
+     # When use_remoteexec=true, node actions may run on remote
+     # Linux worker. So it should include linux node binary in inputs.
+-    if (is_linux || is_chromeos || use_remoteexec) {
++    if ((is_linux || is_chromeos || use_remoteexec) && !is_bsd) {
+       inputs += [ "//third_party/node/linux/node-linux-x64/bin/node" ]
+     }
+     if (is_win && host_os == "win") {
diff --git a/chromium/patches/patch-third__party_node_node.py b/chromium/patches/patch-third__party_node_node.py
index 32dd0e9041..26d129256d 100644
--- a/chromium/patches/patch-third__party_node_node.py
+++ b/chromium/patches/patch-third__party_node_node.py
@@ -1,12 +1,18 @@
 $NetBSD$
 
---- third_party/node/node.py.orig	2020-07-09 10:26:29.252112529 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/node/node.py.orig	2024-07-24 02:45:05.847611000 +0000
 +++ third_party/node/node.py
-@@ -13,6 +13,7 @@ def GetBinaryPath():
+@@ -20,6 +20,9 @@ def GetBinaryPath():
    return os_path.join(os_path.dirname(__file__), *{
-     'Darwin': ('mac', 'node-darwin-x64', 'bin', 'node'),
+     'Darwin': (darwin_path, darwin_name, 'bin', 'node'),
      'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
-+    'NetBSD': ('netbsd', 'node', 'bin', 'node'),
++    'OpenBSD': ('openbsd', 'node-openbsd', 'bin', 'node'),
++    'FreeBSD': ('freebsd', 'node-freebsd', 'bin', 'node'),
++    'NetBSD': ('netbsd', 'node-netbsd', 'bin', 'node'),
      'Windows': ('win', 'node.exe'),
    }[platform.system()])
  
diff --git a/chromium/patches/patch-third__party_openh264_BUILD.gn b/chromium/patches/patch-third__party_openh264_BUILD.gn
deleted file mode 100644
index 75a6a0d3c1..0000000000
--- a/chromium/patches/patch-third__party_openh264_BUILD.gn
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD$
-
---- third_party/openh264/BUILD.gn.orig	2020-07-15 18:56:31.000000000 +0000
-+++ third_party/openh264/BUILD.gn
-@@ -45,7 +45,7 @@ config("config") {
- # is believed to work.
- # MSAN builds are flaky with assembler. crbug.com/685168
- 
--use_assembler = (is_win || is_linux) &&
-+use_assembler = (is_win || is_linux || is_bsd) &&
-                 (current_cpu == "x86" || current_cpu == "x64") && !is_msan
- 
- # This IF statement will make the targets visible only on specific builds,
-@@ -55,7 +55,7 @@ if (use_assembler) {
-   if (!is_component_build) {
-     if (is_mac || is_ios) {
-       asm_defines += [ "WELS_PRIVATE_EXTERN=private_extern" ]
--    } else if (is_linux || is_android || is_fuchsia) {
-+    } else if (is_linux || is_android || is_fuchsia || is_bsd) {
-       asm_defines += [ "WELS_PRIVATE_EXTERN=hidden" ]
-     }
-   }
-@@ -74,7 +74,7 @@ if (use_assembler) {
-         ]
-       } else if (is_win) {
-         defines += [ "WIN64" ]
--      } else if (is_linux) {
-+      } else if (is_linux || is_bsd) {
-         defines += [ "UNIX64" ]
-       }
-     }
-@@ -95,7 +95,7 @@ if (use_assembler) {
-         ]
-       } else if (is_win) {
-         defines += [ "WIN64" ]
--      } else if (is_linux) {
-+      } else if (is_linux || is_bsd) {
-         defines += [ "UNIX64" ]
-       }
-     }
-@@ -116,7 +116,7 @@ if (use_assembler) {
-         ]
-       } else if (is_win) {
-         defines += [ "WIN64" ]
--      } else if (is_linux) {
-+      } else if (is_linux || is_bsd) {
-         defines += [ "UNIX64" ]
-       }
-     }
diff --git a/chromium/patches/patch-third__party_openscreen_src_build_config_BUILD.gn b/chromium/patches/patch-third__party_openscreen_src_build_config_BUILD.gn
deleted file mode 100644
index 8fd5fae2f8..0000000000
--- a/chromium/patches/patch-third__party_openscreen_src_build_config_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/openscreen/src/build/config/BUILD.gn.orig	2020-07-15 19:01:37.000000000 +0000
-+++ third_party/openscreen/src/build/config/BUILD.gn
-@@ -32,7 +32,7 @@ config("compiler_defaults") {
-   }
- 
-   ldflags = []
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     ldflags += [ "-pthread" ]
-   }
-   if (is_posix && !is_mac) {
diff --git a/chromium/patches/patch-third__party_openscreen_src_build_config_BUILDCONFIG.gn b/chromium/patches/patch-third__party_openscreen_src_build_config_BUILDCONFIG.gn
deleted file mode 100644
index 36d71d3693..0000000000
--- a/chromium/patches/patch-third__party_openscreen_src_build_config_BUILDCONFIG.gn
+++ /dev/null
@@ -1,25 +0,0 @@
-$NetBSD$
-
---- third_party/openscreen/src/build/config/BUILDCONFIG.gn.orig	2020-07-15 19:01:37.000000000 +0000
-+++ third_party/openscreen/src/build/config/BUILDCONFIG.gn
-@@ -131,10 +131,20 @@ if (current_os == "chromeos" || current_
-   is_linux = true
-   is_mac = false
-   is_posix = true
-+  is_bsd = false
-+  is_netbsd = false
-+} else if (current_os == "netbsd") {
-+  is_linux = false
-+  is_mac = false
-+  is_posix = true
-+  is_bsd = true
-+  is_netbsd = true
- } else if (current_os == "mac") {
-   is_linux = false
-   is_mac = true
-   is_posix = true
-+  is_bsd = false
-+  is_netbsd = false
- } else {
-   # TODO(miu): Windows, and others.
-   assert(false, "is_FOO booleans not defined for current_os.")
diff --git a/chromium/patches/patch-third__party_openscreen_src_platform_BUILD.gn b/chromium/patches/patch-third__party_openscreen_src_platform_BUILD.gn
deleted file mode 100644
index 9eec472520..0000000000
--- a/chromium/patches/patch-third__party_openscreen_src_platform_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/openscreen/src/platform/BUILD.gn.orig	2020-07-15 19:01:37.000000000 +0000
-+++ third_party/openscreen/src/platform/BUILD.gn
-@@ -84,7 +84,7 @@ if (!build_with_chromium) {
- 
-     public_configs = [ "//util:trace_logging_config" ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources += [
-         "impl/network_interface_linux.cc",
-         "impl/scoped_wake_lock_linux.cc",
-@@ -175,7 +175,7 @@ source_set("test") {
-   if (is_posix) {
-     sources += [ "test/paths_posix.cc" ]
-   }
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [ "test/paths_internal_linux.cc" ]
-   } else if (is_mac) {
-     sources += [ "test/paths_internal_mac.cc" ]
diff --git a/chromium/patches/patch-third__party_openscreen_src_third__party_boringssl_BUILD.gn b/chromium/patches/patch-third__party_openscreen_src_third__party_boringssl_BUILD.gn
deleted file mode 100644
index a47a171f09..0000000000
--- a/chromium/patches/patch-third__party_openscreen_src_third__party_boringssl_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/openscreen/src/third_party/boringssl/BUILD.gn.orig	2020-07-15 19:01:37.000000000 +0000
-+++ third_party/openscreen/src/third_party/boringssl/BUILD.gn
-@@ -53,7 +53,7 @@ if (build_with_chromium) {
-     sources = []
-     asmflags = []
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       if (current_cpu == "x64") {
-         sources += crypto_sources_linux_x86_64
-       } else if (current_cpu == "x86") {
diff --git a/chromium/patches/patch-third__party_openscreen_src_third__party_chromium__quic_build_base_BUILD.gn b/chromium/patches/patch-third__party_openscreen_src_third__party_chromium__quic_build_base_BUILD.gn
deleted file mode 100644
index 30796ee99d..0000000000
--- a/chromium/patches/patch-third__party_openscreen_src_third__party_chromium__quic_build_base_BUILD.gn
+++ /dev/null
@@ -1,35 +0,0 @@
-$NetBSD$
-
---- third_party/openscreen/src/third_party/chromium_quic/build/base/BUILD.gn.orig	2020-07-15 19:01:37.000000000 +0000
-+++ third_party/openscreen/src/third_party/chromium_quic/build/base/BUILD.gn
-@@ -33,6 +33,8 @@ config("base_config") {
-   defines = [ "HAVE_CONFIG_H" ]
-   if (is_linux) {
-     include_dirs = [ "../../src/base/third_party/libevent/linux" ]
-+  } else if (is_netbsd) {
-+    include_dirs = [ "../../src/base/third_party/libevent/netbsd" ]
-   } else if (is_mac) {
-     include_dirs = [ "../../src/base/third_party/libevent/mac" ]
-   }
-@@ -584,7 +586,7 @@ source_set("base") {
-     ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "../../src/base/base_paths_posix.cc",
-       "../../src/base/debug/proc_maps_linux.cc",
-@@ -765,6 +767,12 @@ source_set("libevent") {
-       "../../src/base/third_party/libevent/mac/config.h",
-       "../../src/base/third_party/libevent/mac/event-config.h",
-     ]
-+  } else if (is_netbsd) {
-+    sources += [
-+      "../../src/base/third_party/libevent/kqueue.c",
-+      "../../src/base/third_party/libevent/netbsd/config.h",
-+      "../../src/base/third_party/libevent/netbsd/event-config.h",
-+    ]
-   }
- 
-   configs += [ ":base_config" ]
diff --git a/chromium/patches/patch-third__party_pdfium_BUILD.gn b/chromium/patches/patch-third__party_pdfium_BUILD.gn
deleted file mode 100644
index 8fc5e9c2d7..0000000000
--- a/chromium/patches/patch-third__party_pdfium_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/BUILD.gn.orig	2020-07-15 19:01:38.000000000 +0000
-+++ third_party/pdfium/BUILD.gn
-@@ -86,7 +86,7 @@ config("pdfium_core_config") {
-     "//build/config/compiler:noshadowing",
-   ]
-   defines = []
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     if (current_cpu == "x64") {
-       defines += [ "_FX_CPU_=_FX_X64_" ]
-       cflags += [ "-fPIC" ]
diff --git a/chromium/patches/patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp b/chromium/patches/patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp
deleted file mode 100644
index aeaf38e43b..0000000000
--- a/chromium/patches/patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/core/fxcrt/cfx_datetime.cpp.orig	2020-07-15 19:01:38.000000000 +0000
-+++ third_party/pdfium/core/fxcrt/cfx_datetime.cpp
-@@ -10,7 +10,7 @@
- #include "core/fxcrt/fx_system.h"
- 
- #if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_MACOSX) || \
--    defined(OS_ASMJS) || defined(__wasm__)
-+    defined(OS_ASMJS) || defined(__wasm__) || defined(OS_BSD)
- #include <sys/time.h>
- #include <time.h>
- #endif
diff --git a/chromium/patches/patch-third__party_pdfium_core_fxcrt_fx__system.h b/chromium/patches/patch-third__party_pdfium_core_fxcrt_fx__system.h
deleted file mode 100644
index 96017a1287..0000000000
--- a/chromium/patches/patch-third__party_pdfium_core_fxcrt_fx__system.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/core/fxcrt/fx_system.h.orig	2020-07-15 19:01:38.000000000 +0000
-+++ third_party/pdfium/core/fxcrt/fx_system.h
-@@ -26,7 +26,7 @@
- #define _FX_PLATFORM_ _FX_PLATFORM_WINDOWS_
- #elif defined(_WIN64)
- #define _FX_PLATFORM_ _FX_PLATFORM_WINDOWS_
--#elif defined(__linux__)
-+#elif defined(__linux__) || defined(__NetBSD__)
- #define _FX_PLATFORM_ _FX_PLATFORM_LINUX_
- #elif defined(__APPLE__)
- #define _FX_PLATFORM_ _FX_PLATFORM_APPLE_
diff --git a/chromium/patches/patch-third__party_pdfium_core_fxge_BUILD.gn b/chromium/patches/patch-third__party_pdfium_core_fxge_BUILD.gn
deleted file mode 100644
index efee9c98a0..0000000000
--- a/chromium/patches/patch-third__party_pdfium_core_fxge_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/core/fxge/BUILD.gn.orig	2020-07-15 19:01:38.000000000 +0000
-+++ third_party/pdfium/core/fxge/BUILD.gn
-@@ -161,7 +161,7 @@ source_set("fxge") {
-     ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [ "fx_ge_linux.cpp" ]
-   }
- 
diff --git a/chromium/patches/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp b/chromium/patches/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp
new file mode 100644
index 0000000000..6108f04fb0
--- /dev/null
+++ b/chromium/patches/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/pdfium/core/fxge/cfx_fontmapper.cpp.orig	2024-07-24 02:47:13.279954200 +0000
++++ third_party/pdfium/core/fxge/cfx_fontmapper.cpp
+@@ -157,7 +157,7 @@ constexpr AltFontFamily kAltFontFamilies
+     {"ForteMT", "Forte"},
+ };
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(OS_ASMJS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(OS_ASMJS) || BUILDFLAG(IS_BSD)
+ const char kNarrowFamily[] = "LiberationSansNarrow";
+ #elif BUILDFLAG(IS_ANDROID)
+ const char kNarrowFamily[] = "RobotoCondensed";
diff --git a/chromium/patches/patch-third__party_pdfium_core_fxge_fx__ge__linux.cpp b/chromium/patches/patch-third__party_pdfium_core_fxge_fx__ge__linux.cpp
deleted file mode 100644
index 56cd03b08a..0000000000
--- a/chromium/patches/patch-third__party_pdfium_core_fxge_fx__ge__linux.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/core/fxge/fx_ge_linux.cpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/pdfium/core/fxge/fx_ge_linux.cpp
-@@ -159,6 +159,7 @@ std::unique_ptr<SystemFontInfoIface> Sys
-     pInfo->AddPath("/usr/share/X11/fonts/Type1");
-     pInfo->AddPath("/usr/share/X11/fonts/TTF");
-     pInfo->AddPath("/usr/local/share/fonts");
-+    pInfo->AddPath("@X11BASE@/share/fonts");
-   }
-   return std::move(pInfo);
- }
diff --git a/chromium/patches/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp b/chromium/patches/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp
new file mode 100644
index 0000000000..4c8900e5a1
--- /dev/null
+++ b/chromium/patches/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/pdfium/core/fxge/linux/fx_linux_impl.cpp.orig	2024-07-24 02:47:13.303956500 +0000
++++ third_party/pdfium/core/fxge/linux/fx_linux_impl.cpp
+@@ -20,7 +20,7 @@
+ #include "core/fxge/fx_font.h"
+ #include "core/fxge/systemfontinfo_iface.h"
+ 
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !defined(OS_ASMJS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !defined(OS_ASMJS) && !BUILDFLAG(IS_BSD)
+ #error "Included on the wrong platform"
+ #endif
+ 
+@@ -172,9 +172,8 @@ class CLinuxPlatform : public CFX_GEModu
+   std::unique_ptr<SystemFontInfoIface> CreateDefaultSystemFontInfo() override {
+     auto pInfo = std::make_unique<CFX_LinuxFontInfo>();
+     if (!pInfo->ParseFontCfg(CFX_GEModule::Get()->GetUserFontPaths())) {
+-      pInfo->AddPath("/usr/share/fonts");
+-      pInfo->AddPath("/usr/share/X11/fonts/Type1");
+-      pInfo->AddPath("/usr/share/X11/fonts/TTF");
++      pInfo->AddPath("/usr/X11R6/lib/X11/fonts/Type1");
++      pInfo->AddPath("/usr/X11R6/lib/X11/fonts/TTF");
+       pInfo->AddPath("/usr/local/share/fonts");
+     }
+     return pInfo;
diff --git a/chromium/patches/patch-third__party_pdfium_fxjs_cjs__publicmethods.cpp b/chromium/patches/patch-third__party_pdfium_fxjs_cjs__publicmethods.cpp
deleted file mode 100644
index 17ef683993..0000000000
--- a/chromium/patches/patch-third__party_pdfium_fxjs_cjs__publicmethods.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/fxjs/cjs_publicmethods.cpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/pdfium/fxjs/cjs_publicmethods.cpp
-@@ -87,6 +87,103 @@ constexpr const wchar_t* kDateFormats[] 
- constexpr const wchar_t* kTimeFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss",
-                                            L"h:MM:ss tt"};
- 
-+#if defined(__FreeBSD__) || defined(__NetBSD__)
-+/*
-+ * cvt.c - IEEE floating point formatting routines for FreeBSD
-+ * from GNU libc-4.6.27
-+ */
-+
-+/*
-+ *    ap_ecvt converts to decimal
-+ *      the number of digits is specified by ndigit
-+ *      decpt is set to the position of the decimal point
-+ *      sign is set to 0 for positive, 1 for negative
-+ */
-+
-+#define	NDIG	80
-+
-+static char *
-+     ap_cvt(double arg, int ndigits, int *decpt, int *sign, int eflag)
-+{
-+    register int r2;
-+    double fi, fj;
-+    register char *p, *p1;
-+    static char buf[NDIG];
-+
-+    if (ndigits >= NDIG - 1)
-+	ndigits = NDIG - 2;
-+    r2 = 0;
-+    *sign = 0;
-+    p = &buf[0];
-+    if (arg < 0) {
-+	*sign = 1;
-+	arg = -arg;
-+    }
-+    arg = modf(arg, &fi);
-+    p1 = &buf[NDIG];
-+    /*
-+     * Do integer part
-+     */
-+    if (fi != 0) {
-+	p1 = &buf[NDIG];
-+	while (fi != 0) {
-+	    fj = modf(fi / 10, &fi);
-+	    *--p1 = (int) ((fj + .03) * 10) + '0';
-+	    r2++;
-+	}
-+	while (p1 < &buf[NDIG])
-+	    *p++ = *p1++;
-+    }
-+    else if (arg > 0) {
-+	while ((fj = arg * 10) < 1) {
-+	    arg = fj;
-+	    r2--;
-+	}
-+    }
-+    p1 = &buf[ndigits];
-+    if (eflag == 0)
-+	p1 += r2;
-+    *decpt = r2;
-+    if (p1 < &buf[0]) {
-+	buf[0] = '\0';
-+        return (buf);
-+    }
-+    while (p <= p1 && p < &buf[NDIG]) {
-+	arg *= 10;
-+	arg = modf(arg, &fj);
-+	*p++ = (int) fj + '0';
-+    }
-+    if (p1 >= &buf[NDIG]) {
-+	buf[NDIG - 1] = '\0';
-+	return (buf);
-+    }
-+    p = p1;
-+    *p1 += 5;
-+    while (*p1 > '9') {
-+	*p1 = '0';
-+	if (p1 > buf)
-+	    ++ * --p1;
-+	else {
-+	    *p1 = '1';
-+	    (*decpt)++;
-+	    if (eflag == 0) {
-+		if (p > buf)
-+		    *p = '0';
-+		p++;
-+	    }
-+	}
-+    }
-+    *p = '\0';
-+    return (buf);
-+}
-+
-+static char *
-+     fcvt(double arg, int ndigits, int *decpt, int *sign)
-+{
-+     return (ap_cvt(arg, ndigits, decpt, sign, 0));
-+}
-+#endif // defined(__FreeBSD__)
-+
- template <typename T>
- T StrTrim(const T& str) {
-   T result = str;
diff --git a/chromium/patches/patch-third__party_pdfium_fxjs_cjs__runtime.cpp b/chromium/patches/patch-third__party_pdfium_fxjs_cjs__runtime.cpp
deleted file mode 100644
index 3f51c48eff..0000000000
--- a/chromium/patches/patch-third__party_pdfium_fxjs_cjs__runtime.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/fxjs/cjs_runtime.cpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/pdfium/fxjs/cjs_runtime.cpp
-@@ -226,7 +226,7 @@ v8::Local<v8::Value> CJS_Runtime::MaybeC
-     return value;
- 
-   v8::Local<v8::Number> num = maybeNum.ToLocalChecked();
--  if (std::isnan(num->Value()) && !bAllowNaN)
-+  if (isnan(num->Value()) && !bAllowNaN)
-     return value;
- 
-   return num;
diff --git a/chromium/patches/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp b/chromium/patches/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp
new file mode 100644
index 0000000000..7a88dca7db
--- /dev/null
+++ b/chromium/patches/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp
@@ -0,0 +1,28 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/pdfium/fxjs/fx_date_helpers.cpp.orig	2024-07-24 02:47:13.347960700 +0000
++++ third_party/pdfium/fxjs/fx_date_helpers.cpp
+@@ -39,6 +39,11 @@ double GetLocalTZA() {
+     return 0;
+   time_t t = 0;
+   FXSYS_time(&t);
++#ifdef __FreeBSD__
++  struct tm lt;
++  localtime_r(&t, &lt);
++  return (double)(-(lt.tm_gmtoff * 1000));
++#else
+   FXSYS_localtime(&t);
+ #if BUILDFLAG(IS_WIN)
+   // In gcc 'timezone' is a global variable declared in time.h. In VC++, that
+@@ -47,6 +52,7 @@ double GetLocalTZA() {
+   _get_timezone(&timezone);
+ #endif
+   return (double)(-(timezone * 1000));
++#endif // __FreeBSD__
+ }
+ 
+ int GetDaylightSavingTA(double d) {
diff --git a/chromium/patches/patch-third__party_pdfium_pdfium.gni b/chromium/patches/patch-third__party_pdfium_pdfium.gni
new file mode 100644
index 0000000000..6946e3ac2d
--- /dev/null
+++ b/chromium/patches/patch-third__party_pdfium_pdfium.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/pdfium/pdfium.gni.orig	2024-07-24 02:47:13.359962000 +0000
++++ third_party/pdfium/pdfium.gni
+@@ -42,7 +42,7 @@ declare_args() {
+   # PDFium will use PartitionAlloc partitions to separate strings, scalars,
+   # etc. from other allocations. However, the use of PartitionAlloc for new or
+   # malloc is controlled by args in build_overrides/partition_alloc.gni.
+-  pdf_use_partition_alloc = pdf_use_partition_alloc_override
++  pdf_use_partition_alloc = pdf_use_partition_alloc_override && use_partition_alloc_as_malloc
+ 
+   # Build PDFium to use Skia (experimental) for all PDFium graphics.
+   # If enabled, coexists in build with AGG graphics and the default
diff --git a/chromium/patches/patch-third__party_pdfium_skia_BUILD.gn b/chromium/patches/patch-third__party_pdfium_skia_BUILD.gn
deleted file mode 100644
index df97264422..0000000000
--- a/chromium/patches/patch-third__party_pdfium_skia_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/skia/BUILD.gn.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/pdfium/skia/BUILD.gn
-@@ -79,7 +79,7 @@ config("skia_library_config") {
-   }
- 
-   # Settings for text blitting, chosen to approximate the system browser.
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     defines += [
-       "SK_GAMMA_EXPONENT=1.2",
-       "SK_GAMMA_CONTRAST=0.2",
-@@ -278,7 +278,7 @@ component("skia") {
-       "//third_party/skia/src/ports/SkFontMgr_android_parser.cpp",
-     ]
-   }
--  if (!is_linux && !is_android && !is_win && !is_mac) {
-+  if (!is_linux && !is_android && !is_win && !is_mac && !is_bsd) {
-     sources -= [
-       "//third_party/skia/src/ports/SkFontHost_FreeType.cpp",
-       "//third_party/skia/src/ports/SkFontHost_FreeType_common.cpp",
-@@ -310,7 +310,7 @@ component("skia") {
-   ]
-   public_deps = [ ":skia_core_and_effects" ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//third_party/icu:icuuc" ]
-   }
- 
diff --git a/chromium/patches/patch-third__party_pdfium_xfa_fgas_font_cfx__fontsourceenum__file.cpp b/chromium/patches/patch-third__party_pdfium_xfa_fgas_font_cfx__fontsourceenum__file.cpp
deleted file mode 100644
index 5ea2f36981..0000000000
--- a/chromium/patches/patch-third__party_pdfium_xfa_fgas_font_cfx__fontsourceenum__file.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- third_party/pdfium/xfa/fgas/font/cfx_fontsourceenum_file.cpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/pdfium/xfa/fgas/font/cfx_fontsourceenum_file.cpp
-@@ -20,6 +20,7 @@ constexpr const char* kFontFolders[] = {
-     "/usr/share/X11/fonts/Type1",
-     "/usr/share/X11/fonts/TTF",
-     "/usr/local/share/fonts",
-+    "@X11BASE@/share/fonts",
- #elif defined(OS_MACOSX)
-     "~/Library/Fonts",
-     "/Library/Fonts",
diff --git a/chromium/patches/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp b/chromium/patches/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp
new file mode 100644
index 0000000000..37b73f1ae3
--- /dev/null
+++ b/chromium/patches/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp
@@ -0,0 +1,47 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/pdfium/xfa/fxfa/parser/cxfa_timezoneprovider.cpp.orig	2024-07-24 02:47:13.587984000 +0000
++++ third_party/pdfium/xfa/fxfa/parser/cxfa_timezoneprovider.cpp
+@@ -6,12 +6,16 @@
+ 
+ #include "xfa/fxfa/parser/cxfa_timezoneprovider.h"
+ 
++#include <stdint.h>
+ #include <stdlib.h>
+ #include <time.h>
+ 
+ #include "build/build_config.h"
+ 
+ static bool g_bProviderTimeZoneSet = false;
++#if defined(OS_FREEBSD)
++static long g_lTimeZoneOffset = 0;
++#endif
+ 
+ #if BUILDFLAG(IS_WIN)
+ #define TIMEZONE _timezone
+@@ -24,9 +28,21 @@ static bool g_bProviderTimeZoneSet = fal
+ CXFA_TimeZoneProvider::CXFA_TimeZoneProvider() {
+   if (!g_bProviderTimeZoneSet) {
+     g_bProviderTimeZoneSet = true;
++#if defined(OS_FREEBSD)
++    time_t now = time(nullptr);
++    struct tm tm = {};
++
++    localtime_r(&now, &tm);
++    g_lTimeZoneOffset = tm.tm_gmtoff;
++#else
+     TZSET();
++#endif
+   }
++#if defined(OS_FREEBSD)
++  tz_minutes_ = static_cast<int8_t>((abs(g_lTimeZoneOffset) % 3600) / 60);
++#else
+   tz_minutes_ = TIMEZONE / -60;
++#endif
+ }
+ 
+ CXFA_TimeZoneProvider::~CXFA_TimeZoneProvider() = default;
diff --git a/chromium/patches/patch-third__party_perfetto_buildtools_BUILD.gn b/chromium/patches/patch-third__party_perfetto_buildtools_BUILD.gn
deleted file mode 100644
index 55073954a8..0000000000
--- a/chromium/patches/patch-third__party_perfetto_buildtools_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/buildtools/BUILD.gn.orig	2020-07-15 19:01:38.000000000 +0000
-+++ third_party/perfetto/buildtools/BUILD.gn
-@@ -678,7 +678,7 @@ if (use_custom_libcxx) {
-       "//gn/standalone/sanitizers:sanitizer_options_link_helper",
-     ]
-     defines = [ "_LIBCPP_BUILDING_LIBRARY" ]
--    if ((is_linux || is_android) && (is_asan || is_tsan || is_msan)) {
-+    if ((is_linux || is_android || is_bsd) && (is_asan || is_tsan || is_msan)) {
-       # In {a,t,m}san configurations, operator new and operator delete will be
-       # provided by the sanitizer runtime library.  Since libc++ defines these
-       # symbols with weak linkage, and the *san runtime uses strong linkage, it
-@@ -748,7 +748,7 @@ source_set("benchmark") {
- }
- 
- # On Linux/Android use libbacktrace in debug builds for better stacktraces.
--if (is_linux || is_android) {
-+if (is_linux || is_android || is_bsd) {
-   config("libbacktrace_config") {
-     visibility = _buildtools_visibility
-     include_dirs = [
diff --git a/chromium/patches/patch-third__party_perfetto_gn_BUILD.gn b/chromium/patches/patch-third__party_perfetto_gn_BUILD.gn
deleted file mode 100644
index f3d42fb063..0000000000
--- a/chromium/patches/patch-third__party_perfetto_gn_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/gn/BUILD.gn.orig	2020-07-15 19:01:38.000000000 +0000
-+++ third_party/perfetto/gn/BUILD.gn
-@@ -291,7 +291,7 @@ if (enable_perfetto_benchmarks) {
- 
- # Libbacktrace, used for printing stack traces from crash handler, only in
- # standalone debug builds.
--if (perfetto_build_standalone && (is_linux || is_android)) {
-+if (perfetto_build_standalone && (is_linux || is_android || is_bsd)) {
-   group("libbacktrace") {
-     public_deps = [ "//buildtools:libbacktrace" ]
-   }
diff --git a/chromium/patches/patch-third__party_perfetto_gn_perfetto.gni b/chromium/patches/patch-third__party_perfetto_gn_perfetto.gni
deleted file mode 100644
index a630845709..0000000000
--- a/chromium/patches/patch-third__party_perfetto_gn_perfetto.gni
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/gn/perfetto.gni.orig	2020-07-15 19:01:38.000000000 +0000
-+++ third_party/perfetto/gn/perfetto.gni
-@@ -149,7 +149,7 @@ declare_args() {
-   enable_perfetto_heapprofd =
-       perfetto_build_with_android ||
-       (perfetto_build_standalone && is_clang &&
--       (is_linux || (is_android && android_api_level >= 26)))
-+       (is_linux || is_bsd || (is_android && android_api_level >= 26)))
- 
-   # Build the perf event profiler (traced_perf).
-   # TODO(b/144281346): under development.
-@@ -222,7 +222,7 @@ declare_args() {
-   # Enables the REPL interactive prompt in the trace processor.
-   enable_perfetto_trace_processor_linenoise =
-       perfetto_build_standalone && enable_perfetto_trace_processor &&
--      (is_linux || is_android || is_mac)
-+      (is_linux || is_android || is_mac || is_bsd)
- 
-   # Enables JSON support in the trace processor. Required for JSON trace import
-   # and export.
diff --git a/chromium/patches/patch-third__party_perfetto_gn_perfetto__unittests.gni b/chromium/patches/patch-third__party_perfetto_gn_perfetto__unittests.gni
deleted file mode 100644
index 3a13ad4441..0000000000
--- a/chromium/patches/patch-third__party_perfetto_gn_perfetto__unittests.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/gn/perfetto_unittests.gni.orig	2020-07-15 19:01:38.000000000 +0000
-+++ third_party/perfetto/gn/perfetto_unittests.gni
-@@ -34,7 +34,7 @@ if (enable_perfetto_tools && current_too
- # TODO(primiano): sanitizers_unittests shouldn't really be under tools. It's
- # not a tool and it's intended to run on both host and targets to check that
- # sanitizers are actually working.
--if ((is_linux || is_android) && !perfetto_build_with_embedder) {
-+if ((is_linux || is_android || is_bsd) && !perfetto_build_with_embedder) {
-   # This test depends on pthread and can't run on non-Linux-based OS.
-   perfetto_unittests_targets += [ "tools/sanitizers_unittests" ]
- }
diff --git a/chromium/patches/patch-third__party_perfetto_gn_standalone_BUILD.gn b/chromium/patches/patch-third__party_perfetto_gn_standalone_BUILD.gn
deleted file mode 100644
index a079fcb1c9..0000000000
--- a/chromium/patches/patch-third__party_perfetto_gn_standalone_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/gn/standalone/BUILD.gn.orig	2020-07-15 19:01:38.000000000 +0000
-+++ third_party/perfetto/gn/standalone/BUILD.gn
-@@ -143,7 +143,7 @@ config("default") {
-     cflags += [ "-fno-omit-frame-pointer" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     libs += [
-       "pthread",
-       "rt",
-@@ -238,7 +238,7 @@ config("release") {
- }
- 
- config("shared_library") {
--  if (is_android || is_linux) {
-+  if (is_android || is_linux || is_bsd) {
-     ldflags = [ "-fPIC" ]
-   }
- }
-@@ -248,7 +248,7 @@ config("executable") {
- 
-   # Android will refuse to run executables if they aren't position independent.
-   # Instead on Linux there isn't any need and they break ASan (goo.gl/paFR6K).
--  if (is_android || is_linux) {
-+  if (is_android || is_linux || is_bsd) {
-     asmflags = [ "-fPIE" ]
-     cflags = [ "-fPIE" ]
-     ldflags += [ "-pie" ]
-@@ -259,7 +259,7 @@ config("executable") {
-   # supported only by Linux, not Android. But concretely we need this only when
-   # use_custom_libcxx=true && custom_libcxx_is_static=false, which happens only
-   # on Linux right now.
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     ldflags += [
-       "-Wl,-rpath=\$ORIGIN/.",
-       "-Wl,-rpath-link=.",
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_build__config.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_build__config.h
index 45e3d65f5b..40059c2103 100644
--- a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_build__config.h
+++ b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_build__config.h
@@ -1,54 +1,72 @@
 $NetBSD$
 
---- third_party/perfetto/include/perfetto/base/build_config.h.orig	2020-06-25 09:34:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/include/perfetto/base/build_config.h.orig	2024-07-24 02:46:50.085707700 +0000
 +++ third_party/perfetto/include/perfetto/base/build_config.h
-@@ -57,6 +57,7 @@
+@@ -27,6 +27,7 @@
+ #if defined(__ANDROID__)
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
+@@ -38,6 +39,7 @@
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WASM() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NACL() 0
+@@ -51,9 +53,10 @@
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 1
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NETBSD() 0
+ #endif
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 1
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
+@@ -64,6 +67,8 @@
  #elif defined(_WIN32)
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MACOSX() 0
-@@ -66,6 +67,7 @@
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NACL() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NETBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
+@@ -74,6 +79,8 @@
  #elif defined(__EMSCRIPTEN__)
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MACOSX() 0
-@@ -75,6 +77,7 @@
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NACL() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
+@@ -87,6 +94,8 @@
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NETBSD() 0
- #elif defined(__Fuchsia__)
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MACOSX() 0
-@@ -84,6 +87,7 @@
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WASM() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 1
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NACL() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NETBSD() 0
+@@ -94,6 +103,8 @@
  #elif defined(__native_client__)
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MACOSX() 0
-@@ -93,6 +97,17 @@
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NACL() 1
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NETBSD() 0
-+#elif defined(__NetBSD__)
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MACOSX() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WASM() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NACL() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_NETBSD() 1
- #else
- #error OS not supported (see build_config.h)
- #endif
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_thread__utils.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_thread__utils.h
index 650aeb78ec..16cd73b0aa 100644
--- a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_thread__utils.h
+++ b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_thread__utils.h
@@ -1,16 +1,28 @@
 $NetBSD$
 
---- third_party/perfetto/include/perfetto/base/thread_utils.h.orig	2020-06-25 09:34:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/include/perfetto/base/thread_utils.h.orig	2024-07-24 02:46:50.085707700 +0000
 +++ third_party/perfetto/include/perfetto/base/thread_utils.h
-@@ -71,6 +71,11 @@ using PlatformThreadId = pid_t;
+@@ -34,6 +34,7 @@ __declspec(dllimport) unsigned long __st
+ #include <sys/syscall.h>
+ #include <sys/types.h>
+ #include <unistd.h>
++#include <pthread.h>
+ #else
+ #include <pthread.h>
+ #endif
+@@ -46,6 +47,11 @@ using PlatformThreadId = pid_t;
  inline PlatformThreadId GetThreadId() {
-   return reinterpret_cast<int32_t>(pthread_self());
+   return gettid();
  }
-+#elif PERFETTO_BUILDFLAG(PERFETTO_OS_NETBSD)
++#elif PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
 +using PlatformThreadId = uint64_t;
 +inline PlatformThreadId GetThreadId() {
-+  return reinterpret_cast<int64_t>(pthread_self());
++  return reinterpret_cast<uint64_t>(pthread_self());
 +}
- #else  // Default to pthreads in case no OS is set.
- using PlatformThreadId = pthread_t;
+ #elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX)
+ using PlatformThreadId = pid_t;
  inline PlatformThreadId GetThreadId() {
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_time.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_time.h
index 7ed9063ede..9417a9b68c 100644
--- a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_time.h
+++ b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_time.h
@@ -1,18 +1,22 @@
 $NetBSD$
 
---- third_party/perfetto/include/perfetto/base/time.h.orig	2020-06-25 09:34:47.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/include/perfetto/base/time.h.orig	2024-07-24 02:46:50.085707700 +0000
 +++ third_party/perfetto/include/perfetto/base/time.h
-@@ -141,6 +141,9 @@ inline TimeNanos GetTimeInternalNs(clock
+@@ -199,6 +199,9 @@ inline TimeNanos GetTimeInternalNs(clock
  // Return ns from boot. Conversely to GetWallTimeNs, this clock counts also time
  // during suspend (when supported).
  inline TimeNanos GetBootTimeNs() {
-+#if PERFETTO_BUILDFLAG(PERFETTO_OS_NETBSD)
++#if defined(__FreeBSD__) || defined(__NetBSD__)
 +  return GetTimeInternalNs(kWallTimeClockSource);
 +#else
    // Determine if CLOCK_BOOTTIME is available on the first call.
    static const clockid_t kBootTimeClockSource = [] {
      struct timespec ts = {};
-@@ -148,6 +151,7 @@ inline TimeNanos GetBootTimeNs() {
+@@ -206,6 +209,7 @@ inline TimeNanos GetBootTimeNs() {
      return res == 0 ? CLOCK_BOOTTIME : kWallTimeClockSource;
    }();
    return GetTimeInternalNs(kBootTimeClockSource);
@@ -20,3 +24,17 @@ $NetBSD$
  }
  
  inline TimeNanos GetWallTimeNs() {
+@@ -213,7 +217,13 @@ inline TimeNanos GetWallTimeNs() {
+ }
+ 
+ inline TimeNanos GetWallTimeRawNs() {
++#if defined(__OpenBSD__) || defined(__NetBSD__)
++  return GetTimeInternalNs(CLOCK_MONOTONIC);
++#elif defined(__FreeBSD__)
++  return GetTimeInternalNs(CLOCK_MONOTONIC_FAST);
++#else
+   return GetTimeInternalNs(CLOCK_MONOTONIC_RAW);
++#endif
+ }
+ 
+ inline TimeNanos GetThreadCPUTimeNs() {
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_unix__socket.cc b/chromium/patches/patch-third__party_perfetto_include_perfetto_base_unix__socket.cc
deleted file mode 100644
index 97878ecb49..0000000000
--- a/chromium/patches/patch-third__party_perfetto_include_perfetto_base_unix__socket.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/src/base/unix_socket.cc.orig	2020-06-25 09:34:47.000000000 +0000
-+++ third_party/perfetto/src/base/unix_socket.cc
-@@ -37,7 +37,7 @@
- #include "perfetto/ext/base/string_utils.h"
- #include "perfetto/ext/base/utils.h"
- 
--#if PERFETTO_BUILDFLAG(PERFETTO_OS_MACOSX)
-+#if PERFETTO_BUILDFLAG(PERFETTO_OS_MACOSX) || PERFETTO_BUILDFLAG(PERFETTO_OS_NETBSD)
- #include <sys/ucred.h>
- #endif
- 
-@@ -615,6 +615,14 @@ void UnixSocket::ReadPeerCredentials() {
-   PERFETTO_CHECK(res == 0);
-   peer_uid_ = user_cred.uid;
-   peer_pid_ = user_cred.pid;
-+#elif PERFETTO_BUILDFLAG(PERFETTO_OS_NETBSD)
-+  struct unpcbid user_cred;
-+  socklen_t len = sizeof(user_cred);
-+  int fd = sock_raw_.fd();
-+  int res = getsockopt(fd, 0, LOCAL_PEEREID, &user_cred, &len);
-+  PERFETTO_CHECK(res == 0);
-+  peer_uid_ = user_cred.unp_euid;
-+  peer_pid_ = user_cred.unp_pid;
- #else
-   struct xucred user_cred;
-   socklen_t len = sizeof(user_cred);
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h
new file mode 100644
index 0000000000..febf5e9764
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/include/perfetto/ext/base/event_fd.h.orig	2024-07-24 02:46:50.085707700 +0000
++++ third_party/perfetto/include/perfetto/ext/base/event_fd.h
+@@ -55,6 +55,8 @@ class EventFd {
+   // On Mac and other non-Linux UNIX platforms a pipe-based fallback is used.
+   // The write end of the wakeup pipe.
+   ScopedFile write_fd_;
++#else
++  ScopedFile write_fd_;
+ #endif
+ };
+ 
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h
new file mode 100644
index 0000000000..7e9086e577
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/include/perfetto/ext/base/thread_utils.h.orig	2024-07-24 02:46:50.089707900 +0000
++++ third_party/perfetto/include/perfetto/ext/base/thread_utils.h
+@@ -41,9 +41,10 @@
+ namespace perfetto {
+ namespace base {
+ 
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) ||   \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) ||   \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
+-    PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
++    PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)) && \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+ // Sets the "comm" of the calling thread to the first 15 chars of the given
+ // string.
+ inline bool MaybeSetThreadName(const std::string& name) {
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_unix__socket.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_unix__socket.h
deleted file mode 100644
index 1232cc6cdd..0000000000
--- a/chromium/patches/patch-third__party_perfetto_include_perfetto_ext_base_unix__socket.h
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/include/perfetto/ext/base/unix_socket.h.orig	2020-06-25 09:34:47.000000000 +0000
-+++ third_party/perfetto/include/perfetto/ext/base/unix_socket.h
-@@ -321,7 +321,8 @@ class UnixSocket {
-   int last_error_ = 0;
-   uid_t peer_uid_ = kInvalidUid;
- #if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
--    PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
-+    PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
-+    PERFETTO_BUILDFLAG(PERFETTO_OS_NETBSD)
-   pid_t peer_pid_ = kInvalidPid;
- #endif
-   EventListener* const event_listener_;
diff --git a/chromium/patches/patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h b/chromium/patches/patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h
new file mode 100644
index 0000000000..f91bcdecc0
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_include_perfetto_tracing_internal_track__event__legacy.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/include/perfetto/tracing/internal/track_event_legacy.h.orig	2024-07-24 02:46:50.105709600 +0000
++++ third_party/perfetto/include/perfetto/tracing/internal/track_event_legacy.h
+@@ -249,7 +249,7 @@ class PERFETTO_EXPORT_COMPONENT LegacyTr
+ // are different. E.g. on Mac size_t is considered a different type from
+ // uint64_t even though it has the same size and signedness.
+ // Below we add overloads for those types that are known to cause ambiguity.
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
++#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) || defined(__OpenBSD__)
+   explicit LegacyTraceId(size_t raw_id) : raw_id_(raw_id) {}
+   explicit LegacyTraceId(intptr_t raw_id)
+       : raw_id_(static_cast<uint64_t>(raw_id)) {}
diff --git a/chromium/patches/patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto b/chromium/patches/patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto
new file mode 100644
index 0000000000..822ad48961
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_protos_perfetto_trace_ftrace_v4l2.proto
@@ -0,0 +1,62 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/protos/perfetto/trace/ftrace/v4l2.proto.orig	2024-07-24 02:46:50.153714200 +0000
++++ third_party/perfetto/protos/perfetto/trace/ftrace/v4l2.proto
+@@ -10,7 +10,7 @@ message V4l2QbufFtraceEvent {
+   optional uint32 field = 2;
+   optional uint32 flags = 3;
+   optional uint32 index = 4;
+-  optional int32 minor = 5;
++  optional int32 gminor = 5;
+   optional uint32 sequence = 6;
+   optional uint32 timecode_flags = 7;
+   optional uint32 timecode_frames = 8;
+@@ -30,7 +30,7 @@ message V4l2DqbufFtraceEvent {
+   optional uint32 field = 2;
+   optional uint32 flags = 3;
+   optional uint32 index = 4;
+-  optional int32 minor = 5;
++  optional int32 gminor = 5;
+   optional uint32 sequence = 6;
+   optional uint32 timecode_flags = 7;
+   optional uint32 timecode_frames = 8;
+@@ -48,7 +48,7 @@ message V4l2DqbufFtraceEvent {
+ message Vb2V4l2BufQueueFtraceEvent {
+   optional uint32 field = 1;
+   optional uint32 flags = 2;
+-  optional int32 minor = 3;
++  optional int32 gminor = 3;
+   optional uint32 sequence = 4;
+   optional uint32 timecode_flags = 5;
+   optional uint32 timecode_frames = 6;
+@@ -65,7 +65,7 @@ message Vb2V4l2BufQueueFtraceEvent {
+ message Vb2V4l2BufDoneFtraceEvent {
+   optional uint32 field = 1;
+   optional uint32 flags = 2;
+-  optional int32 minor = 3;
++  optional int32 gminor = 3;
+   optional uint32 sequence = 4;
+   optional uint32 timecode_flags = 5;
+   optional uint32 timecode_frames = 6;
+@@ -82,7 +82,7 @@ message Vb2V4l2BufDoneFtraceEvent {
+ message Vb2V4l2QbufFtraceEvent {
+   optional uint32 field = 1;
+   optional uint32 flags = 2;
+-  optional int32 minor = 3;
++  optional int32 gminor = 3;
+   optional uint32 sequence = 4;
+   optional uint32 timecode_flags = 5;
+   optional uint32 timecode_frames = 6;
+@@ -99,7 +99,7 @@ message Vb2V4l2QbufFtraceEvent {
+ message Vb2V4l2DqbufFtraceEvent {
+   optional uint32 field = 1;
+   optional uint32 flags = 2;
+-  optional int32 minor = 3;
++  optional int32 gminor = 3;
+   optional uint32 sequence = 4;
+   optional uint32 timecode_flags = 5;
+   optional uint32 timecode_frames = 6;
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_BUILD.gn b/chromium/patches/patch-third__party_perfetto_src_base_BUILD.gn
deleted file mode 100644
index a6f321d66a..0000000000
--- a/chromium/patches/patch-third__party_perfetto_src_base_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/src/base/BUILD.gn.orig	2020-07-15 19:01:38.000000000 +0000
-+++ third_party/perfetto/src/base/BUILD.gn
-@@ -66,7 +66,7 @@ if (enable_stack_trace) {
-       "../../include/perfetto/ext/base",
-       "../../include/perfetto/ext/base",
-     ]
--    if (is_linux || is_android) {
-+    if (is_linux || is_android || is_bsd) {
-       deps += [ "../../gn:libbacktrace" ]
-     }
-     cflags = [ "-Wno-deprecated" ]
-@@ -147,7 +147,7 @@ perfetto_unittest_source_set("unittests"
-   if (perfetto_build_standalone || perfetto_build_with_android) {
-     # This causes some problems on the chromium waterfall.
-     sources += [ "unix_socket_unittest.cc" ]
--    if (is_linux || is_android) {
-+    if (is_linux || is_android || is_bsd) {
-       sources += [ "watchdog_unittest.cc" ]
-     }
-   }
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_event__fd.cc b/chromium/patches/patch-third__party_perfetto_src_base_event__fd.cc
new file mode 100644
index 0000000000..116f289ec4
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_event__fd.cc
@@ -0,0 +1,28 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/event_fd.cc.orig	2024-07-24 02:46:50.173716000 +0000
++++ third_party/perfetto/src/base/event_fd.cc
+@@ -22,7 +22,8 @@
+ #if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
+ #include <Windows.h>
+ #include <synchapi.h>
+-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#elif (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+ #include <sys/eventfd.h>
+ #include <unistd.h>
+@@ -57,7 +58,8 @@ void EventFd::Clear() {
+     PERFETTO_DFATAL("EventFd::Clear()");
+ }
+ 
+-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#elif (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+ 
+ EventFd::EventFd() {
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_periodic__task.cc b/chromium/patches/patch-third__party_perfetto_src_base_periodic__task.cc
new file mode 100644
index 0000000000..3fd322e651
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_periodic__task.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/periodic_task.cc.orig	2024-07-24 02:46:50.177716500 +0000
++++ third_party/perfetto/src/base/periodic_task.cc
+@@ -24,7 +24,7 @@
+ #include "perfetto/base/time.h"
+ #include "perfetto/ext/base/file_utils.h"
+ 
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+     (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) && __ANDROID_API__ >= 19)
+ #include <sys/timerfd.h>
+ #endif
+@@ -44,7 +44,7 @@ uint32_t GetNextDelayMs(const TimeMillis
+ }
+ 
+ ScopedPlatformHandle CreateTimerFd(const PeriodicTask::Args& args) {
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+     (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) && __ANDROID_API__ >= 19)
+   ScopedPlatformHandle tfd(
+       timerfd_create(CLOCK_BOOTTIME, TFD_CLOEXEC | TFD_NONBLOCK));
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_string__utils.cc b/chromium/patches/patch-third__party_perfetto_src_base_string__utils.cc
new file mode 100644
index 0000000000..2711015e0c
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_string__utils.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/string_utils.cc.orig	2024-07-24 02:46:50.177716500 +0000
++++ third_party/perfetto/src/base/string_utils.cc
+@@ -38,9 +38,10 @@ namespace base {
+ 
+ // Locale-independant as possible version of strtod.
+ double StrToD(const char* nptr, char** endptr) {
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) ||   \
+-    PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
++    PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)) && \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+   static auto c_locale = newlocale(LC_ALL, "C", nullptr);
+   return strtod_l(nptr, endptr, c_locale);
+ #else
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_subprocess__posix.cc b/chromium/patches/patch-third__party_perfetto_src_base_subprocess__posix.cc
new file mode 100644
index 0000000000..f6e922ccc8
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_subprocess__posix.cc
@@ -0,0 +1,28 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/subprocess_posix.cc.orig	2024-07-24 02:46:50.177716500 +0000
++++ third_party/perfetto/src/base/subprocess_posix.cc
+@@ -35,7 +35,8 @@
+ #include <thread>
+ #include <tuple>
+ 
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+ #include <sys/prctl.h>
+ #endif
+@@ -64,7 +65,8 @@ struct ChildProcessArgs {
+ // Don't add any dynamic allocation in this function. This will be invoked
+ // under a fork(), potentially in a state where the allocator lock is held.
+ void __attribute__((noreturn)) ChildProcess(ChildProcessArgs* args) {
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+   // In no case we want a child process to outlive its parent process. This is
+   // relevant for tests, so that a test failure/crash doesn't leave child
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_test_vm__test__utils.cc b/chromium/patches/patch-third__party_perfetto_src_base_test_vm__test__utils.cc
new file mode 100644
index 0000000000..49ebcc6ce9
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_test_vm__test__utils.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/test/vm_test_utils.cc.orig	2024-07-24 02:46:50.181717000 +0000
++++ third_party/perfetto/src/base/test/vm_test_utils.cc
+@@ -91,7 +91,7 @@ bool IsMapped(void* start, size_t size) 
+   // Fuchsia doesn't yet support paging (b/119503290).
+   ignore_result(page_size);
+   return true;
+-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_NACL)
++#elif PERFETTO_BUILDFLAG(PERFETTO_OS_NACL) || PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+   // mincore isn't available on NaCL.
+   ignore_result(page_size);
+   return true;
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_thread__task__runner.cc b/chromium/patches/patch-third__party_perfetto_src_base_thread__task__runner.cc
new file mode 100644
index 0000000000..66d0092708
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_thread__task__runner.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/thread_task_runner.cc.orig	2024-07-24 02:46:50.181717000 +0000
++++ third_party/perfetto/src/base/thread_task_runner.cc
+@@ -27,8 +27,9 @@
+ #include "perfetto/ext/base/thread_utils.h"
+ #include "perfetto/ext/base/unix_task_runner.h"
+ 
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
+-    PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++    PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)) && \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+ #include <sys/prctl.h>
+ #endif
+ 
diff --git a/chromium/patches/patch-third__party_perfetto_src_base_unix__socket.cc b/chromium/patches/patch-third__party_perfetto_src_base_unix__socket.cc
new file mode 100644
index 0000000000..2d7bbdda34
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_base_unix__socket.cc
@@ -0,0 +1,46 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/base/unix_socket.cc.orig	2024-07-24 02:46:50.181717000 +0000
++++ third_party/perfetto/src/base/unix_socket.cc
+@@ -44,7 +44,7 @@
+ #include <unistd.h>
+ #endif
+ 
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
++#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <sys/ucred.h>
+ #endif
+ 
+@@ -917,15 +917,27 @@ void UnixSocket::ReadPeerCredentialsPosi
+     return;
+   PERFETTO_CHECK(peer_cred_mode_ != SockPeerCredMode::kIgnore);
+ 
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#if !defined(__FreeBSD__) && !defined(__NetBSD__) && PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
++#if PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
++  struct sockpeercred user_cred;
++#else
+   struct ucred user_cred;
++#endif
+   socklen_t len = sizeof(user_cred);
+   int fd = sock_raw_.fd();
+   int res = getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &user_cred, &len);
+   PERFETTO_CHECK(res == 0);
+   peer_uid_ = user_cred.uid;
+   peer_pid_ = user_cred.pid;
++#elif defined(__NetBSD__)
++  struct unpcbid user_cred;
++  socklen_t len = sizeof(user_cred);
++  int fd = sock_raw_.fd();
++  int res = getsockopt(fd, 0, LOCAL_PEEREID, &user_cred, &len);
++  PERFETTO_CHECK(res == 0);
++  peer_uid_ = user_cred.unp_euid;
++  peer_pid_ = user_cred.unp_pid;
+ #elif PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
+   struct xucred user_cred;
+   socklen_t len = sizeof(user_cred);
diff --git a/chromium/patches/patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc b/chromium/patches/patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc
new file mode 100644
index 0000000000..9ae8957625
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_trace__processor_importers_ftrace_v4l2__tracker.cc
@@ -0,0 +1,62 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc.orig	2024-07-24 02:46:50.241722600 +0000
++++ third_party/perfetto/src/trace_processor/importers/ftrace/v4l2_tracker.cc
+@@ -62,7 +62,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_
+     case FtraceEvent::kV4l2QbufFieldNumber: {
+       V4l2QbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+       BufferEvent evt;
+-      evt.device_minor = pb_evt.minor();
++      evt.device_minor = pb_evt.gminor();
+       evt.index = pb_evt.index();
+       evt.type = pb_evt.type();
+       evt.bytesused = pb_evt.bytesused();
+@@ -103,7 +103,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_
+     case FtraceEvent::kV4l2DqbufFieldNumber: {
+       V4l2DqbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+       BufferEvent evt;
+-      evt.device_minor = pb_evt.minor();
++      evt.device_minor = pb_evt.gminor();
+       evt.index = pb_evt.index();
+       evt.type = pb_evt.type();
+       evt.bytesused = pb_evt.bytesused();
+@@ -149,7 +149,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_
+     case FtraceEvent::kVb2V4l2BufQueueFieldNumber: {
+       Vb2V4l2BufQueueFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+       BufferEvent evt;
+-      evt.device_minor = pb_evt.minor();
++      evt.device_minor = pb_evt.gminor();
+       evt.index = std::nullopt;
+       evt.type = std::nullopt;
+       evt.bytesused = std::nullopt;
+@@ -180,7 +180,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_
+     case FtraceEvent::kVb2V4l2BufDoneFieldNumber: {
+       Vb2V4l2BufDoneFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+       BufferEvent evt;
+-      evt.device_minor = pb_evt.minor();
++      evt.device_minor = pb_evt.gminor();
+       evt.index = std::nullopt;
+       evt.type = std::nullopt;
+       evt.bytesused = std::nullopt;
+@@ -211,7 +211,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_
+     case FtraceEvent::kVb2V4l2QbufFieldNumber: {
+       Vb2V4l2QbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+       BufferEvent evt;
+-      evt.device_minor = pb_evt.minor();
++      evt.device_minor = pb_evt.gminor();
+       evt.index = std::nullopt;
+       evt.type = std::nullopt;
+       evt.bytesused = std::nullopt;
+@@ -242,7 +242,7 @@ void V4l2Tracker::ParseV4l2Event(uint64_
+     case FtraceEvent::kVb2V4l2DqbufFieldNumber: {
+       Vb2V4l2DqbufFtraceEvent::Decoder pb_evt(bytes.data, bytes.size);
+       BufferEvent evt;
+-      evt.device_minor = pb_evt.minor();
++      evt.device_minor = pb_evt.gminor();
+       evt.index = std::nullopt;
+       evt.type = std::nullopt;
+       evt.bytesused = std::nullopt;
diff --git a/chromium/patches/patch-third__party_perfetto_src_tracing_core_clock__snapshots.cc b/chromium/patches/patch-third__party_perfetto_src_tracing_core_clock__snapshots.cc
new file mode 100644
index 0000000000..f0192c787e
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_tracing_core_clock__snapshots.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/tracing/core/clock_snapshots.cc.orig	2024-07-24 02:46:51.581852400 +0000
++++ third_party/perfetto/src/tracing/core/clock_snapshots.cc
+@@ -26,7 +26,8 @@ ClockSnapshotVector CaptureClockSnapshot
+   ClockSnapshotVector snapshot_data;
+ #if !PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) && \
+     !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) &&   \
+-    !PERFETTO_BUILDFLAG(PERFETTO_OS_NACL)
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_NACL) &&  \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+   struct {
+     clockid_t id;
+     protos::pbzero::BuiltinClock type;
diff --git a/chromium/patches/patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc b/chromium/patches/patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc
deleted file mode 100644
index 49d5af7772..0000000000
--- a/chromium/patches/patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/src/tracing/core/tracing_service_impl.cc.orig	2020-06-25 09:34:48.000000000 +0000
-+++ third_party/perfetto/src/tracing/core/tracing_service_impl.cc
-@@ -2458,6 +2458,7 @@ void TracingServiceImpl::SnapshotClocks(
- 
- #if !PERFETTO_BUILDFLAG(PERFETTO_OS_MACOSX) && \
-     !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) &&    \
-+    !PERFETTO_BUILDFLAG(PERFETTO_OS_NETBSD) &&    \
-     !PERFETTO_BUILDFLAG(PERFETTO_OS_NACL)
-   struct {
-     clockid_t id;
diff --git a/chromium/patches/patch-third__party_perfetto_src_tracing_ipc_memfd.cc b/chromium/patches/patch-third__party_perfetto_src_tracing_ipc_memfd.cc
new file mode 100644
index 0000000000..3e3be42141
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_tracing_ipc_memfd.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/tracing/ipc/memfd.cc.orig	2024-07-24 02:46:51.589853300 +0000
++++ third_party/perfetto/src/tracing/ipc/memfd.cc
+@@ -20,7 +20,8 @@
+ 
+ #define PERFETTO_MEMFD_ENABLED()             \
+   PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
+-      PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX)
++      (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
++      !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD))
+ 
+ #if PERFETTO_MEMFD_ENABLED()
+ 
diff --git a/chromium/patches/patch-third__party_perfetto_src_tracing_track.cc b/chromium/patches/patch-third__party_perfetto_src_tracing_track.cc
new file mode 100644
index 0000000000..a25bd89a91
--- /dev/null
+++ b/chromium/patches/patch-third__party_perfetto_src_tracing_track.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/perfetto/src/tracing/track.cc.orig	2024-07-24 02:46:51.601854300 +0000
++++ third_party/perfetto/src/tracing/track.cc
+@@ -155,7 +155,7 @@ namespace internal {
+ namespace {
+ 
+ uint64_t GetProcessStartTime() {
+-#if !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
++#if !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+   std::string stat;
+   if (!base::ReadFile("/proc/self/stat", &stat))
+     return 0u;
diff --git a/chromium/patches/patch-third__party_perfetto_tools_BUILD.gn b/chromium/patches/patch-third__party_perfetto_tools_BUILD.gn
deleted file mode 100644
index 9ceb846e0a..0000000000
--- a/chromium/patches/patch-third__party_perfetto_tools_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/perfetto/tools/BUILD.gn.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/perfetto/tools/BUILD.gn
-@@ -27,7 +27,7 @@ group("tools") {
-     "ftrace_proto_gen",
-     "protoprofile",
-   ]
--  if (is_linux || is_android) {
-+  if (is_linux || is_android || is_bsd) {
-     deps += [
-       "busy_threads",
-       "cpu_utilization",
-@@ -43,7 +43,7 @@ group("tools") {
-   }
- }
- 
--if (is_linux && enable_perfetto_heapprofd) {
-+if ((is_linux || is_bsd) && enable_perfetto_heapprofd) {
-   executable("profiling_sample_distribution") {
-     sources = [ "profiling_sample_distribution.cc" ]
-     deps = [
diff --git a/chromium/patches/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h b/chromium/patches/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h
index e1d0c50236..2814381341 100644
--- a/chromium/patches/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h
+++ b/chromium/patches/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/protobuf/src/google/protobuf/stubs/platform_macros.h.orig	2020-07-15 18:56:32.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/protobuf/src/google/protobuf/stubs/platform_macros.h.orig	2024-07-24 02:45:06.443668600 +0000
 +++ third_party/protobuf/src/google/protobuf/stubs/platform_macros.h
-@@ -118,7 +118,7 @@ GOOGLE_PROTOBUF_PLATFORM_ERROR
+@@ -122,7 +122,7 @@ GOOGLE_PROTOBUF_PLATFORM_ERROR
  
  #undef GOOGLE_PROTOBUF_PLATFORM_ERROR
  
--#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE) || defined(__OpenBSD__)
-+#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+-#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE)
++#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE) || defined(__OpenBSD__)
  // Android ndk does not support the __thread keyword very well yet. Here
  // we use pthread_key_create()/pthread_getspecific()/... methods for
  // TLS support on android.
diff --git a/chromium/patches/patch-third__party_skia_BUILD.gn b/chromium/patches/patch-third__party_skia_BUILD.gn
deleted file mode 100644
index 6b76ff74fd..0000000000
--- a/chromium/patches/patch-third__party_skia_BUILD.gn
+++ /dev/null
@@ -1,123 +0,0 @@
-$NetBSD$
-
-https://skia-review.googlesource.com/c/skia/+/310856
-
---- third_party/skia/BUILD.gn.orig	2020-07-15 19:01:38.000000000 +0000
-+++ third_party/skia/BUILD.gn
-@@ -32,7 +32,7 @@ config("skia_public") {
-   if (is_component_build) {
-     defines += [ "SKIA_DLL" ]
-   }
--  if (is_fuchsia || is_linux) {
-+  if (is_fuchsia || is_linux || is_bsd) {
-     defines += [ "SK_R32_SHIFT=16" ]
-   }
-   if (skia_enable_flutter_defines) {
-@@ -607,7 +607,7 @@ optional("gpu") {
-     } else if (skia_use_egl) {
-       sources += [ "src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp" ]
-       libs += [ "EGL" ]
--    } else if (is_linux && skia_use_x11) {
-+    } else if ((is_linux || is_bsd) && skia_use_x11) {
-       sources += [ "src/gpu/gl/glx/GrGLMakeNativeInterface_glx.cpp" ]
-       libs += [ "GL" ]
-     } else if (is_mac) {
-@@ -1075,7 +1075,7 @@ component("skia") {
-     ]
-   }
- 
--  if (is_linux || target_cpu == "wasm") {
-+  if (is_linux || target_cpu == "wasm" || is_bsd) {
-     sources += [ "src/ports/SkDebug_stdio.cpp" ]
-     if (skia_use_egl) {
-       libs += [ "GLESv2" ]
-@@ -1448,7 +1448,7 @@ if (skia_enable_tools) {
-       if (is_android || skia_use_egl) {
-         sources += [ "tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp" ]
-         libs += [ "EGL" ]
--      } else if (is_linux) {
-+      } else if (is_linux || is_bsd) {
-         sources += [ "tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp" ]
-         libs += [
-           "GLU",
-@@ -1762,7 +1762,7 @@ if (skia_enable_tools) {
-     }
-   }
- 
--  if (is_linux || is_mac) {
-+  if (is_linux || is_mac || is_bsd) {
-     test_app("skottie_tool") {
-       deps = [ "modules/skottie:tool" ]
-     }
-@@ -2206,7 +2206,7 @@ if (skia_enable_tools) {
-         "tools/sk_app/android/surface_glue_android.cpp",
-       ]
-       libs += [ "android" ]
--    } else if (is_linux) {
-+    } else if (is_linux || is_bsd) {
-       sources += [
-         "tools/sk_app/unix/RasterWindowContext_unix.cpp",
-         "tools/sk_app/unix/Window_unix.cpp",
-@@ -2247,7 +2247,7 @@ if (skia_enable_tools) {
-       sources += [ "tools/sk_app/GLWindowContext.cpp" ]
-       if (is_android) {
-         sources += [ "tools/sk_app/android/GLWindowContext_android.cpp" ]
--      } else if (is_linux) {
-+      } else if (is_linux || is_bsd) {
-         sources += [ "tools/sk_app/unix/GLWindowContext_unix.cpp" ]
-       } else if (is_win) {
-         sources += [ "tools/sk_app/win/GLWindowContext_win.cpp" ]
-@@ -2265,7 +2265,7 @@ if (skia_enable_tools) {
-       sources += [ "tools/sk_app/VulkanWindowContext.cpp" ]
-       if (is_android) {
-         sources += [ "tools/sk_app/android/VulkanWindowContext_android.cpp" ]
--      } else if (is_linux) {
-+      } else if (is_linux || is_bsd) {
-         sources += [ "tools/sk_app/unix/VulkanWindowContext_unix.cpp" ]
-         libs += [ "X11-xcb" ]
-       } else if (is_win) {
-@@ -2288,7 +2288,7 @@ if (skia_enable_tools) {
- 
-     if (skia_use_dawn) {
-       sources += [ "tools/sk_app/DawnWindowContext.cpp" ]
--      if (is_linux) {
-+      if (is_linux || is_bsd) {
-         if (dawn_enable_vulkan) {
-           sources += [ "tools/sk_app/unix/DawnVulkanWindowContext_unix.cpp" ]
-           defines = [ "VK_USE_PLATFORM_XCB_KHR" ]
-@@ -2314,7 +2314,7 @@ if (skia_enable_tools) {
-     }
-   }
- 
--  if (!skia_use_vulkan && (is_mac || is_linux || is_win)) {
-+  if (!skia_use_vulkan && (is_mac || is_linux || is_win || is_bsd)) {
-     test_app("fiddle_examples") {
-       sources = [
-         "tools/fiddle/all_examples.cpp",
-@@ -2389,7 +2389,7 @@ if (skia_enable_tools) {
-     }
-   }
- 
--  if (skia_use_gl && !skia_use_angle && (is_linux || is_win || is_mac)) {
-+  if (skia_use_gl && !skia_use_angle && (is_linux || is_win || is_mac || is_bsd)) {
-     test_app("HelloWorld") {
-       sources = [ "example/HelloWorld.cpp" ]
-       libs = []
-@@ -2404,7 +2404,7 @@ if (skia_enable_tools) {
-     }
-   }
- 
--  if (skia_use_gl && (is_linux || is_mac || is_ios)) {
-+  if (skia_use_gl && (is_linux || is_mac || is_ios || is_bsd)) {
-     test_app("SkiaSDLExample") {
-       sources = [ "example/SkiaSDLExample.cpp" ]
-       libs = []
-@@ -2416,7 +2416,7 @@ if (skia_enable_tools) {
-     }
-   }
- 
--  if (skia_qt_path != "" && (is_win || is_linux || is_mac)) {
-+  if (skia_qt_path != "" && (is_win || is_linux || is_mac || is_bsd)) {
-     action_foreach("generate_mocs") {
-       script = "gn/call.py"
-       sources = [ "tools/mdbviz/MainWindow.h" ]
diff --git a/chromium/patches/patch-third__party_skia_gn_BUILD.gn b/chromium/patches/patch-third__party_skia_gn_BUILD.gn
deleted file mode 100644
index e7b8eb2b90..0000000000
--- a/chromium/patches/patch-third__party_skia_gn_BUILD.gn
+++ /dev/null
@@ -1,33 +0,0 @@
-$NetBSD$
-
-https://skia-review.googlesource.com/c/skia/+/310856
-
---- third_party/skia/gn/BUILD.gn.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/skia/gn/BUILD.gn
-@@ -211,7 +211,7 @@ config("default") {
-     libs += [ "objc" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     libs += [ "pthread" ]
-   }
- 
-@@ -287,7 +287,7 @@ config("default") {
-       ldflags += [ "-fsanitize=$sanitizers" ]
-     }
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       cflags_cc += [ "-stdlib=libc++" ]
-       ldflags += [ "-stdlib=libc++" ]
-     }
-@@ -572,7 +572,7 @@ config("executable") {
-     ]
-   } else if (is_mac) {
-     ldflags = [ "-Wl,-rpath,@loader_path/." ]
--  } else if (is_linux) {
-+  } else if (is_linux || is_bsd) {
-     ldflags = [
-       "-rdynamic",
-       "-Wl,-rpath,\$ORIGIN",
diff --git a/chromium/patches/patch-third__party_skia_gn_skia.gni b/chromium/patches/patch-third__party_skia_gn_skia.gni
deleted file mode 100644
index 106b8ac44a..0000000000
--- a/chromium/patches/patch-third__party_skia_gn_skia.gni
+++ /dev/null
@@ -1,36 +0,0 @@
-$NetBSD$
-
-https://skia-review.googlesource.com/c/skia/+/310856
-
---- third_party/skia/gn/skia.gni.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/skia/gn/skia.gni
-@@ -26,7 +26,7 @@ declare_args() {
-   skia_enable_skrive = true
-   skia_enable_sksl_interpreter = is_skia_dev_build
-   skia_enable_skvm_jit =
--      is_skia_dev_build && ((target_cpu == "x64" && (is_linux || is_mac)) ||
-+      is_skia_dev_build && ((target_cpu == "x64" && (is_linux || is_mac || is_bsd)) ||
-                             (target_cpu == "arm64" && is_android))
-   skia_enable_tools = is_skia_dev_build
-   skia_enable_gpu_debug_layers = is_skia_dev_build && is_debug
-@@ -48,9 +48,9 @@ declare_args() {
-   skia_use_experimental_xform = false
-   skia_use_ffmpeg = false
-   skia_use_fixed_gamma_text = is_android
--  skia_use_fontconfig = is_linux
-+  skia_use_fontconfig = is_linux || is_bsd
-   skia_use_fonthost_mac = is_mac || is_ios
--  skia_use_freetype = is_android || is_fuchsia || is_linux
-+  skia_use_freetype = is_android || is_fuchsia || is_linux || is_bsd
-   skia_use_harfbuzz = true
-   skia_use_gl = !is_fuchsia
-   skia_use_icu = !is_fuchsia
-@@ -66,7 +66,7 @@ declare_args() {
-   skia_use_opencl = false
-   skia_use_piex = !is_win
-   skia_use_wuffs = false
--  skia_use_x11 = is_linux
-+  skia_use_x11 = is_linux || is_bsd
-   skia_use_xps = true
-   skia_use_zlib = true
- 
diff --git a/chromium/patches/patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h b/chromium/patches/patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h
deleted file mode 100644
index 2d74016602..0000000000
--- a/chromium/patches/patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/skia/src/gpu/GrAutoLocaleSetter.h.orig	2020-07-15 19:01:40.000000000 +0000
-+++ third_party/skia/src/gpu/GrAutoLocaleSetter.h
-@@ -27,7 +27,7 @@
- #define HAVE_XLOCALE 0
- #endif
- 
--#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION)
-+#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) || defined(__NetBSD__)
- #define HAVE_LOCALE_T 0
- #else
- #define HAVE_LOCALE_T 1
diff --git a/chromium/patches/patch-third__party_skia_src_gpu_ganesh_GrAutoLocaleSetter.h b/chromium/patches/patch-third__party_skia_src_gpu_ganesh_GrAutoLocaleSetter.h
new file mode 100644
index 0000000000..48406687ba
--- /dev/null
+++ b/chromium/patches/patch-third__party_skia_src_gpu_ganesh_GrAutoLocaleSetter.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h.orig	2024-07-24 02:45:41.783091500 +0000
++++ third_party/skia/src/gpu/ganesh/GrAutoLocaleSetter.h
+@@ -27,7 +27,7 @@
+ #define HAVE_XLOCALE 0
+ #endif
+ 
+-#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION)
++#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) || defined(__NetBSD__)
+ #define HAVE_LOCALE_T 0
+ #else
+ #define HAVE_LOCALE_T 1
diff --git a/chromium/patches/patch-third__party_skia_src_images_SkJpegEncoder.cpp b/chromium/patches/patch-third__party_skia_src_images_SkJpegEncoder.cpp
deleted file mode 100644
index 66b38cb8f5..0000000000
--- a/chromium/patches/patch-third__party_skia_src_images_SkJpegEncoder.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-$NetBSD$
-
---- third_party/skia/src/images/SkJpegEncoder.cpp.orig	2020-07-15 19:01:41.000000000 +0000
-+++ third_party/skia/src/images/SkJpegEncoder.cpp
-@@ -76,9 +76,14 @@ bool SkJpegEncoderMgr::setParams(const S
-         return (transform_scanline_proc) nullptr;
-     };
- 
-+#if defined(JCS_EXTENSIONS)
-     J_COLOR_SPACE jpegColorType = JCS_EXT_RGBA;
-+#else
-+    J_COLOR_SPACE jpegColorType = JCS_RGBA;
-+#endif
-     int numComponents = 0;
-     switch (srcInfo.colorType()) {
-+#if defined(JCS_EXTENSIONS)
-         case kRGBA_8888_SkColorType:
-             fProc = chooseProc8888();
-             jpegColorType = JCS_EXT_RGBA;
-@@ -89,6 +94,7 @@ bool SkJpegEncoderMgr::setParams(const S
-             jpegColorType = JCS_EXT_BGRA;
-             numComponents = 4;
-             break;
-+#endif
-         case kRGB_565_SkColorType:
-             fProc = transform_scanline_565;
-             jpegColorType = JCS_RGB;
-@@ -108,6 +114,7 @@ bool SkJpegEncoderMgr::setParams(const S
-             jpegColorType = JCS_GRAYSCALE;
-             numComponents = 1;
-             break;
-+#if defined(JCS_EXTENSIONS)
-         case kRGBA_F16_SkColorType:
-             if (kUnpremul_SkAlphaType == srcInfo.alphaType() &&
-                     options.fAlphaOption == SkJpegEncoder::AlphaOption::kBlendOnBlack) {
-@@ -118,6 +125,7 @@ bool SkJpegEncoderMgr::setParams(const S
-             jpegColorType = JCS_EXT_RGBA;
-             numComponents = 4;
-             break;
-+#endif
-         default:
-             return false;
-     }
diff --git a/chromium/patches/patch-third__party_skia_src_ports_SkMemory__malloc.cpp b/chromium/patches/patch-third__party_skia_src_ports_SkMemory__malloc.cpp
new file mode 100644
index 0000000000..c26f5eafd5
--- /dev/null
+++ b/chromium/patches/patch-third__party_skia_src_ports_SkMemory__malloc.cpp
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/skia/src/ports/SkMemory_malloc.cpp.orig	2024-07-24 02:45:41.951108000 +0000
++++ third_party/skia/src/ports/SkMemory_malloc.cpp
+@@ -15,7 +15,8 @@
+ 
+ #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
+ #include <malloc/malloc.h>
+-#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX)
++#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__) && \
++    !defined(__NetBSD__)
+ #include <malloc.h>
+ #elif defined(SK_BUILD_FOR_WIN)
+ #include <malloc.h>
+@@ -126,7 +127,7 @@ size_t sk_malloc_size(void* addr, size_t
+     #elif defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 17
+         completeSize = malloc_usable_size(addr);
+         SkASSERT(completeSize >= size);
+-    #elif defined(SK_BUILD_FOR_UNIX)
++    #elif defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__) && !defined(__NetBSD__)
+         completeSize = malloc_usable_size(addr);
+         SkASSERT(completeSize >= size);
+     #elif defined(SK_BUILD_FOR_WIN)
diff --git a/chromium/patches/patch-third__party_skia_src_ports_SkOSFile__posix.cpp b/chromium/patches/patch-third__party_skia_src_ports_SkOSFile__posix.cpp
new file mode 100644
index 0000000000..24b7984e3b
--- /dev/null
+++ b/chromium/patches/patch-third__party_skia_src_ports_SkOSFile__posix.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/skia/src/ports/SkOSFile_posix.cpp.orig	2024-07-24 02:45:41.951108000 +0000
++++ third_party/skia/src/ports/SkOSFile_posix.cpp
+@@ -25,7 +25,7 @@
+ #endif
+ 
+ void sk_fsync(FILE* f) {
+-#if !defined(SK_BUILD_FOR_ANDROID) && !defined(__UCLIBC__) && !defined(_NEWLIB_VERSION)
++#if !defined(SK_BUILD_FOR_ANDROID) && !defined(__UCLIBC__) && !defined(_NEWLIB_VERSION) && !defined(__OpenBSD__)
+     int fd = fileno(f);
+     fsync(fd);
+ #endif
diff --git a/chromium/patches/patch-third__party_skia_src_sksl_SkSLString.h b/chromium/patches/patch-third__party_skia_src_sksl_SkSLString.h
deleted file mode 100644
index 5f97db2fed..0000000000
--- a/chromium/patches/patch-third__party_skia_src_sksl_SkSLString.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/skia/src/sksl/SkSLString.h.orig	2020-07-15 19:01:41.000000000 +0000
-+++ third_party/skia/src/sksl/SkSLString.h
-@@ -17,6 +17,8 @@
- #include "include/core/SkString.h"
- #endif
- 
-+#include <stdarg.h>
-+
- namespace SkSL {
- 
- // Represents a (not necessarily null-terminated) slice of a string.
diff --git a/chromium/patches/patch-third__party_skia_third__party_angle2_BUILD.gn b/chromium/patches/patch-third__party_skia_third__party_angle2_BUILD.gn
deleted file mode 100644
index 7e091e7fe4..0000000000
--- a/chromium/patches/patch-third__party_skia_third__party_angle2_BUILD.gn
+++ /dev/null
@@ -1,26 +0,0 @@
-$NetBSD$
-
-https://skia-review.googlesource.com/c/skia/+/310856
-
---- third_party/skia/third_party/angle2/BUILD.gn.orig	2020-07-15 19:01:41.000000000 +0000
-+++ third_party/skia/third_party/angle2/BUILD.gn
-@@ -37,8 +37,8 @@ config("common") {
-     "$angle_root/src/third_party/khronos",
-   ]
-   cflags_cc = []
--  assert(is_linux || is_win)  # TODO: is_mac?
--  if (is_linux) {
-+  assert(is_linux || is_win || is_bsd)  # TODO: is_mac?
-+  if (is_linux || is_bsd) {
-     defines += [
-       "ANGLE_USE_X11",
-       "GL_APICALL=__attribute__((visibility(\"default\")))",
-@@ -112,7 +112,7 @@ shared_library("libGLESv2") {
-   if (is_win) {
-     sources += [ "$angle_root/src/libGLESv2/libGLESv2_autogen.def" ]
-   }
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     libs += [
-       "X11",
-       "Xi",
diff --git a/chromium/patches/patch-third__party_skia_third__party_libsdl_BUILD.gn b/chromium/patches/patch-third__party_skia_third__party_libsdl_BUILD.gn
deleted file mode 100644
index c097f3489d..0000000000
--- a/chromium/patches/patch-third__party_skia_third__party_libsdl_BUILD.gn
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-https://skia-review.googlesource.com/c/skia/+/310856
-
---- third_party/skia/third_party/libsdl/BUILD.gn.orig	2020-07-15 19:01:41.000000000 +0000
-+++ third_party/skia/third_party/libsdl/BUILD.gn
-@@ -125,7 +125,7 @@ third_party("libsdl") {
-     ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "../externals/sdl/src/filesystem/unix/SDL_sysfilesystem.c",
-       "../externals/sdl/src/render/opengl/SDL_render_gl.c",
diff --git a/chromium/patches/patch-third__party_skia_third__party_opencl_BUILD.gn b/chromium/patches/patch-third__party_skia_third__party_opencl_BUILD.gn
deleted file mode 100644
index 0a2e28c594..0000000000
--- a/chromium/patches/patch-third__party_skia_third__party_opencl_BUILD.gn
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-https://skia-review.googlesource.com/c/skia/+/310856
-
---- third_party/skia/third_party/opencl/BUILD.gn.orig	2020-07-15 19:01:41.000000000 +0000
-+++ third_party/skia/third_party/opencl/BUILD.gn
-@@ -5,7 +5,7 @@ third_party("opencl") {
-   # (Some platforms only ship the C APIs, which cl.hpp builds on.)
-   public_include_dirs = [ "../externals/opencl-registry/api/2.1" ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     libs = [ "OpenCL" ]
-   } else if (is_mac) {
-     libs = [ "OpenCL.framework" ]
diff --git a/chromium/patches/patch-third__party_speech-dispatcher_libspeechd__version.h b/chromium/patches/patch-third__party_speech-dispatcher_libspeechd__version.h
new file mode 100644
index 0000000000..9bcf39d757
--- /dev/null
+++ b/chromium/patches/patch-third__party_speech-dispatcher_libspeechd__version.h
@@ -0,0 +1,38 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/speech-dispatcher/libspeechd_version.h.orig	2024-08-01 14:09:01.033823374 +0000
++++ third_party/speech-dispatcher/libspeechd_version.h
+@@ -0,0 +1,29 @@
++/*
++ * libspeechd_version.h - Shared library for easy access to Speech Dispatcher functions (header)
++ *
++ * Copyright (C) 2001, 2002, 2003, 2004 Brailcom, o.p.s.
++ *
++ * This is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU Lesser General Public License as published by
++ * the Free Software Foundation; either version 2.1, or (at your option)
++ * any later version.
++ *
++ * This software is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
++ *
++ * Id: patch-third_party_speech-dispatcher_libspeechd_version_h,v 1.4 2024/03/22 13:10:56 robert
++ */
++
++#ifndef _LIBSPEECHD_VERSION_H
++#define _LIBSPEECHD_VERSION_H
++
++#define LIBSPEECHD_MAJOR_VERSION 0
++#define LIBSPEECHD_MINOR_VERSION 11
++#define LIBSPEECHD_MICRO_VERSION 5
++
++#endif /* ifndef _LIBSPEECHD_VERSION_H */
diff --git a/chromium/patches/patch-third__party_speech-dispatcher_speechd__types.h b/chromium/patches/patch-third__party_speech-dispatcher_speechd__types.h
new file mode 100644
index 0000000000..cb77495cb7
--- /dev/null
+++ b/chromium/patches/patch-third__party_speech-dispatcher_speechd__types.h
@@ -0,0 +1,148 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/speech-dispatcher/speechd_types.h.orig	2024-07-24 02:45:07.539774700 +0000
++++ third_party/speech-dispatcher/speechd_types.h
+@@ -119,4 +119,139 @@ typedef struct {
+ 	SPDVoice voice;
+ } SPDMsgSettings;
+ 
++/* TEMP_FAILURE_RETRY seems to be available only on Linux. For systems that
++ * don't have this macro we provide our own version. This code was taken from
++ * file "/usr/include/unistd.h" from Debian package "libc6-dev"
++ * version 2.3.2.ds1-20. */
++#ifndef TEMP_FAILURE_RETRY
++#define TEMP_FAILURE_RETRY(expression) \
++	(__extension__ \
++	 ({ long int __result; \
++		do __result = (long int) (expression); \
++		while (__result == -1L && errno == EINTR); \
++		__result; }))
++#endif
++
++#endif /* not ifndef SPEECHD_TYPES */
++
++/*
++ * speechd_types.h - types for Speech Dispatcher
++ *
++ * Copyright (C) 2001, 2002, 2003 Brailcom, o.p.s.
++ *
++ * This is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU Lesser General Public License as published by
++ * the Free Software Foundation; either version 2.1, or (at your option)
++ * any later version.
++ *
++ * This software is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
++ */
++
++#ifndef SPEECHD_TYPES_H
++#define SPEECHD_TYPES_H
++
++typedef enum {
++	SPD_PUNCT_ALL = 0,
++	SPD_PUNCT_NONE = 1,
++	SPD_PUNCT_SOME = 2,
++	SPD_PUNCT_MOST = 3
++} SPDPunctuation;
++
++typedef enum {
++	SPD_CAP_NONE = 0,
++	SPD_CAP_SPELL = 1,
++	SPD_CAP_ICON = 2
++} SPDCapitalLetters;
++
++typedef enum {
++	SPD_SPELL_OFF = 0,
++	SPD_SPELL_ON = 1
++} SPDSpelling;
++
++typedef enum {
++	SPD_MALE1 = 1,
++	SPD_MALE2 = 2,
++	SPD_MALE3 = 3,
++	SPD_FEMALE1 = 4,
++	SPD_FEMALE2 = 5,
++	SPD_FEMALE3 = 6,
++	SPD_CHILD_MALE = 7,
++	SPD_CHILD_FEMALE = 8,
++	SPD_UNSPECIFIED = -1
++} SPDVoiceType;
++
++typedef struct {
++	char *name;		/* Name of the voice (id) */
++	char *language;		/* 2/3-letter ISO language code,
++				 * possibly followed by 2/3-letter ISO region code,
++				 * e.g. en-US */
++	char *variant;		/* a not-well defined string describing dialect etc. */
++} SPDVoice;
++
++typedef enum {
++	SPD_DATA_TEXT = 0,
++	SPD_DATA_SSML = 1
++} SPDDataMode;
++
++typedef enum {
++	SPD_IMPORTANT = 1,
++	SPD_MESSAGE = 2,
++	SPD_TEXT = 3,
++	SPD_NOTIFICATION = 4,
++	SPD_PROGRESS = 5
++} SPDPriority;
++
++typedef enum {
++	SPD_BEGIN = 1,
++	SPD_END = 2,
++	SPD_INDEX_MARKS = 4,
++	SPD_CANCEL = 8,
++	SPD_PAUSE = 16,
++	SPD_RESUME = 32,
++
++	SPD_ALL = 0x3f
++} SPDNotification;
++
++typedef enum {
++	SPD_EVENT_BEGIN,
++	SPD_EVENT_END,
++	SPD_EVENT_INDEX_MARK,
++	SPD_EVENT_CANCEL,
++	SPD_EVENT_PAUSE,
++	SPD_EVENT_RESUME
++} SPDNotificationType;
++
++typedef enum {
++	SORT_BY_TIME = 0,
++	SORT_BY_ALPHABET = 1
++} ESort;
++
++typedef enum {
++	SPD_MSGTYPE_TEXT = 0,
++	SPD_MSGTYPE_SOUND_ICON = 1,
++	SPD_MSGTYPE_CHAR = 2,
++	SPD_MSGTYPE_KEY = 3,
++	SPD_MSGTYPE_SPELL = 99
++} SPDMessageType;
++
++typedef struct {
++	signed int rate;
++	signed int pitch;
++	signed int pitch_range;
++	signed int volume;
++
++	SPDPunctuation punctuation_mode;
++	SPDSpelling spelling_mode;
++	SPDCapitalLetters cap_let_recogn;
++
++	SPDVoiceType voice_type;
++	SPDVoice voice;
++} SPDMsgSettings;
++
+ #endif /* not ifndef SPEECHD_TYPES */
diff --git a/chromium/patches/patch-third__party_sqlite_BUILD.gn b/chromium/patches/patch-third__party_sqlite_BUILD.gn
index bbf5ff54a2..eb9e339d26 100644
--- a/chromium/patches/patch-third__party_sqlite_BUILD.gn
+++ b/chromium/patches/patch-third__party_sqlite_BUILD.gn
@@ -1,31 +1,17 @@
 $NetBSD$
 
---- third_party/sqlite/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/sqlite/BUILD.gn.orig	2024-07-24 02:45:07.539774700 +0000
 +++ third_party/sqlite/BUILD.gn
-@@ -138,7 +138,7 @@ config("sqlite_warnings") {
+@@ -142,7 +142,7 @@ config("sqlite_warnings") {
        ]
      }
    }
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
      cflags += [
        # SQLite doesn't believe in compiler warnings, preferring testing.
        # http://www.sqlite.org/faq.html#q17
-@@ -191,7 +191,7 @@ component("chromium_sqlite3") {
-     }
-   }
- 
--  if (is_linux || is_android) {
-+  if (is_linux || is_android || is_bsd) {
-     defines += [
-       # Linux provides fdatasync(), a faster equivalent of fsync().
-       "fdatasync=fdatasync",
-@@ -344,7 +344,7 @@ group("sqlite_dev") {
-   ]
- }
- 
--if (is_win || is_mac || is_linux) {
-+if (is_win || is_mac || is_linux || is_bsd) {
-   executable("sqlite_shell") {
-     include_dirs = [
-       # SQLite's shell.c contains an '#include "sqlite3.h", which we want to be
diff --git a/chromium/patches/patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c b/chromium/patches/patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c
new file mode 100644
index 0000000000..9ad0b23dae
--- /dev/null
+++ b/chromium/patches/patch-third__party_sqlite_src_amalgamation__dev_sqlite3.c
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/sqlite/src/amalgamation_dev/sqlite3.c.orig	2024-07-24 02:46:40.672795800 +0000
++++ third_party/sqlite/src/amalgamation_dev/sqlite3.c
+@@ -20545,6 +20545,9 @@ SQLITE_PRIVATE int sqlite3HeapNearlyFull
+ ** The alloca() routine never returns NULL.  This will cause code paths
+ ** that deal with sqlite3StackAlloc() failures to be unreachable.
+ */
++#if defined(__NetBSD__)
++# undef SQLITE_USE_ALLOCA
++#endif
+ #ifdef SQLITE_USE_ALLOCA
+ # define sqlite3StackAllocRaw(D,N)   alloca(N)
+ # define sqlite3StackAllocRawNN(D,N) alloca(N)
diff --git a/chromium/patches/patch-third__party_sqlite_src_amalgamation_sqlite3.c b/chromium/patches/patch-third__party_sqlite_src_amalgamation_sqlite3.c
new file mode 100644
index 0000000000..3d095146e3
--- /dev/null
+++ b/chromium/patches/patch-third__party_sqlite_src_amalgamation_sqlite3.c
@@ -0,0 +1,47 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/sqlite/src/amalgamation/sqlite3.c.orig	2024-07-24 02:46:40.588787600 +0000
++++ third_party/sqlite/src/amalgamation/sqlite3.c
+@@ -14119,7 +14119,7 @@ struct fts5_api {
+ ** But _XOPEN_SOURCE define causes problems for Mac OS X, so omit
+ ** it.
+ */
+-#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__)
++#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__) && !defined(__FreeBSD__)
+ #  define _XOPEN_SOURCE 600
+ #endif
+ 
+@@ -20532,6 +20532,9 @@ SQLITE_PRIVATE int sqlite3HeapNearlyFull
+ ** The alloca() routine never returns NULL.  This will cause code paths
+ ** that deal with sqlite3StackAlloc() failures to be unreachable.
+ */
++#if defined(__NetBSD__)
++# undef SQLITE_USE_ALLOCA
++#endif
+ #ifdef SQLITE_USE_ALLOCA
+ # define sqlite3StackAllocRaw(D,N)   alloca(N)
+ # define sqlite3StackAllocRawNN(D,N) alloca(N)
+@@ -44777,6 +44780,11 @@ static int unixRandomness(sqlite3_vfs *N
+   memset(zBuf, 0, nBuf);
+   randomnessPid = osGetpid(0);
+ #if !defined(SQLITE_TEST) && !defined(SQLITE_OMIT_RANDOMNESS)
++#if defined(__OpenBSD__)
++  {
++    arc4random_buf(zBuf, nBuf);
++  }
++#else
+   {
+     int fd, got;
+     fd = robust_open("/dev/urandom", O_RDONLY, 0);
+@@ -44793,6 +44801,7 @@ static int unixRandomness(sqlite3_vfs *N
+     }
+   }
+ #endif
++#endif
+   return nBuf;
+ }
+ 
diff --git a/chromium/patches/patch-third__party_swiftshader_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_BUILD.gn
deleted file mode 100644
index fcd82e22c3..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/BUILD.gn.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/BUILD.gn
-@@ -134,7 +134,7 @@ config("swiftshader_config") {
-       ]
-     }
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       ldflags = [ "-Wl,--gc-sections" ]
- 
-       if (current_cpu == "mipsel") {
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Common_Configurator.cpp b/chromium/patches/patch-third__party_swiftshader_src_Common_Configurator.cpp
deleted file mode 100644
index ff9f03921b..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_Common_Configurator.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Common/Configurator.cpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/Common/Configurator.cpp
-@@ -42,6 +42,9 @@ namespace sw
- 
- 	bool Configurator::readFile()
- 	{
-+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-+		return false;
-+#endif
- 		#if defined(__unix__)
- 			if(access(path.c_str(), R_OK) != 0)
- 			{
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Common_MutexLock.hpp b/chromium/patches/patch-third__party_swiftshader_src_Common_MutexLock.hpp
deleted file mode 100644
index 0b2d78a5a9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_Common_MutexLock.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Common/MutexLock.hpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/Common/MutexLock.hpp
-@@ -17,7 +17,7 @@
- 
- #include "Thread.hpp"
- 
--#if defined(__linux__)
-+#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
- // Use a pthread mutex on Linux. Since many processes may use SwiftShader
- // at the same time it's best to just have the scheduler overhead.
- #include <pthread.h>
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Common_SharedLibrary.hpp b/chromium/patches/patch-third__party_swiftshader_src_Common_SharedLibrary.hpp
deleted file mode 100644
index 667e1c2614..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_Common_SharedLibrary.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Common/SharedLibrary.hpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/Common/SharedLibrary.hpp
-@@ -97,7 +97,7 @@ void *loadLibrary(const std::string &lib
- 
- 	inline void *getLibraryHandle(const char *path)
- 	{
--		#ifdef __ANDROID__
-+		#if defined(__ANDROID__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
- 			// bionic doesn't support RTLD_NOLOAD before L
- 			return dlopen(path, RTLD_NOW | RTLD_LOCAL);
- 		#else
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Main_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_Main_BUILD.gn
deleted file mode 100644
index 83a5038206..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_Main_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Main/BUILD.gn.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/Main/BUILD.gn
-@@ -49,7 +49,7 @@ swiftshader_source_set("swiftshader_main
- 
-   if (use_ozone && !is_win) {
-     sources += [ "FrameBufferOzone.cpp" ]
--  } else if (is_linux) {
-+  } else if (is_linux || is_bsd) {
-     if (use_x11) {
-       sources += [
-         "FrameBufferX11.cpp",
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Main_SwiftConfig.cpp b/chromium/patches/patch-third__party_swiftshader_src_Main_SwiftConfig.cpp
deleted file mode 100644
index 3c95c47a65..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_Main_SwiftConfig.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Main/SwiftConfig.cpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/Main/SwiftConfig.cpp
-@@ -764,7 +764,11 @@ namespace sw
- 		struct stat status;
- 		int lastModified = ini.getInteger("LastModified", "Time", 0);
- 
-+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-+		bool noConfig = false;
-+#else
- 		bool noConfig = stat("SwiftShader.ini", &status) != 0;
-+#endif
- 		newConfig = !noConfig && abs((int)status.st_mtime - lastModified) > 1;
- 
- 		if(disableServerOverride)
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_compiler_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_compiler_BUILD.gn
deleted file mode 100644
index 11028368bb..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_compiler_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/compiler/BUILD.gn.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/compiler/BUILD.gn
-@@ -76,7 +76,7 @@ swiftshader_source_set("swiftshader_open
-     all_dependent_configs = [ ":swiftshader_translator_disable_pool_alloc" ]
-   }
- 
--  if (is_linux || is_mac || is_fuchsia) {
-+  if (is_linux || is_mac || is_fuchsia || is_bsd) {
-     sources += [ "ossource_posix.cpp" ]
-   } else if (is_win) {
-     sources += [ "ossource_win.cpp" ]
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_BUILD.gn
deleted file mode 100644
index 64f5399083..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn
-@@ -78,7 +78,7 @@ swiftshader_shared_library("swiftshader_
-       "-Wl,-exported_symbols_list," +
-           rebase_path("libEGL.exports", root_build_dir),
-     ]
--  } else if (is_linux) {
-+  } else if (is_linux || is_bsd) {
-     if (use_x11) {
-       sources += [ "../../Main/libX11.cpp" ]
-     }
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp
deleted file mode 100644
index 1717879ce9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libEGL/Display.cpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libEGL/Display.cpp
-@@ -691,7 +691,7 @@ bool Display::isValidWindow(EGLNativeWin
- 			return status != 0;
- 		}
- 		return false;
--	#elif defined(__linux__)
-+	#elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
- 		return false;  // Non X11 linux is headless only
- 	#elif defined(__APPLE__)
- 		return sw::OSX::IsValidWindow(window);
-@@ -869,7 +869,7 @@ sw::Format Display::getDisplayFormat() c
- 		{
- 			return sw::FORMAT_X8R8G8B8;
- 		}
--	#elif defined(__linux__)  // Non X11 linux is headless only
-+	#elif defined(__linux__)  || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) // Non X11 linux is headless only
- 		return sw::FORMAT_A8B8G8R8;
- 	#elif defined(__APPLE__)
- 		return sw::FORMAT_A8B8G8R8;
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp
deleted file mode 100644
index fad4b6e811..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libEGL/Surface.cpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libEGL/Surface.cpp
-@@ -362,7 +362,7 @@ bool WindowSurface::checkForResize()
- 
- 		int windowWidth = windowAttributes.width;
- 		int windowHeight = windowAttributes.height;
--	#elif defined(__linux__)
-+	#elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
- 		// Non X11 linux is headless only
- 		int windowWidth = 100;
- 		int windowHeight = 100;
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp
deleted file mode 100644
index 90fac783de..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libEGL/libEGL.cpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libEGL/libEGL.cpp
-@@ -153,7 +153,7 @@ EGLDisplay EGLAPIENTRY GetDisplay(EGLNat
- 		// FIXME: Check if display_id is the default display
- 	}
- 
--	#if defined(__linux__) && !defined(__ANDROID__)
-+	#if (defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)) && !defined(__ANDROID__)
- 		#if defined(USE_X11)
- 		if(!libX11)
- 		#endif  // Non X11 linux is headless only
-@@ -216,7 +216,7 @@ const char *EGLAPIENTRY QueryString(EGLD
- 	{
- 		return success(
- 			"EGL_KHR_client_get_all_proc_addresses "
--#if defined(__linux__) && !defined(__ANDROID__)
-+#if (defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)) && !defined(__ANDROID__)
- 			"EGL_KHR_platform_gbm "
- #endif
- #if defined(USE_X11)
-@@ -1298,7 +1298,7 @@ EGLDisplay EGLAPIENTRY GetPlatformDispla
- {
- 	TRACE("(EGLenum platform = 0x%X, void *native_display = %p, const EGLAttrib *attrib_list = %p)", platform, native_display, attrib_list);
- 
--	#if defined(__linux__) && !defined(__ANDROID__)
-+	#if (defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)) && !defined(__ANDROID__)
- 		switch(platform)
- 		{
- 		#if defined(USE_X11)
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp
deleted file mode 100644
index d46389ccb0..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libEGL/libEGL.hpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libEGL/libEGL.hpp
-@@ -100,7 +100,7 @@ private:
- 				#endif
- 			#elif defined(__ANDROID__)
- 				const char *libEGL_lib[] = {"libEGL_swiftshader.so", "libEGL_swiftshader.so"};
--			#elif defined(__linux__)
-+			#elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__))
- 				#if defined(__LP64__)
- 					const char *libEGL_lib[] = {"lib64EGL_translator.so", "libEGL.so.1", "libEGL.so"};
- 				#else
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLES__CM_libGLES__CM.hpp b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLES__CM_libGLES__CM.hpp
deleted file mode 100644
index c7bf7ec00a..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLES__CM_libGLES__CM.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libGLES_CM/libGLES_CM.hpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libGLES_CM/libGLES_CM.hpp
-@@ -261,7 +261,7 @@ private:
- 				#endif
- 			#elif defined(__ANDROID__)
- 				const char *libGLES_CM_lib[] = {"libGLESv1_CM_swiftshader.so", "libGLESv1_CM_swiftshader.so"};
--			#elif defined(__linux__)
-+			#elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__))
- 				#if defined(__LP64__)
- 					const char *libGLES_CM_lib[] = {"lib64GLES_CM_translator.so", "libGLES_CM.so.1", "libGLES_CM.so"};
- 				#else
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_BUILD.gn
deleted file mode 100644
index ae5a860813..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn
-@@ -130,7 +130,7 @@ swiftshader_shared_library("swiftshader_
-       "-Wl,-exported_symbols_list," +
-           rebase_path("libGLESv2.exports", root_build_dir),
-     ]
--  } else if (is_linux) {
-+  } else if (is_linux || is_bsd) {
-     inputs = [
-       "libGLESv2.lds",
-     ]
diff --git a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp b/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp
deleted file mode 100644
index 08b9d658fe..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/OpenGL/libGLESv2/libGLESv2.hpp.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/OpenGL/libGLESv2/libGLESv2.hpp
-@@ -286,7 +286,7 @@ private:
- 				#endif
- 			#elif defined(__ANDROID__)
- 				const char *libGLESv2_lib[] = {"libGLESv2_swiftshader.so", "libGLESv2_swiftshader.so"};
--			#elif defined(__linux__)
-+			#elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__))
- 				#if defined(__LP64__)
- 					const char *libGLESv2_lib[] = {"lib64GLES_V2_translator.so", "libGLESv2.so.2", "libGLESv2.so"};
- 				#else
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Reactor_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_Reactor_BUILD.gn
deleted file mode 100644
index 2fea2fe92f..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_Reactor_BUILD.gn
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Reactor/BUILD.gn.orig	2020-07-15 19:01:39.000000000 +0000
-+++ third_party/swiftshader/src/Reactor/BUILD.gn
-@@ -19,7 +19,7 @@ declare_args() {
-   # PPC64.
-   use_swiftshader_with_subzero =
-       current_cpu != "arm64" && current_cpu != "mips64el" && current_cpu != "ppc64"
--  supports_llvm = is_linux || is_fuchsia || is_win || is_android || is_mac
-+  supports_llvm = is_linux || is_fuchsia || is_win || is_android || is_mac || is_bsd
- }
- 
- config("swiftshader_reactor_private_config") {
-@@ -109,6 +109,8 @@ if (use_swiftshader_with_subzero) {
-           [ "../../third_party/llvm-subzero/build/Fuchsia/include/" ]
-     } else if (is_mac) {
-       include_dirs += [ "../../third_party/llvm-subzero/build/MacOS/include/" ]
-+    } else if (is_netbsd) {
-+      include_dirs += [ "../../third_party/llvm-subzero/build/NetBSD/include/" ]
-     }
-   }
- 
-@@ -143,7 +145,7 @@ if (use_swiftshader_with_subzero) {
-           cflags += [ "-Wno-sign-compare" ]
-         }
-       }
--    } else if (is_linux || is_mac || is_fuchsia) {
-+    } else if (is_linux || is_mac || is_fuchsia || is_bsd) {
-       cflags += [ "-Wno-macro-redefined" ]
-     }
- 
-@@ -352,6 +354,8 @@ if (supports_llvm) {
-       include_dirs += [ "$llvm7_dir/configs/android/include/" ]
-     } else if (is_mac) {
-       include_dirs += [ "$llvm7_dir/configs/darwin/include/" ]
-+    } else if (is_netbsd) {
-+      include_dirs += [ "$llvm7_dir/configs/netbsd/include/" ]
-     } else {
-       assert(false, "llvm-7.0 not configured for target platform")
-     }
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Reactor_Debug.cpp b/chromium/patches/patch-third__party_swiftshader_src_Reactor_Debug.cpp
index 04e2c630ab..830a37c5ff 100644
--- a/chromium/patches/patch-third__party_swiftshader_src_Reactor_Debug.cpp
+++ b/chromium/patches/patch-third__party_swiftshader_src_Reactor_Debug.cpp
@@ -1,58 +1,18 @@
 $NetBSD$
 
---- third_party/swiftshader/src/Reactor/Debug.cpp.orig	2020-07-15 19:01:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/src/Reactor/Debug.cpp.orig	2024-07-24 02:45:37.738700000 +0000
 +++ third_party/swiftshader/src/Reactor/Debug.cpp
-@@ -23,13 +23,13 @@
- #	include <android/log.h>
- #endif
- 
--#if defined(__unix__)
-+#if defined(__unix__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
- #	define PTRACE
- #	include <sys/ptrace.h>
- #	include <sys/types.h>
- #elif defined(_WIN32) || defined(_WIN64)
- #	include <windows.h>
--#elif defined(__APPLE__) || defined(__MACH__)
-+#elif defined(__APPLE__) || defined(__MACH__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
- #	include <sys/sysctl.h>
- #	include <unistd.h>
- #endif
-@@ -46,7 +46,7 @@ namespace {
+@@ -46,7 +46,8 @@ namespace {
  
  bool IsUnderDebugger()
  {
 -#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__)
-+#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) && !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
++#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && \
++	!defined(__NetBSD__)
  	static bool checked = false;
  	static bool res = false;
  
-@@ -91,6 +91,28 @@ bool IsUnderDebugger()
- 
- 	// We're being debugged if the P_TRACED flag is set
- 	return ((info.kp_proc.p_flag & P_TRACED) != 0);
-+#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-+	int res = 0;
-+	struct kinfo_proc2 info;
-+	size_t length;
-+
-+	int request[6] = {
-+		CTL_KERN,
-+		KERN_PROC2,
-+		KERN_PROC_PID,
-+		getpid(),
-+		sizeof(struct kinfo_proc2),
-+		1,
-+	};
-+
-+	if (sysctl(request, 6, NULL, &length, NULL, 0) < 0)
-+		return -1;
-+
-+	request[5] = (length / sizeof(struct kinfo_proc2));
-+	if (sysctl(request, 6, &info, &length, NULL, 0) < 0)
-+		return -1;
-+
-+	return ((info.p_flag & P_TRACED) != 0);
- #else
- 	return false;
- #endif
diff --git a/chromium/patches/patch-third__party_swiftshader_src_System_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_System_BUILD.gn
deleted file mode 100644
index 39e5e82672..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_System_BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/System/BUILD.gn.orig	2020-07-15 19:01:40.000000000 +0000
-+++ third_party/swiftshader/src/System/BUILD.gn
-@@ -28,7 +28,7 @@ swiftshader_source_set("System_headers")
-     "Socket.hpp",
-     "Timer.hpp",
-   ]
--  if (is_linux || is_android) {
-+  if (is_linux || is_android || is_bsd) {
-     sources += [
-       "Linux/MemFd.hpp",
-     ]
-@@ -46,7 +46,7 @@ swiftshader_source_set("System") {
-     "Memory.cpp",
-     "Timer.cpp",
-   ]
--  if (is_linux || is_android) {
-+  if (is_linux || is_android || is_bsd) {
-     sources += [
-       "Linux/MemFd.cpp",
-     ]
diff --git a/chromium/patches/patch-third__party_swiftshader_src_System_Configurator.cpp b/chromium/patches/patch-third__party_swiftshader_src_System_Configurator.cpp
new file mode 100644
index 0000000000..4c00e98321
--- /dev/null
+++ b/chromium/patches/patch-third__party_swiftshader_src_System_Configurator.cpp
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/src/System/Configurator.cpp.orig	2024-07-24 02:45:37.746700800 +0000
++++ third_party/swiftshader/src/System/Configurator.cpp
+@@ -38,6 +38,9 @@ namespace sw {
+ 
+ Configurator::Configurator(const std::string &filePath)
+ {
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
++	return;
++#endif
+ 	std::fstream file(filePath, std::ios::in);
+ 	if(file.fail())
+ 	{
diff --git a/chromium/patches/patch-third__party_swiftshader_src_System_Debug.cpp b/chromium/patches/patch-third__party_swiftshader_src_System_Debug.cpp
deleted file mode 100644
index 989d2b0438..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_System_Debug.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/System/Debug.cpp.orig	2020-07-15 19:01:40.000000000 +0000
-+++ third_party/swiftshader/src/System/Debug.cpp
-@@ -18,13 +18,13 @@
- #	include <android/log.h>
- #endif
- 
--#if defined(__unix__)
-+#if defined(__unix__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
- #	define PTRACE
- #	include <sys/ptrace.h>
- #	include <sys/types.h>
- #elif defined(_WIN32) || defined(_WIN64)
- #	include <windows.h>
--#elif defined(__APPLE__) || defined(__MACH__)
-+#elif defined(__APPLE__) || defined(__MACH__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
- #	include <sys/sysctl.h>
- #	include <unistd.h>
- #endif
-@@ -46,7 +46,7 @@ namespace {
- 
- bool IsUnderDebugger()
- {
--#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__)
-+#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) && !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
- 	static bool checked = false;
- 	static bool res = false;
- 
-@@ -91,6 +91,28 @@ bool IsUnderDebugger()
- 
- 	// We're being debugged if the P_TRACED flag is set
- 	return ((info.kp_proc.p_flag & P_TRACED) != 0);
-+#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-+	int res = 0;
-+	struct kinfo_proc2 info;
-+	size_t length;
-+
-+	int request[6] = {
-+		CTL_KERN,
-+		KERN_PROC2,
-+		KERN_PROC_PID,
-+		getpid(),
-+		sizeof(struct kinfo_proc2),
-+		1,
-+	};
-+
-+	if (sysctl(request, 6, NULL, &length, NULL, 0) < 0)
-+		return -1;
-+
-+	request[5] = (length / sizeof(struct kinfo_proc2));
-+	if (sysctl(request, 6, &info, &length, NULL, 0) < 0)
-+		return -1;
-+
-+	return ((info.p_flag & P_TRACED) != 0);
- #else
- 	return false;
- #endif
diff --git a/chromium/patches/patch-third__party_swiftshader_src_System_Linux_MemFd.cpp b/chromium/patches/patch-third__party_swiftshader_src_System_Linux_MemFd.cpp
new file mode 100644
index 0000000000..ccc72321ef
--- /dev/null
+++ b/chromium/patches/patch-third__party_swiftshader_src_System_Linux_MemFd.cpp
@@ -0,0 +1,43 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/src/System/Linux/MemFd.cpp.orig	2024-07-24 02:45:37.746700800 +0000
++++ third_party/swiftshader/src/System/Linux/MemFd.cpp
+@@ -25,6 +25,7 @@
+ #	define MFD_CLOEXEC 0x0001U
+ #endif
+ 
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+ #if __aarch64__
+ #	define __NR_memfd_create 279
+ #elif __arm__
+@@ -36,6 +37,7 @@
+ #elif __x86_64__
+ #	define __NR_memfd_create 319
+ #endif /* __NR_memfd_create__ */
++#endif
+ 
+ LinuxMemFd::~LinuxMemFd()
+ {
+@@ -63,13 +65,17 @@ bool LinuxMemFd::allocate(const char *na
+ {
+ 	close();
+ 
+-#ifndef __NR_memfd_create
++#if !defined(__NR_memfd_create) || defined(__OpenBSD__)
+ 	TRACE("memfd_create() not supported on this system!");
+ 	return false;
+ #else
+ 	// In the event of no system call this returns -1 with errno set
+ 	// as ENOSYS.
++#if defined(__FreeBSD__) ||  defined(__NetBSD__)
++	fd_ = memfd_create(name, MFD_CLOEXEC);
++#else
+ 	fd_ = syscall(__NR_memfd_create, name, MFD_CLOEXEC);
++#endif
+ 	if(fd_ < 0)
+ 	{
+ 		TRACE("memfd_create() returned %d: %s", errno, strerror(errno));
diff --git a/chromium/patches/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp b/chromium/patches/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp
new file mode 100644
index 0000000000..b657074703
--- /dev/null
+++ b/chromium/patches/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/src/Vulkan/VkSemaphoreExternalLinux.hpp.orig	2024-07-24 02:45:37.758701800 +0000
++++ third_party/swiftshader/src/Vulkan/VkSemaphoreExternalLinux.hpp
+@@ -49,13 +49,17 @@ public:
+ 	{
+ 		pthread_mutexattr_t mattr;
+ 		pthread_mutexattr_init(&mattr);
++#if 0
+ 		pthread_mutexattr_setpshared(&mattr, PTHREAD_PROCESS_SHARED);
++#endif
+ 		pthread_mutex_init(&mutex, &mattr);
+ 		pthread_mutexattr_destroy(&mattr);
+ 
+ 		pthread_condattr_t cattr;
+ 		pthread_condattr_init(&cattr);
++#if 0
+ 		pthread_condattr_setpshared(&cattr, PTHREAD_PROCESS_SHARED);
++#endif
+ 		pthread_cond_init(&cond, &cattr);
+ 		pthread_condattr_destroy(&cattr);
+ 	}
diff --git a/chromium/patches/patch-third__party_swiftshader_src_WSI_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_WSI_BUILD.gn
deleted file mode 100644
index d137f011cd..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_WSI_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/WSI/BUILD.gn.orig	2020-07-15 19:01:40.000000000 +0000
-+++ third_party/swiftshader/src/WSI/BUILD.gn
-@@ -31,7 +31,7 @@ swiftshader_source_set("WSI") {
-     "VkSwapchainKHR.hpp",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "XcbSurfaceKHR.cpp",
-       "XcbSurfaceKHR.hpp",
diff --git a/chromium/patches/patch-third__party_swiftshader_src_WSI_libXCB.cpp b/chromium/patches/patch-third__party_swiftshader_src_WSI_libXCB.cpp
new file mode 100644
index 0000000000..99bf12ecfb
--- /dev/null
+++ b/chromium/patches/patch-third__party_swiftshader_src_WSI_libXCB.cpp
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/src/WSI/libXCB.cpp.orig	2024-07-24 02:45:37.762702200 +0000
++++ third_party/swiftshader/src/WSI/libXCB.cpp
+@@ -57,7 +57,7 @@ LibXcbExports *LibXCB::loadExports()
+ 		}
+ 		else
+ 		{
+-			libxcb = loadLibrary("libxcb.so.1");
++			libxcb = loadLibrary("libxcb.so");
+ 		}
+ 
+ 		if(getProcAddress(RTLD_DEFAULT, "xcb_shm_query_version"))  // Search the global scope for pre-loaded XCB library.
+@@ -66,7 +66,7 @@ LibXcbExports *LibXCB::loadExports()
+ 		}
+ 		else
+ 		{
+-			libshm = loadLibrary("libxcb-shm.so.0");
++			libshm = loadLibrary("libxcb-shm.so");
+ 		}
+ 
+ 		return LibXcbExports(libxcb, libshm);
diff --git a/chromium/patches/patch-third__party_swiftshader_src_vulkan_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_src_vulkan_BUILD.gn
deleted file mode 100644
index eb88215325..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_src_vulkan_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/src/Vulkan/BUILD.gn.orig	2020-07-15 19:01:40.000000000 +0000
-+++ third_party/swiftshader/src/Vulkan/BUILD.gn
-@@ -18,7 +18,7 @@ import("vulkan.gni")
- 
- # Need a separate config to ensure the warnings are added to the end.
- config("swiftshader_libvulkan_private_config") {
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     defines = [
-       "VK_USE_PLATFORM_XLIB_KHR",
-       "VK_USE_PLATFORM_XCB_KHR",
-@@ -95,7 +95,7 @@ swiftshader_source_set("swiftshader_libv
-     "VkStringify.hpp",
-     "VulkanPlatform.hpp",
-   ]
--  if (is_linux || is_android) {
-+  if (is_linux || is_android || is_bsd) {
-     sources += [
-       "VkDeviceMemoryExternalLinux.hpp",
-       "VkSemaphoreExternalLinux.hpp",
-@@ -158,7 +158,7 @@ swiftshader_shared_library("swiftshader_
-       "-Wl,-exported_symbols_list," +
-           rebase_path("vk_swiftshader.exports", root_build_dir),
-     ]
--  } else if (is_linux || is_fuchsia) {
-+  } else if (is_linux || is_fuchsia || is_bsd) {
-     inputs = [
-       "vk_swiftshader.lds",
-     ]
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h
new file mode 100644
index 0000000000..b3ac04586a
--- /dev/null
+++ b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h
@@ -0,0 +1,180 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h.orig	2024-07-24 02:45:42.055118000 +0000
++++ third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h
+@@ -29,7 +29,7 @@
+ 
+ /* Define to 1 if you have the declaration of `arc4random', and to 0 if you
+    don't. */
+-#define HAVE_DECL_ARC4RANDOM 0
++#define HAVE_DECL_ARC4RANDOM 1
+ 
+ /* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you
+    don't. */
+@@ -53,7 +53,7 @@
+ #define HAVE_DLOPEN 1
+ 
+ /* Define if dladdr() is available on this platform. */
+-/* #undef HAVE_DLADDR */
++#define HAVE_DLADDR 1
+ 
+ /* Define to 1 if you have the <errno.h> header file. */
+ #define HAVE_ERRNO_H 1
+@@ -92,7 +92,7 @@
+ #define HAVE_ISATTY 1
+ 
+ /* Define to 1 if you have the `edit' library (-ledit). */
+-/* #undef HAVE_LIBEDIT */
++#define HAVE_LIBEDIT 1
+ 
+ /* Define to 1 if you have the `pfm' library (-lpfm). */
+ /* #undef HAVE_LIBPFM */
+@@ -110,13 +110,13 @@
+ /* #undef HAVE_PTHREAD_SETNAME_NP */
+ 
+ /* Define to 1 if you have the `z' library (-lz). */
+-/* #undef HAVE_LIBZ */
++#define HAVE_LIBZ 1
+ 
+ /* Define to 1 if you have the <link.h> header file. */
+-#define HAVE_LINK_H 1
++/* #undef HAVE_LINK_H */
+ 
+ /* Define to 1 if you have the `lseek64' function. */
+-#define HAVE_LSEEK64 1
++/* #undef HAVE_LSEEK64 */
+ 
+ /* Define to 1 if you have the <mach/mach.h> header file. */
+ /* #undef HAVE_MACH_MACH_H */
+@@ -125,7 +125,7 @@
+ /* #undef HAVE_MALLCTL */
+ 
+ /* Define to 1 if you have the `mallinfo' function. */
+-#define HAVE_MALLINFO 1
++/* #undef HAVE_MALLINFO */
+ 
+ /* Define to 1 if you have the <malloc/malloc.h> header file. */
+ /* #undef HAVE_MALLOC_MALLOC_H */
+@@ -134,10 +134,10 @@
+ /* #undef HAVE_MALLOC_ZONE_STATISTICS */
+ 
+ /* Define to 1 if you have the `posix_fallocate' function. */
+-#define HAVE_POSIX_FALLOCATE 1
++/* #undef HAVE_POSIX_FALLOCATE */
+ 
+ /* Define to 1 if you have the `posix_spawn' function. */
+-/* #undef HAVE_POSIX_SPAWN */
++#define HAVE_POSIX_SPAWN 1
+ 
+ /* Define to 1 if you have the `pread' function. */
+ #define HAVE_PREAD 1
+@@ -161,10 +161,10 @@
+ #define HAVE_SETENV 1
+ 
+ /* Define to 1 if you have the `sched_getaffinity' function. */
+-#define HAVE_SCHED_GETAFFINITY 1
++/* #undef HAVE_SCHED_GETAFFINITY */
+ 
+ /* Define to 1 if you have the `CPU_COUNT' macro. */
+-#define HAVE_CPU_COUNT 1
++/* #undef HAVE_CPU_COUNT */
+ 
+ /* Define to 1 if you have the `setrlimit' function. */
+ #define HAVE_SETRLIMIT 1
+@@ -182,7 +182,7 @@
+ #define HAVE_STRERROR_R 1
+ 
+ /* Define to 1 if you have the `sysconf' function. */
+-#define HAVE_SYSCONF 1
++/* #undef HAVE_SYSCONF */
+ 
+ /* Define to 1 if you have the <sys/ioctl.h> header file. */
+ #define HAVE_SYS_IOCTL_H 1
+@@ -209,7 +209,7 @@
+ #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
+ 
+ /* Define to 1 if you have the <sys/types.h> header file. */
+-#define HAVE_SYS_TYPES_H 1
++/* #undef HAVE_SYS_TYPES_H */
+ 
+ /* Define if the setupterm() function is supported this platform. */
+ /* #undef HAVE_TERMINFO */
+@@ -218,16 +218,16 @@
+ /* #undef HAVE_LIBXAR */
+ 
+ /* Define to 1 if you have the <termios.h> header file. */
+-/* #undef HAVE_TERMIOS_H */
++#define HAVE_TERMIOS_H 1
+ 
+ /* Define to 1 if you have the <unistd.h> header file. */
+ #define HAVE_UNISTD_H 1
+ 
+ /* Define to 1 if you have the <valgrind/valgrind.h> header file. */
+-/* #undef HAVE_VALGRIND_VALGRIND_H */
++/* #define HAVE_VALGRIND_VALGRIND_H 1 */
+ 
+ /* Define to 1 if you have the <zlib.h> header file. */
+-/* #undef HAVE_ZLIB_H */
++#define HAVE_ZLIB_H 1
+ 
+ /* Have host's _alloca */
+ /* #undef HAVE__ALLOCA */
+@@ -292,30 +292,8 @@
+ /* Linker version detected at compile time. */
+ /* #undef HOST_LINK_VERSION */
+ 
+-/* Target triple LLVM will generate code for by default */
+-/* Doesn't use `cmakedefine` because it is allowed to be empty. */
+-#if defined(__x86_64__)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-linux-gnu"
+-#elif defined(__i386__)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "i686-pc-linux-gnu"
+-#elif defined(__arm__)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "armv7-linux-gnueabihf"
+-#elif defined(__aarch64__)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "aarch64-linux-gnu"
+-#elif defined(__mips__)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "mipsel-linux-gnu"
+-#elif defined(__mips64)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "mips64el-linux-gnuabi64"
+-#elif defined(__powerpc64__)
+-#define LLVM_DEFAULT_TARGET_TRIPLE "powerpc64le-unknown-linux-gnu"
+-#elif defined(__riscv) && __riscv_xlen == 64
+-#define LLVM_DEFAULT_TARGET_TRIPLE "riscv64-unknown-linux-gnu"
+-#else
+-#error "unknown architecture"
+-#endif
+-
+ /* Define if zlib compression is available */
+-#define LLVM_ENABLE_ZLIB 0
++/* #define LLVM_ENABLE_ZLIB 1 */
+ 
+ /* Define if overriding target triple is enabled */
+ /* #undef LLVM_TARGET_TRIPLE_ENV */
+@@ -339,10 +317,10 @@
+ #define PACKAGE_NAME "LLVM"
+ 
+ /* Define to the full name and version of this package. */
+-#define PACKAGE_STRING "LLVM 10.0.0"
++#define PACKAGE_STRING "LLVM 11.1.0"
+ 
+ /* Define to the version of this package. */
+-#define PACKAGE_VERSION "10.0.0"
++#define PACKAGE_VERSION "11.1.0"
+ 
+ /* Define to the vendor of this package. */
+ /* #undef PACKAGE_VENDOR */
+@@ -362,9 +340,6 @@
+ /* Whether GlobalISel rule coverage is being collected */
+ #define LLVM_GISEL_COV_ENABLED 0
+ 
+-/* Define if we have z3 and want to build it */
+-#define LLVM_WITH_Z3 1
+-
+ /* Define to the default GlobalISel coverage file prefix */
+ /* #undef LLVM_GISEL_COV_PREFIX */
+ 
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_BUILD.gn b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_BUILD.gn
deleted file mode 100644
index e873916be2..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/BUILD.gn.orig	2020-07-15 19:01:43.000000000 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/BUILD.gn
-@@ -107,6 +107,8 @@ if (is_linux) {
-   llvm_include_dirs += [ "configs/android/include/" ]
- } else if (is_mac) {
-   llvm_include_dirs += [ "configs/darwin/include/" ]
-+} else if (is_netbsd) {
-+  llvm_include_dirs += [ "configs/netbsd/include/" ]
- } else {
-   assert(false, "llvm-7.0 not configured for target platform")
- }
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmParsers.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmParsers.def
deleted file mode 100644
index 51154f92fa..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmParsers.def
+++ /dev/null
@@ -1,45 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/AsmParsers.def.orig	2020-07-23 07:09:16.381598634 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/AsmParsers.def
-@@ -0,0 +1,40 @@
-+/*===- llvm/Config/AsmParsers.def - LLVM Assembly Parsers -------*- C++ -*-===*\
-+|*                                                                            *|
-+|*                     The LLVM Compiler Infrastructure                       *|
-+|*                                                                            *|
-+|* This file is distributed under the University of Illinois Open Source      *|
-+|* License. See LICENSE.TXT for details.                                      *|
-+|*                                                                            *|
-+|*===----------------------------------------------------------------------===*|
-+|*                                                                            *|
-+|* This file enumerates all of the assembly-language parsers                  *|
-+|* supported by this build of LLVM. Clients of this file should define        *|
-+|* the LLVM_ASM_PARSER macro to be a function-like macro with a               *|
-+|* single parameter (the name of the target whose assembly can be             *|
-+|* generated); including this file will then enumerate all of the             *|
-+|* targets with assembly parsers.                                             *|
-+|*                                                                            *|
-+|* The set of targets supported by LLVM is generated at configuration         *|
-+|* time, at which point this header is generated. Do not modify this          *|
-+|* header directly.                                                           *|
-+|*                                                                            *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_ASM_PARSER
-+#  error Please define the macro LLVM_ASM_PARSER(TargetName)
-+#endif
-+
-+LLVM_ASM_PARSER(AArch64)
-+LLVM_ASM_PARSER(AMDGPU)
-+LLVM_ASM_PARSER(ARM)
-+LLVM_ASM_PARSER(BPF)
-+LLVM_ASM_PARSER(Hexagon)
-+LLVM_ASM_PARSER(Lanai)
-+LLVM_ASM_PARSER(Mips)
-+LLVM_ASM_PARSER(PowerPC)
-+LLVM_ASM_PARSER(Sparc)
-+LLVM_ASM_PARSER(SystemZ)
-+LLVM_ASM_PARSER(X86)
-+
-+
-+#undef LLVM_ASM_PARSER
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmPrinters.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmPrinters.def
deleted file mode 100644
index 11264f93ee..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_AsmPrinters.def
+++ /dev/null
@@ -1,48 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/AsmPrinters.def.orig	2020-07-23 07:09:16.381612755 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/AsmPrinters.def
-@@ -0,0 +1,43 @@
-+/*===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===*\
-+|*                                                                            *|
-+|*                     The LLVM Compiler Infrastructure                       *|
-+|*                                                                            *|
-+|* This file is distributed under the University of Illinois Open Source      *|
-+|* License. See LICENSE.TXT for details.                                      *|
-+|*                                                                            *|
-+|*===----------------------------------------------------------------------===*|
-+|*                                                                            *|
-+|* This file enumerates all of the assembly-language printers                 *|
-+|* supported by this build of LLVM. Clients of this file should define        *|
-+|* the LLVM_ASM_PRINTER macro to be a function-like macro with a              *|
-+|* single parameter (the name of the target whose assembly can be             *|
-+|* generated); including this file will then enumerate all of the             *|
-+|* targets with assembly printers.                                            *|
-+|*                                                                            *|
-+|* The set of targets supported by LLVM is generated at configuration         *|
-+|* time, at which point this header is generated. Do not modify this          *|
-+|* header directly.                                                           *|
-+|*                                                                            *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_ASM_PRINTER
-+#  error Please define the macro LLVM_ASM_PRINTER(TargetName)
-+#endif
-+
-+LLVM_ASM_PRINTER(AArch64)
-+LLVM_ASM_PRINTER(AMDGPU)
-+LLVM_ASM_PRINTER(ARM)
-+LLVM_ASM_PRINTER(BPF)
-+LLVM_ASM_PRINTER(Hexagon)
-+LLVM_ASM_PRINTER(Lanai)
-+LLVM_ASM_PRINTER(Mips)
-+LLVM_ASM_PRINTER(MSP430)
-+LLVM_ASM_PRINTER(NVPTX)
-+LLVM_ASM_PRINTER(PowerPC)
-+LLVM_ASM_PRINTER(Sparc)
-+LLVM_ASM_PRINTER(SystemZ)
-+LLVM_ASM_PRINTER(X86)
-+LLVM_ASM_PRINTER(XCore)
-+
-+
-+#undef LLVM_ASM_PRINTER
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Disassemblers.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Disassemblers.def
deleted file mode 100644
index 452aa2976b..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Disassemblers.def
+++ /dev/null
@@ -1,46 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/Disassemblers.def.orig	2020-07-23 07:09:16.381623375 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/Disassemblers.def
-@@ -0,0 +1,41 @@
-+/*===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===*\
-+|*                                                                            *|
-+|*                     The LLVM Compiler Infrastructure                       *|
-+|*                                                                            *|
-+|* This file is distributed under the University of Illinois Open Source      *|
-+|* License. See LICENSE.TXT for details.                                      *|
-+|*                                                                            *|
-+|*===----------------------------------------------------------------------===*|
-+|*                                                                            *|
-+|* This file enumerates all of the assembly-language parsers                  *|
-+|* supported by this build of LLVM. Clients of this file should define        *|
-+|* the LLVM_DISASSEMBLER macro to be a function-like macro with a             *|
-+|* single parameter (the name of the target whose assembly can be             *|
-+|* generated); including this file will then enumerate all of the             *|
-+|* targets with assembly parsers.                                             *|
-+|*                                                                            *|
-+|* The set of targets supported by LLVM is generated at configuration         *|
-+|* time, at which point this header is generated. Do not modify this          *|
-+|* header directly.                                                           *|
-+|*                                                                            *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_DISASSEMBLER
-+#  error Please define the macro LLVM_DISASSEMBLER(TargetName)
-+#endif
-+
-+LLVM_DISASSEMBLER(AArch64)
-+LLVM_DISASSEMBLER(AMDGPU)
-+LLVM_DISASSEMBLER(ARM)
-+LLVM_DISASSEMBLER(BPF)
-+LLVM_DISASSEMBLER(Hexagon)
-+LLVM_DISASSEMBLER(Lanai)
-+LLVM_DISASSEMBLER(Mips)
-+LLVM_DISASSEMBLER(PowerPC)
-+LLVM_DISASSEMBLER(Sparc)
-+LLVM_DISASSEMBLER(SystemZ)
-+LLVM_DISASSEMBLER(X86)
-+LLVM_DISASSEMBLER(XCore)
-+
-+
-+#undef LLVM_DISASSEMBLER
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Targets.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Targets.def
deleted file mode 100644
index 80636bf9de..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_Targets.def
+++ /dev/null
@@ -1,47 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/Targets.def.orig	2020-07-23 07:09:16.381633345 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/Targets.def
-@@ -0,0 +1,42 @@
-+/*===- llvm/Config/Targets.def - LLVM Target Architectures ------*- C++ -*-===*\
-+|*                                                                            *|
-+|*                     The LLVM Compiler Infrastructure                       *|
-+|*                                                                            *|
-+|* This file is distributed under the University of Illinois Open Source      *|
-+|* License. See LICENSE.TXT for details.                                      *|
-+|*                                                                            *|
-+|*===----------------------------------------------------------------------===*|
-+|*                                                                            *|
-+|* This file enumerates all of the target architectures supported by          *|
-+|* this build of LLVM. Clients of this file should define the                 *|
-+|* LLVM_TARGET macro to be a function-like macro with a single                *|
-+|* parameter (the name of the target); including this file will then          *|
-+|* enumerate all of the targets.                                              *|
-+|*                                                                            *|
-+|* The set of targets supported by LLVM is generated at configuration         *|
-+|* time, at which point this header is generated. Do not modify this          *|
-+|* header directly.                                                           *|
-+|*                                                                            *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_TARGET
-+#  error Please define the macro LLVM_TARGET(TargetName)
-+#endif
-+
-+LLVM_TARGET(AArch64)
-+LLVM_TARGET(AMDGPU)
-+LLVM_TARGET(ARM)
-+LLVM_TARGET(BPF)
-+LLVM_TARGET(Hexagon)
-+LLVM_TARGET(Lanai)
-+LLVM_TARGET(Mips)
-+LLVM_TARGET(MSP430)
-+LLVM_TARGET(NVPTX)
-+LLVM_TARGET(PowerPC)
-+LLVM_TARGET(Sparc)
-+LLVM_TARGET(SystemZ)
-+LLVM_TARGET(X86)
-+LLVM_TARGET(XCore)
-+
-+
-+#undef LLVM_TARGET
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_abi-breaking.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_abi-breaking.h
deleted file mode 100644
index b12c395683..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_abi-breaking.h
+++ /dev/null
@@ -1,55 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/abi-breaking.h.orig	2020-07-23 07:09:16.381643815 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/abi-breaking.h
-@@ -0,0 +1,50 @@
-+/*===------- llvm/Config/abi-breaking.h - llvm configuration -------*- C -*-===*/
-+/*                                                                            */
-+/*                     The LLVM Compiler Infrastructure                       */
-+/*                                                                            */
-+/* This file is distributed under the University of Illinois Open Source      */
-+/* License. See LICENSE.TXT for details.                                      */
-+/*                                                                            */
-+/*===----------------------------------------------------------------------===*/
-+
-+/* This file controls the C++ ABI break introduced in LLVM public header. */
-+
-+#ifndef LLVM_ABI_BREAKING_CHECKS_H
-+#define LLVM_ABI_BREAKING_CHECKS_H
-+
-+/* Define to enable checks that alter the LLVM C++ ABI */
-+#define LLVM_ENABLE_ABI_BREAKING_CHECKS 1
-+
-+/* Define to enable reverse iteration of unordered llvm containers */
-+#define LLVM_ENABLE_REVERSE_ITERATION 0
-+
-+/* Allow selectively disabling link-time mismatch checking so that header-only
-+   ADT content from LLVM can be used without linking libSupport. */
-+#if !LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
-+
-+// ABI_BREAKING_CHECKS protection: provides link-time failure when clients build
-+// mismatch with LLVM
-+#if defined(_MSC_VER)
-+// Use pragma with MSVC
-+#define LLVM_XSTR(s) LLVM_STR(s)
-+#define LLVM_STR(s) #s
-+#pragma detect_mismatch("LLVM_ENABLE_ABI_BREAKING_CHECKS", LLVM_XSTR(LLVM_ENABLE_ABI_BREAKING_CHECKS))
-+#undef LLVM_XSTR
-+#undef LLVM_STR
-+#elif defined(_WIN32) || defined(__CYGWIN__) // Win32 w/o #pragma detect_mismatch
-+// FIXME: Implement checks without weak.
-+#elif defined(__cplusplus)
-+namespace llvm {
-+#if LLVM_ENABLE_ABI_BREAKING_CHECKS
-+extern int EnableABIBreakingChecks;
-+__attribute__((weak, visibility ("hidden"))) int *VerifyEnableABIBreakingChecks = &EnableABIBreakingChecks;
-+#else
-+extern int DisableABIBreakingChecks;
-+__attribute__((weak, visibility ("hidden"))) int *VerifyDisableABIBreakingChecks = &DisableABIBreakingChecks;
-+#endif
-+}
-+#endif // _MSC_VER
-+
-+#endif // LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_config.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_config.h
deleted file mode 100644
index 33080f21cb..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_config.h
+++ /dev/null
@@ -1,349 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/config.h.orig	2020-07-23 07:09:16.381653744 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/config.h
-@@ -0,0 +1,344 @@
-+#ifndef CONFIG_H
-+#define CONFIG_H
-+
-+/* Exported configuration */
-+#include "llvm/Config/llvm-config.h"
-+
-+/* Bug report URL. */
-+#define BUG_REPORT_URL "https://bugs.llvm.org/";
-+
-+/* Define to 1 to enable backtraces, and to 0 otherwise. */
-+#define ENABLE_BACKTRACES 1
-+
-+/* Define to 1 to enable crash overrides, and to 0 otherwise. */
-+#define ENABLE_CRASH_OVERRIDES 1
-+
-+/* Define to 1 if you have the `backtrace' function. */
-+#define HAVE_BACKTRACE TRUE
-+
-+#define BACKTRACE_HEADER <execinfo.h>
-+
-+/* Define to 1 if you have the <CrashReporterClient.h> header file. */
-+/* #undef HAVE_CRASHREPORTERCLIENT_H */
-+
-+/* can use __crashreporter_info__ */
-+#define HAVE_CRASHREPORTER_INFO 0
-+
-+/* Define to 1 if you have the declaration of `arc4random', and to 0 if you
-+   don't. */
-+#define HAVE_DECL_ARC4RANDOM 1
-+
-+/* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you
-+   don't. */
-+#define HAVE_DECL_FE_ALL_EXCEPT 1
-+
-+/* Define to 1 if you have the declaration of `FE_INEXACT', and to 0 if you
-+   don't. */
-+#define HAVE_DECL_FE_INEXACT 1
-+
-+/* Define to 1 if you have the declaration of `strerror_s', and to 0 if you
-+   don't. */
-+#define HAVE_DECL_STRERROR_S 0
-+
-+/* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */
-+#define LLVM_ENABLE_DIA_SDK 0
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#define HAVE_DLFCN_H 1
-+
-+/* Define if dlopen() is available on this platform. */
-+#define HAVE_DLOPEN 1
-+
-+/* Define if dladdr() is available on this platform. */
-+#define HAVE_DLADDR 1
-+
-+/* Define to 1 if you have the <errno.h> header file. */
-+#define HAVE_ERRNO_H 1
-+
-+/* Define to 1 if you have the <fcntl.h> header file. */
-+#define HAVE_FCNTL_H 1
-+
-+/* Define to 1 if you have the <fenv.h> header file. */
-+#define HAVE_FENV_H 1
-+
-+/* Define if libffi is available on this platform. */
-+/* #undef HAVE_FFI_CALL */
-+
-+/* Define to 1 if you have the <ffi/ffi.h> header file. */
-+/* #undef HAVE_FFI_FFI_H */
-+
-+/* Define to 1 if you have the <ffi.h> header file. */
-+/* #undef HAVE_FFI_H */
-+
-+/* Define to 1 if you have the `futimens' function. */
-+#define HAVE_FUTIMENS 1
-+
-+/* Define to 1 if you have the `futimes' function. */
-+#define HAVE_FUTIMES 1
-+
-+/* Define to 1 if you have the `getpagesize' function. */
-+#define HAVE_GETPAGESIZE 1
-+
-+/* Define to 1 if you have the `getrlimit' function. */
-+#define HAVE_GETRLIMIT 1
-+
-+/* Define to 1 if you have the `getrusage' function. */
-+#define HAVE_GETRUSAGE 1
-+
-+/* Define to 1 if you have the `isatty' function. */
-+#define HAVE_ISATTY 1
-+
-+/* Define to 1 if you have the `edit' library (-ledit). */
-+#define HAVE_LIBEDIT 1
-+
-+/* Define to 1 if you have the `pfm' library (-lpfm). */
-+/* #undef HAVE_LIBPFM */
-+
-+/* Define to 1 if you have the `psapi' library (-lpsapi). */
-+/* #undef HAVE_LIBPSAPI */
-+
-+/* Define to 1 if you have the `pthread' library (-lpthread). */
-+#define HAVE_LIBPTHREAD 1
-+
-+/* Define to 1 if you have the `pthread_getname_np' function. */
-+#define HAVE_PTHREAD_GETNAME_NP 1
-+
-+/* Define to 1 if you have the `pthread_setname_np' function. */
-+#define HAVE_PTHREAD_SETNAME_NP 1
-+
-+/* Define to 1 if you have the `z' library (-lz). */
-+#define HAVE_LIBZ 1
-+
-+/* Define to 1 if you have the <link.h> header file. */
-+#define HAVE_LINK_H 1
-+
-+/* Define to 1 if you have the `lseek64' function. */
-+/* #undef HAVE_LSEEK64 */
-+
-+/* Define to 1 if you have the <mach/mach.h> header file. */
-+/* #undef HAVE_MACH_MACH_H */
-+
-+/* Define to 1 if you have the `mallctl' function. */
-+/* #undef HAVE_MALLCTL */
-+
-+/* Define to 1 if you have the `mallinfo' function. */
-+/* #undef HAVE_MALLINFO */
-+
-+/* Define to 1 if you have the <malloc.h> header file. */
-+#define HAVE_MALLOC_H 1
-+
-+/* Define to 1 if you have the <malloc/malloc.h> header file. */
-+/* #undef HAVE_MALLOC_MALLOC_H */
-+
-+/* Define to 1 if you have the `malloc_zone_statistics' function. */
-+/* #undef HAVE_MALLOC_ZONE_STATISTICS */
-+
-+/* Define to 1 if you have the `posix_fallocate' function. */
-+#define HAVE_POSIX_FALLOCATE 1
-+
-+/* Define to 1 if you have the `posix_spawn' function. */
-+#define HAVE_POSIX_SPAWN 1
-+
-+/* Define to 1 if you have the `pread' function. */
-+#define HAVE_PREAD 1
-+
-+/* Have pthread_getspecific */
-+#define HAVE_PTHREAD_GETSPECIFIC 1
-+
-+/* Define to 1 if you have the <pthread.h> header file. */
-+#define HAVE_PTHREAD_H 1
-+
-+/* Have pthread_mutex_lock */
-+#define HAVE_PTHREAD_MUTEX_LOCK 1
-+
-+/* Have pthread_rwlock_init */
-+#define HAVE_PTHREAD_RWLOCK_INIT 1
-+
-+/* Define to 1 if you have the `realpath' function. */
-+#define HAVE_REALPATH 1
-+
-+/* Define to 1 if you have the `sbrk' function. */
-+#define HAVE_SBRK 1
-+
-+/* Define to 1 if you have the `setenv' function. */
-+#define HAVE_SETENV 1
-+
-+/* Define to 1 if you have the `sched_getaffinity' function. */
-+/* #undef HAVE_SCHED_GETAFFINITY */
-+
-+/* Define to 1 if you have the `CPU_COUNT' macro. */
-+/* #undef HAVE_CPU_COUNT */
-+
-+/* Define to 1 if you have the `setrlimit' function. */
-+#define HAVE_SETRLIMIT 1
-+
-+/* Define to 1 if you have the `sigaltstack' function. */
-+#define HAVE_SIGALTSTACK 1
-+
-+/* Define to 1 if you have the <signal.h> header file. */
-+#define HAVE_SIGNAL_H 1
-+
-+/* Define to 1 if you have the `strerror' function. */
-+#define HAVE_STRERROR 1
-+
-+/* Define to 1 if you have the `strerror_r' function. */
-+#define HAVE_STRERROR_R 1
-+
-+/* Define to 1 if you have the `sysconf' function. */
-+#define HAVE_SYSCONF 1
-+
-+/* Define to 1 if you have the <sys/ioctl.h> header file. */
-+#define HAVE_SYS_IOCTL_H 1
-+
-+/* Define to 1 if you have the <sys/mman.h> header file. */
-+#define HAVE_SYS_MMAN_H 1
-+
-+/* Define to 1 if you have the <sys/param.h> header file. */
-+#define HAVE_SYS_PARAM_H 1
-+
-+/* Define to 1 if you have the <sys/resource.h> header file. */
-+#define HAVE_SYS_RESOURCE_H 1
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#define HAVE_SYS_STAT_H 1
-+
-+/* Define to 1 if you have the <sys/time.h> header file. */
-+#define HAVE_SYS_TIME_H 1
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#define HAVE_SYS_TYPES_H 1
-+
-+/* Define if the setupterm() function is supported this platform. */
-+#define HAVE_TERMINFO 1
-+
-+/* Define if the xar_open() function is supported this platform. */
-+/* #undef HAVE_LIBXAR */
-+
-+/* Define to 1 if you have the <termios.h> header file. */
-+#define HAVE_TERMIOS_H 1
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#define HAVE_UNISTD_H 1
-+
-+/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
-+/* #undef HAVE_VALGRIND_VALGRIND_H */
-+
-+/* Define to 1 if you have the <zlib.h> header file. */
-+#define HAVE_ZLIB_H 1
-+
-+/* Have host's _alloca */
-+/* #undef HAVE__ALLOCA */
-+
-+/* Define to 1 if you have the `_chsize_s' function. */
-+/* #undef HAVE__CHSIZE_S */
-+
-+/* Define to 1 if you have the `_Unwind_Backtrace' function. */
-+#define HAVE__UNWIND_BACKTRACE 1
-+
-+/* Have host's __alloca */
-+/* #undef HAVE___ALLOCA */
-+
-+/* Have host's __ashldi3 */
-+/* #undef HAVE___ASHLDI3 */
-+
-+/* Have host's __ashrdi3 */
-+/* #undef HAVE___ASHRDI3 */
-+
-+/* Have host's __chkstk */
-+/* #undef HAVE___CHKSTK */
-+
-+/* Have host's __chkstk_ms */
-+/* #undef HAVE___CHKSTK_MS */
-+
-+/* Have host's __cmpdi2 */
-+/* #undef HAVE___CMPDI2 */
-+
-+/* Have host's __divdi3 */
-+/* #undef HAVE___DIVDI3 */
-+
-+/* Have host's __fixdfdi */
-+/* #undef HAVE___FIXDFDI */
-+
-+/* Have host's __fixsfdi */
-+/* #undef HAVE___FIXSFDI */
-+
-+/* Have host's __floatdidf */
-+/* #undef HAVE___FLOATDIDF */
-+
-+/* Have host's __lshrdi3 */
-+/* #undef HAVE___LSHRDI3 */
-+
-+/* Have host's __main */
-+/* #undef HAVE___MAIN */
-+
-+/* Have host's __moddi3 */
-+/* #undef HAVE___MODDI3 */
-+
-+/* Have host's __udivdi3 */
-+/* #undef HAVE___UDIVDI3 */
-+
-+/* Have host's __umoddi3 */
-+/* #undef HAVE___UMODDI3 */
-+
-+/* Have host's ___chkstk */
-+/* #undef HAVE____CHKSTK */
-+
-+/* Have host's ___chkstk_ms */
-+/* #undef HAVE____CHKSTK_MS */
-+
-+/* Linker version detected at compile time. */
-+/* #undef HOST_LINK_VERSION */
-+
-+/* Target triple LLVM will generate code for by default */
-+/* Doesn't use `cmakedefine` because it is allowed to be empty. */
-+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-netbsd9.99.69"
-+
-+/* Define if zlib compression is available */
-+#define LLVM_ENABLE_ZLIB 1
-+
-+/* Define if overriding target triple is enabled */
-+/* #undef LLVM_TARGET_TRIPLE_ENV */
-+
-+/* LLVM version information */
-+/* #undef LLVM_VERSION_INFO */
-+
-+/* Whether tools show host and target info when invoked with --version */
-+#define LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO 1
-+
-+/* Define if libxml2 is supported on this platform. */
-+/* #undef LLVM_LIBXML2_ENABLED */
-+
-+/* Define to the extension used for shared libraries, say, ".so". */
-+#define LTDL_SHLIB_EXT ".so"
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#define PACKAGE_BUGREPORT "https://bugs.llvm.org/";
-+
-+/* Define to the full name of this package. */
-+#define PACKAGE_NAME "LLVM"
-+
-+/* Define to the full name and version of this package. */
-+#define PACKAGE_STRING "LLVM 7.0.1"
-+
-+/* Define to the version of this package. */
-+#define PACKAGE_VERSION "7.0.1"
-+
-+/* Define to the vendor of this package. */
-+/* #undef PACKAGE_VENDOR */
-+
-+/* Define as the return type of signal handlers (`int' or `void'). */
-+#define RETSIGTYPE void
-+
-+/* Define to a function implementing stricmp */
-+/* #undef stricmp */
-+
-+/* Define to a function implementing strdup */
-+/* #undef strdup */
-+
-+/* Whether GlobalISel rule coverage is being collected */
-+#define LLVM_GISEL_COV_ENABLED 0
-+
-+/* Define to the default GlobalISel coverage file prefix */
-+/* #undef LLVM_GISEL_COV_PREFIX */
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_llvm-config.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_llvm-config.h
deleted file mode 100644
index 41e2bb6d5b..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-7.0_configs_netbsd_include_llvm_Config_llvm-config.h
+++ /dev/null
@@ -1,90 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/llvm-config.h.orig	2020-07-23 07:09:16.381666223 +0000
-+++ third_party/swiftshader/third_party/llvm-7.0/configs/netbsd/include/llvm/Config/llvm-config.h
-@@ -0,0 +1,85 @@
-+/*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/
-+/*                                                                            */
-+/*                     The LLVM Compiler Infrastructure                       */
-+/*                                                                            */
-+/* This file is distributed under the University of Illinois Open Source      */
-+/* License. See LICENSE.TXT for details.                                      */
-+/*                                                                            */
-+/*===----------------------------------------------------------------------===*/
-+
-+/* This file enumerates variables from the LLVM configuration so that they
-+   can be in exported headers and won't override package specific directives.
-+   This is a C header that can be included in the llvm-c headers. */
-+
-+#ifndef LLVM_CONFIG_H
-+#define LLVM_CONFIG_H
-+
-+/* Define if LLVM_ENABLE_DUMP is enabled */
-+/* #undef LLVM_ENABLE_DUMP */
-+
-+/* Define if we link Polly to the tools */
-+/* #undef LINK_POLLY_INTO_TOOLS */
-+
-+/* Target triple LLVM will generate code for by default */
-+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-netbsd9.99.69"
-+
-+/* Define if threads enabled */
-+#define LLVM_ENABLE_THREADS 1
-+
-+/* Has gcc/MSVC atomic intrinsics */
-+#define LLVM_HAS_ATOMICS 1
-+
-+/* Host triple LLVM will be executed on */
-+#define LLVM_HOST_TRIPLE "x86_64-unknown-netbsd9.99.69"
-+
-+/* LLVM architecture name for the native architecture, if available */
-+#define LLVM_NATIVE_ARCH X86
-+
-+/* LLVM name for the native AsmParser init function, if available */
-+#define LLVM_NATIVE_ASMPARSER LLVMInitializeX86AsmParser
-+
-+/* LLVM name for the native AsmPrinter init function, if available */
-+#define LLVM_NATIVE_ASMPRINTER LLVMInitializeX86AsmPrinter
-+
-+/* LLVM name for the native Disassembler init function, if available */
-+#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeX86Disassembler
-+
-+/* LLVM name for the native Target init function, if available */
-+#define LLVM_NATIVE_TARGET LLVMInitializeX86Target
-+
-+/* LLVM name for the native TargetInfo init function, if available */
-+#define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo
-+
-+/* LLVM name for the native target MC init function, if available */
-+#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC
-+
-+/* Define if this is Unixish platform */
-+#define LLVM_ON_UNIX 1
-+
-+/* Define if we have the Intel JIT API runtime support library */
-+#define LLVM_USE_INTEL_JITEVENTS 0
-+
-+/* Define if we have the oprofile JIT-support library */
-+#define LLVM_USE_OPROFILE 0
-+
-+/* Define if we have the perf JIT-support library */
-+#define LLVM_USE_PERF 0
-+
-+/* Major version of the LLVM API */
-+#define LLVM_VERSION_MAJOR 7
-+
-+/* Minor version of the LLVM API */
-+#define LLVM_VERSION_MINOR 0
-+
-+/* Patch version of the LLVM API */
-+#define LLVM_VERSION_PATCH 1
-+
-+/* LLVM version string */
-+#define LLVM_VERSION_STRING "7.0.1"
-+
-+/* Whether LLVM records statistics for use with GetStatistics(),
-+ * PrintStatistics() or PrintStatisticsJSON()
-+ */
-+#define LLVM_FORCE_ENABLE_STATS 0
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h
new file mode 100644
index 0000000000..2652054619
--- /dev/null
+++ b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h.orig	2024-07-24 02:45:44.667371000 +0000
++++ third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
+@@ -5,8 +5,6 @@
+ #include "llvm/Config/llvm-config.h"
+ 
+ /* For detecting __GLIBC__ usage */
+-#include <features.h>
+-
+ /* Bug report URL. */
+ #define BUG_REPORT_URL "http://llvm.org/bugs/";
+ 
+@@ -27,7 +25,7 @@
+ 
+ /* Define to 1 if you have the declaration of `arc4random', and to 0 if you
+    don't. */
+-#define HAVE_DECL_ARC4RANDOM 0
++#define HAVE_DECL_ARC4RANDOM 1
+ 
+ /* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you
+    don't. */
+@@ -124,7 +122,7 @@
+ #define HAVE_LINK_H 1
+ 
+ /* Define to 1 if you have the `lseek64' function. */
+-#define HAVE_LSEEK64 1
++/* #define HAVE_LSEEK64 */
+ 
+ /* Define to 1 if you have the <mach/mach.h> header file. */
+ /* #undef HAVE_MACH_MACH_H */
+@@ -133,7 +131,7 @@
+ /* #undef HAVE_MALLCTL */
+ 
+ /* Define to 1 if you have the `mallinfo' function. */
+-#define HAVE_MALLINFO 1
++/* #define HAVE_MALLINFO */
+ 
+ /* Some projects using SwiftShader bypass cmake (eg Chromium via gn) */
+ /* so we need to check glibc version for the new API to be safe */
+@@ -163,7 +161,7 @@
+ /* #undef HAVE_NDIR_H */
+ 
+ /* Define to 1 if you have the `posix_fallocate' function. */
+-#define HAVE_POSIX_FALLOCATE 1
++/* #define HAVE_POSIX_FALLOCATE */
+ 
+ /* Define to 1 if you have the `posix_spawn' function. */
+ #define HAVE_POSIX_SPAWN 1
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_CMakeDirectoryInformation.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_CMakeDirectoryInformation.cmake
deleted file mode 100644
index 974c53a3c3..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_CMakeDirectoryInformation.cmake
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/CMakeFiles/CMakeDirectoryInformation.cmake.orig	2020-07-23 08:46:21.567619938 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/CMakeFiles/CMakeDirectoryInformation.cmake
-@@ -0,0 +1,16 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Relative path conversion top directories.
-+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ryoon/tmp4/llvm-7.0.1.src")
-+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ryoon/tmp4/build")
-+
-+# Force unix paths in dependencies.
-+set(CMAKE_FORCE_UNIX_PATHS 1)
-+
-+
-+# The C and CXX include file regular expressions for this directory.
-+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
-+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
-+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
-+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_progress.marks b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_progress.marks
deleted file mode 100644
index 4eeba04077..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_CMakeFiles_progress.marks
+++ /dev/null
@@ -1,6 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/CMakeFiles/progress.marks.orig	2020-07-23 08:46:21.571912048 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/CMakeFiles/progress.marks
-@@ -0,0 +1 @@
-+0
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmParsers.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmParsers.def
deleted file mode 100644
index fe1089c992..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmParsers.def
+++ /dev/null
@@ -1,45 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/AsmParsers.def.orig	2020-07-23 08:46:21.541246496 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/AsmParsers.def
-@@ -0,0 +1,40 @@
-+/*===- llvm/Config/AsmParsers.def - LLVM Assembly Parsers -------*- C++ -*-===*\
-+|*                                                                            *|
-+|*                     The LLVM Compiler Infrastructure                       *|
-+|*                                                                            *|
-+|* This file is distributed under the University of Illinois Open Source      *|
-+|* License. See LICENSE.TXT for details.                                      *|
-+|*                                                                            *|
-+|*===----------------------------------------------------------------------===*|
-+|*                                                                            *|
-+|* This file enumerates all of the assembly-language parsers                  *|
-+|* supported by this build of LLVM. Clients of this file should define        *|
-+|* the LLVM_ASM_PARSER macro to be a function-like macro with a               *|
-+|* single parameter (the name of the target whose assembly can be             *|
-+|* generated); including this file will then enumerate all of the             *|
-+|* targets with assembly parsers.                                             *|
-+|*                                                                            *|
-+|* The set of targets supported by LLVM is generated at configuration         *|
-+|* time, at which point this header is generated. Do not modify this          *|
-+|* header directly.                                                           *|
-+|*                                                                            *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_ASM_PARSER
-+#  error Please define the macro LLVM_ASM_PARSER(TargetName)
-+#endif
-+
-+LLVM_ASM_PARSER(AArch64)
-+LLVM_ASM_PARSER(AMDGPU)
-+LLVM_ASM_PARSER(ARM)
-+LLVM_ASM_PARSER(BPF)
-+LLVM_ASM_PARSER(Hexagon)
-+LLVM_ASM_PARSER(Lanai)
-+LLVM_ASM_PARSER(Mips)
-+LLVM_ASM_PARSER(PowerPC)
-+LLVM_ASM_PARSER(Sparc)
-+LLVM_ASM_PARSER(SystemZ)
-+LLVM_ASM_PARSER(X86)
-+
-+
-+#undef LLVM_ASM_PARSER
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmPrinters.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmPrinters.def
deleted file mode 100644
index 4afadef5d9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_AsmPrinters.def
+++ /dev/null
@@ -1,48 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/AsmPrinters.def.orig	2020-07-23 08:46:21.536844743 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/AsmPrinters.def
-@@ -0,0 +1,43 @@
-+/*===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===*\
-+|*                                                                            *|
-+|*                     The LLVM Compiler Infrastructure                       *|
-+|*                                                                            *|
-+|* This file is distributed under the University of Illinois Open Source      *|
-+|* License. See LICENSE.TXT for details.                                      *|
-+|*                                                                            *|
-+|*===----------------------------------------------------------------------===*|
-+|*                                                                            *|
-+|* This file enumerates all of the assembly-language printers                 *|
-+|* supported by this build of LLVM. Clients of this file should define        *|
-+|* the LLVM_ASM_PRINTER macro to be a function-like macro with a              *|
-+|* single parameter (the name of the target whose assembly can be             *|
-+|* generated); including this file will then enumerate all of the             *|
-+|* targets with assembly printers.                                            *|
-+|*                                                                            *|
-+|* The set of targets supported by LLVM is generated at configuration         *|
-+|* time, at which point this header is generated. Do not modify this          *|
-+|* header directly.                                                           *|
-+|*                                                                            *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_ASM_PRINTER
-+#  error Please define the macro LLVM_ASM_PRINTER(TargetName)
-+#endif
-+
-+LLVM_ASM_PRINTER(AArch64)
-+LLVM_ASM_PRINTER(AMDGPU)
-+LLVM_ASM_PRINTER(ARM)
-+LLVM_ASM_PRINTER(BPF)
-+LLVM_ASM_PRINTER(Hexagon)
-+LLVM_ASM_PRINTER(Lanai)
-+LLVM_ASM_PRINTER(Mips)
-+LLVM_ASM_PRINTER(MSP430)
-+LLVM_ASM_PRINTER(NVPTX)
-+LLVM_ASM_PRINTER(PowerPC)
-+LLVM_ASM_PRINTER(Sparc)
-+LLVM_ASM_PRINTER(SystemZ)
-+LLVM_ASM_PRINTER(X86)
-+LLVM_ASM_PRINTER(XCore)
-+
-+
-+#undef LLVM_ASM_PRINTER
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Disassemblers.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Disassemblers.def
deleted file mode 100644
index f690e9e5bb..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Disassemblers.def
+++ /dev/null
@@ -1,46 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/Disassemblers.def.orig	2020-07-23 08:46:21.532406406 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/Disassemblers.def
-@@ -0,0 +1,41 @@
-+/*===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===*\
-+|*                                                                            *|
-+|*                     The LLVM Compiler Infrastructure                       *|
-+|*                                                                            *|
-+|* This file is distributed under the University of Illinois Open Source      *|
-+|* License. See LICENSE.TXT for details.                                      *|
-+|*                                                                            *|
-+|*===----------------------------------------------------------------------===*|
-+|*                                                                            *|
-+|* This file enumerates all of the assembly-language parsers                  *|
-+|* supported by this build of LLVM. Clients of this file should define        *|
-+|* the LLVM_DISASSEMBLER macro to be a function-like macro with a             *|
-+|* single parameter (the name of the target whose assembly can be             *|
-+|* generated); including this file will then enumerate all of the             *|
-+|* targets with assembly parsers.                                             *|
-+|*                                                                            *|
-+|* The set of targets supported by LLVM is generated at configuration         *|
-+|* time, at which point this header is generated. Do not modify this          *|
-+|* header directly.                                                           *|
-+|*                                                                            *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_DISASSEMBLER
-+#  error Please define the macro LLVM_DISASSEMBLER(TargetName)
-+#endif
-+
-+LLVM_DISASSEMBLER(AArch64)
-+LLVM_DISASSEMBLER(AMDGPU)
-+LLVM_DISASSEMBLER(ARM)
-+LLVM_DISASSEMBLER(BPF)
-+LLVM_DISASSEMBLER(Hexagon)
-+LLVM_DISASSEMBLER(Lanai)
-+LLVM_DISASSEMBLER(Mips)
-+LLVM_DISASSEMBLER(PowerPC)
-+LLVM_DISASSEMBLER(Sparc)
-+LLVM_DISASSEMBLER(SystemZ)
-+LLVM_DISASSEMBLER(X86)
-+LLVM_DISASSEMBLER(XCore)
-+
-+
-+#undef LLVM_DISASSEMBLER
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Targets.def b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Targets.def
deleted file mode 100644
index fba845d19c..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_Targets.def
+++ /dev/null
@@ -1,47 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/Targets.def.orig	2020-07-23 08:46:21.550067128 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/Targets.def
-@@ -0,0 +1,42 @@
-+/*===- llvm/Config/Targets.def - LLVM Target Architectures ------*- C++ -*-===*\
-+|*                                                                            *|
-+|*                     The LLVM Compiler Infrastructure                       *|
-+|*                                                                            *|
-+|* This file is distributed under the University of Illinois Open Source      *|
-+|* License. See LICENSE.TXT for details.                                      *|
-+|*                                                                            *|
-+|*===----------------------------------------------------------------------===*|
-+|*                                                                            *|
-+|* This file enumerates all of the target architectures supported by          *|
-+|* this build of LLVM. Clients of this file should define the                 *|
-+|* LLVM_TARGET macro to be a function-like macro with a single                *|
-+|* parameter (the name of the target); including this file will then          *|
-+|* enumerate all of the targets.                                              *|
-+|*                                                                            *|
-+|* The set of targets supported by LLVM is generated at configuration         *|
-+|* time, at which point this header is generated. Do not modify this          *|
-+|* header directly.                                                           *|
-+|*                                                                            *|
-+\*===----------------------------------------------------------------------===*/
-+
-+#ifndef LLVM_TARGET
-+#  error Please define the macro LLVM_TARGET(TargetName)
-+#endif
-+
-+LLVM_TARGET(AArch64)
-+LLVM_TARGET(AMDGPU)
-+LLVM_TARGET(ARM)
-+LLVM_TARGET(BPF)
-+LLVM_TARGET(Hexagon)
-+LLVM_TARGET(Lanai)
-+LLVM_TARGET(Mips)
-+LLVM_TARGET(MSP430)
-+LLVM_TARGET(NVPTX)
-+LLVM_TARGET(PowerPC)
-+LLVM_TARGET(Sparc)
-+LLVM_TARGET(SystemZ)
-+LLVM_TARGET(X86)
-+LLVM_TARGET(XCore)
-+
-+
-+#undef LLVM_TARGET
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_abi-breaking.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_abi-breaking.h
deleted file mode 100644
index 3eec822bf9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_abi-breaking.h
+++ /dev/null
@@ -1,55 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/abi-breaking.h.orig	2020-07-23 08:46:21.558989086 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/abi-breaking.h
-@@ -0,0 +1,50 @@
-+/*===------- llvm/Config/abi-breaking.h - llvm configuration -------*- C -*-===*/
-+/*                                                                            */
-+/*                     The LLVM Compiler Infrastructure                       */
-+/*                                                                            */
-+/* This file is distributed under the University of Illinois Open Source      */
-+/* License. See LICENSE.TXT for details.                                      */
-+/*                                                                            */
-+/*===----------------------------------------------------------------------===*/
-+
-+/* This file controls the C++ ABI break introduced in LLVM public header. */
-+
-+#ifndef LLVM_ABI_BREAKING_CHECKS_H
-+#define LLVM_ABI_BREAKING_CHECKS_H
-+
-+/* Define to enable checks that alter the LLVM C++ ABI */
-+#define LLVM_ENABLE_ABI_BREAKING_CHECKS 1
-+
-+/* Define to enable reverse iteration of unordered llvm containers */
-+#define LLVM_ENABLE_REVERSE_ITERATION 0
-+
-+/* Allow selectively disabling link-time mismatch checking so that header-only
-+   ADT content from LLVM can be used without linking libSupport. */
-+#if !LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
-+
-+// ABI_BREAKING_CHECKS protection: provides link-time failure when clients build
-+// mismatch with LLVM
-+#if defined(_MSC_VER)
-+// Use pragma with MSVC
-+#define LLVM_XSTR(s) LLVM_STR(s)
-+#define LLVM_STR(s) #s
-+#pragma detect_mismatch("LLVM_ENABLE_ABI_BREAKING_CHECKS", LLVM_XSTR(LLVM_ENABLE_ABI_BREAKING_CHECKS))
-+#undef LLVM_XSTR
-+#undef LLVM_STR
-+#elif defined(_WIN32) || defined(__CYGWIN__) // Win32 w/o #pragma detect_mismatch
-+// FIXME: Implement checks without weak.
-+#elif defined(__cplusplus)
-+namespace llvm {
-+#if LLVM_ENABLE_ABI_BREAKING_CHECKS
-+extern int EnableABIBreakingChecks;
-+__attribute__((weak, visibility ("hidden"))) int *VerifyEnableABIBreakingChecks = &EnableABIBreakingChecks;
-+#else
-+extern int DisableABIBreakingChecks;
-+__attribute__((weak, visibility ("hidden"))) int *VerifyDisableABIBreakingChecks = &DisableABIBreakingChecks;
-+#endif
-+}
-+#endif // _MSC_VER
-+
-+#endif // LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_config.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_config.h
deleted file mode 100644
index a8897474f4..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_config.h
+++ /dev/null
@@ -1,351 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/config.h.orig	2020-07-23 08:56:22.120075107 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/config.h
-@@ -0,0 +1,346 @@
-+#ifndef CONFIG_H
-+#define CONFIG_H
-+
-+/* Exported configuration */
-+#include "llvm/Config/llvm-config.h"
-+
-+/* Bug report URL. */
-+#define BUG_REPORT_URL "https://bugs.llvm.org/";
-+
-+/* Define to 1 to enable backtraces, and to 0 otherwise. */
-+#define ENABLE_BACKTRACES 1
-+
-+/* Define to 1 to enable crash overrides, and to 0 otherwise. */
-+#define ENABLE_CRASH_OVERRIDES 1
-+
-+/* Define to 1 if you have the `backtrace' function. */
-+#define HAVE_BACKTRACE TRUE
-+
-+#define HAVE_DIRENT_H 1
-+#define HAVE_EXECINFO_H 1
-+#define BACKTRACE_HEADER <execinfo.h>
-+
-+/* Define to 1 if you have the <CrashReporterClient.h> header file. */
-+/* #undef HAVE_CRASHREPORTERCLIENT_H */
-+
-+/* can use __crashreporter_info__ */
-+#define HAVE_CRASHREPORTER_INFO 0
-+
-+/* Define to 1 if you have the declaration of `arc4random', and to 0 if you
-+   don't. */
-+#define HAVE_DECL_ARC4RANDOM 1
-+
-+/* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you
-+   don't. */
-+#define HAVE_DECL_FE_ALL_EXCEPT 1
-+
-+/* Define to 1 if you have the declaration of `FE_INEXACT', and to 0 if you
-+   don't. */
-+#define HAVE_DECL_FE_INEXACT 1
-+
-+/* Define to 1 if you have the declaration of `strerror_s', and to 0 if you
-+   don't. */
-+#define HAVE_DECL_STRERROR_S 0
-+
-+/* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */
-+#define LLVM_ENABLE_DIA_SDK 0
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#define HAVE_DLFCN_H 1
-+
-+/* Define if dlopen() is available on this platform. */
-+#define HAVE_DLOPEN 1
-+
-+/* Define if dladdr() is available on this platform. */
-+#define HAVE_DLADDR 1
-+
-+/* Define to 1 if you have the <errno.h> header file. */
-+#define HAVE_ERRNO_H 1
-+
-+/* Define to 1 if you have the <fcntl.h> header file. */
-+#define HAVE_FCNTL_H 1
-+
-+/* Define to 1 if you have the <fenv.h> header file. */
-+#define HAVE_FENV_H 1
-+
-+/* Define if libffi is available on this platform. */
-+/* #undef HAVE_FFI_CALL */
-+
-+/* Define to 1 if you have the <ffi/ffi.h> header file. */
-+/* #undef HAVE_FFI_FFI_H */
-+
-+/* Define to 1 if you have the <ffi.h> header file. */
-+/* #undef HAVE_FFI_H */
-+
-+/* Define to 1 if you have the `futimens' function. */
-+#define HAVE_FUTIMENS 1
-+
-+/* Define to 1 if you have the `futimes' function. */
-+#define HAVE_FUTIMES 1
-+
-+/* Define to 1 if you have the `getpagesize' function. */
-+#define HAVE_GETPAGESIZE 1
-+
-+/* Define to 1 if you have the `getrlimit' function. */
-+#define HAVE_GETRLIMIT 1
-+
-+/* Define to 1 if you have the `getrusage' function. */
-+#define HAVE_GETRUSAGE 1
-+
-+/* Define to 1 if you have the `isatty' function. */
-+#define HAVE_ISATTY 1
-+
-+/* Define to 1 if you have the `edit' library (-ledit). */
-+#define HAVE_LIBEDIT 1
-+
-+/* Define to 1 if you have the `pfm' library (-lpfm). */
-+/* #undef HAVE_LIBPFM */
-+
-+/* Define to 1 if you have the `psapi' library (-lpsapi). */
-+/* #undef HAVE_LIBPSAPI */
-+
-+/* Define to 1 if you have the `pthread' library (-lpthread). */
-+#define HAVE_LIBPTHREAD 1
-+
-+/* Define to 1 if you have the `pthread_getname_np' function. */
-+#define HAVE_PTHREAD_GETNAME_NP 1
-+
-+/* Define to 1 if you have the `pthread_setname_np' function. */
-+#define HAVE_PTHREAD_SETNAME_NP 1
-+
-+/* Define to 1 if you have the `z' library (-lz). */
-+#define HAVE_LIBZ 1
-+
-+/* Define to 1 if you have the <link.h> header file. */
-+#define HAVE_LINK_H 1
-+
-+/* Define to 1 if you have the `lseek64' function. */
-+/* #undef HAVE_LSEEK64 */
-+
-+/* Define to 1 if you have the <mach/mach.h> header file. */
-+/* #undef HAVE_MACH_MACH_H */
-+
-+/* Define to 1 if you have the `mallctl' function. */
-+/* #undef HAVE_MALLCTL */
-+
-+/* Define to 1 if you have the `mallinfo' function. */
-+/* #undef HAVE_MALLINFO */
-+
-+/* Define to 1 if you have the <malloc.h> header file. */
-+#define HAVE_MALLOC_H 1
-+
-+/* Define to 1 if you have the <malloc/malloc.h> header file. */
-+/* #undef HAVE_MALLOC_MALLOC_H */
-+
-+/* Define to 1 if you have the `malloc_zone_statistics' function. */
-+/* #undef HAVE_MALLOC_ZONE_STATISTICS */
-+
-+/* Define to 1 if you have the `posix_fallocate' function. */
-+#define HAVE_POSIX_FALLOCATE 1
-+
-+/* Define to 1 if you have the `posix_spawn' function. */
-+#define HAVE_POSIX_SPAWN 1
-+
-+/* Define to 1 if you have the `pread' function. */
-+#define HAVE_PREAD 1
-+
-+/* Have pthread_getspecific */
-+#define HAVE_PTHREAD_GETSPECIFIC 1
-+
-+/* Define to 1 if you have the <pthread.h> header file. */
-+#define HAVE_PTHREAD_H 1
-+
-+/* Have pthread_mutex_lock */
-+#define HAVE_PTHREAD_MUTEX_LOCK 1
-+
-+/* Have pthread_rwlock_init */
-+#define HAVE_PTHREAD_RWLOCK_INIT 1
-+
-+/* Define to 1 if you have the `realpath' function. */
-+#define HAVE_REALPATH 1
-+
-+/* Define to 1 if you have the `sbrk' function. */
-+#define HAVE_SBRK 1
-+
-+/* Define to 1 if you have the `setenv' function. */
-+#define HAVE_SETENV 1
-+
-+/* Define to 1 if you have the `sched_getaffinity' function. */
-+/* #undef HAVE_SCHED_GETAFFINITY */
-+
-+/* Define to 1 if you have the `CPU_COUNT' macro. */
-+/* #undef HAVE_CPU_COUNT */
-+
-+/* Define to 1 if you have the `setrlimit' function. */
-+#define HAVE_SETRLIMIT 1
-+
-+/* Define to 1 if you have the `sigaltstack' function. */
-+#define HAVE_SIGALTSTACK 1
-+
-+/* Define to 1 if you have the <signal.h> header file. */
-+#define HAVE_SIGNAL_H 1
-+
-+/* Define to 1 if you have the `strerror' function. */
-+#define HAVE_STRERROR 1
-+
-+/* Define to 1 if you have the `strerror_r' function. */
-+#define HAVE_STRERROR_R 1
-+
-+/* Define to 1 if you have the `sysconf' function. */
-+#define HAVE_SYSCONF 1
-+
-+/* Define to 1 if you have the <sys/ioctl.h> header file. */
-+#define HAVE_SYS_IOCTL_H 1
-+
-+/* Define to 1 if you have the <sys/mman.h> header file. */
-+#define HAVE_SYS_MMAN_H 1
-+
-+/* Define to 1 if you have the <sys/param.h> header file. */
-+#define HAVE_SYS_PARAM_H 1
-+
-+/* Define to 1 if you have the <sys/resource.h> header file. */
-+#define HAVE_SYS_RESOURCE_H 1
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#define HAVE_SYS_STAT_H 1
-+
-+/* Define to 1 if you have the <sys/time.h> header file. */
-+#define HAVE_SYS_TIME_H 1
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#define HAVE_SYS_TYPES_H 1
-+
-+/* Define if the setupterm() function is supported this platform. */
-+#define HAVE_TERMINFO 1
-+
-+/* Define if the xar_open() function is supported this platform. */
-+/* #undef HAVE_LIBXAR */
-+
-+/* Define to 1 if you have the <termios.h> header file. */
-+#define HAVE_TERMIOS_H 1
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#define HAVE_UNISTD_H 1
-+
-+/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
-+/* #undef HAVE_VALGRIND_VALGRIND_H */
-+
-+/* Define to 1 if you have the <zlib.h> header file. */
-+#define HAVE_ZLIB_H 1
-+
-+/* Have host's _alloca */
-+/* #undef HAVE__ALLOCA */
-+
-+/* Define to 1 if you have the `_chsize_s' function. */
-+/* #undef HAVE__CHSIZE_S */
-+
-+/* Define to 1 if you have the `_Unwind_Backtrace' function. */
-+#define HAVE__UNWIND_BACKTRACE 1
-+
-+/* Have host's __alloca */
-+/* #undef HAVE___ALLOCA */
-+
-+/* Have host's __ashldi3 */
-+/* #undef HAVE___ASHLDI3 */
-+
-+/* Have host's __ashrdi3 */
-+/* #undef HAVE___ASHRDI3 */
-+
-+/* Have host's __chkstk */
-+/* #undef HAVE___CHKSTK */
-+
-+/* Have host's __chkstk_ms */
-+/* #undef HAVE___CHKSTK_MS */
-+
-+/* Have host's __cmpdi2 */
-+/* #undef HAVE___CMPDI2 */
-+
-+/* Have host's __divdi3 */
-+/* #undef HAVE___DIVDI3 */
-+
-+/* Have host's __fixdfdi */
-+/* #undef HAVE___FIXDFDI */
-+
-+/* Have host's __fixsfdi */
-+/* #undef HAVE___FIXSFDI */
-+
-+/* Have host's __floatdidf */
-+/* #undef HAVE___FLOATDIDF */
-+
-+/* Have host's __lshrdi3 */
-+/* #undef HAVE___LSHRDI3 */
-+
-+/* Have host's __main */
-+/* #undef HAVE___MAIN */
-+
-+/* Have host's __moddi3 */
-+/* #undef HAVE___MODDI3 */
-+
-+/* Have host's __udivdi3 */
-+/* #undef HAVE___UDIVDI3 */
-+
-+/* Have host's __umoddi3 */
-+/* #undef HAVE___UMODDI3 */
-+
-+/* Have host's ___chkstk */
-+/* #undef HAVE____CHKSTK */
-+
-+/* Have host's ___chkstk_ms */
-+/* #undef HAVE____CHKSTK_MS */
-+
-+/* Linker version detected at compile time. */
-+/* #undef HOST_LINK_VERSION */
-+
-+/* Target triple LLVM will generate code for by default */
-+/* Doesn't use `cmakedefine` because it is allowed to be empty. */
-+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-netbsd9.99.69"
-+
-+/* Define if zlib compression is available */
-+#define LLVM_ENABLE_ZLIB 1
-+
-+/* Define if overriding target triple is enabled */
-+/* #undef LLVM_TARGET_TRIPLE_ENV */
-+
-+/* LLVM version information */
-+/* #undef LLVM_VERSION_INFO */
-+
-+/* Whether tools show host and target info when invoked with --version */
-+#define LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO 1
-+
-+/* Define if libxml2 is supported on this platform. */
-+/* #undef LLVM_LIBXML2_ENABLED */
-+
-+/* Define to the extension used for shared libraries, say, ".so". */
-+#define LTDL_SHLIB_EXT ".so"
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#define PACKAGE_BUGREPORT "https://bugs.llvm.org/";
-+
-+/* Define to the full name of this package. */
-+#define PACKAGE_NAME "LLVM"
-+
-+/* Define to the full name and version of this package. */
-+#define PACKAGE_STRING "LLVM 7.0.1"
-+
-+/* Define to the version of this package. */
-+#define PACKAGE_VERSION "7.0.1"
-+
-+/* Define to the vendor of this package. */
-+/* #undef PACKAGE_VENDOR */
-+
-+/* Define as the return type of signal handlers (`int' or `void'). */
-+#define RETSIGTYPE void
-+
-+/* Define to a function implementing stricmp */
-+/* #undef stricmp */
-+
-+/* Define to a function implementing strdup */
-+/* #undef strdup */
-+
-+/* Whether GlobalISel rule coverage is being collected */
-+#define LLVM_GISEL_COV_ENABLED 0
-+
-+/* Define to the default GlobalISel coverage file prefix */
-+/* #undef LLVM_GISEL_COV_PREFIX */
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_llvm-config.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_llvm-config.h
deleted file mode 100644
index b9f3bb0f71..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Config_llvm-config.h
+++ /dev/null
@@ -1,90 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/llvm-config.h.orig	2020-07-23 08:46:21.545648353 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Config/llvm-config.h
-@@ -0,0 +1,85 @@
-+/*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/
-+/*                                                                            */
-+/*                     The LLVM Compiler Infrastructure                       */
-+/*                                                                            */
-+/* This file is distributed under the University of Illinois Open Source      */
-+/* License. See LICENSE.TXT for details.                                      */
-+/*                                                                            */
-+/*===----------------------------------------------------------------------===*/
-+
-+/* This file enumerates variables from the LLVM configuration so that they
-+   can be in exported headers and won't override package specific directives.
-+   This is a C header that can be included in the llvm-c headers. */
-+
-+#ifndef LLVM_CONFIG_H
-+#define LLVM_CONFIG_H
-+
-+/* Define if LLVM_ENABLE_DUMP is enabled */
-+/* #undef LLVM_ENABLE_DUMP */
-+
-+/* Define if we link Polly to the tools */
-+/* #undef LINK_POLLY_INTO_TOOLS */
-+
-+/* Target triple LLVM will generate code for by default */
-+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-netbsd9.99.69"
-+
-+/* Define if threads enabled */
-+#define LLVM_ENABLE_THREADS 1
-+
-+/* Has gcc/MSVC atomic intrinsics */
-+#define LLVM_HAS_ATOMICS 1
-+
-+/* Host triple LLVM will be executed on */
-+#define LLVM_HOST_TRIPLE "x86_64-unknown-netbsd9.99.69"
-+
-+/* LLVM architecture name for the native architecture, if available */
-+#define LLVM_NATIVE_ARCH X86
-+
-+/* LLVM name for the native AsmParser init function, if available */
-+#define LLVM_NATIVE_ASMPARSER LLVMInitializeX86AsmParser
-+
-+/* LLVM name for the native AsmPrinter init function, if available */
-+#define LLVM_NATIVE_ASMPRINTER LLVMInitializeX86AsmPrinter
-+
-+/* LLVM name for the native Disassembler init function, if available */
-+#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeX86Disassembler
-+
-+/* LLVM name for the native Target init function, if available */
-+#define LLVM_NATIVE_TARGET LLVMInitializeX86Target
-+
-+/* LLVM name for the native TargetInfo init function, if available */
-+#define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo
-+
-+/* LLVM name for the native target MC init function, if available */
-+#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC
-+
-+/* Define if this is Unixish platform */
-+#define LLVM_ON_UNIX 1
-+
-+/* Define if we have the Intel JIT API runtime support library */
-+#define LLVM_USE_INTEL_JITEVENTS 0
-+
-+/* Define if we have the oprofile JIT-support library */
-+#define LLVM_USE_OPROFILE 0
-+
-+/* Define if we have the perf JIT-support library */
-+#define LLVM_USE_PERF 0
-+
-+/* Major version of the LLVM API */
-+#define LLVM_VERSION_MAJOR 7
-+
-+/* Minor version of the LLVM API */
-+#define LLVM_VERSION_MINOR 0
-+
-+/* Patch version of the LLVM API */
-+#define LLVM_VERSION_PATCH 1
-+
-+/* LLVM version string */
-+#define LLVM_VERSION_STRING "7.0.1"
-+
-+/* Whether LLVM records statistics for use with GetStatistics(),
-+ * PrintStatistics() or PrintStatisticsJSON()
-+ */
-+#define LLVM_FORCE_ENABLE_STATS 0
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Attributes.gen b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Attributes.gen
deleted file mode 100644
index e088e61528..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Attributes.gen
+++ /dev/null
@@ -1,463 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/Attributes.gen.orig	2020-07-23 10:06:54.229863415 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/Attributes.gen
-@@ -0,0 +1,458 @@
-+#ifdef GET_ATTR_ENUM
-+#undef GET_ATTR_ENUM
-+Alignment,
-+AllocSize,
-+AlwaysInline,
-+ArgMemOnly,
-+Builtin,
-+ByVal,
-+Cold,
-+Convergent,
-+Dereferenceable,
-+DereferenceableOrNull,
-+InAlloca,
-+InReg,
-+InaccessibleMemOnly,
-+InaccessibleMemOrArgMemOnly,
-+InlineHint,
-+JumpTable,
-+MinSize,
-+Naked,
-+Nest,
-+NoAlias,
-+NoBuiltin,
-+NoCapture,
-+NoDuplicate,
-+NoImplicitFloat,
-+NoInline,
-+NoRecurse,
-+NoRedZone,
-+NoReturn,
-+NoUnwind,
-+NonLazyBind,
-+NonNull,
-+OptimizeForSize,
-+OptimizeNone,
-+ReadNone,
-+ReadOnly,
-+Returned,
-+ReturnsTwice,
-+SExt,
-+SafeStack,
-+SanitizeAddress,
-+SanitizeMemory,
-+SanitizeThread,
-+StackAlignment,
-+StackProtect,
-+StackProtectReq,
-+StackProtectStrong,
-+StructRet,
-+SwiftError,
-+SwiftSelf,
-+UWTable,
-+WriteOnly,
-+ZExt,
-+#endif
-+#ifdef GET_ATTR_KIND_FROM_NAME
-+#undef GET_ATTR_KIND_FROM_NAME
-+static Attribute::AttrKind getAttrKindFromName(StringRef AttrName) {
-+  return StringSwitch<Attribute::AttrKind>(AttrName)
-+    .Case("align", Attribute::Alignment)
-+    .Case("allocsize", Attribute::AllocSize)
-+    .Case("alwaysinline", Attribute::AlwaysInline)
-+    .Case("argmemonly", Attribute::ArgMemOnly)
-+    .Case("builtin", Attribute::Builtin)
-+    .Case("byval", Attribute::ByVal)
-+    .Case("cold", Attribute::Cold)
-+    .Case("convergent", Attribute::Convergent)
-+    .Case("dereferenceable", Attribute::Dereferenceable)
-+    .Case("dereferenceable_or_null", Attribute::DereferenceableOrNull)
-+    .Case("inalloca", Attribute::InAlloca)
-+    .Case("inreg", Attribute::InReg)
-+    .Case("inaccessiblememonly", Attribute::InaccessibleMemOnly)
-+    .Case("inaccessiblemem_or_argmemonly", Attribute::InaccessibleMemOrArgMemOnly)
-+    .Case("inlinehint", Attribute::InlineHint)
-+    .Case("jumptable", Attribute::JumpTable)
-+    .Case("minsize", Attribute::MinSize)
-+    .Case("naked", Attribute::Naked)
-+    .Case("nest", Attribute::Nest)
-+    .Case("noalias", Attribute::NoAlias)
-+    .Case("nobuiltin", Attribute::NoBuiltin)
-+    .Case("nocapture", Attribute::NoCapture)
-+    .Case("noduplicate", Attribute::NoDuplicate)
-+    .Case("noimplicitfloat", Attribute::NoImplicitFloat)
-+    .Case("noinline", Attribute::NoInline)
-+    .Case("norecurse", Attribute::NoRecurse)
-+    .Case("noredzone", Attribute::NoRedZone)
-+    .Case("noreturn", Attribute::NoReturn)
-+    .Case("nounwind", Attribute::NoUnwind)
-+    .Case("nonlazybind", Attribute::NonLazyBind)
-+    .Case("nonnull", Attribute::NonNull)
-+    .Case("optsize", Attribute::OptimizeForSize)
-+    .Case("optnone", Attribute::OptimizeNone)
-+    .Case("readnone", Attribute::ReadNone)
-+    .Case("readonly", Attribute::ReadOnly)
-+    .Case("returned", Attribute::Returned)
-+    .Case("returns_twice", Attribute::ReturnsTwice)
-+    .Case("signext", Attribute::SExt)
-+    .Case("safestack", Attribute::SafeStack)
-+    .Case("sanitize_address", Attribute::SanitizeAddress)
-+    .Case("sanitize_memory", Attribute::SanitizeMemory)
-+    .Case("sanitize_thread", Attribute::SanitizeThread)
-+    .Case("alignstack", Attribute::StackAlignment)
-+    .Case("ssp", Attribute::StackProtect)
-+    .Case("sspreq", Attribute::StackProtectReq)
-+    .Case("sspstrong", Attribute::StackProtectStrong)
-+    .Case("sret", Attribute::StructRet)
-+    .Case("swifterror", Attribute::SwiftError)
-+    .Case("swiftself", Attribute::SwiftSelf)
-+    .Case("uwtable", Attribute::UWTable)
-+    .Case("writeonly", Attribute::WriteOnly)
-+    .Case("zeroext", Attribute::ZExt)
-+    .Default(Attribute::None);
-+}
-+
-+#endif
-+#ifdef GET_ATTR_COMPAT_FUNC
-+#undef GET_ATTR_COMPAT_FUNC
-+struct EnumAttr {
-+  static bool isSet(const Function &Fn,
-+                    Attribute::AttrKind Kind) {
-+    return Fn.hasFnAttribute(Kind);
-+  }
-+
-+  static void set(Function &Fn,
-+                  Attribute::AttrKind Kind, bool Val) {
-+    if (Val)
-+      Fn.addFnAttr(Kind);
-+    else
-+      Fn.removeFnAttr(Kind);
-+  }
-+};
-+
-+struct StrBoolAttr {
-+  static bool isSet(const Function &Fn,
-+                    StringRef Kind) {
-+    auto A = Fn.getFnAttribute(Kind);
-+    return A.getValueAsString().equals("true");
-+  }
-+
-+  static void set(Function &Fn,
-+                  StringRef Kind, bool Val) {
-+    Fn.addFnAttr(Kind, Val ? "true" : "false");
-+  }
-+};
-+
-+// EnumAttr classes
-+struct AlignmentAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::Alignment;
-+  }
-+};
-+struct AllocSizeAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::AllocSize;
-+  }
-+};
-+struct AlwaysInlineAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::AlwaysInline;
-+  }
-+};
-+struct ArgMemOnlyAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::ArgMemOnly;
-+  }
-+};
-+struct BuiltinAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::Builtin;
-+  }
-+};
-+struct ByValAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::ByVal;
-+  }
-+};
-+struct ColdAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::Cold;
-+  }
-+};
-+struct ConvergentAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::Convergent;
-+  }
-+};
-+struct DereferenceableAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::Dereferenceable;
-+  }
-+};
-+struct DereferenceableOrNullAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::DereferenceableOrNull;
-+  }
-+};
-+struct InAllocaAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::InAlloca;
-+  }
-+};
-+struct InRegAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::InReg;
-+  }
-+};
-+struct InaccessibleMemOnlyAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::InaccessibleMemOnly;
-+  }
-+};
-+struct InaccessibleMemOrArgMemOnlyAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::InaccessibleMemOrArgMemOnly;
-+  }
-+};
-+struct InlineHintAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::InlineHint;
-+  }
-+};
-+struct JumpTableAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::JumpTable;
-+  }
-+};
-+struct MinSizeAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::MinSize;
-+  }
-+};
-+struct NakedAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::Naked;
-+  }
-+};
-+struct NestAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::Nest;
-+  }
-+};
-+struct NoAliasAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::NoAlias;
-+  }
-+};
-+struct NoBuiltinAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::NoBuiltin;
-+  }
-+};
-+struct NoCaptureAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::NoCapture;
-+  }
-+};
-+struct NoDuplicateAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::NoDuplicate;
-+  }
-+};
-+struct NoImplicitFloatAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::NoImplicitFloat;
-+  }
-+};
-+struct NoInlineAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::NoInline;
-+  }
-+};
-+struct NoRecurseAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::NoRecurse;
-+  }
-+};
-+struct NoRedZoneAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::NoRedZone;
-+  }
-+};
-+struct NoReturnAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::NoReturn;
-+  }
-+};
-+struct NoUnwindAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::NoUnwind;
-+  }
-+};
-+struct NonLazyBindAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::NonLazyBind;
-+  }
-+};
-+struct NonNullAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::NonNull;
-+  }
-+};
-+struct OptimizeForSizeAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::OptimizeForSize;
-+  }
-+};
-+struct OptimizeNoneAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::OptimizeNone;
-+  }
-+};
-+struct ReadNoneAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::ReadNone;
-+  }
-+};
-+struct ReadOnlyAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::ReadOnly;
-+  }
-+};
-+struct ReturnedAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::Returned;
-+  }
-+};
-+struct ReturnsTwiceAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::ReturnsTwice;
-+  }
-+};
-+struct SExtAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::SExt;
-+  }
-+};
-+struct SafeStackAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::SafeStack;
-+  }
-+};
-+struct SanitizeAddressAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::SanitizeAddress;
-+  }
-+};
-+struct SanitizeMemoryAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::SanitizeMemory;
-+  }
-+};
-+struct SanitizeThreadAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::SanitizeThread;
-+  }
-+};
-+struct StackAlignmentAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::StackAlignment;
-+  }
-+};
-+struct StackProtectAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::StackProtect;
-+  }
-+};
-+struct StackProtectReqAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::StackProtectReq;
-+  }
-+};
-+struct StackProtectStrongAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::StackProtectStrong;
-+  }
-+};
-+struct StructRetAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::StructRet;
-+  }
-+};
-+struct SwiftErrorAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::SwiftError;
-+  }
-+};
-+struct SwiftSelfAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::SwiftSelf;
-+  }
-+};
-+struct UWTableAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::UWTable;
-+  }
-+};
-+struct WriteOnlyAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::WriteOnly;
-+  }
-+};
-+struct ZExtAttr : EnumAttr {
-+  static enum Attribute::AttrKind getKind() {
-+    return llvm::Attribute::ZExt;
-+  }
-+};
-+
-+// StrBoolAttr classes
-+struct LessPreciseFPMADAttr : StrBoolAttr {
-+  static StringRef getKind() {
-+    return "less-precise-fpmad";
-+  }
-+};
-+struct NoInfsFPMathAttr : StrBoolAttr {
-+  static StringRef getKind() {
-+    return "no-infs-fp-math";
-+  }
-+};
-+struct NoJumpTablesAttr : StrBoolAttr {
-+  static StringRef getKind() {
-+    return "no-jump-tables";
-+  }
-+};
-+struct NoNansFPMathAttr : StrBoolAttr {
-+  static StringRef getKind() {
-+    return "no-nans-fp-math";
-+  }
-+};
-+struct UnsafeFPMathAttr : StrBoolAttr {
-+  static StringRef getKind() {
-+    return "unsafe-fp-math";
-+  }
-+};
-+
-+static inline bool hasCompatibleFnAttrs(const Function &Caller,
-+                                        const Function &Callee) {
-+  bool Ret = true;
-+
-+  Ret &= isEqual<SanitizeAddressAttr>(Caller, Callee);
-+  Ret &= isEqual<SanitizeThreadAttr>(Caller, Callee);
-+  Ret &= isEqual<SanitizeMemoryAttr>(Caller, Callee);
-+  Ret &= isEqual<SafeStackAttr>(Caller, Callee);
-+
-+  return Ret;
-+}
-+
-+static inline void mergeFnAttrs(Function &Caller,
-+                                const Function &Callee) {
-+  adjustCallerSSPLevel(Caller, Callee);
-+  setAND<LessPreciseFPMADAttr>(Caller, Callee);
-+  setAND<NoInfsFPMathAttr>(Caller, Callee);
-+  setAND<NoNansFPMathAttr>(Caller, Callee);
-+  setAND<UnsafeFPMathAttr>(Caller, Callee);
-+  setOR<NoImplicitFloatAttr>(Caller, Callee);
-+  setOR<NoJumpTablesAttr>(Caller, Callee);
-+}
-+
-+#endif
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_CMakeDirectoryInformation.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_CMakeDirectoryInformation.cmake
deleted file mode 100644
index d05fc776ae..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_CMakeDirectoryInformation.cmake
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/CMakeDirectoryInformation.cmake.orig	2020-07-23 08:46:21.605822052 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/CMakeDirectoryInformation.cmake
-@@ -0,0 +1,16 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Relative path conversion top directories.
-+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ryoon/tmp4/llvm-7.0.1.src")
-+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ryoon/tmp4/build")
-+
-+# Force unix paths in dependencies.
-+set(CMAKE_FORCE_UNIX_PATHS 1)
-+
-+
-+# The C and CXX include file regular expressions for this directory.
-+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
-+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
-+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
-+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_DependInfo.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_DependInfo.cmake
deleted file mode 100644
index 65d0319a86..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_DependInfo.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/DependInfo.cmake.orig	2020-07-23 08:46:21.601673038 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/DependInfo.cmake
-@@ -0,0 +1,11 @@
-+# The set of languages for which implicit dependencies are needed:
-+set(CMAKE_DEPENDS_LANGUAGES
-+  )
-+# The set of files for implicit dependencies of each language:
-+
-+# Targets to which this target links.
-+set(CMAKE_TARGET_LINKED_INFO_FILES
-+  )
-+
-+# Fortran module output directory.
-+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_build.make b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_build.make
deleted file mode 100644
index c36394a918..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_build.make
+++ /dev/null
@@ -1,265 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build.make.orig	2020-07-23 08:46:21.597505478 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build.make
-@@ -0,0 +1,260 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Delete rule output on recipe failure.
-+.DELETE_ON_ERROR:
-+
-+
-+#=============================================================================
-+# Special targets provided by cmake.
-+
-+# Disable implicit rules so canonical targets will work.
-+.SUFFIXES:
-+
-+
-+# Disable VCS-based implicit rules.
-+% : %,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : SCCS/s.%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : s.%
-+
-+
-+.SUFFIXES: .hpux_make_needs_suffix_list
-+
-+
-+# Command-line flag to silence nested $(MAKE).
-+$(VERBOSE)MAKESILENT = -s
-+
-+# Suppress display of executed commands.
-+$(VERBOSE).SILENT:
-+
-+
-+# A target that is always out of date.
-+cmake_force:
-+
-+.PHONY : cmake_force
-+
-+#=============================================================================
-+# Set environment variables for the build.
-+
-+# The shell in which to execute make rules.
-+SHELL = /bin/sh
-+
-+# The CMake executable.
-+CMAKE_COMMAND = /usr/pkg/bin/cmake
-+
-+# The command to remove a file.
-+RM = /usr/pkg/bin/cmake -E rm -f
-+
-+# Escaping for special characters.
-+EQUALS = =
-+
-+# The top-level source directory on which CMake was run.
-+CMAKE_SOURCE_DIR = /home/ryoon/tmp4/llvm-7.0.1.src
-+
-+# The top-level build directory on which CMake was run.
-+CMAKE_BINARY_DIR = /home/ryoon/tmp4/build
-+
-+# Utility rule file for intrinsics_gen.
-+
-+# Include the progress variables for this target.
-+include include/llvm/IR/CMakeFiles/intrinsics_gen.dir/progress.make
-+
-+include/llvm/IR/CMakeFiles/intrinsics_gen: include/llvm/IR/Attributes.inc
-+include/llvm/IR/CMakeFiles/intrinsics_gen: include/llvm/IR/IntrinsicEnums.inc
-+include/llvm/IR/CMakeFiles/intrinsics_gen: include/llvm/IR/IntrinsicImpl.inc
-+
-+
-+include/llvm/IR/Attributes.inc: include/llvm/IR/Attributes.inc.tmp
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ryoon/tmp4/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Updating Attributes.inc..."
-+	cd /home/ryoon/tmp4/build/include/llvm/IR && /usr/pkg/bin/cmake -E copy_if_different /home/ryoon/tmp4/build/include/llvm/IR/Attributes.inc.tmp /home/ryoon/tmp4/build/include/llvm/IR/Attributes.inc
-+
-+include/llvm/IR/IntrinsicEnums.inc: include/llvm/IR/IntrinsicEnums.inc.tmp
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ryoon/tmp4/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Updating IntrinsicEnums.inc..."
-+	cd /home/ryoon/tmp4/build/include/llvm/IR && /usr/pkg/bin/cmake -E copy_if_different /home/ryoon/tmp4/build/include/llvm/IR/IntrinsicEnums.inc.tmp /home/ryoon/tmp4/build/include/llvm/IR/IntrinsicEnums.inc
-+
-+include/llvm/IR/IntrinsicImpl.inc: include/llvm/IR/IntrinsicImpl.inc.tmp
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ryoon/tmp4/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Updating IntrinsicImpl.inc..."
-+	cd /home/ryoon/tmp4/build/include/llvm/IR && /usr/pkg/bin/cmake -E copy_if_different /home/ryoon/tmp4/build/include/llvm/IR/IntrinsicImpl.inc.tmp /home/ryoon/tmp4/build/include/llvm/IR/IntrinsicImpl.inc
-+
-+include/llvm/IR/Attributes.inc.tmp: bin/llvm-tblgen
-+include/llvm/IR/Attributes.inc.tmp: bin/llvm-tblgen
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAArch64.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAMDGPU.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsARM.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsBPF.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsHexagon.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsMips.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsNVVM.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsPowerPC.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsSystemZ.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsWebAssembly.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsX86.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsXCore.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/CodeGen/SDNodeProperties.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/CodeGen/ValueTypes.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAArch64.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAMDGPU.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsARM.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsBPF.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsHexagon.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsMips.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsNVVM.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsPowerPC.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsSystemZ.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsWebAssembly.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsX86.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsXCore.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Option/OptParser.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/TableGen/SearchableTable.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GenericOpcodes.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/RegisterBank.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/Target.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/Target.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetCallingConv.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetInstrPredicate.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetItinerary.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetSchedule.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetSelectionDAG.td
-+include/llvm/IR/Attributes.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ryoon/tmp4/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building Attributes.inc..."
-+	cd /home/ryoon/tmp4/build/include/llvm/IR && ../../../bin/llvm-tblgen -gen-attrs -I /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR -I /home/ryoon/tmp4/llvm-7.0.1.src/include /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td -o /home/ryoon/tmp4/build/include/llvm/IR/Attributes.inc.tmp
-+
-+include/llvm/IR/IntrinsicEnums.inc.tmp: bin/llvm-tblgen
-+include/llvm/IR/IntrinsicEnums.inc.tmp: bin/llvm-tblgen
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAArch64.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAMDGPU.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsARM.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsBPF.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsHexagon.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsMips.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsNVVM.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsPowerPC.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsSystemZ.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsWebAssembly.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsX86.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsXCore.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/CodeGen/SDNodeProperties.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/CodeGen/ValueTypes.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAArch64.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAMDGPU.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsARM.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsBPF.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsHexagon.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsMips.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsNVVM.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsPowerPC.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsSystemZ.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsWebAssembly.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsX86.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsXCore.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Option/OptParser.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/TableGen/SearchableTable.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GenericOpcodes.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/RegisterBank.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/Target.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/Target.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetCallingConv.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetInstrPredicate.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetItinerary.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetSchedule.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetSelectionDAG.td
-+include/llvm/IR/IntrinsicEnums.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ryoon/tmp4/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building IntrinsicEnums.inc..."
-+	cd /home/ryoon/tmp4/build/include/llvm/IR && ../../../bin/llvm-tblgen -gen-intrinsic-enums -I /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR -I /home/ryoon/tmp4/llvm-7.0.1.src/include /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td -o /home/ryoon/tmp4/build/include/llvm/IR/IntrinsicEnums.inc.tmp
-+
-+include/llvm/IR/IntrinsicImpl.inc.tmp: bin/llvm-tblgen
-+include/llvm/IR/IntrinsicImpl.inc.tmp: bin/llvm-tblgen
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAArch64.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAMDGPU.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsARM.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsBPF.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsHexagon.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsMips.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsNVVM.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsPowerPC.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsSystemZ.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsWebAssembly.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsX86.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsXCore.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/CodeGen/SDNodeProperties.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/CodeGen/ValueTypes.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Attributes.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAArch64.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsAMDGPU.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsARM.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsBPF.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsHexagon.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsMips.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsNVVM.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsPowerPC.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsSystemZ.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsWebAssembly.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsX86.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/IntrinsicsXCore.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Option/OptParser.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/TableGen/SearchableTable.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GenericOpcodes.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/RegisterBank.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/GlobalISel/Target.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/Target.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetCallingConv.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetInstrPredicate.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetItinerary.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetSchedule.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Target/TargetSelectionDAG.td
-+include/llvm/IR/IntrinsicImpl.inc.tmp: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/ryoon/tmp4/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building IntrinsicImpl.inc..."
-+	cd /home/ryoon/tmp4/build/include/llvm/IR && ../../../bin/llvm-tblgen -gen-intrinsic-impl -I /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR -I /home/ryoon/tmp4/llvm-7.0.1.src/include /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR/Intrinsics.td -o /home/ryoon/tmp4/build/include/llvm/IR/IntrinsicImpl.inc.tmp
-+
-+intrinsics_gen: include/llvm/IR/CMakeFiles/intrinsics_gen
-+intrinsics_gen: include/llvm/IR/Attributes.inc
-+intrinsics_gen: include/llvm/IR/IntrinsicEnums.inc
-+intrinsics_gen: include/llvm/IR/IntrinsicImpl.inc
-+intrinsics_gen: include/llvm/IR/Attributes.inc.tmp
-+intrinsics_gen: include/llvm/IR/IntrinsicEnums.inc.tmp
-+intrinsics_gen: include/llvm/IR/IntrinsicImpl.inc.tmp
-+intrinsics_gen: include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build.make
-+
-+.PHONY : intrinsics_gen
-+
-+# Rule to build all files generated by this target.
-+include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build: intrinsics_gen
-+
-+.PHONY : include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build
-+
-+include/llvm/IR/CMakeFiles/intrinsics_gen.dir/clean:
-+	cd /home/ryoon/tmp4/build/include/llvm/IR && $(CMAKE_COMMAND) -P CMakeFiles/intrinsics_gen.dir/cmake_clean.cmake
-+.PHONY : include/llvm/IR/CMakeFiles/intrinsics_gen.dir/clean
-+
-+include/llvm/IR/CMakeFiles/intrinsics_gen.dir/depend:
-+	cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ryoon/tmp4/llvm-7.0.1.src /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR /home/ryoon/tmp4/build /home/ryoon/tmp4/build/include/llvm/IR /home/ryoon/tmp4/build/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/DependInfo.cmake --color=$(COLOR)
-+.PHONY : include/llvm/IR/CMakeFiles/intrinsics_gen.dir/depend
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_cmake__clean.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_cmake__clean.cmake
deleted file mode 100644
index 048e0815f3..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_cmake__clean.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/cmake_clean.cmake.orig	2020-07-23 08:46:21.593341283 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/cmake_clean.cmake
-@@ -0,0 +1,14 @@
-+file(REMOVE_RECURSE
-+  "Attributes.inc"
-+  "Attributes.inc.tmp"
-+  "CMakeFiles/intrinsics_gen"
-+  "IntrinsicEnums.inc"
-+  "IntrinsicEnums.inc.tmp"
-+  "IntrinsicImpl.inc"
-+  "IntrinsicImpl.inc.tmp"
-+)
-+
-+# Per-language clean rules from dependency scanning.
-+foreach(lang )
-+  include(CMakeFiles/intrinsics_gen.dir/cmake_clean_${lang}.cmake OPTIONAL)
-+endforeach()
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_progress.make b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_progress.make
deleted file mode 100644
index aad0c082d2..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_intrinsics__gen.dir_progress.make
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/progress.make.orig	2020-07-23 08:46:21.589070238 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/intrinsics_gen.dir/progress.make
-@@ -0,0 +1,7 @@
-+CMAKE_PROGRESS_1 = 
-+CMAKE_PROGRESS_2 = 
-+CMAKE_PROGRESS_3 = 
-+CMAKE_PROGRESS_4 = 
-+CMAKE_PROGRESS_5 = 
-+CMAKE_PROGRESS_6 = 
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_progress.marks b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_progress.marks
deleted file mode 100644
index f25e6f1e30..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_CMakeFiles_progress.marks
+++ /dev/null
@@ -1,6 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/progress.marks.orig	2020-07-23 08:46:21.609997791 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/CMakeFiles/progress.marks
-@@ -0,0 +1 @@
-+0
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Intrinsics.gen b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Intrinsics.gen
deleted file mode 100644
index 9ed25e67fd..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Intrinsics.gen
+++ /dev/null
@@ -1,34229 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/Intrinsics.gen.orig	2020-07-23 10:06:59.445242736 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/Intrinsics.gen
-@@ -0,0 +1,34224 @@
-+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
-+|*                                                                            *|
-+|* Intrinsic Function Source Fragment                                         *|
-+|*                                                                            *|
-+|* Automatically generated file, do not edit!                                 *|
-+|*                                                                            *|
-+\*===----------------------------------------------------------------------===*/
-+
-+// VisualStudio defines setjmp as _setjmp
-+#if defined(_MSC_VER) && defined(setjmp) && \
-+                         !defined(setjmp_undefined_for_msvc)
-+#  pragma push_macro("setjmp")
-+#  undef setjmp
-+#  define setjmp_undefined_for_msvc
-+#endif
-+
-+// Enum values for Intrinsics.h
-+#ifdef GET_INTRINSIC_ENUM_VALUES
-+    addressofreturnaddress,                    // llvm.addressofreturnaddress
-+    adjust_trampoline,                         // llvm.adjust.trampoline
-+    annotation,                                // llvm.annotation
-+    assume,                                    // llvm.assume
-+    bitreverse,                                // llvm.bitreverse
-+    bswap,                                     // llvm.bswap
-+    canonicalize,                              // llvm.canonicalize
-+    ceil,                                      // llvm.ceil
-+    clear_cache,                               // llvm.clear_cache
-+    convert_from_fp16,                         // llvm.convert.from.fp16
-+    convert_to_fp16,                           // llvm.convert.to.fp16
-+    convertff,                                 // llvm.convertff
-+    convertfsi,                                // llvm.convertfsi
-+    convertfui,                                // llvm.convertfui
-+    convertsif,                                // llvm.convertsif
-+    convertss,                                 // llvm.convertss
-+    convertsu,                                 // llvm.convertsu
-+    convertuif,                                // llvm.convertuif
-+    convertus,                                 // llvm.convertus
-+    convertuu,                                 // llvm.convertuu
-+    copysign,                                  // llvm.copysign
-+    coro_alloc,                                // llvm.coro.alloc
-+    coro_begin,                                // llvm.coro.begin
-+    coro_destroy,                              // llvm.coro.destroy
-+    coro_done,                                 // llvm.coro.done
-+    coro_end,                                  // llvm.coro.end
-+    coro_frame,                                // llvm.coro.frame
-+    coro_free,                                 // llvm.coro.free
-+    coro_id,                                   // llvm.coro.id
-+    coro_param,                                // llvm.coro.param
-+    coro_promise,                              // llvm.coro.promise
-+    coro_resume,                               // llvm.coro.resume
-+    coro_save,                                 // llvm.coro.save
-+    coro_size,                                 // llvm.coro.size
-+    coro_subfn_addr,                           // llvm.coro.subfn.addr
-+    coro_suspend,                              // llvm.coro.suspend
-+    cos,                                       // llvm.cos
-+    ctlz,                                      // llvm.ctlz
-+    ctpop,                                     // llvm.ctpop
-+    cttz,                                      // llvm.cttz
-+    dbg_declare,                               // llvm.dbg.declare
-+    dbg_value,                                 // llvm.dbg.value
-+    debugtrap,                                 // llvm.debugtrap
-+    donothing,                                 // llvm.donothing
-+    eh_dwarf_cfa,                              // llvm.eh.dwarf.cfa
-+    eh_exceptioncode,                          // llvm.eh.exceptioncode
-+    eh_exceptionpointer,                       // llvm.eh.exceptionpointer
-+    eh_return_i32,                             // llvm.eh.return.i32
-+    eh_return_i64,                             // llvm.eh.return.i64
-+    eh_sjlj_callsite,                          // llvm.eh.sjlj.callsite
-+    eh_sjlj_functioncontext,                   // llvm.eh.sjlj.functioncontext
-+    eh_sjlj_longjmp,                           // llvm.eh.sjlj.longjmp
-+    eh_sjlj_lsda,                              // llvm.eh.sjlj.lsda
-+    eh_sjlj_setjmp,                            // llvm.eh.sjlj.setjmp
-+    eh_sjlj_setup_dispatch,                    // llvm.eh.sjlj.setup.dispatch
-+    eh_typeid_for,                             // llvm.eh.typeid.for
-+    eh_unwind_init,                            // llvm.eh.unwind.init
-+    exp,                                       // llvm.exp
-+    exp2,                                      // llvm.exp2
-+    expect,                                    // llvm.expect
-+    experimental_deoptimize,                   // llvm.experimental.deoptimize
-+    experimental_gc_relocate,                  // llvm.experimental.gc.relocate
-+    experimental_gc_result,                    // llvm.experimental.gc.result
-+    experimental_gc_statepoint,                // llvm.experimental.gc.statepoint
-+    experimental_guard,                        // llvm.experimental.guard
-+    experimental_patchpoint_i64,               // llvm.experimental.patchpoint.i64
-+    experimental_patchpoint_void,              // llvm.experimental.patchpoint.void
-+    experimental_stackmap,                     // llvm.experimental.stackmap
-+    fabs,                                      // llvm.fabs
-+    floor,                                     // llvm.floor
-+    flt_rounds,                                // llvm.flt.rounds
-+    fma,                                       // llvm.fma
-+    fmuladd,                                   // llvm.fmuladd
-+    frameaddress,                              // llvm.frameaddress
-+    gcread,                                    // llvm.gcread
-+    gcroot,                                    // llvm.gcroot
-+    gcwrite,                                   // llvm.gcwrite
-+    get_dynamic_area_offset,                   // llvm.get.dynamic.area.offset
-+    init_trampoline,                           // llvm.init.trampoline
-+    instrprof_increment,                       // llvm.instrprof.increment
-+    instrprof_increment_step,                  // llvm.instrprof.increment.step
-+    instrprof_value_profile,                   // llvm.instrprof.value.profile
-+    invariant_end,                             // llvm.invariant.end
-+    invariant_group_barrier,                   // llvm.invariant.group.barrier
-+    invariant_start,                           // llvm.invariant.start
-+    lifetime_end,                              // llvm.lifetime.end
-+    lifetime_start,                            // llvm.lifetime.start
-+    load_relative,                             // llvm.load.relative
-+    localaddress,                              // llvm.localaddress
-+    localescape,                               // llvm.localescape
-+    localrecover,                              // llvm.localrecover
-+    log,                                       // llvm.log
-+    log10,                                     // llvm.log10
-+    log2,                                      // llvm.log2
-+    longjmp,                                   // llvm.longjmp
-+    masked_compressstore,                      // llvm.masked.compressstore
-+    masked_expandload,                         // llvm.masked.expandload
-+    masked_gather,                             // llvm.masked.gather
-+    masked_load,                               // llvm.masked.load
-+    masked_scatter,                            // llvm.masked.scatter
-+    masked_store,                              // llvm.masked.store
-+    maxnum,                                    // llvm.maxnum
-+    memcpy,                                    // llvm.memcpy
-+    memmove,                                   // llvm.memmove
-+    memset,                                    // llvm.memset
-+    minnum,                                    // llvm.minnum
-+    nearbyint,                                 // llvm.nearbyint
-+    objectsize,                                // llvm.objectsize
-+    pcmarker,                                  // llvm.pcmarker
-+    pow,                                       // llvm.pow
-+    powi,                                      // llvm.powi
-+    prefetch,                                  // llvm.prefetch
-+    ptr_annotation,                            // llvm.ptr.annotation
-+    read_register,                             // llvm.read_register
-+    readcyclecounter,                          // llvm.readcyclecounter
-+    returnaddress,                             // llvm.returnaddress
-+    rint,                                      // llvm.rint
-+    round,                                     // llvm.round
-+    sadd_with_overflow,                        // llvm.sadd.with.overflow
-+    setjmp,                                    // llvm.setjmp
-+    siglongjmp,                                // llvm.siglongjmp
-+    sigsetjmp,                                 // llvm.sigsetjmp
-+    sin,                                       // llvm.sin
-+    smul_with_overflow,                        // llvm.smul.with.overflow
-+    sqrt,                                      // llvm.sqrt
-+    ssub_with_overflow,                        // llvm.ssub.with.overflow
-+    stackguard,                                // llvm.stackguard
-+    stackprotector,                            // llvm.stackprotector
-+    stackrestore,                              // llvm.stackrestore
-+    stacksave,                                 // llvm.stacksave
-+    thread_pointer,                            // llvm.thread.pointer
-+    trap,                                      // llvm.trap
-+    trunc,                                     // llvm.trunc
-+    type_checked_load,                         // llvm.type.checked.load
-+    type_test,                                 // llvm.type.test
-+    uadd_with_overflow,                        // llvm.uadd.with.overflow
-+    umul_with_overflow,                        // llvm.umul.with.overflow
-+    usub_with_overflow,                        // llvm.usub.with.overflow
-+    vacopy,                                    // llvm.va_copy
-+    vaend,                                     // llvm.va_end
-+    vastart,                                   // llvm.va_start
-+    var_annotation,                            // llvm.var.annotation
-+    write_register,                            // llvm.write_register
-+    aarch64_clrex,                             // llvm.aarch64.clrex
-+    aarch64_crc32b,                            // llvm.aarch64.crc32b
-+    aarch64_crc32cb,                           // llvm.aarch64.crc32cb
-+    aarch64_crc32ch,                           // llvm.aarch64.crc32ch
-+    aarch64_crc32cw,                           // llvm.aarch64.crc32cw
-+    aarch64_crc32cx,                           // llvm.aarch64.crc32cx
-+    aarch64_crc32h,                            // llvm.aarch64.crc32h
-+    aarch64_crc32w,                            // llvm.aarch64.crc32w
-+    aarch64_crc32x,                            // llvm.aarch64.crc32x
-+    aarch64_crypto_aesd,                       // llvm.aarch64.crypto.aesd
-+    aarch64_crypto_aese,                       // llvm.aarch64.crypto.aese
-+    aarch64_crypto_aesimc,                     // llvm.aarch64.crypto.aesimc
-+    aarch64_crypto_aesmc,                      // llvm.aarch64.crypto.aesmc
-+    aarch64_crypto_sha1c,                      // llvm.aarch64.crypto.sha1c
-+    aarch64_crypto_sha1h,                      // llvm.aarch64.crypto.sha1h
-+    aarch64_crypto_sha1m,                      // llvm.aarch64.crypto.sha1m
-+    aarch64_crypto_sha1p,                      // llvm.aarch64.crypto.sha1p
-+    aarch64_crypto_sha1su0,                    // llvm.aarch64.crypto.sha1su0
-+    aarch64_crypto_sha1su1,                    // llvm.aarch64.crypto.sha1su1
-+    aarch64_crypto_sha256h,                    // llvm.aarch64.crypto.sha256h
-+    aarch64_crypto_sha256h2,                   // llvm.aarch64.crypto.sha256h2
-+    aarch64_crypto_sha256su0,                  // llvm.aarch64.crypto.sha256su0
-+    aarch64_crypto_sha256su1,                  // llvm.aarch64.crypto.sha256su1
-+    aarch64_dmb,                               // llvm.aarch64.dmb
-+    aarch64_dsb,                               // llvm.aarch64.dsb
-+    aarch64_hint,                              // llvm.aarch64.hint
-+    aarch64_isb,                               // llvm.aarch64.isb
-+    aarch64_ldaxp,                             // llvm.aarch64.ldaxp
-+    aarch64_ldaxr,                             // llvm.aarch64.ldaxr
-+    aarch64_ldxp,                              // llvm.aarch64.ldxp
-+    aarch64_ldxr,                              // llvm.aarch64.ldxr
-+    aarch64_neon_abs,                          // llvm.aarch64.neon.abs
-+    aarch64_neon_addhn,                        // llvm.aarch64.neon.addhn
-+    aarch64_neon_addp,                         // llvm.aarch64.neon.addp
-+    aarch64_neon_cls,                          // llvm.aarch64.neon.cls
-+    aarch64_neon_fabd,                         // llvm.aarch64.neon.fabd
-+    aarch64_neon_facge,                        // llvm.aarch64.neon.facge
-+    aarch64_neon_facgt,                        // llvm.aarch64.neon.facgt
-+    aarch64_neon_faddv,                        // llvm.aarch64.neon.faddv
-+    aarch64_neon_fcvtas,                       // llvm.aarch64.neon.fcvtas
-+    aarch64_neon_fcvtau,                       // llvm.aarch64.neon.fcvtau
-+    aarch64_neon_fcvtms,                       // llvm.aarch64.neon.fcvtms
-+    aarch64_neon_fcvtmu,                       // llvm.aarch64.neon.fcvtmu
-+    aarch64_neon_fcvtns,                       // llvm.aarch64.neon.fcvtns
-+    aarch64_neon_fcvtnu,                       // llvm.aarch64.neon.fcvtnu
-+    aarch64_neon_fcvtps,                       // llvm.aarch64.neon.fcvtps
-+    aarch64_neon_fcvtpu,                       // llvm.aarch64.neon.fcvtpu
-+    aarch64_neon_fcvtxn,                       // llvm.aarch64.neon.fcvtxn
-+    aarch64_neon_fcvtzs,                       // llvm.aarch64.neon.fcvtzs
-+    aarch64_neon_fcvtzu,                       // llvm.aarch64.neon.fcvtzu
-+    aarch64_neon_fmax,                         // llvm.aarch64.neon.fmax
-+    aarch64_neon_fmaxnm,                       // llvm.aarch64.neon.fmaxnm
-+    aarch64_neon_fmaxnmp,                      // llvm.aarch64.neon.fmaxnmp
-+    aarch64_neon_fmaxnmv,                      // llvm.aarch64.neon.fmaxnmv
-+    aarch64_neon_fmaxp,                        // llvm.aarch64.neon.fmaxp
-+    aarch64_neon_fmaxv,                        // llvm.aarch64.neon.fmaxv
-+    aarch64_neon_fmin,                         // llvm.aarch64.neon.fmin
-+    aarch64_neon_fminnm,                       // llvm.aarch64.neon.fminnm
-+    aarch64_neon_fminnmp,                      // llvm.aarch64.neon.fminnmp
-+    aarch64_neon_fminnmv,                      // llvm.aarch64.neon.fminnmv
-+    aarch64_neon_fminp,                        // llvm.aarch64.neon.fminp
-+    aarch64_neon_fminv,                        // llvm.aarch64.neon.fminv
-+    aarch64_neon_fmulx,                        // llvm.aarch64.neon.fmulx
-+    aarch64_neon_frecpe,                       // llvm.aarch64.neon.frecpe
-+    aarch64_neon_frecps,                       // llvm.aarch64.neon.frecps
-+    aarch64_neon_frecpx,                       // llvm.aarch64.neon.frecpx
-+    aarch64_neon_frintn,                       // llvm.aarch64.neon.frintn
-+    aarch64_neon_frsqrte,                      // llvm.aarch64.neon.frsqrte
-+    aarch64_neon_frsqrts,                      // llvm.aarch64.neon.frsqrts
-+    aarch64_neon_ld1x2,                        // llvm.aarch64.neon.ld1x2
-+    aarch64_neon_ld1x3,                        // llvm.aarch64.neon.ld1x3
-+    aarch64_neon_ld1x4,                        // llvm.aarch64.neon.ld1x4
-+    aarch64_neon_ld2,                          // llvm.aarch64.neon.ld2
-+    aarch64_neon_ld2lane,                      // llvm.aarch64.neon.ld2lane
-+    aarch64_neon_ld2r,                         // llvm.aarch64.neon.ld2r
-+    aarch64_neon_ld3,                          // llvm.aarch64.neon.ld3
-+    aarch64_neon_ld3lane,                      // llvm.aarch64.neon.ld3lane
-+    aarch64_neon_ld3r,                         // llvm.aarch64.neon.ld3r
-+    aarch64_neon_ld4,                          // llvm.aarch64.neon.ld4
-+    aarch64_neon_ld4lane,                      // llvm.aarch64.neon.ld4lane
-+    aarch64_neon_ld4r,                         // llvm.aarch64.neon.ld4r
-+    aarch64_neon_pmul,                         // llvm.aarch64.neon.pmul
-+    aarch64_neon_pmull,                        // llvm.aarch64.neon.pmull
-+    aarch64_neon_pmull64,                      // llvm.aarch64.neon.pmull64
-+    aarch64_neon_raddhn,                       // llvm.aarch64.neon.raddhn
-+    aarch64_neon_rbit,                         // llvm.aarch64.neon.rbit
-+    aarch64_neon_rshrn,                        // llvm.aarch64.neon.rshrn
-+    aarch64_neon_rsubhn,                       // llvm.aarch64.neon.rsubhn
-+    aarch64_neon_sabd,                         // llvm.aarch64.neon.sabd
-+    aarch64_neon_saddlp,                       // llvm.aarch64.neon.saddlp
-+    aarch64_neon_saddlv,                       // llvm.aarch64.neon.saddlv
-+    aarch64_neon_saddv,                        // llvm.aarch64.neon.saddv
-+    aarch64_neon_scalar_sqxtn,                 // llvm.aarch64.neon.scalar.sqxtn
-+    aarch64_neon_scalar_sqxtun,                // llvm.aarch64.neon.scalar.sqxtun
-+    aarch64_neon_scalar_uqxtn,                 // llvm.aarch64.neon.scalar.uqxtn
-+    aarch64_neon_shadd,                        // llvm.aarch64.neon.shadd
-+    aarch64_neon_shll,                         // llvm.aarch64.neon.shll
-+    aarch64_neon_shsub,                        // llvm.aarch64.neon.shsub
-+    aarch64_neon_smax,                         // llvm.aarch64.neon.smax
-+    aarch64_neon_smaxp,                        // llvm.aarch64.neon.smaxp
-+    aarch64_neon_smaxv,                        // llvm.aarch64.neon.smaxv
-+    aarch64_neon_smin,                         // llvm.aarch64.neon.smin
-+    aarch64_neon_sminp,                        // llvm.aarch64.neon.sminp
-+    aarch64_neon_sminv,                        // llvm.aarch64.neon.sminv
-+    aarch64_neon_smull,                        // llvm.aarch64.neon.smull
-+    aarch64_neon_sqabs,                        // llvm.aarch64.neon.sqabs
-+    aarch64_neon_sqadd,                        // llvm.aarch64.neon.sqadd
-+    aarch64_neon_sqdmulh,                      // llvm.aarch64.neon.sqdmulh
-+    aarch64_neon_sqdmull,                      // llvm.aarch64.neon.sqdmull
-+    aarch64_neon_sqdmulls_scalar,              // llvm.aarch64.neon.sqdmulls.scalar
-+    aarch64_neon_sqneg,                        // llvm.aarch64.neon.sqneg
-+    aarch64_neon_sqrdmulh,                     // llvm.aarch64.neon.sqrdmulh
-+    aarch64_neon_sqrshl,                       // llvm.aarch64.neon.sqrshl
-+    aarch64_neon_sqrshrn,                      // llvm.aarch64.neon.sqrshrn
-+    aarch64_neon_sqrshrun,                     // llvm.aarch64.neon.sqrshrun
-+    aarch64_neon_sqshl,                        // llvm.aarch64.neon.sqshl
-+    aarch64_neon_sqshlu,                       // llvm.aarch64.neon.sqshlu
-+    aarch64_neon_sqshrn,                       // llvm.aarch64.neon.sqshrn
-+    aarch64_neon_sqshrun,                      // llvm.aarch64.neon.sqshrun
-+    aarch64_neon_sqsub,                        // llvm.aarch64.neon.sqsub
-+    aarch64_neon_sqxtn,                        // llvm.aarch64.neon.sqxtn
-+    aarch64_neon_sqxtun,                       // llvm.aarch64.neon.sqxtun
-+    aarch64_neon_srhadd,                       // llvm.aarch64.neon.srhadd
-+    aarch64_neon_srshl,                        // llvm.aarch64.neon.srshl
-+    aarch64_neon_sshl,                         // llvm.aarch64.neon.sshl
-+    aarch64_neon_sshll,                        // llvm.aarch64.neon.sshll
-+    aarch64_neon_st1x2,                        // llvm.aarch64.neon.st1x2
-+    aarch64_neon_st1x3,                        // llvm.aarch64.neon.st1x3
-+    aarch64_neon_st1x4,                        // llvm.aarch64.neon.st1x4
-+    aarch64_neon_st2,                          // llvm.aarch64.neon.st2
-+    aarch64_neon_st2lane,                      // llvm.aarch64.neon.st2lane
-+    aarch64_neon_st3,                          // llvm.aarch64.neon.st3
-+    aarch64_neon_st3lane,                      // llvm.aarch64.neon.st3lane
-+    aarch64_neon_st4,                          // llvm.aarch64.neon.st4
-+    aarch64_neon_st4lane,                      // llvm.aarch64.neon.st4lane
-+    aarch64_neon_subhn,                        // llvm.aarch64.neon.subhn
-+    aarch64_neon_suqadd,                       // llvm.aarch64.neon.suqadd
-+    aarch64_neon_tbl1,                         // llvm.aarch64.neon.tbl1
-+    aarch64_neon_tbl2,                         // llvm.aarch64.neon.tbl2
-+    aarch64_neon_tbl3,                         // llvm.aarch64.neon.tbl3
-+    aarch64_neon_tbl4,                         // llvm.aarch64.neon.tbl4
-+    aarch64_neon_tbx1,                         // llvm.aarch64.neon.tbx1
-+    aarch64_neon_tbx2,                         // llvm.aarch64.neon.tbx2
-+    aarch64_neon_tbx3,                         // llvm.aarch64.neon.tbx3
-+    aarch64_neon_tbx4,                         // llvm.aarch64.neon.tbx4
-+    aarch64_neon_uabd,                         // llvm.aarch64.neon.uabd
-+    aarch64_neon_uaddlp,                       // llvm.aarch64.neon.uaddlp
-+    aarch64_neon_uaddlv,                       // llvm.aarch64.neon.uaddlv
-+    aarch64_neon_uaddv,                        // llvm.aarch64.neon.uaddv
-+    aarch64_neon_uhadd,                        // llvm.aarch64.neon.uhadd
-+    aarch64_neon_uhsub,                        // llvm.aarch64.neon.uhsub
-+    aarch64_neon_umax,                         // llvm.aarch64.neon.umax
-+    aarch64_neon_umaxp,                        // llvm.aarch64.neon.umaxp
-+    aarch64_neon_umaxv,                        // llvm.aarch64.neon.umaxv
-+    aarch64_neon_umin,                         // llvm.aarch64.neon.umin
-+    aarch64_neon_uminp,                        // llvm.aarch64.neon.uminp
-+    aarch64_neon_uminv,                        // llvm.aarch64.neon.uminv
-+    aarch64_neon_umull,                        // llvm.aarch64.neon.umull
-+    aarch64_neon_uqadd,                        // llvm.aarch64.neon.uqadd
-+    aarch64_neon_uqrshl,                       // llvm.aarch64.neon.uqrshl
-+    aarch64_neon_uqrshrn,                      // llvm.aarch64.neon.uqrshrn
-+    aarch64_neon_uqshl,                        // llvm.aarch64.neon.uqshl
-+    aarch64_neon_uqshrn,                       // llvm.aarch64.neon.uqshrn
-+    aarch64_neon_uqsub,                        // llvm.aarch64.neon.uqsub
-+    aarch64_neon_uqxtn,                        // llvm.aarch64.neon.uqxtn
-+    aarch64_neon_urecpe,                       // llvm.aarch64.neon.urecpe
-+    aarch64_neon_urhadd,                       // llvm.aarch64.neon.urhadd
-+    aarch64_neon_urshl,                        // llvm.aarch64.neon.urshl
-+    aarch64_neon_ursqrte,                      // llvm.aarch64.neon.ursqrte
-+    aarch64_neon_ushl,                         // llvm.aarch64.neon.ushl
-+    aarch64_neon_ushll,                        // llvm.aarch64.neon.ushll
-+    aarch64_neon_usqadd,                       // llvm.aarch64.neon.usqadd
-+    aarch64_neon_vcopy_lane,                   // llvm.aarch64.neon.vcopy.lane
-+    aarch64_neon_vcvtfp2fxs,                   // llvm.aarch64.neon.vcvtfp2fxs
-+    aarch64_neon_vcvtfp2fxu,                   // llvm.aarch64.neon.vcvtfp2fxu
-+    aarch64_neon_vcvtfp2hf,                    // llvm.aarch64.neon.vcvtfp2hf
-+    aarch64_neon_vcvtfxs2fp,                   // llvm.aarch64.neon.vcvtfxs2fp
-+    aarch64_neon_vcvtfxu2fp,                   // llvm.aarch64.neon.vcvtfxu2fp
-+    aarch64_neon_vcvthf2fp,                    // llvm.aarch64.neon.vcvthf2fp
-+    aarch64_neon_vsli,                         // llvm.aarch64.neon.vsli
-+    aarch64_neon_vsri,                         // llvm.aarch64.neon.vsri
-+    aarch64_rbit,                              // llvm.aarch64.rbit
-+    aarch64_sdiv,                              // llvm.aarch64.sdiv
-+    aarch64_sisd_fabd,                         // llvm.aarch64.sisd.fabd
-+    aarch64_sisd_fcvtxn,                       // llvm.aarch64.sisd.fcvtxn
-+    aarch64_stlxp,                             // llvm.aarch64.stlxp
-+    aarch64_stlxr,                             // llvm.aarch64.stlxr
-+    aarch64_stxp,                              // llvm.aarch64.stxp
-+    aarch64_stxr,                              // llvm.aarch64.stxr
-+    aarch64_udiv,                              // llvm.aarch64.udiv
-+    amdgcn_atomic_dec,                         // llvm.amdgcn.atomic.dec
-+    amdgcn_atomic_inc,                         // llvm.amdgcn.atomic.inc
-+    amdgcn_buffer_atomic_add,                  // llvm.amdgcn.buffer.atomic.add
-+    amdgcn_buffer_atomic_and,                  // llvm.amdgcn.buffer.atomic.and
-+    amdgcn_buffer_atomic_cmpswap,              // llvm.amdgcn.buffer.atomic.cmpswap
-+    amdgcn_buffer_atomic_or,                   // llvm.amdgcn.buffer.atomic.or
-+    amdgcn_buffer_atomic_smax,                 // llvm.amdgcn.buffer.atomic.smax
-+    amdgcn_buffer_atomic_smin,                 // llvm.amdgcn.buffer.atomic.smin
-+    amdgcn_buffer_atomic_sub,                  // llvm.amdgcn.buffer.atomic.sub
-+    amdgcn_buffer_atomic_swap,                 // llvm.amdgcn.buffer.atomic.swap
-+    amdgcn_buffer_atomic_umax,                 // llvm.amdgcn.buffer.atomic.umax
-+    amdgcn_buffer_atomic_umin,                 // llvm.amdgcn.buffer.atomic.umin
-+    amdgcn_buffer_atomic_xor,                  // llvm.amdgcn.buffer.atomic.xor
-+    amdgcn_buffer_load,                        // llvm.amdgcn.buffer.load
-+    amdgcn_buffer_load_format,                 // llvm.amdgcn.buffer.load.format
-+    amdgcn_buffer_store,                       // llvm.amdgcn.buffer.store
-+    amdgcn_buffer_store_format,                // llvm.amdgcn.buffer.store.format
-+    amdgcn_buffer_wbinvl1,                     // llvm.amdgcn.buffer.wbinvl1
-+    amdgcn_buffer_wbinvl1_sc,                  // llvm.amdgcn.buffer.wbinvl1.sc
-+    amdgcn_buffer_wbinvl1_vol,                 // llvm.amdgcn.buffer.wbinvl1.vol
-+    amdgcn_class,                              // llvm.amdgcn.class
-+    amdgcn_cos,                                // llvm.amdgcn.cos
-+    amdgcn_cubeid,                             // llvm.amdgcn.cubeid
-+    amdgcn_cubema,                             // llvm.amdgcn.cubema
-+    amdgcn_cubesc,                             // llvm.amdgcn.cubesc
-+    amdgcn_cubetc,                             // llvm.amdgcn.cubetc
-+    amdgcn_cvt_pk_u8_f32,                      // llvm.amdgcn.cvt.pk.u8.f32
-+    amdgcn_dispatch_id,                        // llvm.amdgcn.dispatch.id
-+    amdgcn_dispatch_ptr,                       // llvm.amdgcn.dispatch.ptr
-+    amdgcn_div_fixup,                          // llvm.amdgcn.div.fixup
-+    amdgcn_div_fmas,                           // llvm.amdgcn.div.fmas
-+    amdgcn_div_scale,                          // llvm.amdgcn.div.scale
-+    amdgcn_ds_bpermute,                        // llvm.amdgcn.ds.bpermute
-+    amdgcn_ds_permute,                         // llvm.amdgcn.ds.permute
-+    amdgcn_ds_swizzle,                         // llvm.amdgcn.ds.swizzle
-+    amdgcn_fcmp,                               // llvm.amdgcn.fcmp
-+    amdgcn_fmul_legacy,                        // llvm.amdgcn.fmul.legacy
-+    amdgcn_fract,                              // llvm.amdgcn.fract
-+    amdgcn_frexp_exp,                          // llvm.amdgcn.frexp.exp
-+    amdgcn_frexp_mant,                         // llvm.amdgcn.frexp.mant
-+    amdgcn_groupstaticsize,                    // llvm.amdgcn.groupstaticsize
-+    amdgcn_icmp,                               // llvm.amdgcn.icmp
-+    amdgcn_image_atomic_add,                   // llvm.amdgcn.image.atomic.add
-+    amdgcn_image_atomic_and,                   // llvm.amdgcn.image.atomic.and
-+    amdgcn_image_atomic_cmpswap,               // llvm.amdgcn.image.atomic.cmpswap
-+    amdgcn_image_atomic_dec,                   // llvm.amdgcn.image.atomic.dec
-+    amdgcn_image_atomic_inc,                   // llvm.amdgcn.image.atomic.inc
-+    amdgcn_image_atomic_or,                    // llvm.amdgcn.image.atomic.or
-+    amdgcn_image_atomic_smax,                  // llvm.amdgcn.image.atomic.smax
-+    amdgcn_image_atomic_smin,                  // llvm.amdgcn.image.atomic.smin
-+    amdgcn_image_atomic_sub,                   // llvm.amdgcn.image.atomic.sub
-+    amdgcn_image_atomic_swap,                  // llvm.amdgcn.image.atomic.swap
-+    amdgcn_image_atomic_umax,                  // llvm.amdgcn.image.atomic.umax
-+    amdgcn_image_atomic_umin,                  // llvm.amdgcn.image.atomic.umin
-+    amdgcn_image_atomic_xor,                   // llvm.amdgcn.image.atomic.xor
-+    amdgcn_image_gather4,                      // llvm.amdgcn.image.gather4
-+    amdgcn_image_gather4_b,                    // llvm.amdgcn.image.gather4.b
-+    amdgcn_image_gather4_b_cl,                 // llvm.amdgcn.image.gather4.b.cl
-+    amdgcn_image_gather4_b_cl_o,               // llvm.amdgcn.image.gather4.b.cl.o
-+    amdgcn_image_gather4_b_o,                  // llvm.amdgcn.image.gather4.b.o
-+    amdgcn_image_gather4_c,                    // llvm.amdgcn.image.gather4.c
-+    amdgcn_image_gather4_c_b,                  // llvm.amdgcn.image.gather4.c.b
-+    amdgcn_image_gather4_c_b_cl,               // llvm.amdgcn.image.gather4.c.b.cl
-+    amdgcn_image_gather4_c_b_cl_o,             // llvm.amdgcn.image.gather4.c.b.cl.o
-+    amdgcn_image_gather4_c_b_o,                // llvm.amdgcn.image.gather4.c.b.o
-+    amdgcn_image_gather4_c_cl,                 // llvm.amdgcn.image.gather4.c.cl
-+    amdgcn_image_gather4_c_cl_o,               // llvm.amdgcn.image.gather4.c.cl.o
-+    amdgcn_image_gather4_c_l,                  // llvm.amdgcn.image.gather4.c.l
-+    amdgcn_image_gather4_c_l_o,                // llvm.amdgcn.image.gather4.c.l.o
-+    amdgcn_image_gather4_c_lz,                 // llvm.amdgcn.image.gather4.c.lz
-+    amdgcn_image_gather4_c_lz_o,               // llvm.amdgcn.image.gather4.c.lz.o
-+    amdgcn_image_gather4_c_o,                  // llvm.amdgcn.image.gather4.c.o
-+    amdgcn_image_gather4_cl,                   // llvm.amdgcn.image.gather4.cl
-+    amdgcn_image_gather4_cl_o,                 // llvm.amdgcn.image.gather4.cl.o
-+    amdgcn_image_gather4_l,                    // llvm.amdgcn.image.gather4.l
-+    amdgcn_image_gather4_l_o,                  // llvm.amdgcn.image.gather4.l.o
-+    amdgcn_image_gather4_lz,                   // llvm.amdgcn.image.gather4.lz
-+    amdgcn_image_gather4_lz_o,                 // llvm.amdgcn.image.gather4.lz.o
-+    amdgcn_image_gather4_o,                    // llvm.amdgcn.image.gather4.o
-+    amdgcn_image_getlod,                       // llvm.amdgcn.image.getlod
-+    amdgcn_image_getresinfo,                   // llvm.amdgcn.image.getresinfo
-+    amdgcn_image_load,                         // llvm.amdgcn.image.load
-+    amdgcn_image_load_mip,                     // llvm.amdgcn.image.load.mip
-+    amdgcn_image_sample,                       // llvm.amdgcn.image.sample
-+    amdgcn_image_sample_b,                     // llvm.amdgcn.image.sample.b
-+    amdgcn_image_sample_b_cl,                  // llvm.amdgcn.image.sample.b.cl
-+    amdgcn_image_sample_b_cl_o,                // llvm.amdgcn.image.sample.b.cl.o
-+    amdgcn_image_sample_b_o,                   // llvm.amdgcn.image.sample.b.o
-+    amdgcn_image_sample_c,                     // llvm.amdgcn.image.sample.c
-+    amdgcn_image_sample_c_b,                   // llvm.amdgcn.image.sample.c.b
-+    amdgcn_image_sample_c_b_cl,                // llvm.amdgcn.image.sample.c.b.cl
-+    amdgcn_image_sample_c_b_cl_o,              // llvm.amdgcn.image.sample.c.b.cl.o
-+    amdgcn_image_sample_c_b_o,                 // llvm.amdgcn.image.sample.c.b.o
-+    amdgcn_image_sample_c_cd,                  // llvm.amdgcn.image.sample.c.cd
-+    amdgcn_image_sample_c_cd_cl,               // llvm.amdgcn.image.sample.c.cd.cl
-+    amdgcn_image_sample_c_cd_cl_o,             // llvm.amdgcn.image.sample.c.cd.cl.o
-+    amdgcn_image_sample_c_cd_o,                // llvm.amdgcn.image.sample.c.cd.o
-+    amdgcn_image_sample_c_cl,                  // llvm.amdgcn.image.sample.c.cl
-+    amdgcn_image_sample_c_cl_o,                // llvm.amdgcn.image.sample.c.cl.o
-+    amdgcn_image_sample_c_d,                   // llvm.amdgcn.image.sample.c.d
-+    amdgcn_image_sample_c_d_cl,                // llvm.amdgcn.image.sample.c.d.cl
-+    amdgcn_image_sample_c_d_cl_o,              // llvm.amdgcn.image.sample.c.d.cl.o
-+    amdgcn_image_sample_c_d_o,                 // llvm.amdgcn.image.sample.c.d.o
-+    amdgcn_image_sample_c_l,                   // llvm.amdgcn.image.sample.c.l
-+    amdgcn_image_sample_c_l_o,                 // llvm.amdgcn.image.sample.c.l.o
-+    amdgcn_image_sample_c_lz,                  // llvm.amdgcn.image.sample.c.lz
-+    amdgcn_image_sample_c_lz_o,                // llvm.amdgcn.image.sample.c.lz.o
-+    amdgcn_image_sample_c_o,                   // llvm.amdgcn.image.sample.c.o
-+    amdgcn_image_sample_cd,                    // llvm.amdgcn.image.sample.cd
-+    amdgcn_image_sample_cd_cl,                 // llvm.amdgcn.image.sample.cd.cl
-+    amdgcn_image_sample_cd_cl_o,               // llvm.amdgcn.image.sample.cd.cl.o
-+    amdgcn_image_sample_cd_o,                  // llvm.amdgcn.image.sample.cd.o
-+    amdgcn_image_sample_cl,                    // llvm.amdgcn.image.sample.cl
-+    amdgcn_image_sample_cl_o,                  // llvm.amdgcn.image.sample.cl.o
-+    amdgcn_image_sample_d,                     // llvm.amdgcn.image.sample.d
-+    amdgcn_image_sample_d_cl,                  // llvm.amdgcn.image.sample.d.cl
-+    amdgcn_image_sample_d_cl_o,                // llvm.amdgcn.image.sample.d.cl.o
-+    amdgcn_image_sample_d_o,                   // llvm.amdgcn.image.sample.d.o
-+    amdgcn_image_sample_l,                     // llvm.amdgcn.image.sample.l
-+    amdgcn_image_sample_l_o,                   // llvm.amdgcn.image.sample.l.o
-+    amdgcn_image_sample_lz,                    // llvm.amdgcn.image.sample.lz
-+    amdgcn_image_sample_lz_o,                  // llvm.amdgcn.image.sample.lz.o
-+    amdgcn_image_sample_o,                     // llvm.amdgcn.image.sample.o
-+    amdgcn_image_store,                        // llvm.amdgcn.image.store
-+    amdgcn_image_store_mip,                    // llvm.amdgcn.image.store.mip
-+    amdgcn_implicitarg_ptr,                    // llvm.amdgcn.implicitarg.ptr
-+    amdgcn_interp_mov,                         // llvm.amdgcn.interp.mov
-+    amdgcn_interp_p1,                          // llvm.amdgcn.interp.p1
-+    amdgcn_interp_p2,                          // llvm.amdgcn.interp.p2
-+    amdgcn_kernarg_segment_ptr,                // llvm.amdgcn.kernarg.segment.ptr
-+    amdgcn_ldexp,                              // llvm.amdgcn.ldexp
-+    amdgcn_lerp,                               // llvm.amdgcn.lerp
-+    amdgcn_log_clamp,                          // llvm.amdgcn.log.clamp
-+    amdgcn_mbcnt_hi,                           // llvm.amdgcn.mbcnt.hi
-+    amdgcn_mbcnt_lo,                           // llvm.amdgcn.mbcnt.lo
-+    amdgcn_mov_dpp,                            // llvm.amdgcn.mov.dpp
-+    amdgcn_mqsad_pk_u16_u8,                    // llvm.amdgcn.mqsad.pk.u16.u8
-+    amdgcn_mqsad_u32_u8,                       // llvm.amdgcn.mqsad.u32.u8
-+    amdgcn_msad_u8,                            // llvm.amdgcn.msad.u8
-+    amdgcn_ps_live,                            // llvm.amdgcn.ps.live
-+    amdgcn_qsad_pk_u16_u8,                     // llvm.amdgcn.qsad.pk.u16.u8
-+    amdgcn_queue_ptr,                          // llvm.amdgcn.queue.ptr
-+    amdgcn_rcp,                                // llvm.amdgcn.rcp
-+    amdgcn_rcp_legacy,                         // llvm.amdgcn.rcp.legacy
-+    amdgcn_readfirstlane,                      // llvm.amdgcn.readfirstlane
-+    amdgcn_readlane,                           // llvm.amdgcn.readlane
-+    amdgcn_rsq,                                // llvm.amdgcn.rsq
-+    amdgcn_rsq_clamp,                          // llvm.amdgcn.rsq.clamp
-+    amdgcn_rsq_legacy,                         // llvm.amdgcn.rsq.legacy
-+    amdgcn_s_barrier,                          // llvm.amdgcn.s.barrier
-+    amdgcn_s_dcache_inv,                       // llvm.amdgcn.s.dcache.inv
-+    amdgcn_s_dcache_inv_vol,                   // llvm.amdgcn.s.dcache.inv.vol
-+    amdgcn_s_dcache_wb,                        // llvm.amdgcn.s.dcache.wb
-+    amdgcn_s_dcache_wb_vol,                    // llvm.amdgcn.s.dcache.wb.vol
-+    amdgcn_s_decperflevel,                     // llvm.amdgcn.s.decperflevel
-+    amdgcn_s_getreg,                           // llvm.amdgcn.s.getreg
-+    amdgcn_s_incperflevel,                     // llvm.amdgcn.s.incperflevel
-+    amdgcn_s_memrealtime,                      // llvm.amdgcn.s.memrealtime
-+    amdgcn_s_memtime,                          // llvm.amdgcn.s.memtime
-+    amdgcn_s_sleep,                            // llvm.amdgcn.s.sleep
-+    amdgcn_s_waitcnt,                          // llvm.amdgcn.s.waitcnt
-+    amdgcn_sad_hi_u8,                          // llvm.amdgcn.sad.hi.u8
-+    amdgcn_sad_u16,                            // llvm.amdgcn.sad.u16
-+    amdgcn_sad_u8,                             // llvm.amdgcn.sad.u8
-+    amdgcn_sffbh,                              // llvm.amdgcn.sffbh
-+    amdgcn_sin,                                // llvm.amdgcn.sin
-+    amdgcn_trig_preop,                         // llvm.amdgcn.trig.preop
-+    amdgcn_wave_barrier,                       // llvm.amdgcn.wave.barrier
-+    amdgcn_workgroup_id_x,                     // llvm.amdgcn.workgroup.id.x
-+    amdgcn_workgroup_id_y,                     // llvm.amdgcn.workgroup.id.y
-+    amdgcn_workgroup_id_z,                     // llvm.amdgcn.workgroup.id.z
-+    amdgcn_workitem_id_x,                      // llvm.amdgcn.workitem.id.x
-+    amdgcn_workitem_id_y,                      // llvm.amdgcn.workitem.id.y
-+    amdgcn_workitem_id_z,                      // llvm.amdgcn.workitem.id.z
-+    arm_cdp,                                   // llvm.arm.cdp
-+    arm_cdp2,                                  // llvm.arm.cdp2
-+    arm_clrex,                                 // llvm.arm.clrex
-+    arm_crc32b,                                // llvm.arm.crc32b
-+    arm_crc32cb,                               // llvm.arm.crc32cb
-+    arm_crc32ch,                               // llvm.arm.crc32ch
-+    arm_crc32cw,                               // llvm.arm.crc32cw
-+    arm_crc32h,                                // llvm.arm.crc32h
-+    arm_crc32w,                                // llvm.arm.crc32w
-+    arm_dbg,                                   // llvm.arm.dbg
-+    arm_dmb,                                   // llvm.arm.dmb
-+    arm_dsb,                                   // llvm.arm.dsb
-+    arm_get_fpscr,                             // llvm.arm.get.fpscr
-+    arm_hint,                                  // llvm.arm.hint
-+    arm_isb,                                   // llvm.arm.isb
-+    arm_ldaex,                                 // llvm.arm.ldaex
-+    arm_ldaexd,                                // llvm.arm.ldaexd
-+    arm_ldc,                                   // llvm.arm.ldc
-+    arm_ldc2,                                  // llvm.arm.ldc2
-+    arm_ldc2l,                                 // llvm.arm.ldc2l
-+    arm_ldcl,                                  // llvm.arm.ldcl
-+    arm_ldrex,                                 // llvm.arm.ldrex
-+    arm_ldrexd,                                // llvm.arm.ldrexd
-+    arm_mcr,                                   // llvm.arm.mcr
-+    arm_mcr2,                                  // llvm.arm.mcr2
-+    arm_mcrr,                                  // llvm.arm.mcrr
-+    arm_mcrr2,                                 // llvm.arm.mcrr2
-+    arm_mrc,                                   // llvm.arm.mrc
-+    arm_mrc2,                                  // llvm.arm.mrc2
-+    arm_mrrc,                                  // llvm.arm.mrrc
-+    arm_mrrc2,                                 // llvm.arm.mrrc2
-+    arm_neon_aesd,                             // llvm.arm.neon.aesd
-+    arm_neon_aese,                             // llvm.arm.neon.aese
-+    arm_neon_aesimc,                           // llvm.arm.neon.aesimc
-+    arm_neon_aesmc,                            // llvm.arm.neon.aesmc
-+    arm_neon_sha1c,                            // llvm.arm.neon.sha1c
-+    arm_neon_sha1h,                            // llvm.arm.neon.sha1h
-+    arm_neon_sha1m,                            // llvm.arm.neon.sha1m
-+    arm_neon_sha1p,                            // llvm.arm.neon.sha1p
-+    arm_neon_sha1su0,                          // llvm.arm.neon.sha1su0
-+    arm_neon_sha1su1,                          // llvm.arm.neon.sha1su1
-+    arm_neon_sha256h,                          // llvm.arm.neon.sha256h
-+    arm_neon_sha256h2,                         // llvm.arm.neon.sha256h2
-+    arm_neon_sha256su0,                        // llvm.arm.neon.sha256su0
-+    arm_neon_sha256su1,                        // llvm.arm.neon.sha256su1
-+    arm_neon_vabds,                            // llvm.arm.neon.vabds
-+    arm_neon_vabdu,                            // llvm.arm.neon.vabdu
-+    arm_neon_vabs,                             // llvm.arm.neon.vabs
-+    arm_neon_vacge,                            // llvm.arm.neon.vacge
-+    arm_neon_vacgt,                            // llvm.arm.neon.vacgt
-+    arm_neon_vbsl,                             // llvm.arm.neon.vbsl
-+    arm_neon_vcls,                             // llvm.arm.neon.vcls
-+    arm_neon_vcvtas,                           // llvm.arm.neon.vcvtas
-+    arm_neon_vcvtau,                           // llvm.arm.neon.vcvtau
-+    arm_neon_vcvtfp2fxs,                       // llvm.arm.neon.vcvtfp2fxs
-+    arm_neon_vcvtfp2fxu,                       // llvm.arm.neon.vcvtfp2fxu
-+    arm_neon_vcvtfp2hf,                        // llvm.arm.neon.vcvtfp2hf
-+    arm_neon_vcvtfxs2fp,                       // llvm.arm.neon.vcvtfxs2fp
-+    arm_neon_vcvtfxu2fp,                       // llvm.arm.neon.vcvtfxu2fp
-+    arm_neon_vcvthf2fp,                        // llvm.arm.neon.vcvthf2fp
-+    arm_neon_vcvtms,                           // llvm.arm.neon.vcvtms
-+    arm_neon_vcvtmu,                           // llvm.arm.neon.vcvtmu
-+    arm_neon_vcvtns,                           // llvm.arm.neon.vcvtns
-+    arm_neon_vcvtnu,                           // llvm.arm.neon.vcvtnu
-+    arm_neon_vcvtps,                           // llvm.arm.neon.vcvtps
-+    arm_neon_vcvtpu,                           // llvm.arm.neon.vcvtpu
-+    arm_neon_vhadds,                           // llvm.arm.neon.vhadds
-+    arm_neon_vhaddu,                           // llvm.arm.neon.vhaddu
-+    arm_neon_vhsubs,                           // llvm.arm.neon.vhsubs
-+    arm_neon_vhsubu,                           // llvm.arm.neon.vhsubu
-+    arm_neon_vld1,                             // llvm.arm.neon.vld1
-+    arm_neon_vld2,                             // llvm.arm.neon.vld2
-+    arm_neon_vld2lane,                         // llvm.arm.neon.vld2lane
-+    arm_neon_vld3,                             // llvm.arm.neon.vld3
-+    arm_neon_vld3lane,                         // llvm.arm.neon.vld3lane
-+    arm_neon_vld4,                             // llvm.arm.neon.vld4
-+    arm_neon_vld4lane,                         // llvm.arm.neon.vld4lane
-+    arm_neon_vmaxnm,                           // llvm.arm.neon.vmaxnm
-+    arm_neon_vmaxs,                            // llvm.arm.neon.vmaxs
-+    arm_neon_vmaxu,                            // llvm.arm.neon.vmaxu
-+    arm_neon_vminnm,                           // llvm.arm.neon.vminnm
-+    arm_neon_vmins,                            // llvm.arm.neon.vmins
-+    arm_neon_vminu,                            // llvm.arm.neon.vminu
-+    arm_neon_vmullp,                           // llvm.arm.neon.vmullp
-+    arm_neon_vmulls,                           // llvm.arm.neon.vmulls
-+    arm_neon_vmullu,                           // llvm.arm.neon.vmullu
-+    arm_neon_vmulp,                            // llvm.arm.neon.vmulp
-+    arm_neon_vpadals,                          // llvm.arm.neon.vpadals
-+    arm_neon_vpadalu,                          // llvm.arm.neon.vpadalu
-+    arm_neon_vpadd,                            // llvm.arm.neon.vpadd
-+    arm_neon_vpaddls,                          // llvm.arm.neon.vpaddls
-+    arm_neon_vpaddlu,                          // llvm.arm.neon.vpaddlu
-+    arm_neon_vpmaxs,                           // llvm.arm.neon.vpmaxs
-+    arm_neon_vpmaxu,                           // llvm.arm.neon.vpmaxu
-+    arm_neon_vpmins,                           // llvm.arm.neon.vpmins
-+    arm_neon_vpminu,                           // llvm.arm.neon.vpminu
-+    arm_neon_vqabs,                            // llvm.arm.neon.vqabs
-+    arm_neon_vqadds,                           // llvm.arm.neon.vqadds
-+    arm_neon_vqaddu,                           // llvm.arm.neon.vqaddu
-+    arm_neon_vqdmulh,                          // llvm.arm.neon.vqdmulh
-+    arm_neon_vqdmull,                          // llvm.arm.neon.vqdmull
-+    arm_neon_vqmovns,                          // llvm.arm.neon.vqmovns
-+    arm_neon_vqmovnsu,                         // llvm.arm.neon.vqmovnsu
-+    arm_neon_vqmovnu,                          // llvm.arm.neon.vqmovnu
-+    arm_neon_vqneg,                            // llvm.arm.neon.vqneg
-+    arm_neon_vqrdmulh,                         // llvm.arm.neon.vqrdmulh
-+    arm_neon_vqrshiftns,                       // llvm.arm.neon.vqrshiftns
-+    arm_neon_vqrshiftnsu,                      // llvm.arm.neon.vqrshiftnsu
-+    arm_neon_vqrshiftnu,                       // llvm.arm.neon.vqrshiftnu
-+    arm_neon_vqrshifts,                        // llvm.arm.neon.vqrshifts
-+    arm_neon_vqrshiftu,                        // llvm.arm.neon.vqrshiftu
-+    arm_neon_vqshiftns,                        // llvm.arm.neon.vqshiftns
-+    arm_neon_vqshiftnsu,                       // llvm.arm.neon.vqshiftnsu
-+    arm_neon_vqshiftnu,                        // llvm.arm.neon.vqshiftnu
-+    arm_neon_vqshifts,                         // llvm.arm.neon.vqshifts
-+    arm_neon_vqshiftsu,                        // llvm.arm.neon.vqshiftsu
-+    arm_neon_vqshiftu,                         // llvm.arm.neon.vqshiftu
-+    arm_neon_vqsubs,                           // llvm.arm.neon.vqsubs
-+    arm_neon_vqsubu,                           // llvm.arm.neon.vqsubu
-+    arm_neon_vraddhn,                          // llvm.arm.neon.vraddhn
-+    arm_neon_vrecpe,                           // llvm.arm.neon.vrecpe
-+    arm_neon_vrecps,                           // llvm.arm.neon.vrecps
-+    arm_neon_vrhadds,                          // llvm.arm.neon.vrhadds
-+    arm_neon_vrhaddu,                          // llvm.arm.neon.vrhaddu
-+    arm_neon_vrinta,                           // llvm.arm.neon.vrinta
-+    arm_neon_vrintm,                           // llvm.arm.neon.vrintm
-+    arm_neon_vrintn,                           // llvm.arm.neon.vrintn
-+    arm_neon_vrintp,                           // llvm.arm.neon.vrintp
-+    arm_neon_vrintx,                           // llvm.arm.neon.vrintx
-+    arm_neon_vrintz,                           // llvm.arm.neon.vrintz
-+    arm_neon_vrshiftn,                         // llvm.arm.neon.vrshiftn
-+    arm_neon_vrshifts,                         // llvm.arm.neon.vrshifts
-+    arm_neon_vrshiftu,                         // llvm.arm.neon.vrshiftu
-+    arm_neon_vrsqrte,                          // llvm.arm.neon.vrsqrte
-+    arm_neon_vrsqrts,                          // llvm.arm.neon.vrsqrts
-+    arm_neon_vrsubhn,                          // llvm.arm.neon.vrsubhn
-+    arm_neon_vshiftins,                        // llvm.arm.neon.vshiftins
-+    arm_neon_vshifts,                          // llvm.arm.neon.vshifts
-+    arm_neon_vshiftu,                          // llvm.arm.neon.vshiftu
-+    arm_neon_vst1,                             // llvm.arm.neon.vst1
-+    arm_neon_vst2,                             // llvm.arm.neon.vst2
-+    arm_neon_vst2lane,                         // llvm.arm.neon.vst2lane
-+    arm_neon_vst3,                             // llvm.arm.neon.vst3
-+    arm_neon_vst3lane,                         // llvm.arm.neon.vst3lane
-+    arm_neon_vst4,                             // llvm.arm.neon.vst4
-+    arm_neon_vst4lane,                         // llvm.arm.neon.vst4lane
-+    arm_neon_vtbl1,                            // llvm.arm.neon.vtbl1
-+    arm_neon_vtbl2,                            // llvm.arm.neon.vtbl2
-+    arm_neon_vtbl3,                            // llvm.arm.neon.vtbl3
-+    arm_neon_vtbl4,                            // llvm.arm.neon.vtbl4
-+    arm_neon_vtbx1,                            // llvm.arm.neon.vtbx1
-+    arm_neon_vtbx2,                            // llvm.arm.neon.vtbx2
-+    arm_neon_vtbx3,                            // llvm.arm.neon.vtbx3
-+    arm_neon_vtbx4,                            // llvm.arm.neon.vtbx4
-+    arm_qadd,                                  // llvm.arm.qadd
-+    arm_qsub,                                  // llvm.arm.qsub
-+    arm_rbit,                                  // llvm.arm.rbit
-+    arm_set_fpscr,                             // llvm.arm.set.fpscr
-+    arm_space,                                 // llvm.arm.space
-+    arm_ssat,                                  // llvm.arm.ssat
-+    arm_stc,                                   // llvm.arm.stc
-+    arm_stc2,                                  // llvm.arm.stc2
-+    arm_stc2l,                                 // llvm.arm.stc2l
-+    arm_stcl,                                  // llvm.arm.stcl
-+    arm_stlex,                                 // llvm.arm.stlex
-+    arm_stlexd,                                // llvm.arm.stlexd
-+    arm_strex,                                 // llvm.arm.strex
-+    arm_strexd,                                // llvm.arm.strexd
-+    arm_undefined,                             // llvm.arm.undefined
-+    arm_usat,                                  // llvm.arm.usat
-+    arm_vcvtr,                                 // llvm.arm.vcvtr
-+    arm_vcvtru,                                // llvm.arm.vcvtru
-+    bpf_load_byte,                             // llvm.bpf.load.byte
-+    bpf_load_half,                             // llvm.bpf.load.half
-+    bpf_load_word,                             // llvm.bpf.load.word
-+    bpf_pseudo,                                // llvm.bpf.pseudo
-+    hexagon_A2_abs,                            // llvm.hexagon.A2.abs
-+    hexagon_A2_absp,                           // llvm.hexagon.A2.absp
-+    hexagon_A2_abssat,                         // llvm.hexagon.A2.abssat
-+    hexagon_A2_add,                            // llvm.hexagon.A2.add
-+    hexagon_A2_addh_h16_hh,                    // llvm.hexagon.A2.addh.h16.hh
-+    hexagon_A2_addh_h16_hl,                    // llvm.hexagon.A2.addh.h16.hl
-+    hexagon_A2_addh_h16_lh,                    // llvm.hexagon.A2.addh.h16.lh
-+    hexagon_A2_addh_h16_ll,                    // llvm.hexagon.A2.addh.h16.ll
-+    hexagon_A2_addh_h16_sat_hh,                // llvm.hexagon.A2.addh.h16.sat.hh
-+    hexagon_A2_addh_h16_sat_hl,                // llvm.hexagon.A2.addh.h16.sat.hl
-+    hexagon_A2_addh_h16_sat_lh,                // llvm.hexagon.A2.addh.h16.sat.lh
-+    hexagon_A2_addh_h16_sat_ll,                // llvm.hexagon.A2.addh.h16.sat.ll
-+    hexagon_A2_addh_l16_hl,                    // llvm.hexagon.A2.addh.l16.hl
-+    hexagon_A2_addh_l16_ll,                    // llvm.hexagon.A2.addh.l16.ll
-+    hexagon_A2_addh_l16_sat_hl,                // llvm.hexagon.A2.addh.l16.sat.hl
-+    hexagon_A2_addh_l16_sat_ll,                // llvm.hexagon.A2.addh.l16.sat.ll
-+    hexagon_A2_addi,                           // llvm.hexagon.A2.addi
-+    hexagon_A2_addp,                           // llvm.hexagon.A2.addp
-+    hexagon_A2_addpsat,                        // llvm.hexagon.A2.addpsat
-+    hexagon_A2_addsat,                         // llvm.hexagon.A2.addsat
-+    hexagon_A2_addsp,                          // llvm.hexagon.A2.addsp
-+    hexagon_A2_and,                            // llvm.hexagon.A2.and
-+    hexagon_A2_andir,                          // llvm.hexagon.A2.andir
-+    hexagon_A2_andp,                           // llvm.hexagon.A2.andp
-+    hexagon_A2_aslh,                           // llvm.hexagon.A2.aslh
-+    hexagon_A2_asrh,                           // llvm.hexagon.A2.asrh
-+    hexagon_A2_combine_hh,                     // llvm.hexagon.A2.combine.hh
-+    hexagon_A2_combine_hl,                     // llvm.hexagon.A2.combine.hl
-+    hexagon_A2_combine_lh,                     // llvm.hexagon.A2.combine.lh
-+    hexagon_A2_combine_ll,                     // llvm.hexagon.A2.combine.ll
-+    hexagon_A2_combineii,                      // llvm.hexagon.A2.combineii
-+    hexagon_A2_combinew,                       // llvm.hexagon.A2.combinew
-+    hexagon_A2_max,                            // llvm.hexagon.A2.max
-+    hexagon_A2_maxp,                           // llvm.hexagon.A2.maxp
-+    hexagon_A2_maxu,                           // llvm.hexagon.A2.maxu
-+    hexagon_A2_maxup,                          // llvm.hexagon.A2.maxup
-+    hexagon_A2_min,                            // llvm.hexagon.A2.min
-+    hexagon_A2_minp,                           // llvm.hexagon.A2.minp
-+    hexagon_A2_minu,                           // llvm.hexagon.A2.minu
-+    hexagon_A2_minup,                          // llvm.hexagon.A2.minup
-+    hexagon_A2_neg,                            // llvm.hexagon.A2.neg
-+    hexagon_A2_negp,                           // llvm.hexagon.A2.negp
-+    hexagon_A2_negsat,                         // llvm.hexagon.A2.negsat
-+    hexagon_A2_not,                            // llvm.hexagon.A2.not
-+    hexagon_A2_notp,                           // llvm.hexagon.A2.notp
-+    hexagon_A2_or,                             // llvm.hexagon.A2.or
-+    hexagon_A2_orir,                           // llvm.hexagon.A2.orir
-+    hexagon_A2_orp,                            // llvm.hexagon.A2.orp
-+    hexagon_A2_roundsat,                       // llvm.hexagon.A2.roundsat
-+    hexagon_A2_sat,                            // llvm.hexagon.A2.sat
-+    hexagon_A2_satb,                           // llvm.hexagon.A2.satb
-+    hexagon_A2_sath,                           // llvm.hexagon.A2.sath
-+    hexagon_A2_satub,                          // llvm.hexagon.A2.satub
-+    hexagon_A2_satuh,                          // llvm.hexagon.A2.satuh
-+    hexagon_A2_sub,                            // llvm.hexagon.A2.sub
-+    hexagon_A2_subh_h16_hh,                    // llvm.hexagon.A2.subh.h16.hh
-+    hexagon_A2_subh_h16_hl,                    // llvm.hexagon.A2.subh.h16.hl
-+    hexagon_A2_subh_h16_lh,                    // llvm.hexagon.A2.subh.h16.lh
-+    hexagon_A2_subh_h16_ll,                    // llvm.hexagon.A2.subh.h16.ll
-+    hexagon_A2_subh_h16_sat_hh,                // llvm.hexagon.A2.subh.h16.sat.hh
-+    hexagon_A2_subh_h16_sat_hl,                // llvm.hexagon.A2.subh.h16.sat.hl
-+    hexagon_A2_subh_h16_sat_lh,                // llvm.hexagon.A2.subh.h16.sat.lh
-+    hexagon_A2_subh_h16_sat_ll,                // llvm.hexagon.A2.subh.h16.sat.ll
-+    hexagon_A2_subh_l16_hl,                    // llvm.hexagon.A2.subh.l16.hl
-+    hexagon_A2_subh_l16_ll,                    // llvm.hexagon.A2.subh.l16.ll
-+    hexagon_A2_subh_l16_sat_hl,                // llvm.hexagon.A2.subh.l16.sat.hl
-+    hexagon_A2_subh_l16_sat_ll,                // llvm.hexagon.A2.subh.l16.sat.ll
-+    hexagon_A2_subp,                           // llvm.hexagon.A2.subp
-+    hexagon_A2_subri,                          // llvm.hexagon.A2.subri
-+    hexagon_A2_subsat,                         // llvm.hexagon.A2.subsat
-+    hexagon_A2_svaddh,                         // llvm.hexagon.A2.svaddh
-+    hexagon_A2_svaddhs,                        // llvm.hexagon.A2.svaddhs
-+    hexagon_A2_svadduhs,                       // llvm.hexagon.A2.svadduhs
-+    hexagon_A2_svavgh,                         // llvm.hexagon.A2.svavgh
-+    hexagon_A2_svavghs,                        // llvm.hexagon.A2.svavghs
-+    hexagon_A2_svnavgh,                        // llvm.hexagon.A2.svnavgh
-+    hexagon_A2_svsubh,                         // llvm.hexagon.A2.svsubh
-+    hexagon_A2_svsubhs,                        // llvm.hexagon.A2.svsubhs
-+    hexagon_A2_svsubuhs,                       // llvm.hexagon.A2.svsubuhs
-+    hexagon_A2_swiz,                           // llvm.hexagon.A2.swiz
-+    hexagon_A2_sxtb,                           // llvm.hexagon.A2.sxtb
-+    hexagon_A2_sxth,                           // llvm.hexagon.A2.sxth
-+    hexagon_A2_sxtw,                           // llvm.hexagon.A2.sxtw
-+    hexagon_A2_tfr,                            // llvm.hexagon.A2.tfr
-+    hexagon_A2_tfrih,                          // llvm.hexagon.A2.tfrih
-+    hexagon_A2_tfril,                          // llvm.hexagon.A2.tfril
-+    hexagon_A2_tfrp,                           // llvm.hexagon.A2.tfrp
-+    hexagon_A2_tfrpi,                          // llvm.hexagon.A2.tfrpi
-+    hexagon_A2_tfrsi,                          // llvm.hexagon.A2.tfrsi
-+    hexagon_A2_vabsh,                          // llvm.hexagon.A2.vabsh
-+    hexagon_A2_vabshsat,                       // llvm.hexagon.A2.vabshsat
-+    hexagon_A2_vabsw,                          // llvm.hexagon.A2.vabsw
-+    hexagon_A2_vabswsat,                       // llvm.hexagon.A2.vabswsat
-+    hexagon_A2_vaddb_map,                      // llvm.hexagon.A2.vaddb.map
-+    hexagon_A2_vaddh,                          // llvm.hexagon.A2.vaddh
-+    hexagon_A2_vaddhs,                         // llvm.hexagon.A2.vaddhs
-+    hexagon_A2_vaddub,                         // llvm.hexagon.A2.vaddub
-+    hexagon_A2_vaddubs,                        // llvm.hexagon.A2.vaddubs
-+    hexagon_A2_vadduhs,                        // llvm.hexagon.A2.vadduhs
-+    hexagon_A2_vaddw,                          // llvm.hexagon.A2.vaddw
-+    hexagon_A2_vaddws,                         // llvm.hexagon.A2.vaddws
-+    hexagon_A2_vavgh,                          // llvm.hexagon.A2.vavgh
-+    hexagon_A2_vavghcr,                        // llvm.hexagon.A2.vavghcr
-+    hexagon_A2_vavghr,                         // llvm.hexagon.A2.vavghr
-+    hexagon_A2_vavgub,                         // llvm.hexagon.A2.vavgub
-+    hexagon_A2_vavgubr,                        // llvm.hexagon.A2.vavgubr
-+    hexagon_A2_vavguh,                         // llvm.hexagon.A2.vavguh
-+    hexagon_A2_vavguhr,                        // llvm.hexagon.A2.vavguhr
-+    hexagon_A2_vavguw,                         // llvm.hexagon.A2.vavguw
-+    hexagon_A2_vavguwr,                        // llvm.hexagon.A2.vavguwr
-+    hexagon_A2_vavgw,                          // llvm.hexagon.A2.vavgw
-+    hexagon_A2_vavgwcr,                        // llvm.hexagon.A2.vavgwcr
-+    hexagon_A2_vavgwr,                         // llvm.hexagon.A2.vavgwr
-+    hexagon_A2_vcmpbeq,                        // llvm.hexagon.A2.vcmpbeq
-+    hexagon_A2_vcmpbgtu,                       // llvm.hexagon.A2.vcmpbgtu
-+    hexagon_A2_vcmpheq,                        // llvm.hexagon.A2.vcmpheq
-+    hexagon_A2_vcmphgt,                        // llvm.hexagon.A2.vcmphgt
-+    hexagon_A2_vcmphgtu,                       // llvm.hexagon.A2.vcmphgtu
-+    hexagon_A2_vcmpweq,                        // llvm.hexagon.A2.vcmpweq
-+    hexagon_A2_vcmpwgt,                        // llvm.hexagon.A2.vcmpwgt
-+    hexagon_A2_vcmpwgtu,                       // llvm.hexagon.A2.vcmpwgtu
-+    hexagon_A2_vconj,                          // llvm.hexagon.A2.vconj
-+    hexagon_A2_vmaxb,                          // llvm.hexagon.A2.vmaxb
-+    hexagon_A2_vmaxh,                          // llvm.hexagon.A2.vmaxh
-+    hexagon_A2_vmaxub,                         // llvm.hexagon.A2.vmaxub
-+    hexagon_A2_vmaxuh,                         // llvm.hexagon.A2.vmaxuh
-+    hexagon_A2_vmaxuw,                         // llvm.hexagon.A2.vmaxuw
-+    hexagon_A2_vmaxw,                          // llvm.hexagon.A2.vmaxw
-+    hexagon_A2_vminb,                          // llvm.hexagon.A2.vminb
-+    hexagon_A2_vminh,                          // llvm.hexagon.A2.vminh
-+    hexagon_A2_vminub,                         // llvm.hexagon.A2.vminub
-+    hexagon_A2_vminuh,                         // llvm.hexagon.A2.vminuh
-+    hexagon_A2_vminuw,                         // llvm.hexagon.A2.vminuw
-+    hexagon_A2_vminw,                          // llvm.hexagon.A2.vminw
-+    hexagon_A2_vnavgh,                         // llvm.hexagon.A2.vnavgh
-+    hexagon_A2_vnavghcr,                       // llvm.hexagon.A2.vnavghcr
-+    hexagon_A2_vnavghr,                        // llvm.hexagon.A2.vnavghr
-+    hexagon_A2_vnavgw,                         // llvm.hexagon.A2.vnavgw
-+    hexagon_A2_vnavgwcr,                       // llvm.hexagon.A2.vnavgwcr
-+    hexagon_A2_vnavgwr,                        // llvm.hexagon.A2.vnavgwr
-+    hexagon_A2_vraddub,                        // llvm.hexagon.A2.vraddub
-+    hexagon_A2_vraddub_acc,                    // llvm.hexagon.A2.vraddub.acc
-+    hexagon_A2_vrsadub,                        // llvm.hexagon.A2.vrsadub
-+    hexagon_A2_vrsadub_acc,                    // llvm.hexagon.A2.vrsadub.acc
-+    hexagon_A2_vsubb_map,                      // llvm.hexagon.A2.vsubb.map
-+    hexagon_A2_vsubh,                          // llvm.hexagon.A2.vsubh
-+    hexagon_A2_vsubhs,                         // llvm.hexagon.A2.vsubhs
-+    hexagon_A2_vsubub,                         // llvm.hexagon.A2.vsubub
-+    hexagon_A2_vsububs,                        // llvm.hexagon.A2.vsububs
-+    hexagon_A2_vsubuhs,                        // llvm.hexagon.A2.vsubuhs
-+    hexagon_A2_vsubw,                          // llvm.hexagon.A2.vsubw
-+    hexagon_A2_vsubws,                         // llvm.hexagon.A2.vsubws
-+    hexagon_A2_xor,                            // llvm.hexagon.A2.xor
-+    hexagon_A2_xorp,                           // llvm.hexagon.A2.xorp
-+    hexagon_A2_zxtb,                           // llvm.hexagon.A2.zxtb
-+    hexagon_A2_zxth,                           // llvm.hexagon.A2.zxth
-+    hexagon_A4_andn,                           // llvm.hexagon.A4.andn
-+    hexagon_A4_andnp,                          // llvm.hexagon.A4.andnp
-+    hexagon_A4_bitsplit,                       // llvm.hexagon.A4.bitsplit
-+    hexagon_A4_bitspliti,                      // llvm.hexagon.A4.bitspliti
-+    hexagon_A4_boundscheck,                    // llvm.hexagon.A4.boundscheck
-+    hexagon_A4_cmpbeq,                         // llvm.hexagon.A4.cmpbeq
-+    hexagon_A4_cmpbeqi,                        // llvm.hexagon.A4.cmpbeqi
-+    hexagon_A4_cmpbgt,                         // llvm.hexagon.A4.cmpbgt
-+    hexagon_A4_cmpbgti,                        // llvm.hexagon.A4.cmpbgti
-+    hexagon_A4_cmpbgtu,                        // llvm.hexagon.A4.cmpbgtu
-+    hexagon_A4_cmpbgtui,                       // llvm.hexagon.A4.cmpbgtui
-+    hexagon_A4_cmpheq,                         // llvm.hexagon.A4.cmpheq
-+    hexagon_A4_cmpheqi,                        // llvm.hexagon.A4.cmpheqi
-+    hexagon_A4_cmphgt,                         // llvm.hexagon.A4.cmphgt
-+    hexagon_A4_cmphgti,                        // llvm.hexagon.A4.cmphgti
-+    hexagon_A4_cmphgtu,                        // llvm.hexagon.A4.cmphgtu
-+    hexagon_A4_cmphgtui,                       // llvm.hexagon.A4.cmphgtui
-+    hexagon_A4_combineir,                      // llvm.hexagon.A4.combineir
-+    hexagon_A4_combineri,                      // llvm.hexagon.A4.combineri
-+    hexagon_A4_cround_ri,                      // llvm.hexagon.A4.cround.ri
-+    hexagon_A4_cround_rr,                      // llvm.hexagon.A4.cround.rr
-+    hexagon_A4_modwrapu,                       // llvm.hexagon.A4.modwrapu
-+    hexagon_A4_orn,                            // llvm.hexagon.A4.orn
-+    hexagon_A4_ornp,                           // llvm.hexagon.A4.ornp
-+    hexagon_A4_rcmpeq,                         // llvm.hexagon.A4.rcmpeq
-+    hexagon_A4_rcmpeqi,                        // llvm.hexagon.A4.rcmpeqi
-+    hexagon_A4_rcmpneq,                        // llvm.hexagon.A4.rcmpneq
-+    hexagon_A4_rcmpneqi,                       // llvm.hexagon.A4.rcmpneqi
-+    hexagon_A4_round_ri,                       // llvm.hexagon.A4.round.ri
-+    hexagon_A4_round_ri_sat,                   // llvm.hexagon.A4.round.ri.sat
-+    hexagon_A4_round_rr,                       // llvm.hexagon.A4.round.rr
-+    hexagon_A4_round_rr_sat,                   // llvm.hexagon.A4.round.rr.sat
-+    hexagon_A4_tlbmatch,                       // llvm.hexagon.A4.tlbmatch
-+    hexagon_A4_vcmpbeq_any,                    // llvm.hexagon.A4.vcmpbeq.any
-+    hexagon_A4_vcmpbeqi,                       // llvm.hexagon.A4.vcmpbeqi
-+    hexagon_A4_vcmpbgt,                        // llvm.hexagon.A4.vcmpbgt
-+    hexagon_A4_vcmpbgti,                       // llvm.hexagon.A4.vcmpbgti
-+    hexagon_A4_vcmpbgtui,                      // llvm.hexagon.A4.vcmpbgtui
-+    hexagon_A4_vcmpheqi,                       // llvm.hexagon.A4.vcmpheqi
-+    hexagon_A4_vcmphgti,                       // llvm.hexagon.A4.vcmphgti
-+    hexagon_A4_vcmphgtui,                      // llvm.hexagon.A4.vcmphgtui
-+    hexagon_A4_vcmpweqi,                       // llvm.hexagon.A4.vcmpweqi
-+    hexagon_A4_vcmpwgti,                       // llvm.hexagon.A4.vcmpwgti
-+    hexagon_A4_vcmpwgtui,                      // llvm.hexagon.A4.vcmpwgtui
-+    hexagon_A4_vrmaxh,                         // llvm.hexagon.A4.vrmaxh
-+    hexagon_A4_vrmaxuh,                        // llvm.hexagon.A4.vrmaxuh
-+    hexagon_A4_vrmaxuw,                        // llvm.hexagon.A4.vrmaxuw
-+    hexagon_A4_vrmaxw,                         // llvm.hexagon.A4.vrmaxw
-+    hexagon_A4_vrminh,                         // llvm.hexagon.A4.vrminh
-+    hexagon_A4_vrminuh,                        // llvm.hexagon.A4.vrminuh
-+    hexagon_A4_vrminuw,                        // llvm.hexagon.A4.vrminuw
-+    hexagon_A4_vrminw,                         // llvm.hexagon.A4.vrminw
-+    hexagon_A5_vaddhubs,                       // llvm.hexagon.A5.vaddhubs
-+    hexagon_C2_all8,                           // llvm.hexagon.C2.all8
-+    hexagon_C2_and,                            // llvm.hexagon.C2.and
-+    hexagon_C2_andn,                           // llvm.hexagon.C2.andn
-+    hexagon_C2_any8,                           // llvm.hexagon.C2.any8
-+    hexagon_C2_bitsclr,                        // llvm.hexagon.C2.bitsclr
-+    hexagon_C2_bitsclri,                       // llvm.hexagon.C2.bitsclri
-+    hexagon_C2_bitsset,                        // llvm.hexagon.C2.bitsset
-+    hexagon_C2_cmpeq,                          // llvm.hexagon.C2.cmpeq
-+    hexagon_C2_cmpeqi,                         // llvm.hexagon.C2.cmpeqi
-+    hexagon_C2_cmpeqp,                         // llvm.hexagon.C2.cmpeqp
-+    hexagon_C2_cmpgei,                         // llvm.hexagon.C2.cmpgei
-+    hexagon_C2_cmpgeui,                        // llvm.hexagon.C2.cmpgeui
-+    hexagon_C2_cmpgt,                          // llvm.hexagon.C2.cmpgt
-+    hexagon_C2_cmpgti,                         // llvm.hexagon.C2.cmpgti
-+    hexagon_C2_cmpgtp,                         // llvm.hexagon.C2.cmpgtp
-+    hexagon_C2_cmpgtu,                         // llvm.hexagon.C2.cmpgtu
-+    hexagon_C2_cmpgtui,                        // llvm.hexagon.C2.cmpgtui
-+    hexagon_C2_cmpgtup,                        // llvm.hexagon.C2.cmpgtup
-+    hexagon_C2_cmplt,                          // llvm.hexagon.C2.cmplt
-+    hexagon_C2_cmpltu,                         // llvm.hexagon.C2.cmpltu
-+    hexagon_C2_mask,                           // llvm.hexagon.C2.mask
-+    hexagon_C2_mux,                            // llvm.hexagon.C2.mux
-+    hexagon_C2_muxii,                          // llvm.hexagon.C2.muxii
-+    hexagon_C2_muxir,                          // llvm.hexagon.C2.muxir
-+    hexagon_C2_muxri,                          // llvm.hexagon.C2.muxri
-+    hexagon_C2_not,                            // llvm.hexagon.C2.not
-+    hexagon_C2_or,                             // llvm.hexagon.C2.or
-+    hexagon_C2_orn,                            // llvm.hexagon.C2.orn
-+    hexagon_C2_pxfer_map,                      // llvm.hexagon.C2.pxfer.map
-+    hexagon_C2_tfrpr,                          // llvm.hexagon.C2.tfrpr
-+    hexagon_C2_tfrrp,                          // llvm.hexagon.C2.tfrrp
-+    hexagon_C2_vitpack,                        // llvm.hexagon.C2.vitpack
-+    hexagon_C2_vmux,                           // llvm.hexagon.C2.vmux
-+    hexagon_C2_xor,                            // llvm.hexagon.C2.xor
-+    hexagon_C4_and_and,                        // llvm.hexagon.C4.and.and
-+    hexagon_C4_and_andn,                       // llvm.hexagon.C4.and.andn
-+    hexagon_C4_and_or,                         // llvm.hexagon.C4.and.or
-+    hexagon_C4_and_orn,                        // llvm.hexagon.C4.and.orn
-+    hexagon_C4_cmplte,                         // llvm.hexagon.C4.cmplte
-+    hexagon_C4_cmpltei,                        // llvm.hexagon.C4.cmpltei
-+    hexagon_C4_cmplteu,                        // llvm.hexagon.C4.cmplteu
-+    hexagon_C4_cmplteui,                       // llvm.hexagon.C4.cmplteui
-+    hexagon_C4_cmpneq,                         // llvm.hexagon.C4.cmpneq
-+    hexagon_C4_cmpneqi,                        // llvm.hexagon.C4.cmpneqi
-+    hexagon_C4_fastcorner9,                    // llvm.hexagon.C4.fastcorner9
-+    hexagon_C4_fastcorner9_not,                // llvm.hexagon.C4.fastcorner9.not
-+    hexagon_C4_nbitsclr,                       // llvm.hexagon.C4.nbitsclr
-+    hexagon_C4_nbitsclri,                      // llvm.hexagon.C4.nbitsclri
-+    hexagon_C4_nbitsset,                       // llvm.hexagon.C4.nbitsset
-+    hexagon_C4_or_and,                         // llvm.hexagon.C4.or.and
-+    hexagon_C4_or_andn,                        // llvm.hexagon.C4.or.andn
-+    hexagon_C4_or_or,                          // llvm.hexagon.C4.or.or
-+    hexagon_C4_or_orn,                         // llvm.hexagon.C4.or.orn
-+    hexagon_F2_conv_d2df,                      // llvm.hexagon.F2.conv.d2df
-+    hexagon_F2_conv_d2sf,                      // llvm.hexagon.F2.conv.d2sf
-+    hexagon_F2_conv_df2d,                      // llvm.hexagon.F2.conv.df2d
-+    hexagon_F2_conv_df2d_chop,                 // llvm.hexagon.F2.conv.df2d.chop
-+    hexagon_F2_conv_df2sf,                     // llvm.hexagon.F2.conv.df2sf
-+    hexagon_F2_conv_df2ud,                     // llvm.hexagon.F2.conv.df2ud
-+    hexagon_F2_conv_df2ud_chop,                // llvm.hexagon.F2.conv.df2ud.chop
-+    hexagon_F2_conv_df2uw,                     // llvm.hexagon.F2.conv.df2uw
-+    hexagon_F2_conv_df2uw_chop,                // llvm.hexagon.F2.conv.df2uw.chop
-+    hexagon_F2_conv_df2w,                      // llvm.hexagon.F2.conv.df2w
-+    hexagon_F2_conv_df2w_chop,                 // llvm.hexagon.F2.conv.df2w.chop
-+    hexagon_F2_conv_sf2d,                      // llvm.hexagon.F2.conv.sf2d
-+    hexagon_F2_conv_sf2d_chop,                 // llvm.hexagon.F2.conv.sf2d.chop
-+    hexagon_F2_conv_sf2df,                     // llvm.hexagon.F2.conv.sf2df
-+    hexagon_F2_conv_sf2ud,                     // llvm.hexagon.F2.conv.sf2ud
-+    hexagon_F2_conv_sf2ud_chop,                // llvm.hexagon.F2.conv.sf2ud.chop
-+    hexagon_F2_conv_sf2uw,                     // llvm.hexagon.F2.conv.sf2uw
-+    hexagon_F2_conv_sf2uw_chop,                // llvm.hexagon.F2.conv.sf2uw.chop
-+    hexagon_F2_conv_sf2w,                      // llvm.hexagon.F2.conv.sf2w
-+    hexagon_F2_conv_sf2w_chop,                 // llvm.hexagon.F2.conv.sf2w.chop
-+    hexagon_F2_conv_ud2df,                     // llvm.hexagon.F2.conv.ud2df
-+    hexagon_F2_conv_ud2sf,                     // llvm.hexagon.F2.conv.ud2sf
-+    hexagon_F2_conv_uw2df,                     // llvm.hexagon.F2.conv.uw2df
-+    hexagon_F2_conv_uw2sf,                     // llvm.hexagon.F2.conv.uw2sf
-+    hexagon_F2_conv_w2df,                      // llvm.hexagon.F2.conv.w2df
-+    hexagon_F2_conv_w2sf,                      // llvm.hexagon.F2.conv.w2sf
-+    hexagon_F2_dfclass,                        // llvm.hexagon.F2.dfclass
-+    hexagon_F2_dfcmpeq,                        // llvm.hexagon.F2.dfcmpeq
-+    hexagon_F2_dfcmpge,                        // llvm.hexagon.F2.dfcmpge
-+    hexagon_F2_dfcmpgt,                        // llvm.hexagon.F2.dfcmpgt
-+    hexagon_F2_dfcmpuo,                        // llvm.hexagon.F2.dfcmpuo
-+    hexagon_F2_dfimm_n,                        // llvm.hexagon.F2.dfimm.n
-+    hexagon_F2_dfimm_p,                        // llvm.hexagon.F2.dfimm.p
-+    hexagon_F2_sfadd,                          // llvm.hexagon.F2.sfadd
-+    hexagon_F2_sfclass,                        // llvm.hexagon.F2.sfclass
-+    hexagon_F2_sfcmpeq,                        // llvm.hexagon.F2.sfcmpeq
-+    hexagon_F2_sfcmpge,                        // llvm.hexagon.F2.sfcmpge
-+    hexagon_F2_sfcmpgt,                        // llvm.hexagon.F2.sfcmpgt
-+    hexagon_F2_sfcmpuo,                        // llvm.hexagon.F2.sfcmpuo
-+    hexagon_F2_sffixupd,                       // llvm.hexagon.F2.sffixupd
-+    hexagon_F2_sffixupn,                       // llvm.hexagon.F2.sffixupn
-+    hexagon_F2_sffixupr,                       // llvm.hexagon.F2.sffixupr
-+    hexagon_F2_sffma,                          // llvm.hexagon.F2.sffma
-+    hexagon_F2_sffma_lib,                      // llvm.hexagon.F2.sffma.lib
-+    hexagon_F2_sffma_sc,                       // llvm.hexagon.F2.sffma.sc
-+    hexagon_F2_sffms,                          // llvm.hexagon.F2.sffms
-+    hexagon_F2_sffms_lib,                      // llvm.hexagon.F2.sffms.lib
-+    hexagon_F2_sfimm_n,                        // llvm.hexagon.F2.sfimm.n
-+    hexagon_F2_sfimm_p,                        // llvm.hexagon.F2.sfimm.p
-+    hexagon_F2_sfmax,                          // llvm.hexagon.F2.sfmax
-+    hexagon_F2_sfmin,                          // llvm.hexagon.F2.sfmin
-+    hexagon_F2_sfmpy,                          // llvm.hexagon.F2.sfmpy
-+    hexagon_F2_sfsub,                          // llvm.hexagon.F2.sfsub
-+    hexagon_L2_loadw_locked,                   // llvm.hexagon.L2.loadw.locked
-+    hexagon_L4_loadd_locked,                   // llvm.hexagon.L4.loadd.locked
-+    hexagon_M2_acci,                           // llvm.hexagon.M2.acci
-+    hexagon_M2_accii,                          // llvm.hexagon.M2.accii
-+    hexagon_M2_cmaci_s0,                       // llvm.hexagon.M2.cmaci.s0
-+    hexagon_M2_cmacr_s0,                       // llvm.hexagon.M2.cmacr.s0
-+    hexagon_M2_cmacs_s0,                       // llvm.hexagon.M2.cmacs.s0
-+    hexagon_M2_cmacs_s1,                       // llvm.hexagon.M2.cmacs.s1
-+    hexagon_M2_cmacsc_s0,                      // llvm.hexagon.M2.cmacsc.s0
-+    hexagon_M2_cmacsc_s1,                      // llvm.hexagon.M2.cmacsc.s1
-+    hexagon_M2_cmpyi_s0,                       // llvm.hexagon.M2.cmpyi.s0
-+    hexagon_M2_cmpyr_s0,                       // llvm.hexagon.M2.cmpyr.s0
-+    hexagon_M2_cmpyrs_s0,                      // llvm.hexagon.M2.cmpyrs.s0
-+    hexagon_M2_cmpyrs_s1,                      // llvm.hexagon.M2.cmpyrs.s1
-+    hexagon_M2_cmpyrsc_s0,                     // llvm.hexagon.M2.cmpyrsc.s0
-+    hexagon_M2_cmpyrsc_s1,                     // llvm.hexagon.M2.cmpyrsc.s1
-+    hexagon_M2_cmpys_s0,                       // llvm.hexagon.M2.cmpys.s0
-+    hexagon_M2_cmpys_s1,                       // llvm.hexagon.M2.cmpys.s1
-+    hexagon_M2_cmpysc_s0,                      // llvm.hexagon.M2.cmpysc.s0
-+    hexagon_M2_cmpysc_s1,                      // llvm.hexagon.M2.cmpysc.s1
-+    hexagon_M2_cnacs_s0,                       // llvm.hexagon.M2.cnacs.s0
-+    hexagon_M2_cnacs_s1,                       // llvm.hexagon.M2.cnacs.s1
-+    hexagon_M2_cnacsc_s0,                      // llvm.hexagon.M2.cnacsc.s0
-+    hexagon_M2_cnacsc_s1,                      // llvm.hexagon.M2.cnacsc.s1
-+    hexagon_M2_dpmpyss_acc_s0,                 // llvm.hexagon.M2.dpmpyss.acc.s0
-+    hexagon_M2_dpmpyss_nac_s0,                 // llvm.hexagon.M2.dpmpyss.nac.s0
-+    hexagon_M2_dpmpyss_rnd_s0,                 // llvm.hexagon.M2.dpmpyss.rnd.s0
-+    hexagon_M2_dpmpyss_s0,                     // llvm.hexagon.M2.dpmpyss.s0
-+    hexagon_M2_dpmpyuu_acc_s0,                 // llvm.hexagon.M2.dpmpyuu.acc.s0
-+    hexagon_M2_dpmpyuu_nac_s0,                 // llvm.hexagon.M2.dpmpyuu.nac.s0
-+    hexagon_M2_dpmpyuu_s0,                     // llvm.hexagon.M2.dpmpyuu.s0
-+    hexagon_M2_hmmpyh_rs1,                     // llvm.hexagon.M2.hmmpyh.rs1
-+    hexagon_M2_hmmpyh_s1,                      // llvm.hexagon.M2.hmmpyh.s1
-+    hexagon_M2_hmmpyl_rs1,                     // llvm.hexagon.M2.hmmpyl.rs1
-+    hexagon_M2_hmmpyl_s1,                      // llvm.hexagon.M2.hmmpyl.s1
-+    hexagon_M2_maci,                           // llvm.hexagon.M2.maci
-+    hexagon_M2_macsin,                         // llvm.hexagon.M2.macsin
-+    hexagon_M2_macsip,                         // llvm.hexagon.M2.macsip
-+    hexagon_M2_mmachs_rs0,                     // llvm.hexagon.M2.mmachs.rs0
-+    hexagon_M2_mmachs_rs1,                     // llvm.hexagon.M2.mmachs.rs1
-+    hexagon_M2_mmachs_s0,                      // llvm.hexagon.M2.mmachs.s0
-+    hexagon_M2_mmachs_s1,                      // llvm.hexagon.M2.mmachs.s1
-+    hexagon_M2_mmacls_rs0,                     // llvm.hexagon.M2.mmacls.rs0
-+    hexagon_M2_mmacls_rs1,                     // llvm.hexagon.M2.mmacls.rs1
-+    hexagon_M2_mmacls_s0,                      // llvm.hexagon.M2.mmacls.s0
-+    hexagon_M2_mmacls_s1,                      // llvm.hexagon.M2.mmacls.s1
-+    hexagon_M2_mmacuhs_rs0,                    // llvm.hexagon.M2.mmacuhs.rs0
-+    hexagon_M2_mmacuhs_rs1,                    // llvm.hexagon.M2.mmacuhs.rs1
-+    hexagon_M2_mmacuhs_s0,                     // llvm.hexagon.M2.mmacuhs.s0
-+    hexagon_M2_mmacuhs_s1,                     // llvm.hexagon.M2.mmacuhs.s1
-+    hexagon_M2_mmaculs_rs0,                    // llvm.hexagon.M2.mmaculs.rs0
-+    hexagon_M2_mmaculs_rs1,                    // llvm.hexagon.M2.mmaculs.rs1
-+    hexagon_M2_mmaculs_s0,                     // llvm.hexagon.M2.mmaculs.s0
-+    hexagon_M2_mmaculs_s1,                     // llvm.hexagon.M2.mmaculs.s1
-+    hexagon_M2_mmpyh_rs0,                      // llvm.hexagon.M2.mmpyh.rs0
-+    hexagon_M2_mmpyh_rs1,                      // llvm.hexagon.M2.mmpyh.rs1
-+    hexagon_M2_mmpyh_s0,                       // llvm.hexagon.M2.mmpyh.s0
-+    hexagon_M2_mmpyh_s1,                       // llvm.hexagon.M2.mmpyh.s1
-+    hexagon_M2_mmpyl_rs0,                      // llvm.hexagon.M2.mmpyl.rs0
-+    hexagon_M2_mmpyl_rs1,                      // llvm.hexagon.M2.mmpyl.rs1
-+    hexagon_M2_mmpyl_s0,                       // llvm.hexagon.M2.mmpyl.s0
-+    hexagon_M2_mmpyl_s1,                       // llvm.hexagon.M2.mmpyl.s1
-+    hexagon_M2_mmpyuh_rs0,                     // llvm.hexagon.M2.mmpyuh.rs0
-+    hexagon_M2_mmpyuh_rs1,                     // llvm.hexagon.M2.mmpyuh.rs1
-+    hexagon_M2_mmpyuh_s0,                      // llvm.hexagon.M2.mmpyuh.s0
-+    hexagon_M2_mmpyuh_s1,                      // llvm.hexagon.M2.mmpyuh.s1
-+    hexagon_M2_mmpyul_rs0,                     // llvm.hexagon.M2.mmpyul.rs0
-+    hexagon_M2_mmpyul_rs1,                     // llvm.hexagon.M2.mmpyul.rs1
-+    hexagon_M2_mmpyul_s0,                      // llvm.hexagon.M2.mmpyul.s0
-+    hexagon_M2_mmpyul_s1,                      // llvm.hexagon.M2.mmpyul.s1
-+    hexagon_M2_mpy_acc_hh_s0,                  // llvm.hexagon.M2.mpy.acc.hh.s0
-+    hexagon_M2_mpy_acc_hh_s1,                  // llvm.hexagon.M2.mpy.acc.hh.s1
-+    hexagon_M2_mpy_acc_hl_s0,                  // llvm.hexagon.M2.mpy.acc.hl.s0
-+    hexagon_M2_mpy_acc_hl_s1,                  // llvm.hexagon.M2.mpy.acc.hl.s1
-+    hexagon_M2_mpy_acc_lh_s0,                  // llvm.hexagon.M2.mpy.acc.lh.s0
-+    hexagon_M2_mpy_acc_lh_s1,                  // llvm.hexagon.M2.mpy.acc.lh.s1
-+    hexagon_M2_mpy_acc_ll_s0,                  // llvm.hexagon.M2.mpy.acc.ll.s0
-+    hexagon_M2_mpy_acc_ll_s1,                  // llvm.hexagon.M2.mpy.acc.ll.s1
-+    hexagon_M2_mpy_acc_sat_hh_s0,              // llvm.hexagon.M2.mpy.acc.sat.hh.s0
-+    hexagon_M2_mpy_acc_sat_hh_s1,              // llvm.hexagon.M2.mpy.acc.sat.hh.s1
-+    hexagon_M2_mpy_acc_sat_hl_s0,              // llvm.hexagon.M2.mpy.acc.sat.hl.s0
-+    hexagon_M2_mpy_acc_sat_hl_s1,              // llvm.hexagon.M2.mpy.acc.sat.hl.s1
-+    hexagon_M2_mpy_acc_sat_lh_s0,              // llvm.hexagon.M2.mpy.acc.sat.lh.s0
-+    hexagon_M2_mpy_acc_sat_lh_s1,              // llvm.hexagon.M2.mpy.acc.sat.lh.s1
-+    hexagon_M2_mpy_acc_sat_ll_s0,              // llvm.hexagon.M2.mpy.acc.sat.ll.s0
-+    hexagon_M2_mpy_acc_sat_ll_s1,              // llvm.hexagon.M2.mpy.acc.sat.ll.s1
-+    hexagon_M2_mpy_hh_s0,                      // llvm.hexagon.M2.mpy.hh.s0
-+    hexagon_M2_mpy_hh_s1,                      // llvm.hexagon.M2.mpy.hh.s1
-+    hexagon_M2_mpy_hl_s0,                      // llvm.hexagon.M2.mpy.hl.s0
-+    hexagon_M2_mpy_hl_s1,                      // llvm.hexagon.M2.mpy.hl.s1
-+    hexagon_M2_mpy_lh_s0,                      // llvm.hexagon.M2.mpy.lh.s0
-+    hexagon_M2_mpy_lh_s1,                      // llvm.hexagon.M2.mpy.lh.s1
-+    hexagon_M2_mpy_ll_s0,                      // llvm.hexagon.M2.mpy.ll.s0
-+    hexagon_M2_mpy_ll_s1,                      // llvm.hexagon.M2.mpy.ll.s1
-+    hexagon_M2_mpy_nac_hh_s0,                  // llvm.hexagon.M2.mpy.nac.hh.s0
-+    hexagon_M2_mpy_nac_hh_s1,                  // llvm.hexagon.M2.mpy.nac.hh.s1
-+    hexagon_M2_mpy_nac_hl_s0,                  // llvm.hexagon.M2.mpy.nac.hl.s0
-+    hexagon_M2_mpy_nac_hl_s1,                  // llvm.hexagon.M2.mpy.nac.hl.s1
-+    hexagon_M2_mpy_nac_lh_s0,                  // llvm.hexagon.M2.mpy.nac.lh.s0
-+    hexagon_M2_mpy_nac_lh_s1,                  // llvm.hexagon.M2.mpy.nac.lh.s1
-+    hexagon_M2_mpy_nac_ll_s0,                  // llvm.hexagon.M2.mpy.nac.ll.s0
-+    hexagon_M2_mpy_nac_ll_s1,                  // llvm.hexagon.M2.mpy.nac.ll.s1
-+    hexagon_M2_mpy_nac_sat_hh_s0,              // llvm.hexagon.M2.mpy.nac.sat.hh.s0
-+    hexagon_M2_mpy_nac_sat_hh_s1,              // llvm.hexagon.M2.mpy.nac.sat.hh.s1
-+    hexagon_M2_mpy_nac_sat_hl_s0,              // llvm.hexagon.M2.mpy.nac.sat.hl.s0
-+    hexagon_M2_mpy_nac_sat_hl_s1,              // llvm.hexagon.M2.mpy.nac.sat.hl.s1
-+    hexagon_M2_mpy_nac_sat_lh_s0,              // llvm.hexagon.M2.mpy.nac.sat.lh.s0
-+    hexagon_M2_mpy_nac_sat_lh_s1,              // llvm.hexagon.M2.mpy.nac.sat.lh.s1
-+    hexagon_M2_mpy_nac_sat_ll_s0,              // llvm.hexagon.M2.mpy.nac.sat.ll.s0
-+    hexagon_M2_mpy_nac_sat_ll_s1,              // llvm.hexagon.M2.mpy.nac.sat.ll.s1
-+    hexagon_M2_mpy_rnd_hh_s0,                  // llvm.hexagon.M2.mpy.rnd.hh.s0
-+    hexagon_M2_mpy_rnd_hh_s1,                  // llvm.hexagon.M2.mpy.rnd.hh.s1
-+    hexagon_M2_mpy_rnd_hl_s0,                  // llvm.hexagon.M2.mpy.rnd.hl.s0
-+    hexagon_M2_mpy_rnd_hl_s1,                  // llvm.hexagon.M2.mpy.rnd.hl.s1
-+    hexagon_M2_mpy_rnd_lh_s0,                  // llvm.hexagon.M2.mpy.rnd.lh.s0
-+    hexagon_M2_mpy_rnd_lh_s1,                  // llvm.hexagon.M2.mpy.rnd.lh.s1
-+    hexagon_M2_mpy_rnd_ll_s0,                  // llvm.hexagon.M2.mpy.rnd.ll.s0
-+    hexagon_M2_mpy_rnd_ll_s1,                  // llvm.hexagon.M2.mpy.rnd.ll.s1
-+    hexagon_M2_mpy_sat_hh_s0,                  // llvm.hexagon.M2.mpy.sat.hh.s0
-+    hexagon_M2_mpy_sat_hh_s1,                  // llvm.hexagon.M2.mpy.sat.hh.s1
-+    hexagon_M2_mpy_sat_hl_s0,                  // llvm.hexagon.M2.mpy.sat.hl.s0
-+    hexagon_M2_mpy_sat_hl_s1,                  // llvm.hexagon.M2.mpy.sat.hl.s1
-+    hexagon_M2_mpy_sat_lh_s0,                  // llvm.hexagon.M2.mpy.sat.lh.s0
-+    hexagon_M2_mpy_sat_lh_s1,                  // llvm.hexagon.M2.mpy.sat.lh.s1
-+    hexagon_M2_mpy_sat_ll_s0,                  // llvm.hexagon.M2.mpy.sat.ll.s0
-+    hexagon_M2_mpy_sat_ll_s1,                  // llvm.hexagon.M2.mpy.sat.ll.s1
-+    hexagon_M2_mpy_sat_rnd_hh_s0,              // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
-+    hexagon_M2_mpy_sat_rnd_hh_s1,              // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
-+    hexagon_M2_mpy_sat_rnd_hl_s0,              // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
-+    hexagon_M2_mpy_sat_rnd_hl_s1,              // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
-+    hexagon_M2_mpy_sat_rnd_lh_s0,              // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
-+    hexagon_M2_mpy_sat_rnd_lh_s1,              // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
-+    hexagon_M2_mpy_sat_rnd_ll_s0,              // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
-+    hexagon_M2_mpy_sat_rnd_ll_s1,              // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
-+    hexagon_M2_mpy_up,                         // llvm.hexagon.M2.mpy.up
-+    hexagon_M2_mpy_up_s1,                      // llvm.hexagon.M2.mpy.up.s1
-+    hexagon_M2_mpy_up_s1_sat,                  // llvm.hexagon.M2.mpy.up.s1.sat
-+    hexagon_M2_mpyd_acc_hh_s0,                 // llvm.hexagon.M2.mpyd.acc.hh.s0
-+    hexagon_M2_mpyd_acc_hh_s1,                 // llvm.hexagon.M2.mpyd.acc.hh.s1
-+    hexagon_M2_mpyd_acc_hl_s0,                 // llvm.hexagon.M2.mpyd.acc.hl.s0
-+    hexagon_M2_mpyd_acc_hl_s1,                 // llvm.hexagon.M2.mpyd.acc.hl.s1
-+    hexagon_M2_mpyd_acc_lh_s0,                 // llvm.hexagon.M2.mpyd.acc.lh.s0
-+    hexagon_M2_mpyd_acc_lh_s1,                 // llvm.hexagon.M2.mpyd.acc.lh.s1
-+    hexagon_M2_mpyd_acc_ll_s0,                 // llvm.hexagon.M2.mpyd.acc.ll.s0
-+    hexagon_M2_mpyd_acc_ll_s1,                 // llvm.hexagon.M2.mpyd.acc.ll.s1
-+    hexagon_M2_mpyd_hh_s0,                     // llvm.hexagon.M2.mpyd.hh.s0
-+    hexagon_M2_mpyd_hh_s1,                     // llvm.hexagon.M2.mpyd.hh.s1
-+    hexagon_M2_mpyd_hl_s0,                     // llvm.hexagon.M2.mpyd.hl.s0
-+    hexagon_M2_mpyd_hl_s1,                     // llvm.hexagon.M2.mpyd.hl.s1
-+    hexagon_M2_mpyd_lh_s0,                     // llvm.hexagon.M2.mpyd.lh.s0
-+    hexagon_M2_mpyd_lh_s1,                     // llvm.hexagon.M2.mpyd.lh.s1
-+    hexagon_M2_mpyd_ll_s0,                     // llvm.hexagon.M2.mpyd.ll.s0
-+    hexagon_M2_mpyd_ll_s1,                     // llvm.hexagon.M2.mpyd.ll.s1
-+    hexagon_M2_mpyd_nac_hh_s0,                 // llvm.hexagon.M2.mpyd.nac.hh.s0
-+    hexagon_M2_mpyd_nac_hh_s1,                 // llvm.hexagon.M2.mpyd.nac.hh.s1
-+    hexagon_M2_mpyd_nac_hl_s0,                 // llvm.hexagon.M2.mpyd.nac.hl.s0
-+    hexagon_M2_mpyd_nac_hl_s1,                 // llvm.hexagon.M2.mpyd.nac.hl.s1
-+    hexagon_M2_mpyd_nac_lh_s0,                 // llvm.hexagon.M2.mpyd.nac.lh.s0
-+    hexagon_M2_mpyd_nac_lh_s1,                 // llvm.hexagon.M2.mpyd.nac.lh.s1
-+    hexagon_M2_mpyd_nac_ll_s0,                 // llvm.hexagon.M2.mpyd.nac.ll.s0
-+    hexagon_M2_mpyd_nac_ll_s1,                 // llvm.hexagon.M2.mpyd.nac.ll.s1
-+    hexagon_M2_mpyd_rnd_hh_s0,                 // llvm.hexagon.M2.mpyd.rnd.hh.s0
-+    hexagon_M2_mpyd_rnd_hh_s1,                 // llvm.hexagon.M2.mpyd.rnd.hh.s1
-+    hexagon_M2_mpyd_rnd_hl_s0,                 // llvm.hexagon.M2.mpyd.rnd.hl.s0
-+    hexagon_M2_mpyd_rnd_hl_s1,                 // llvm.hexagon.M2.mpyd.rnd.hl.s1
-+    hexagon_M2_mpyd_rnd_lh_s0,                 // llvm.hexagon.M2.mpyd.rnd.lh.s0
-+    hexagon_M2_mpyd_rnd_lh_s1,                 // llvm.hexagon.M2.mpyd.rnd.lh.s1
-+    hexagon_M2_mpyd_rnd_ll_s0,                 // llvm.hexagon.M2.mpyd.rnd.ll.s0
-+    hexagon_M2_mpyd_rnd_ll_s1,                 // llvm.hexagon.M2.mpyd.rnd.ll.s1
-+    hexagon_M2_mpyi,                           // llvm.hexagon.M2.mpyi
-+    hexagon_M2_mpysmi,                         // llvm.hexagon.M2.mpysmi
-+    hexagon_M2_mpysu_up,                       // llvm.hexagon.M2.mpysu.up
-+    hexagon_M2_mpyu_acc_hh_s0,                 // llvm.hexagon.M2.mpyu.acc.hh.s0
-+    hexagon_M2_mpyu_acc_hh_s1,                 // llvm.hexagon.M2.mpyu.acc.hh.s1
-+    hexagon_M2_mpyu_acc_hl_s0,                 // llvm.hexagon.M2.mpyu.acc.hl.s0
-+    hexagon_M2_mpyu_acc_hl_s1,                 // llvm.hexagon.M2.mpyu.acc.hl.s1
-+    hexagon_M2_mpyu_acc_lh_s0,                 // llvm.hexagon.M2.mpyu.acc.lh.s0
-+    hexagon_M2_mpyu_acc_lh_s1,                 // llvm.hexagon.M2.mpyu.acc.lh.s1
-+    hexagon_M2_mpyu_acc_ll_s0,                 // llvm.hexagon.M2.mpyu.acc.ll.s0
-+    hexagon_M2_mpyu_acc_ll_s1,                 // llvm.hexagon.M2.mpyu.acc.ll.s1
-+    hexagon_M2_mpyu_hh_s0,                     // llvm.hexagon.M2.mpyu.hh.s0
-+    hexagon_M2_mpyu_hh_s1,                     // llvm.hexagon.M2.mpyu.hh.s1
-+    hexagon_M2_mpyu_hl_s0,                     // llvm.hexagon.M2.mpyu.hl.s0
-+    hexagon_M2_mpyu_hl_s1,                     // llvm.hexagon.M2.mpyu.hl.s1
-+    hexagon_M2_mpyu_lh_s0,                     // llvm.hexagon.M2.mpyu.lh.s0
-+    hexagon_M2_mpyu_lh_s1,                     // llvm.hexagon.M2.mpyu.lh.s1
-+    hexagon_M2_mpyu_ll_s0,                     // llvm.hexagon.M2.mpyu.ll.s0
-+    hexagon_M2_mpyu_ll_s1,                     // llvm.hexagon.M2.mpyu.ll.s1
-+    hexagon_M2_mpyu_nac_hh_s0,                 // llvm.hexagon.M2.mpyu.nac.hh.s0
-+    hexagon_M2_mpyu_nac_hh_s1,                 // llvm.hexagon.M2.mpyu.nac.hh.s1
-+    hexagon_M2_mpyu_nac_hl_s0,                 // llvm.hexagon.M2.mpyu.nac.hl.s0
-+    hexagon_M2_mpyu_nac_hl_s1,                 // llvm.hexagon.M2.mpyu.nac.hl.s1
-+    hexagon_M2_mpyu_nac_lh_s0,                 // llvm.hexagon.M2.mpyu.nac.lh.s0
-+    hexagon_M2_mpyu_nac_lh_s1,                 // llvm.hexagon.M2.mpyu.nac.lh.s1
-+    hexagon_M2_mpyu_nac_ll_s0,                 // llvm.hexagon.M2.mpyu.nac.ll.s0
-+    hexagon_M2_mpyu_nac_ll_s1,                 // llvm.hexagon.M2.mpyu.nac.ll.s1
-+    hexagon_M2_mpyu_up,                        // llvm.hexagon.M2.mpyu.up
-+    hexagon_M2_mpyud_acc_hh_s0,                // llvm.hexagon.M2.mpyud.acc.hh.s0
-+    hexagon_M2_mpyud_acc_hh_s1,                // llvm.hexagon.M2.mpyud.acc.hh.s1
-+    hexagon_M2_mpyud_acc_hl_s0,                // llvm.hexagon.M2.mpyud.acc.hl.s0
-+    hexagon_M2_mpyud_acc_hl_s1,                // llvm.hexagon.M2.mpyud.acc.hl.s1
-+    hexagon_M2_mpyud_acc_lh_s0,                // llvm.hexagon.M2.mpyud.acc.lh.s0
-+    hexagon_M2_mpyud_acc_lh_s1,                // llvm.hexagon.M2.mpyud.acc.lh.s1
-+    hexagon_M2_mpyud_acc_ll_s0,                // llvm.hexagon.M2.mpyud.acc.ll.s0
-+    hexagon_M2_mpyud_acc_ll_s1,                // llvm.hexagon.M2.mpyud.acc.ll.s1
-+    hexagon_M2_mpyud_hh_s0,                    // llvm.hexagon.M2.mpyud.hh.s0
-+    hexagon_M2_mpyud_hh_s1,                    // llvm.hexagon.M2.mpyud.hh.s1
-+    hexagon_M2_mpyud_hl_s0,                    // llvm.hexagon.M2.mpyud.hl.s0
-+    hexagon_M2_mpyud_hl_s1,                    // llvm.hexagon.M2.mpyud.hl.s1
-+    hexagon_M2_mpyud_lh_s0,                    // llvm.hexagon.M2.mpyud.lh.s0
-+    hexagon_M2_mpyud_lh_s1,                    // llvm.hexagon.M2.mpyud.lh.s1
-+    hexagon_M2_mpyud_ll_s0,                    // llvm.hexagon.M2.mpyud.ll.s0
-+    hexagon_M2_mpyud_ll_s1,                    // llvm.hexagon.M2.mpyud.ll.s1
-+    hexagon_M2_mpyud_nac_hh_s0,                // llvm.hexagon.M2.mpyud.nac.hh.s0
-+    hexagon_M2_mpyud_nac_hh_s1,                // llvm.hexagon.M2.mpyud.nac.hh.s1
-+    hexagon_M2_mpyud_nac_hl_s0,                // llvm.hexagon.M2.mpyud.nac.hl.s0
-+    hexagon_M2_mpyud_nac_hl_s1,                // llvm.hexagon.M2.mpyud.nac.hl.s1
-+    hexagon_M2_mpyud_nac_lh_s0,                // llvm.hexagon.M2.mpyud.nac.lh.s0
-+    hexagon_M2_mpyud_nac_lh_s1,                // llvm.hexagon.M2.mpyud.nac.lh.s1
-+    hexagon_M2_mpyud_nac_ll_s0,                // llvm.hexagon.M2.mpyud.nac.ll.s0
-+    hexagon_M2_mpyud_nac_ll_s1,                // llvm.hexagon.M2.mpyud.nac.ll.s1
-+    hexagon_M2_mpyui,                          // llvm.hexagon.M2.mpyui
-+    hexagon_M2_nacci,                          // llvm.hexagon.M2.nacci
-+    hexagon_M2_naccii,                         // llvm.hexagon.M2.naccii
-+    hexagon_M2_subacc,                         // llvm.hexagon.M2.subacc
-+    hexagon_M2_vabsdiffh,                      // llvm.hexagon.M2.vabsdiffh
-+    hexagon_M2_vabsdiffw,                      // llvm.hexagon.M2.vabsdiffw
-+    hexagon_M2_vcmac_s0_sat_i,                 // llvm.hexagon.M2.vcmac.s0.sat.i
-+    hexagon_M2_vcmac_s0_sat_r,                 // llvm.hexagon.M2.vcmac.s0.sat.r
-+    hexagon_M2_vcmpy_s0_sat_i,                 // llvm.hexagon.M2.vcmpy.s0.sat.i
-+    hexagon_M2_vcmpy_s0_sat_r,                 // llvm.hexagon.M2.vcmpy.s0.sat.r
-+    hexagon_M2_vcmpy_s1_sat_i,                 // llvm.hexagon.M2.vcmpy.s1.sat.i
-+    hexagon_M2_vcmpy_s1_sat_r,                 // llvm.hexagon.M2.vcmpy.s1.sat.r
-+    hexagon_M2_vdmacs_s0,                      // llvm.hexagon.M2.vdmacs.s0
-+    hexagon_M2_vdmacs_s1,                      // llvm.hexagon.M2.vdmacs.s1
-+    hexagon_M2_vdmpyrs_s0,                     // llvm.hexagon.M2.vdmpyrs.s0
-+    hexagon_M2_vdmpyrs_s1,                     // llvm.hexagon.M2.vdmpyrs.s1
-+    hexagon_M2_vdmpys_s0,                      // llvm.hexagon.M2.vdmpys.s0
-+    hexagon_M2_vdmpys_s1,                      // llvm.hexagon.M2.vdmpys.s1
-+    hexagon_M2_vmac2,                          // llvm.hexagon.M2.vmac2
-+    hexagon_M2_vmac2es,                        // llvm.hexagon.M2.vmac2es
-+    hexagon_M2_vmac2es_s0,                     // llvm.hexagon.M2.vmac2es.s0
-+    hexagon_M2_vmac2es_s1,                     // llvm.hexagon.M2.vmac2es.s1
-+    hexagon_M2_vmac2s_s0,                      // llvm.hexagon.M2.vmac2s.s0
-+    hexagon_M2_vmac2s_s1,                      // llvm.hexagon.M2.vmac2s.s1
-+    hexagon_M2_vmac2su_s0,                     // llvm.hexagon.M2.vmac2su.s0
-+    hexagon_M2_vmac2su_s1,                     // llvm.hexagon.M2.vmac2su.s1
-+    hexagon_M2_vmpy2es_s0,                     // llvm.hexagon.M2.vmpy2es.s0
-+    hexagon_M2_vmpy2es_s1,                     // llvm.hexagon.M2.vmpy2es.s1
-+    hexagon_M2_vmpy2s_s0,                      // llvm.hexagon.M2.vmpy2s.s0
-+    hexagon_M2_vmpy2s_s0pack,                  // llvm.hexagon.M2.vmpy2s.s0pack
-+    hexagon_M2_vmpy2s_s1,                      // llvm.hexagon.M2.vmpy2s.s1
-+    hexagon_M2_vmpy2s_s1pack,                  // llvm.hexagon.M2.vmpy2s.s1pack
-+    hexagon_M2_vmpy2su_s0,                     // llvm.hexagon.M2.vmpy2su.s0
-+    hexagon_M2_vmpy2su_s1,                     // llvm.hexagon.M2.vmpy2su.s1
-+    hexagon_M2_vraddh,                         // llvm.hexagon.M2.vraddh
-+    hexagon_M2_vradduh,                        // llvm.hexagon.M2.vradduh
-+    hexagon_M2_vrcmaci_s0,                     // llvm.hexagon.M2.vrcmaci.s0
-+    hexagon_M2_vrcmaci_s0c,                    // llvm.hexagon.M2.vrcmaci.s0c
-+    hexagon_M2_vrcmacr_s0,                     // llvm.hexagon.M2.vrcmacr.s0
-+    hexagon_M2_vrcmacr_s0c,                    // llvm.hexagon.M2.vrcmacr.s0c
-+    hexagon_M2_vrcmpyi_s0,                     // llvm.hexagon.M2.vrcmpyi.s0
-+    hexagon_M2_vrcmpyi_s0c,                    // llvm.hexagon.M2.vrcmpyi.s0c
-+    hexagon_M2_vrcmpyr_s0,                     // llvm.hexagon.M2.vrcmpyr.s0
-+    hexagon_M2_vrcmpyr_s0c,                    // llvm.hexagon.M2.vrcmpyr.s0c
-+    hexagon_M2_vrcmpys_acc_s1,                 // llvm.hexagon.M2.vrcmpys.acc.s1
-+    hexagon_M2_vrcmpys_s1,                     // llvm.hexagon.M2.vrcmpys.s1
-+    hexagon_M2_vrcmpys_s1rp,                   // llvm.hexagon.M2.vrcmpys.s1rp
-+    hexagon_M2_vrmac_s0,                       // llvm.hexagon.M2.vrmac.s0
-+    hexagon_M2_vrmpy_s0,                       // llvm.hexagon.M2.vrmpy.s0
-+    hexagon_M2_xor_xacc,                       // llvm.hexagon.M2.xor.xacc
-+    hexagon_M4_and_and,                        // llvm.hexagon.M4.and.and
-+    hexagon_M4_and_andn,                       // llvm.hexagon.M4.and.andn
-+    hexagon_M4_and_or,                         // llvm.hexagon.M4.and.or
-+    hexagon_M4_and_xor,                        // llvm.hexagon.M4.and.xor
-+    hexagon_M4_cmpyi_wh,                       // llvm.hexagon.M4.cmpyi.wh
-+    hexagon_M4_cmpyi_whc,                      // llvm.hexagon.M4.cmpyi.whc
-+    hexagon_M4_cmpyr_wh,                       // llvm.hexagon.M4.cmpyr.wh
-+    hexagon_M4_cmpyr_whc,                      // llvm.hexagon.M4.cmpyr.whc
-+    hexagon_M4_mac_up_s1_sat,                  // llvm.hexagon.M4.mac.up.s1.sat
-+    hexagon_M4_mpyri_addi,                     // llvm.hexagon.M4.mpyri.addi
-+    hexagon_M4_mpyri_addr,                     // llvm.hexagon.M4.mpyri.addr
-+    hexagon_M4_mpyri_addr_u2,                  // llvm.hexagon.M4.mpyri.addr.u2
-+    hexagon_M4_mpyrr_addi,                     // llvm.hexagon.M4.mpyrr.addi
-+    hexagon_M4_mpyrr_addr,                     // llvm.hexagon.M4.mpyrr.addr
-+    hexagon_M4_nac_up_s1_sat,                  // llvm.hexagon.M4.nac.up.s1.sat
-+    hexagon_M4_or_and,                         // llvm.hexagon.M4.or.and
-+    hexagon_M4_or_andn,                        // llvm.hexagon.M4.or.andn
-+    hexagon_M4_or_or,                          // llvm.hexagon.M4.or.or
-+    hexagon_M4_or_xor,                         // llvm.hexagon.M4.or.xor
-+    hexagon_M4_pmpyw,                          // llvm.hexagon.M4.pmpyw
-+    hexagon_M4_pmpyw_acc,                      // llvm.hexagon.M4.pmpyw.acc
-+    hexagon_M4_vpmpyh,                         // llvm.hexagon.M4.vpmpyh
-+    hexagon_M4_vpmpyh_acc,                     // llvm.hexagon.M4.vpmpyh.acc
-+    hexagon_M4_vrmpyeh_acc_s0,                 // llvm.hexagon.M4.vrmpyeh.acc.s0
-+    hexagon_M4_vrmpyeh_acc_s1,                 // llvm.hexagon.M4.vrmpyeh.acc.s1
-+    hexagon_M4_vrmpyeh_s0,                     // llvm.hexagon.M4.vrmpyeh.s0
-+    hexagon_M4_vrmpyeh_s1,                     // llvm.hexagon.M4.vrmpyeh.s1
-+    hexagon_M4_vrmpyoh_acc_s0,                 // llvm.hexagon.M4.vrmpyoh.acc.s0
-+    hexagon_M4_vrmpyoh_acc_s1,                 // llvm.hexagon.M4.vrmpyoh.acc.s1
-+    hexagon_M4_vrmpyoh_s0,                     // llvm.hexagon.M4.vrmpyoh.s0
-+    hexagon_M4_vrmpyoh_s1,                     // llvm.hexagon.M4.vrmpyoh.s1
-+    hexagon_M4_xor_and,                        // llvm.hexagon.M4.xor.and
-+    hexagon_M4_xor_andn,                       // llvm.hexagon.M4.xor.andn
-+    hexagon_M4_xor_or,                         // llvm.hexagon.M4.xor.or
-+    hexagon_M4_xor_xacc,                       // llvm.hexagon.M4.xor.xacc
-+    hexagon_M5_vdmacbsu,                       // llvm.hexagon.M5.vdmacbsu
-+    hexagon_M5_vdmpybsu,                       // llvm.hexagon.M5.vdmpybsu
-+    hexagon_M5_vmacbsu,                        // llvm.hexagon.M5.vmacbsu
-+    hexagon_M5_vmacbuu,                        // llvm.hexagon.M5.vmacbuu
-+    hexagon_M5_vmpybsu,                        // llvm.hexagon.M5.vmpybsu
-+    hexagon_M5_vmpybuu,                        // llvm.hexagon.M5.vmpybuu
-+    hexagon_M5_vrmacbsu,                       // llvm.hexagon.M5.vrmacbsu
-+    hexagon_M5_vrmacbuu,                       // llvm.hexagon.M5.vrmacbuu
-+    hexagon_M5_vrmpybsu,                       // llvm.hexagon.M5.vrmpybsu
-+    hexagon_M5_vrmpybuu,                       // llvm.hexagon.M5.vrmpybuu
-+    hexagon_M6_vabsdiffb,                      // llvm.hexagon.M6.vabsdiffb
-+    hexagon_M6_vabsdiffub,                     // llvm.hexagon.M6.vabsdiffub
-+    hexagon_S2_addasl_rrri,                    // llvm.hexagon.S2.addasl.rrri
-+    hexagon_S2_asl_i_p,                        // llvm.hexagon.S2.asl.i.p
-+    hexagon_S2_asl_i_p_acc,                    // llvm.hexagon.S2.asl.i.p.acc
-+    hexagon_S2_asl_i_p_and,                    // llvm.hexagon.S2.asl.i.p.and
-+    hexagon_S2_asl_i_p_nac,                    // llvm.hexagon.S2.asl.i.p.nac
-+    hexagon_S2_asl_i_p_or,                     // llvm.hexagon.S2.asl.i.p.or
-+    hexagon_S2_asl_i_p_xacc,                   // llvm.hexagon.S2.asl.i.p.xacc
-+    hexagon_S2_asl_i_r,                        // llvm.hexagon.S2.asl.i.r
-+    hexagon_S2_asl_i_r_acc,                    // llvm.hexagon.S2.asl.i.r.acc
-+    hexagon_S2_asl_i_r_and,                    // llvm.hexagon.S2.asl.i.r.and
-+    hexagon_S2_asl_i_r_nac,                    // llvm.hexagon.S2.asl.i.r.nac
-+    hexagon_S2_asl_i_r_or,                     // llvm.hexagon.S2.asl.i.r.or
-+    hexagon_S2_asl_i_r_sat,                    // llvm.hexagon.S2.asl.i.r.sat
-+    hexagon_S2_asl_i_r_xacc,                   // llvm.hexagon.S2.asl.i.r.xacc
-+    hexagon_S2_asl_i_vh,                       // llvm.hexagon.S2.asl.i.vh
-+    hexagon_S2_asl_i_vw,                       // llvm.hexagon.S2.asl.i.vw
-+    hexagon_S2_asl_r_p,                        // llvm.hexagon.S2.asl.r.p
-+    hexagon_S2_asl_r_p_acc,                    // llvm.hexagon.S2.asl.r.p.acc
-+    hexagon_S2_asl_r_p_and,                    // llvm.hexagon.S2.asl.r.p.and
-+    hexagon_S2_asl_r_p_nac,                    // llvm.hexagon.S2.asl.r.p.nac
-+    hexagon_S2_asl_r_p_or,                     // llvm.hexagon.S2.asl.r.p.or
-+    hexagon_S2_asl_r_p_xor,                    // llvm.hexagon.S2.asl.r.p.xor
-+    hexagon_S2_asl_r_r,                        // llvm.hexagon.S2.asl.r.r
-+    hexagon_S2_asl_r_r_acc,                    // llvm.hexagon.S2.asl.r.r.acc
-+    hexagon_S2_asl_r_r_and,                    // llvm.hexagon.S2.asl.r.r.and
-+    hexagon_S2_asl_r_r_nac,                    // llvm.hexagon.S2.asl.r.r.nac
-+    hexagon_S2_asl_r_r_or,                     // llvm.hexagon.S2.asl.r.r.or
-+    hexagon_S2_asl_r_r_sat,                    // llvm.hexagon.S2.asl.r.r.sat
-+    hexagon_S2_asl_r_vh,                       // llvm.hexagon.S2.asl.r.vh
-+    hexagon_S2_asl_r_vw,                       // llvm.hexagon.S2.asl.r.vw
-+    hexagon_S2_asr_i_p,                        // llvm.hexagon.S2.asr.i.p
-+    hexagon_S2_asr_i_p_acc,                    // llvm.hexagon.S2.asr.i.p.acc
-+    hexagon_S2_asr_i_p_and,                    // llvm.hexagon.S2.asr.i.p.and
-+    hexagon_S2_asr_i_p_nac,                    // llvm.hexagon.S2.asr.i.p.nac
-+    hexagon_S2_asr_i_p_or,                     // llvm.hexagon.S2.asr.i.p.or
-+    hexagon_S2_asr_i_p_rnd,                    // llvm.hexagon.S2.asr.i.p.rnd
-+    hexagon_S2_asr_i_p_rnd_goodsyntax,         // llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
-+    hexagon_S2_asr_i_r,                        // llvm.hexagon.S2.asr.i.r
-+    hexagon_S2_asr_i_r_acc,                    // llvm.hexagon.S2.asr.i.r.acc
-+    hexagon_S2_asr_i_r_and,                    // llvm.hexagon.S2.asr.i.r.and
-+    hexagon_S2_asr_i_r_nac,                    // llvm.hexagon.S2.asr.i.r.nac
-+    hexagon_S2_asr_i_r_or,                     // llvm.hexagon.S2.asr.i.r.or
-+    hexagon_S2_asr_i_r_rnd,                    // llvm.hexagon.S2.asr.i.r.rnd
-+    hexagon_S2_asr_i_r_rnd_goodsyntax,         // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
-+    hexagon_S2_asr_i_svw_trun,                 // llvm.hexagon.S2.asr.i.svw.trun
-+    hexagon_S2_asr_i_vh,                       // llvm.hexagon.S2.asr.i.vh
-+    hexagon_S2_asr_i_vw,                       // llvm.hexagon.S2.asr.i.vw
-+    hexagon_S2_asr_r_p,                        // llvm.hexagon.S2.asr.r.p
-+    hexagon_S2_asr_r_p_acc,                    // llvm.hexagon.S2.asr.r.p.acc
-+    hexagon_S2_asr_r_p_and,                    // llvm.hexagon.S2.asr.r.p.and
-+    hexagon_S2_asr_r_p_nac,                    // llvm.hexagon.S2.asr.r.p.nac
-+    hexagon_S2_asr_r_p_or,                     // llvm.hexagon.S2.asr.r.p.or
-+    hexagon_S2_asr_r_p_xor,                    // llvm.hexagon.S2.asr.r.p.xor
-+    hexagon_S2_asr_r_r,                        // llvm.hexagon.S2.asr.r.r
-+    hexagon_S2_asr_r_r_acc,                    // llvm.hexagon.S2.asr.r.r.acc
-+    hexagon_S2_asr_r_r_and,                    // llvm.hexagon.S2.asr.r.r.and
-+    hexagon_S2_asr_r_r_nac,                    // llvm.hexagon.S2.asr.r.r.nac
-+    hexagon_S2_asr_r_r_or,                     // llvm.hexagon.S2.asr.r.r.or
-+    hexagon_S2_asr_r_r_sat,                    // llvm.hexagon.S2.asr.r.r.sat
-+    hexagon_S2_asr_r_svw_trun,                 // llvm.hexagon.S2.asr.r.svw.trun
-+    hexagon_S2_asr_r_vh,                       // llvm.hexagon.S2.asr.r.vh
-+    hexagon_S2_asr_r_vw,                       // llvm.hexagon.S2.asr.r.vw
-+    hexagon_S2_brev,                           // llvm.hexagon.S2.brev
-+    hexagon_S2_brevp,                          // llvm.hexagon.S2.brevp
-+    hexagon_S2_cabacencbin,                    // llvm.hexagon.S2.cabacencbin
-+    hexagon_S2_cl0,                            // llvm.hexagon.S2.cl0
-+    hexagon_S2_cl0p,                           // llvm.hexagon.S2.cl0p
-+    hexagon_S2_cl1,                            // llvm.hexagon.S2.cl1
-+    hexagon_S2_cl1p,                           // llvm.hexagon.S2.cl1p
-+    hexagon_S2_clb,                            // llvm.hexagon.S2.clb
-+    hexagon_S2_clbnorm,                        // llvm.hexagon.S2.clbnorm
-+    hexagon_S2_clbp,                           // llvm.hexagon.S2.clbp
-+    hexagon_S2_clrbit_i,                       // llvm.hexagon.S2.clrbit.i
-+    hexagon_S2_clrbit_r,                       // llvm.hexagon.S2.clrbit.r
-+    hexagon_S2_ct0,                            // llvm.hexagon.S2.ct0
-+    hexagon_S2_ct0p,                           // llvm.hexagon.S2.ct0p
-+    hexagon_S2_ct1,                            // llvm.hexagon.S2.ct1
-+    hexagon_S2_ct1p,                           // llvm.hexagon.S2.ct1p
-+    hexagon_S2_deinterleave,                   // llvm.hexagon.S2.deinterleave
-+    hexagon_S2_extractu,                       // llvm.hexagon.S2.extractu
-+    hexagon_S2_extractu_rp,                    // llvm.hexagon.S2.extractu.rp
-+    hexagon_S2_extractup,                      // llvm.hexagon.S2.extractup
-+    hexagon_S2_extractup_rp,                   // llvm.hexagon.S2.extractup.rp
-+    hexagon_S2_insert,                         // llvm.hexagon.S2.insert
-+    hexagon_S2_insert_rp,                      // llvm.hexagon.S2.insert.rp
-+    hexagon_S2_insertp,                        // llvm.hexagon.S2.insertp
-+    hexagon_S2_insertp_rp,                     // llvm.hexagon.S2.insertp.rp
-+    hexagon_S2_interleave,                     // llvm.hexagon.S2.interleave
-+    hexagon_S2_lfsp,                           // llvm.hexagon.S2.lfsp
-+    hexagon_S2_lsl_r_p,                        // llvm.hexagon.S2.lsl.r.p
-+    hexagon_S2_lsl_r_p_acc,                    // llvm.hexagon.S2.lsl.r.p.acc
-+    hexagon_S2_lsl_r_p_and,                    // llvm.hexagon.S2.lsl.r.p.and
-+    hexagon_S2_lsl_r_p_nac,                    // llvm.hexagon.S2.lsl.r.p.nac
-+    hexagon_S2_lsl_r_p_or,                     // llvm.hexagon.S2.lsl.r.p.or
-+    hexagon_S2_lsl_r_p_xor,                    // llvm.hexagon.S2.lsl.r.p.xor
-+    hexagon_S2_lsl_r_r,                        // llvm.hexagon.S2.lsl.r.r
-+    hexagon_S2_lsl_r_r_acc,                    // llvm.hexagon.S2.lsl.r.r.acc
-+    hexagon_S2_lsl_r_r_and,                    // llvm.hexagon.S2.lsl.r.r.and
-+    hexagon_S2_lsl_r_r_nac,                    // llvm.hexagon.S2.lsl.r.r.nac
-+    hexagon_S2_lsl_r_r_or,                     // llvm.hexagon.S2.lsl.r.r.or
-+    hexagon_S2_lsl_r_vh,                       // llvm.hexagon.S2.lsl.r.vh
-+    hexagon_S2_lsl_r_vw,                       // llvm.hexagon.S2.lsl.r.vw
-+    hexagon_S2_lsr_i_p,                        // llvm.hexagon.S2.lsr.i.p
-+    hexagon_S2_lsr_i_p_acc,                    // llvm.hexagon.S2.lsr.i.p.acc
-+    hexagon_S2_lsr_i_p_and,                    // llvm.hexagon.S2.lsr.i.p.and
-+    hexagon_S2_lsr_i_p_nac,                    // llvm.hexagon.S2.lsr.i.p.nac
-+    hexagon_S2_lsr_i_p_or,                     // llvm.hexagon.S2.lsr.i.p.or
-+    hexagon_S2_lsr_i_p_xacc,                   // llvm.hexagon.S2.lsr.i.p.xacc
-+    hexagon_S2_lsr_i_r,                        // llvm.hexagon.S2.lsr.i.r
-+    hexagon_S2_lsr_i_r_acc,                    // llvm.hexagon.S2.lsr.i.r.acc
-+    hexagon_S2_lsr_i_r_and,                    // llvm.hexagon.S2.lsr.i.r.and
-+    hexagon_S2_lsr_i_r_nac,                    // llvm.hexagon.S2.lsr.i.r.nac
-+    hexagon_S2_lsr_i_r_or,                     // llvm.hexagon.S2.lsr.i.r.or
-+    hexagon_S2_lsr_i_r_xacc,                   // llvm.hexagon.S2.lsr.i.r.xacc
-+    hexagon_S2_lsr_i_vh,                       // llvm.hexagon.S2.lsr.i.vh
-+    hexagon_S2_lsr_i_vw,                       // llvm.hexagon.S2.lsr.i.vw
-+    hexagon_S2_lsr_r_p,                        // llvm.hexagon.S2.lsr.r.p
-+    hexagon_S2_lsr_r_p_acc,                    // llvm.hexagon.S2.lsr.r.p.acc
-+    hexagon_S2_lsr_r_p_and,                    // llvm.hexagon.S2.lsr.r.p.and
-+    hexagon_S2_lsr_r_p_nac,                    // llvm.hexagon.S2.lsr.r.p.nac
-+    hexagon_S2_lsr_r_p_or,                     // llvm.hexagon.S2.lsr.r.p.or
-+    hexagon_S2_lsr_r_p_xor,                    // llvm.hexagon.S2.lsr.r.p.xor
-+    hexagon_S2_lsr_r_r,                        // llvm.hexagon.S2.lsr.r.r
-+    hexagon_S2_lsr_r_r_acc,                    // llvm.hexagon.S2.lsr.r.r.acc
-+    hexagon_S2_lsr_r_r_and,                    // llvm.hexagon.S2.lsr.r.r.and
-+    hexagon_S2_lsr_r_r_nac,                    // llvm.hexagon.S2.lsr.r.r.nac
-+    hexagon_S2_lsr_r_r_or,                     // llvm.hexagon.S2.lsr.r.r.or
-+    hexagon_S2_lsr_r_vh,                       // llvm.hexagon.S2.lsr.r.vh
-+    hexagon_S2_lsr_r_vw,                       // llvm.hexagon.S2.lsr.r.vw
-+    hexagon_S2_packhl,                         // llvm.hexagon.S2.packhl
-+    hexagon_S2_parityp,                        // llvm.hexagon.S2.parityp
-+    hexagon_S2_setbit_i,                       // llvm.hexagon.S2.setbit.i
-+    hexagon_S2_setbit_r,                       // llvm.hexagon.S2.setbit.r
-+    hexagon_S2_shuffeb,                        // llvm.hexagon.S2.shuffeb
-+    hexagon_S2_shuffeh,                        // llvm.hexagon.S2.shuffeh
-+    hexagon_S2_shuffob,                        // llvm.hexagon.S2.shuffob
-+    hexagon_S2_shuffoh,                        // llvm.hexagon.S2.shuffoh
-+    hexagon_S2_storew_locked,                  // llvm.hexagon.S2.storew.locked
-+    hexagon_S2_svsathb,                        // llvm.hexagon.S2.svsathb
-+    hexagon_S2_svsathub,                       // llvm.hexagon.S2.svsathub
-+    hexagon_S2_tableidxb_goodsyntax,           // llvm.hexagon.S2.tableidxb.goodsyntax
-+    hexagon_S2_tableidxd_goodsyntax,           // llvm.hexagon.S2.tableidxd.goodsyntax
-+    hexagon_S2_tableidxh_goodsyntax,           // llvm.hexagon.S2.tableidxh.goodsyntax
-+    hexagon_S2_tableidxw_goodsyntax,           // llvm.hexagon.S2.tableidxw.goodsyntax
-+    hexagon_S2_togglebit_i,                    // llvm.hexagon.S2.togglebit.i
-+    hexagon_S2_togglebit_r,                    // llvm.hexagon.S2.togglebit.r
-+    hexagon_S2_tstbit_i,                       // llvm.hexagon.S2.tstbit.i
-+    hexagon_S2_tstbit_r,                       // llvm.hexagon.S2.tstbit.r
-+    hexagon_S2_valignib,                       // llvm.hexagon.S2.valignib
-+    hexagon_S2_valignrb,                       // llvm.hexagon.S2.valignrb
-+    hexagon_S2_vcnegh,                         // llvm.hexagon.S2.vcnegh
-+    hexagon_S2_vcrotate,                       // llvm.hexagon.S2.vcrotate
-+    hexagon_S2_vrcnegh,                        // llvm.hexagon.S2.vrcnegh
-+    hexagon_S2_vrndpackwh,                     // llvm.hexagon.S2.vrndpackwh
-+    hexagon_S2_vrndpackwhs,                    // llvm.hexagon.S2.vrndpackwhs
-+    hexagon_S2_vsathb,                         // llvm.hexagon.S2.vsathb
-+    hexagon_S2_vsathb_nopack,                  // llvm.hexagon.S2.vsathb.nopack
-+    hexagon_S2_vsathub,                        // llvm.hexagon.S2.vsathub
-+    hexagon_S2_vsathub_nopack,                 // llvm.hexagon.S2.vsathub.nopack
-+    hexagon_S2_vsatwh,                         // llvm.hexagon.S2.vsatwh
-+    hexagon_S2_vsatwh_nopack,                  // llvm.hexagon.S2.vsatwh.nopack
-+    hexagon_S2_vsatwuh,                        // llvm.hexagon.S2.vsatwuh
-+    hexagon_S2_vsatwuh_nopack,                 // llvm.hexagon.S2.vsatwuh.nopack
-+    hexagon_S2_vsplatrb,                       // llvm.hexagon.S2.vsplatrb
-+    hexagon_S2_vsplatrh,                       // llvm.hexagon.S2.vsplatrh
-+    hexagon_S2_vspliceib,                      // llvm.hexagon.S2.vspliceib
-+    hexagon_S2_vsplicerb,                      // llvm.hexagon.S2.vsplicerb
-+    hexagon_S2_vsxtbh,                         // llvm.hexagon.S2.vsxtbh
-+    hexagon_S2_vsxthw,                         // llvm.hexagon.S2.vsxthw
-+    hexagon_S2_vtrunehb,                       // llvm.hexagon.S2.vtrunehb
-+    hexagon_S2_vtrunewh,                       // llvm.hexagon.S2.vtrunewh
-+    hexagon_S2_vtrunohb,                       // llvm.hexagon.S2.vtrunohb
-+    hexagon_S2_vtrunowh,                       // llvm.hexagon.S2.vtrunowh
-+    hexagon_S2_vzxtbh,                         // llvm.hexagon.S2.vzxtbh
-+    hexagon_S2_vzxthw,                         // llvm.hexagon.S2.vzxthw
-+    hexagon_S4_addaddi,                        // llvm.hexagon.S4.addaddi
-+    hexagon_S4_addi_asl_ri,                    // llvm.hexagon.S4.addi.asl.ri
-+    hexagon_S4_addi_lsr_ri,                    // llvm.hexagon.S4.addi.lsr.ri
-+    hexagon_S4_andi_asl_ri,                    // llvm.hexagon.S4.andi.asl.ri
-+    hexagon_S4_andi_lsr_ri,                    // llvm.hexagon.S4.andi.lsr.ri
-+    hexagon_S4_clbaddi,                        // llvm.hexagon.S4.clbaddi
-+    hexagon_S4_clbpaddi,                       // llvm.hexagon.S4.clbpaddi
-+    hexagon_S4_clbpnorm,                       // llvm.hexagon.S4.clbpnorm
-+    hexagon_S4_extract,                        // llvm.hexagon.S4.extract
-+    hexagon_S4_extract_rp,                     // llvm.hexagon.S4.extract.rp
-+    hexagon_S4_extractp,                       // llvm.hexagon.S4.extractp
-+    hexagon_S4_extractp_rp,                    // llvm.hexagon.S4.extractp.rp
-+    hexagon_S4_lsli,                           // llvm.hexagon.S4.lsli
-+    hexagon_S4_ntstbit_i,                      // llvm.hexagon.S4.ntstbit.i
-+    hexagon_S4_ntstbit_r,                      // llvm.hexagon.S4.ntstbit.r
-+    hexagon_S4_or_andi,                        // llvm.hexagon.S4.or.andi
-+    hexagon_S4_or_andix,                       // llvm.hexagon.S4.or.andix
-+    hexagon_S4_or_ori,                         // llvm.hexagon.S4.or.ori
-+    hexagon_S4_ori_asl_ri,                     // llvm.hexagon.S4.ori.asl.ri
-+    hexagon_S4_ori_lsr_ri,                     // llvm.hexagon.S4.ori.lsr.ri
-+    hexagon_S4_parity,                         // llvm.hexagon.S4.parity
-+    hexagon_S4_stored_locked,                  // llvm.hexagon.S4.stored.locked
-+    hexagon_S4_subaddi,                        // llvm.hexagon.S4.subaddi
-+    hexagon_S4_subi_asl_ri,                    // llvm.hexagon.S4.subi.asl.ri
-+    hexagon_S4_subi_lsr_ri,                    // llvm.hexagon.S4.subi.lsr.ri
-+    hexagon_S4_vrcrotate,                      // llvm.hexagon.S4.vrcrotate
-+    hexagon_S4_vrcrotate_acc,                  // llvm.hexagon.S4.vrcrotate.acc
-+    hexagon_S4_vxaddsubh,                      // llvm.hexagon.S4.vxaddsubh
-+    hexagon_S4_vxaddsubhr,                     // llvm.hexagon.S4.vxaddsubhr
-+    hexagon_S4_vxaddsubw,                      // llvm.hexagon.S4.vxaddsubw
-+    hexagon_S4_vxsubaddh,                      // llvm.hexagon.S4.vxsubaddh
-+    hexagon_S4_vxsubaddhr,                     // llvm.hexagon.S4.vxsubaddhr
-+    hexagon_S4_vxsubaddw,                      // llvm.hexagon.S4.vxsubaddw
-+    hexagon_S5_asrhub_rnd_sat_goodsyntax,      // llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
-+    hexagon_S5_asrhub_sat,                     // llvm.hexagon.S5.asrhub.sat
-+    hexagon_S5_popcountp,                      // llvm.hexagon.S5.popcountp
-+    hexagon_S5_vasrhrnd_goodsyntax,            // llvm.hexagon.S5.vasrhrnd.goodsyntax
-+    hexagon_S6_rol_i_p,                        // llvm.hexagon.S6.rol.i.p
-+    hexagon_S6_rol_i_p_acc,                    // llvm.hexagon.S6.rol.i.p.acc
-+    hexagon_S6_rol_i_p_and,                    // llvm.hexagon.S6.rol.i.p.and
-+    hexagon_S6_rol_i_p_nac,                    // llvm.hexagon.S6.rol.i.p.nac
-+    hexagon_S6_rol_i_p_or,                     // llvm.hexagon.S6.rol.i.p.or
-+    hexagon_S6_rol_i_p_xacc,                   // llvm.hexagon.S6.rol.i.p.xacc
-+    hexagon_S6_rol_i_r,                        // llvm.hexagon.S6.rol.i.r
-+    hexagon_S6_rol_i_r_acc,                    // llvm.hexagon.S6.rol.i.r.acc
-+    hexagon_S6_rol_i_r_and,                    // llvm.hexagon.S6.rol.i.r.and
-+    hexagon_S6_rol_i_r_nac,                    // llvm.hexagon.S6.rol.i.r.nac
-+    hexagon_S6_rol_i_r_or,                     // llvm.hexagon.S6.rol.i.r.or
-+    hexagon_S6_rol_i_r_xacc,                   // llvm.hexagon.S6.rol.i.r.xacc
-+    hexagon_S6_vsplatrbp,                      // llvm.hexagon.S6.vsplatrbp
-+    hexagon_S6_vtrunehb_ppp,                   // llvm.hexagon.S6.vtrunehb.ppp
-+    hexagon_S6_vtrunohb_ppp,                   // llvm.hexagon.S6.vtrunohb.ppp
-+    hexagon_SI_to_SXTHI_asrh,                  // llvm.hexagon.SI.to.SXTHI.asrh
-+    hexagon_V6_extractw,                       // llvm.hexagon.V6.extractw
-+    hexagon_V6_extractw_128B,                  // llvm.hexagon.V6.extractw.128B
-+    hexagon_V6_hi,                             // llvm.hexagon.V6.hi
-+    hexagon_V6_hi_128B,                        // llvm.hexagon.V6.hi.128B
-+    hexagon_V6_lo,                             // llvm.hexagon.V6.lo
-+    hexagon_V6_lo_128B,                        // llvm.hexagon.V6.lo.128B
-+    hexagon_V6_lvsplatw,                       // llvm.hexagon.V6.lvsplatw
-+    hexagon_V6_lvsplatw_128B,                  // llvm.hexagon.V6.lvsplatw.128B
-+    hexagon_V6_pred_and,                       // llvm.hexagon.V6.pred.and
-+    hexagon_V6_pred_and_128B,                  // llvm.hexagon.V6.pred.and.128B
-+    hexagon_V6_pred_and_n,                     // llvm.hexagon.V6.pred.and.n
-+    hexagon_V6_pred_and_n_128B,                // llvm.hexagon.V6.pred.and.n.128B
-+    hexagon_V6_pred_not,                       // llvm.hexagon.V6.pred.not
-+    hexagon_V6_pred_not_128B,                  // llvm.hexagon.V6.pred.not.128B
-+    hexagon_V6_pred_or,                        // llvm.hexagon.V6.pred.or
-+    hexagon_V6_pred_or_128B,                   // llvm.hexagon.V6.pred.or.128B
-+    hexagon_V6_pred_or_n,                      // llvm.hexagon.V6.pred.or.n
-+    hexagon_V6_pred_or_n_128B,                 // llvm.hexagon.V6.pred.or.n.128B
-+    hexagon_V6_pred_scalar2,                   // llvm.hexagon.V6.pred.scalar2
-+    hexagon_V6_pred_scalar2_128B,              // llvm.hexagon.V6.pred.scalar2.128B
-+    hexagon_V6_pred_xor,                       // llvm.hexagon.V6.pred.xor
-+    hexagon_V6_pred_xor_128B,                  // llvm.hexagon.V6.pred.xor.128B
-+    hexagon_V6_vabsdiffh,                      // llvm.hexagon.V6.vabsdiffh
-+    hexagon_V6_vabsdiffh_128B,                 // llvm.hexagon.V6.vabsdiffh.128B
-+    hexagon_V6_vabsdiffub,                     // llvm.hexagon.V6.vabsdiffub
-+    hexagon_V6_vabsdiffub_128B,                // llvm.hexagon.V6.vabsdiffub.128B
-+    hexagon_V6_vabsdiffuh,                     // llvm.hexagon.V6.vabsdiffuh
-+    hexagon_V6_vabsdiffuh_128B,                // llvm.hexagon.V6.vabsdiffuh.128B
-+    hexagon_V6_vabsdiffw,                      // llvm.hexagon.V6.vabsdiffw
-+    hexagon_V6_vabsdiffw_128B,                 // llvm.hexagon.V6.vabsdiffw.128B
-+    hexagon_V6_vabsh,                          // llvm.hexagon.V6.vabsh
-+    hexagon_V6_vabsh_128B,                     // llvm.hexagon.V6.vabsh.128B
-+    hexagon_V6_vabsh_sat,                      // llvm.hexagon.V6.vabsh.sat
-+    hexagon_V6_vabsh_sat_128B,                 // llvm.hexagon.V6.vabsh.sat.128B
-+    hexagon_V6_vabsw,                          // llvm.hexagon.V6.vabsw
-+    hexagon_V6_vabsw_128B,                     // llvm.hexagon.V6.vabsw.128B
-+    hexagon_V6_vabsw_sat,                      // llvm.hexagon.V6.vabsw.sat
-+    hexagon_V6_vabsw_sat_128B,                 // llvm.hexagon.V6.vabsw.sat.128B
-+    hexagon_V6_vaddb,                          // llvm.hexagon.V6.vaddb
-+    hexagon_V6_vaddb_128B,                     // llvm.hexagon.V6.vaddb.128B
-+    hexagon_V6_vaddb_dv,                       // llvm.hexagon.V6.vaddb.dv
-+    hexagon_V6_vaddb_dv_128B,                  // llvm.hexagon.V6.vaddb.dv.128B
-+    hexagon_V6_vaddbnq,                        // llvm.hexagon.V6.vaddbnq
-+    hexagon_V6_vaddbnq_128B,                   // llvm.hexagon.V6.vaddbnq.128B
-+    hexagon_V6_vaddbq,                         // llvm.hexagon.V6.vaddbq
-+    hexagon_V6_vaddbq_128B,                    // llvm.hexagon.V6.vaddbq.128B
-+    hexagon_V6_vaddh,                          // llvm.hexagon.V6.vaddh
-+    hexagon_V6_vaddh_128B,                     // llvm.hexagon.V6.vaddh.128B
-+    hexagon_V6_vaddh_dv,                       // llvm.hexagon.V6.vaddh.dv
-+    hexagon_V6_vaddh_dv_128B,                  // llvm.hexagon.V6.vaddh.dv.128B
-+    hexagon_V6_vaddhnq,                        // llvm.hexagon.V6.vaddhnq
-+    hexagon_V6_vaddhnq_128B,                   // llvm.hexagon.V6.vaddhnq.128B
-+    hexagon_V6_vaddhq,                         // llvm.hexagon.V6.vaddhq
-+    hexagon_V6_vaddhq_128B,                    // llvm.hexagon.V6.vaddhq.128B
-+    hexagon_V6_vaddhsat,                       // llvm.hexagon.V6.vaddhsat
-+    hexagon_V6_vaddhsat_128B,                  // llvm.hexagon.V6.vaddhsat.128B
-+    hexagon_V6_vaddhsat_dv,                    // llvm.hexagon.V6.vaddhsat.dv
-+    hexagon_V6_vaddhsat_dv_128B,               // llvm.hexagon.V6.vaddhsat.dv.128B
-+    hexagon_V6_vaddhw,                         // llvm.hexagon.V6.vaddhw
-+    hexagon_V6_vaddhw_128B,                    // llvm.hexagon.V6.vaddhw.128B
-+    hexagon_V6_vaddubh,                        // llvm.hexagon.V6.vaddubh
-+    hexagon_V6_vaddubh_128B,                   // llvm.hexagon.V6.vaddubh.128B
-+    hexagon_V6_vaddubsat,                      // llvm.hexagon.V6.vaddubsat
-+    hexagon_V6_vaddubsat_128B,                 // llvm.hexagon.V6.vaddubsat.128B
-+    hexagon_V6_vaddubsat_dv,                   // llvm.hexagon.V6.vaddubsat.dv
-+    hexagon_V6_vaddubsat_dv_128B,              // llvm.hexagon.V6.vaddubsat.dv.128B
-+    hexagon_V6_vadduhsat,                      // llvm.hexagon.V6.vadduhsat
-+    hexagon_V6_vadduhsat_128B,                 // llvm.hexagon.V6.vadduhsat.128B
-+    hexagon_V6_vadduhsat_dv,                   // llvm.hexagon.V6.vadduhsat.dv
-+    hexagon_V6_vadduhsat_dv_128B,              // llvm.hexagon.V6.vadduhsat.dv.128B
-+    hexagon_V6_vadduhw,                        // llvm.hexagon.V6.vadduhw
-+    hexagon_V6_vadduhw_128B,                   // llvm.hexagon.V6.vadduhw.128B
-+    hexagon_V6_vaddw,                          // llvm.hexagon.V6.vaddw
-+    hexagon_V6_vaddw_128B,                     // llvm.hexagon.V6.vaddw.128B
-+    hexagon_V6_vaddw_dv,                       // llvm.hexagon.V6.vaddw.dv
-+    hexagon_V6_vaddw_dv_128B,                  // llvm.hexagon.V6.vaddw.dv.128B
-+    hexagon_V6_vaddwnq,                        // llvm.hexagon.V6.vaddwnq
-+    hexagon_V6_vaddwnq_128B,                   // llvm.hexagon.V6.vaddwnq.128B
-+    hexagon_V6_vaddwq,                         // llvm.hexagon.V6.vaddwq
-+    hexagon_V6_vaddwq_128B,                    // llvm.hexagon.V6.vaddwq.128B
-+    hexagon_V6_vaddwsat,                       // llvm.hexagon.V6.vaddwsat
-+    hexagon_V6_vaddwsat_128B,                  // llvm.hexagon.V6.vaddwsat.128B
-+    hexagon_V6_vaddwsat_dv,                    // llvm.hexagon.V6.vaddwsat.dv
-+    hexagon_V6_vaddwsat_dv_128B,               // llvm.hexagon.V6.vaddwsat.dv.128B
-+    hexagon_V6_valignb,                        // llvm.hexagon.V6.valignb
-+    hexagon_V6_valignb_128B,                   // llvm.hexagon.V6.valignb.128B
-+    hexagon_V6_valignbi,                       // llvm.hexagon.V6.valignbi
-+    hexagon_V6_valignbi_128B,                  // llvm.hexagon.V6.valignbi.128B
-+    hexagon_V6_vand,                           // llvm.hexagon.V6.vand
-+    hexagon_V6_vand_128B,                      // llvm.hexagon.V6.vand.128B
-+    hexagon_V6_vandqrt,                        // llvm.hexagon.V6.vandqrt
-+    hexagon_V6_vandqrt_128B,                   // llvm.hexagon.V6.vandqrt.128B
-+    hexagon_V6_vandqrt_acc,                    // llvm.hexagon.V6.vandqrt.acc
-+    hexagon_V6_vandqrt_acc_128B,               // llvm.hexagon.V6.vandqrt.acc.128B
-+    hexagon_V6_vandvrt,                        // llvm.hexagon.V6.vandvrt
-+    hexagon_V6_vandvrt_128B,                   // llvm.hexagon.V6.vandvrt.128B
-+    hexagon_V6_vandvrt_acc,                    // llvm.hexagon.V6.vandvrt.acc
-+    hexagon_V6_vandvrt_acc_128B,               // llvm.hexagon.V6.vandvrt.acc.128B
-+    hexagon_V6_vaslh,                          // llvm.hexagon.V6.vaslh
-+    hexagon_V6_vaslh_128B,                     // llvm.hexagon.V6.vaslh.128B
-+    hexagon_V6_vaslhv,                         // llvm.hexagon.V6.vaslhv
-+    hexagon_V6_vaslhv_128B,                    // llvm.hexagon.V6.vaslhv.128B
-+    hexagon_V6_vaslw,                          // llvm.hexagon.V6.vaslw
-+    hexagon_V6_vaslw_128B,                     // llvm.hexagon.V6.vaslw.128B
-+    hexagon_V6_vaslw_acc,                      // llvm.hexagon.V6.vaslw.acc
-+    hexagon_V6_vaslw_acc_128B,                 // llvm.hexagon.V6.vaslw.acc.128B
-+    hexagon_V6_vaslwv,                         // llvm.hexagon.V6.vaslwv
-+    hexagon_V6_vaslwv_128B,                    // llvm.hexagon.V6.vaslwv.128B
-+    hexagon_V6_vasrh,                          // llvm.hexagon.V6.vasrh
-+    hexagon_V6_vasrh_128B,                     // llvm.hexagon.V6.vasrh.128B
-+    hexagon_V6_vasrhbrndsat,                   // llvm.hexagon.V6.vasrhbrndsat
-+    hexagon_V6_vasrhbrndsat_128B,              // llvm.hexagon.V6.vasrhbrndsat.128B
-+    hexagon_V6_vasrhubrndsat,                  // llvm.hexagon.V6.vasrhubrndsat
-+    hexagon_V6_vasrhubrndsat_128B,             // llvm.hexagon.V6.vasrhubrndsat.128B
-+    hexagon_V6_vasrhubsat,                     // llvm.hexagon.V6.vasrhubsat
-+    hexagon_V6_vasrhubsat_128B,                // llvm.hexagon.V6.vasrhubsat.128B
-+    hexagon_V6_vasrhv,                         // llvm.hexagon.V6.vasrhv
-+    hexagon_V6_vasrhv_128B,                    // llvm.hexagon.V6.vasrhv.128B
-+    hexagon_V6_vasrw,                          // llvm.hexagon.V6.vasrw
-+    hexagon_V6_vasrw_128B,                     // llvm.hexagon.V6.vasrw.128B
-+    hexagon_V6_vasrw_acc,                      // llvm.hexagon.V6.vasrw.acc
-+    hexagon_V6_vasrw_acc_128B,                 // llvm.hexagon.V6.vasrw.acc.128B
-+    hexagon_V6_vasrwh,                         // llvm.hexagon.V6.vasrwh
-+    hexagon_V6_vasrwh_128B,                    // llvm.hexagon.V6.vasrwh.128B
-+    hexagon_V6_vasrwhrndsat,                   // llvm.hexagon.V6.vasrwhrndsat
-+    hexagon_V6_vasrwhrndsat_128B,              // llvm.hexagon.V6.vasrwhrndsat.128B
-+    hexagon_V6_vasrwhsat,                      // llvm.hexagon.V6.vasrwhsat
-+    hexagon_V6_vasrwhsat_128B,                 // llvm.hexagon.V6.vasrwhsat.128B
-+    hexagon_V6_vasrwuhsat,                     // llvm.hexagon.V6.vasrwuhsat
-+    hexagon_V6_vasrwuhsat_128B,                // llvm.hexagon.V6.vasrwuhsat.128B
-+    hexagon_V6_vasrwv,                         // llvm.hexagon.V6.vasrwv
-+    hexagon_V6_vasrwv_128B,                    // llvm.hexagon.V6.vasrwv.128B
-+    hexagon_V6_vassign,                        // llvm.hexagon.V6.vassign
-+    hexagon_V6_vassign_128B,                   // llvm.hexagon.V6.vassign.128B
-+    hexagon_V6_vassignp,                       // llvm.hexagon.V6.vassignp
-+    hexagon_V6_vassignp_128B,                  // llvm.hexagon.V6.vassignp.128B
-+    hexagon_V6_vavgh,                          // llvm.hexagon.V6.vavgh
-+    hexagon_V6_vavgh_128B,                     // llvm.hexagon.V6.vavgh.128B
-+    hexagon_V6_vavghrnd,                       // llvm.hexagon.V6.vavghrnd
-+    hexagon_V6_vavghrnd_128B,                  // llvm.hexagon.V6.vavghrnd.128B
-+    hexagon_V6_vavgub,                         // llvm.hexagon.V6.vavgub
-+    hexagon_V6_vavgub_128B,                    // llvm.hexagon.V6.vavgub.128B
-+    hexagon_V6_vavgubrnd,                      // llvm.hexagon.V6.vavgubrnd
-+    hexagon_V6_vavgubrnd_128B,                 // llvm.hexagon.V6.vavgubrnd.128B
-+    hexagon_V6_vavguh,                         // llvm.hexagon.V6.vavguh
-+    hexagon_V6_vavguh_128B,                    // llvm.hexagon.V6.vavguh.128B
-+    hexagon_V6_vavguhrnd,                      // llvm.hexagon.V6.vavguhrnd
-+    hexagon_V6_vavguhrnd_128B,                 // llvm.hexagon.V6.vavguhrnd.128B
-+    hexagon_V6_vavgw,                          // llvm.hexagon.V6.vavgw
-+    hexagon_V6_vavgw_128B,                     // llvm.hexagon.V6.vavgw.128B
-+    hexagon_V6_vavgwrnd,                       // llvm.hexagon.V6.vavgwrnd
-+    hexagon_V6_vavgwrnd_128B,                  // llvm.hexagon.V6.vavgwrnd.128B
-+    hexagon_V6_vcl0h,                          // llvm.hexagon.V6.vcl0h
-+    hexagon_V6_vcl0h_128B,                     // llvm.hexagon.V6.vcl0h.128B
-+    hexagon_V6_vcl0w,                          // llvm.hexagon.V6.vcl0w
-+    hexagon_V6_vcl0w_128B,                     // llvm.hexagon.V6.vcl0w.128B
-+    hexagon_V6_vcombine,                       // llvm.hexagon.V6.vcombine
-+    hexagon_V6_vcombine_128B,                  // llvm.hexagon.V6.vcombine.128B
-+    hexagon_V6_vd0,                            // llvm.hexagon.V6.vd0
-+    hexagon_V6_vd0_128B,                       // llvm.hexagon.V6.vd0.128B
-+    hexagon_V6_vdealb,                         // llvm.hexagon.V6.vdealb
-+    hexagon_V6_vdealb_128B,                    // llvm.hexagon.V6.vdealb.128B
-+    hexagon_V6_vdealb4w,                       // llvm.hexagon.V6.vdealb4w
-+    hexagon_V6_vdealb4w_128B,                  // llvm.hexagon.V6.vdealb4w.128B
-+    hexagon_V6_vdealh,                         // llvm.hexagon.V6.vdealh
-+    hexagon_V6_vdealh_128B,                    // llvm.hexagon.V6.vdealh.128B
-+    hexagon_V6_vdealvdd,                       // llvm.hexagon.V6.vdealvdd
-+    hexagon_V6_vdealvdd_128B,                  // llvm.hexagon.V6.vdealvdd.128B
-+    hexagon_V6_vdelta,                         // llvm.hexagon.V6.vdelta
-+    hexagon_V6_vdelta_128B,                    // llvm.hexagon.V6.vdelta.128B
-+    hexagon_V6_vdmpybus,                       // llvm.hexagon.V6.vdmpybus
-+    hexagon_V6_vdmpybus_128B,                  // llvm.hexagon.V6.vdmpybus.128B
-+    hexagon_V6_vdmpybus_acc,                   // llvm.hexagon.V6.vdmpybus.acc
-+    hexagon_V6_vdmpybus_acc_128B,              // llvm.hexagon.V6.vdmpybus.acc.128B
-+    hexagon_V6_vdmpybus_dv,                    // llvm.hexagon.V6.vdmpybus.dv
-+    hexagon_V6_vdmpybus_dv_128B,               // llvm.hexagon.V6.vdmpybus.dv.128B
-+    hexagon_V6_vdmpybus_dv_acc,                // llvm.hexagon.V6.vdmpybus.dv.acc
-+    hexagon_V6_vdmpybus_dv_acc_128B,           // llvm.hexagon.V6.vdmpybus.dv.acc.128B
-+    hexagon_V6_vdmpyhb,                        // llvm.hexagon.V6.vdmpyhb
-+    hexagon_V6_vdmpyhb_128B,                   // llvm.hexagon.V6.vdmpyhb.128B
-+    hexagon_V6_vdmpyhb_acc,                    // llvm.hexagon.V6.vdmpyhb.acc
-+    hexagon_V6_vdmpyhb_acc_128B,               // llvm.hexagon.V6.vdmpyhb.acc.128B
-+    hexagon_V6_vdmpyhb_dv,                     // llvm.hexagon.V6.vdmpyhb.dv
-+    hexagon_V6_vdmpyhb_dv_128B,                // llvm.hexagon.V6.vdmpyhb.dv.128B
-+    hexagon_V6_vdmpyhb_dv_acc,                 // llvm.hexagon.V6.vdmpyhb.dv.acc
-+    hexagon_V6_vdmpyhb_dv_acc_128B,            // llvm.hexagon.V6.vdmpyhb.dv.acc.128B
-+    hexagon_V6_vdmpyhisat,                     // llvm.hexagon.V6.vdmpyhisat
-+    hexagon_V6_vdmpyhisat_128B,                // llvm.hexagon.V6.vdmpyhisat.128B
-+    hexagon_V6_vdmpyhisat_acc,                 // llvm.hexagon.V6.vdmpyhisat.acc
-+    hexagon_V6_vdmpyhisat_acc_128B,            // llvm.hexagon.V6.vdmpyhisat.acc.128B
-+    hexagon_V6_vdmpyhsat,                      // llvm.hexagon.V6.vdmpyhsat
-+    hexagon_V6_vdmpyhsat_128B,                 // llvm.hexagon.V6.vdmpyhsat.128B
-+    hexagon_V6_vdmpyhsat_acc,                  // llvm.hexagon.V6.vdmpyhsat.acc
-+    hexagon_V6_vdmpyhsat_acc_128B,             // llvm.hexagon.V6.vdmpyhsat.acc.128B
-+    hexagon_V6_vdmpyhsuisat,                   // llvm.hexagon.V6.vdmpyhsuisat
-+    hexagon_V6_vdmpyhsuisat_128B,              // llvm.hexagon.V6.vdmpyhsuisat.128B
-+    hexagon_V6_vdmpyhsuisat_acc,               // llvm.hexagon.V6.vdmpyhsuisat.acc
-+    hexagon_V6_vdmpyhsuisat_acc_128B,          // llvm.hexagon.V6.vdmpyhsuisat.acc.128B
-+    hexagon_V6_vdmpyhsusat,                    // llvm.hexagon.V6.vdmpyhsusat
-+    hexagon_V6_vdmpyhsusat_128B,               // llvm.hexagon.V6.vdmpyhsusat.128B
-+    hexagon_V6_vdmpyhsusat_acc,                // llvm.hexagon.V6.vdmpyhsusat.acc
-+    hexagon_V6_vdmpyhsusat_acc_128B,           // llvm.hexagon.V6.vdmpyhsusat.acc.128B
-+    hexagon_V6_vdmpyhvsat,                     // llvm.hexagon.V6.vdmpyhvsat
-+    hexagon_V6_vdmpyhvsat_128B,                // llvm.hexagon.V6.vdmpyhvsat.128B
-+    hexagon_V6_vdmpyhvsat_acc,                 // llvm.hexagon.V6.vdmpyhvsat.acc
-+    hexagon_V6_vdmpyhvsat_acc_128B,            // llvm.hexagon.V6.vdmpyhvsat.acc.128B
-+    hexagon_V6_vdsaduh,                        // llvm.hexagon.V6.vdsaduh
-+    hexagon_V6_vdsaduh_128B,                   // llvm.hexagon.V6.vdsaduh.128B
-+    hexagon_V6_vdsaduh_acc,                    // llvm.hexagon.V6.vdsaduh.acc
-+    hexagon_V6_vdsaduh_acc_128B,               // llvm.hexagon.V6.vdsaduh.acc.128B
-+    hexagon_V6_veqb,                           // llvm.hexagon.V6.veqb
-+    hexagon_V6_veqb_128B,                      // llvm.hexagon.V6.veqb.128B
-+    hexagon_V6_veqb_and,                       // llvm.hexagon.V6.veqb.and
-+    hexagon_V6_veqb_and_128B,                  // llvm.hexagon.V6.veqb.and.128B
-+    hexagon_V6_veqb_or,                        // llvm.hexagon.V6.veqb.or
-+    hexagon_V6_veqb_or_128B,                   // llvm.hexagon.V6.veqb.or.128B
-+    hexagon_V6_veqb_xor,                       // llvm.hexagon.V6.veqb.xor
-+    hexagon_V6_veqb_xor_128B,                  // llvm.hexagon.V6.veqb.xor.128B
-+    hexagon_V6_veqh,                           // llvm.hexagon.V6.veqh
-+    hexagon_V6_veqh_128B,                      // llvm.hexagon.V6.veqh.128B
-+    hexagon_V6_veqh_and,                       // llvm.hexagon.V6.veqh.and
-+    hexagon_V6_veqh_and_128B,                  // llvm.hexagon.V6.veqh.and.128B
-+    hexagon_V6_veqh_or,                        // llvm.hexagon.V6.veqh.or
-+    hexagon_V6_veqh_or_128B,                   // llvm.hexagon.V6.veqh.or.128B
-+    hexagon_V6_veqh_xor,                       // llvm.hexagon.V6.veqh.xor
-+    hexagon_V6_veqh_xor_128B,                  // llvm.hexagon.V6.veqh.xor.128B
-+    hexagon_V6_veqw,                           // llvm.hexagon.V6.veqw
-+    hexagon_V6_veqw_128B,                      // llvm.hexagon.V6.veqw.128B
-+    hexagon_V6_veqw_and,                       // llvm.hexagon.V6.veqw.and
-+    hexagon_V6_veqw_and_128B,                  // llvm.hexagon.V6.veqw.and.128B
-+    hexagon_V6_veqw_or,                        // llvm.hexagon.V6.veqw.or
-+    hexagon_V6_veqw_or_128B,                   // llvm.hexagon.V6.veqw.or.128B
-+    hexagon_V6_veqw_xor,                       // llvm.hexagon.V6.veqw.xor
-+    hexagon_V6_veqw_xor_128B,                  // llvm.hexagon.V6.veqw.xor.128B
-+    hexagon_V6_vgtb,                           // llvm.hexagon.V6.vgtb
-+    hexagon_V6_vgtb_128B,                      // llvm.hexagon.V6.vgtb.128B
-+    hexagon_V6_vgtb_and,                       // llvm.hexagon.V6.vgtb.and
-+    hexagon_V6_vgtb_and_128B,                  // llvm.hexagon.V6.vgtb.and.128B
-+    hexagon_V6_vgtb_or,                        // llvm.hexagon.V6.vgtb.or
-+    hexagon_V6_vgtb_or_128B,                   // llvm.hexagon.V6.vgtb.or.128B
-+    hexagon_V6_vgtb_xor,                       // llvm.hexagon.V6.vgtb.xor
-+    hexagon_V6_vgtb_xor_128B,                  // llvm.hexagon.V6.vgtb.xor.128B
-+    hexagon_V6_vgth,                           // llvm.hexagon.V6.vgth
-+    hexagon_V6_vgth_128B,                      // llvm.hexagon.V6.vgth.128B
-+    hexagon_V6_vgth_and,                       // llvm.hexagon.V6.vgth.and
-+    hexagon_V6_vgth_and_128B,                  // llvm.hexagon.V6.vgth.and.128B
-+    hexagon_V6_vgth_or,                        // llvm.hexagon.V6.vgth.or
-+    hexagon_V6_vgth_or_128B,                   // llvm.hexagon.V6.vgth.or.128B
-+    hexagon_V6_vgth_xor,                       // llvm.hexagon.V6.vgth.xor
-+    hexagon_V6_vgth_xor_128B,                  // llvm.hexagon.V6.vgth.xor.128B
-+    hexagon_V6_vgtub,                          // llvm.hexagon.V6.vgtub
-+    hexagon_V6_vgtub_128B,                     // llvm.hexagon.V6.vgtub.128B
-+    hexagon_V6_vgtub_and,                      // llvm.hexagon.V6.vgtub.and
-+    hexagon_V6_vgtub_and_128B,                 // llvm.hexagon.V6.vgtub.and.128B
-+    hexagon_V6_vgtub_or,                       // llvm.hexagon.V6.vgtub.or
-+    hexagon_V6_vgtub_or_128B,                  // llvm.hexagon.V6.vgtub.or.128B
-+    hexagon_V6_vgtub_xor,                      // llvm.hexagon.V6.vgtub.xor
-+    hexagon_V6_vgtub_xor_128B,                 // llvm.hexagon.V6.vgtub.xor.128B
-+    hexagon_V6_vgtuh,                          // llvm.hexagon.V6.vgtuh
-+    hexagon_V6_vgtuh_128B,                     // llvm.hexagon.V6.vgtuh.128B
-+    hexagon_V6_vgtuh_and,                      // llvm.hexagon.V6.vgtuh.and
-+    hexagon_V6_vgtuh_and_128B,                 // llvm.hexagon.V6.vgtuh.and.128B
-+    hexagon_V6_vgtuh_or,                       // llvm.hexagon.V6.vgtuh.or
-+    hexagon_V6_vgtuh_or_128B,                  // llvm.hexagon.V6.vgtuh.or.128B
-+    hexagon_V6_vgtuh_xor,                      // llvm.hexagon.V6.vgtuh.xor
-+    hexagon_V6_vgtuh_xor_128B,                 // llvm.hexagon.V6.vgtuh.xor.128B
-+    hexagon_V6_vgtuw,                          // llvm.hexagon.V6.vgtuw
-+    hexagon_V6_vgtuw_128B,                     // llvm.hexagon.V6.vgtuw.128B
-+    hexagon_V6_vgtuw_and,                      // llvm.hexagon.V6.vgtuw.and
-+    hexagon_V6_vgtuw_and_128B,                 // llvm.hexagon.V6.vgtuw.and.128B
-+    hexagon_V6_vgtuw_or,                       // llvm.hexagon.V6.vgtuw.or
-+    hexagon_V6_vgtuw_or_128B,                  // llvm.hexagon.V6.vgtuw.or.128B
-+    hexagon_V6_vgtuw_xor,                      // llvm.hexagon.V6.vgtuw.xor
-+    hexagon_V6_vgtuw_xor_128B,                 // llvm.hexagon.V6.vgtuw.xor.128B
-+    hexagon_V6_vgtw,                           // llvm.hexagon.V6.vgtw
-+    hexagon_V6_vgtw_128B,                      // llvm.hexagon.V6.vgtw.128B
-+    hexagon_V6_vgtw_and,                       // llvm.hexagon.V6.vgtw.and
-+    hexagon_V6_vgtw_and_128B,                  // llvm.hexagon.V6.vgtw.and.128B
-+    hexagon_V6_vgtw_or,                        // llvm.hexagon.V6.vgtw.or
-+    hexagon_V6_vgtw_or_128B,                   // llvm.hexagon.V6.vgtw.or.128B
-+    hexagon_V6_vgtw_xor,                       // llvm.hexagon.V6.vgtw.xor
-+    hexagon_V6_vgtw_xor_128B,                  // llvm.hexagon.V6.vgtw.xor.128B
-+    hexagon_V6_vinsertwr,                      // llvm.hexagon.V6.vinsertwr
-+    hexagon_V6_vinsertwr_128B,                 // llvm.hexagon.V6.vinsertwr.128B
-+    hexagon_V6_vlalignb,                       // llvm.hexagon.V6.vlalignb
-+    hexagon_V6_vlalignb_128B,                  // llvm.hexagon.V6.vlalignb.128B
-+    hexagon_V6_vlalignbi,                      // llvm.hexagon.V6.vlalignbi
-+    hexagon_V6_vlalignbi_128B,                 // llvm.hexagon.V6.vlalignbi.128B
-+    hexagon_V6_vlsrh,                          // llvm.hexagon.V6.vlsrh
-+    hexagon_V6_vlsrh_128B,                     // llvm.hexagon.V6.vlsrh.128B
-+    hexagon_V6_vlsrhv,                         // llvm.hexagon.V6.vlsrhv
-+    hexagon_V6_vlsrhv_128B,                    // llvm.hexagon.V6.vlsrhv.128B
-+    hexagon_V6_vlsrw,                          // llvm.hexagon.V6.vlsrw
-+    hexagon_V6_vlsrw_128B,                     // llvm.hexagon.V6.vlsrw.128B
-+    hexagon_V6_vlsrwv,                         // llvm.hexagon.V6.vlsrwv
-+    hexagon_V6_vlsrwv_128B,                    // llvm.hexagon.V6.vlsrwv.128B
-+    hexagon_V6_vlutb,                          // llvm.hexagon.V6.vlutb
-+    hexagon_V6_vlutb_128B,                     // llvm.hexagon.V6.vlutb.128B
-+    hexagon_V6_vlutb_acc,                      // llvm.hexagon.V6.vlutb.acc
-+    hexagon_V6_vlutb_acc_128B,                 // llvm.hexagon.V6.vlutb.acc.128B
-+    hexagon_V6_vlutb_dv,                       // llvm.hexagon.V6.vlutb.dv
-+    hexagon_V6_vlutb_dv_128B,                  // llvm.hexagon.V6.vlutb.dv.128B
-+    hexagon_V6_vlutb_dv_acc,                   // llvm.hexagon.V6.vlutb.dv.acc
-+    hexagon_V6_vlutb_dv_acc_128B,              // llvm.hexagon.V6.vlutb.dv.acc.128B
-+    hexagon_V6_vlutvvb,                        // llvm.hexagon.V6.vlutvvb
-+    hexagon_V6_vlutvvb_128B,                   // llvm.hexagon.V6.vlutvvb.128B
-+    hexagon_V6_vlutvvb_oracc,                  // llvm.hexagon.V6.vlutvvb.oracc
-+    hexagon_V6_vlutvvb_oracc_128B,             // llvm.hexagon.V6.vlutvvb.oracc.128B
-+    hexagon_V6_vlutvwh,                        // llvm.hexagon.V6.vlutvwh
-+    hexagon_V6_vlutvwh_128B,                   // llvm.hexagon.V6.vlutvwh.128B
-+    hexagon_V6_vlutvwh_oracc,                  // llvm.hexagon.V6.vlutvwh.oracc
-+    hexagon_V6_vlutvwh_oracc_128B,             // llvm.hexagon.V6.vlutvwh.oracc.128B
-+    hexagon_V6_vmaxh,                          // llvm.hexagon.V6.vmaxh
-+    hexagon_V6_vmaxh_128B,                     // llvm.hexagon.V6.vmaxh.128B
-+    hexagon_V6_vmaxub,                         // llvm.hexagon.V6.vmaxub
-+    hexagon_V6_vmaxub_128B,                    // llvm.hexagon.V6.vmaxub.128B
-+    hexagon_V6_vmaxuh,                         // llvm.hexagon.V6.vmaxuh
-+    hexagon_V6_vmaxuh_128B,                    // llvm.hexagon.V6.vmaxuh.128B
-+    hexagon_V6_vmaxw,                          // llvm.hexagon.V6.vmaxw
-+    hexagon_V6_vmaxw_128B,                     // llvm.hexagon.V6.vmaxw.128B
-+    hexagon_V6_vminh,                          // llvm.hexagon.V6.vminh
-+    hexagon_V6_vminh_128B,                     // llvm.hexagon.V6.vminh.128B
-+    hexagon_V6_vminub,                         // llvm.hexagon.V6.vminub
-+    hexagon_V6_vminub_128B,                    // llvm.hexagon.V6.vminub.128B
-+    hexagon_V6_vminuh,                         // llvm.hexagon.V6.vminuh
-+    hexagon_V6_vminuh_128B,                    // llvm.hexagon.V6.vminuh.128B
-+    hexagon_V6_vminw,                          // llvm.hexagon.V6.vminw
-+    hexagon_V6_vminw_128B,                     // llvm.hexagon.V6.vminw.128B
-+    hexagon_V6_vmpabus,                        // llvm.hexagon.V6.vmpabus
-+    hexagon_V6_vmpabus_128B,                   // llvm.hexagon.V6.vmpabus.128B
-+    hexagon_V6_vmpabus_acc,                    // llvm.hexagon.V6.vmpabus.acc
-+    hexagon_V6_vmpabus_acc_128B,               // llvm.hexagon.V6.vmpabus.acc.128B
-+    hexagon_V6_vmpabusv,                       // llvm.hexagon.V6.vmpabusv
-+    hexagon_V6_vmpabusv_128B,                  // llvm.hexagon.V6.vmpabusv.128B
-+    hexagon_V6_vmpabuuv,                       // llvm.hexagon.V6.vmpabuuv
-+    hexagon_V6_vmpabuuv_128B,                  // llvm.hexagon.V6.vmpabuuv.128B
-+    hexagon_V6_vmpahb,                         // llvm.hexagon.V6.vmpahb
-+    hexagon_V6_vmpahb_128B,                    // llvm.hexagon.V6.vmpahb.128B
-+    hexagon_V6_vmpahb_acc,                     // llvm.hexagon.V6.vmpahb.acc
-+    hexagon_V6_vmpahb_acc_128B,                // llvm.hexagon.V6.vmpahb.acc.128B
-+    hexagon_V6_vmpybus,                        // llvm.hexagon.V6.vmpybus
-+    hexagon_V6_vmpybus_128B,                   // llvm.hexagon.V6.vmpybus.128B
-+    hexagon_V6_vmpybus_acc,                    // llvm.hexagon.V6.vmpybus.acc
-+    hexagon_V6_vmpybus_acc_128B,               // llvm.hexagon.V6.vmpybus.acc.128B
-+    hexagon_V6_vmpybusv,                       // llvm.hexagon.V6.vmpybusv
-+    hexagon_V6_vmpybusv_128B,                  // llvm.hexagon.V6.vmpybusv.128B
-+    hexagon_V6_vmpybusv_acc,                   // llvm.hexagon.V6.vmpybusv.acc
-+    hexagon_V6_vmpybusv_acc_128B,              // llvm.hexagon.V6.vmpybusv.acc.128B
-+    hexagon_V6_vmpybv,                         // llvm.hexagon.V6.vmpybv
-+    hexagon_V6_vmpybv_128B,                    // llvm.hexagon.V6.vmpybv.128B
-+    hexagon_V6_vmpybv_acc,                     // llvm.hexagon.V6.vmpybv.acc
-+    hexagon_V6_vmpybv_acc_128B,                // llvm.hexagon.V6.vmpybv.acc.128B
-+    hexagon_V6_vmpyewuh,                       // llvm.hexagon.V6.vmpyewuh
-+    hexagon_V6_vmpyewuh_128B,                  // llvm.hexagon.V6.vmpyewuh.128B
-+    hexagon_V6_vmpyh,                          // llvm.hexagon.V6.vmpyh
-+    hexagon_V6_vmpyh_128B,                     // llvm.hexagon.V6.vmpyh.128B
-+    hexagon_V6_vmpyhsat_acc,                   // llvm.hexagon.V6.vmpyhsat.acc
-+    hexagon_V6_vmpyhsat_acc_128B,              // llvm.hexagon.V6.vmpyhsat.acc.128B
-+    hexagon_V6_vmpyhsrs,                       // llvm.hexagon.V6.vmpyhsrs
-+    hexagon_V6_vmpyhsrs_128B,                  // llvm.hexagon.V6.vmpyhsrs.128B
-+    hexagon_V6_vmpyhss,                        // llvm.hexagon.V6.vmpyhss
-+    hexagon_V6_vmpyhss_128B,                   // llvm.hexagon.V6.vmpyhss.128B
-+    hexagon_V6_vmpyhus,                        // llvm.hexagon.V6.vmpyhus
-+    hexagon_V6_vmpyhus_128B,                   // llvm.hexagon.V6.vmpyhus.128B
-+    hexagon_V6_vmpyhus_acc,                    // llvm.hexagon.V6.vmpyhus.acc
-+    hexagon_V6_vmpyhus_acc_128B,               // llvm.hexagon.V6.vmpyhus.acc.128B
-+    hexagon_V6_vmpyhv,                         // llvm.hexagon.V6.vmpyhv
-+    hexagon_V6_vmpyhv_128B,                    // llvm.hexagon.V6.vmpyhv.128B
-+    hexagon_V6_vmpyhv_acc,                     // llvm.hexagon.V6.vmpyhv.acc
-+    hexagon_V6_vmpyhv_acc_128B,                // llvm.hexagon.V6.vmpyhv.acc.128B
-+    hexagon_V6_vmpyhvsrs,                      // llvm.hexagon.V6.vmpyhvsrs
-+    hexagon_V6_vmpyhvsrs_128B,                 // llvm.hexagon.V6.vmpyhvsrs.128B
-+    hexagon_V6_vmpyieoh,                       // llvm.hexagon.V6.vmpyieoh
-+    hexagon_V6_vmpyieoh_128B,                  // llvm.hexagon.V6.vmpyieoh.128B
-+    hexagon_V6_vmpyiewh_acc,                   // llvm.hexagon.V6.vmpyiewh.acc
-+    hexagon_V6_vmpyiewh_acc_128B,              // llvm.hexagon.V6.vmpyiewh.acc.128B
-+    hexagon_V6_vmpyiewuh,                      // llvm.hexagon.V6.vmpyiewuh
-+    hexagon_V6_vmpyiewuh_128B,                 // llvm.hexagon.V6.vmpyiewuh.128B
-+    hexagon_V6_vmpyiewuh_acc,                  // llvm.hexagon.V6.vmpyiewuh.acc
-+    hexagon_V6_vmpyiewuh_acc_128B,             // llvm.hexagon.V6.vmpyiewuh.acc.128B
-+    hexagon_V6_vmpyih,                         // llvm.hexagon.V6.vmpyih
-+    hexagon_V6_vmpyih_128B,                    // llvm.hexagon.V6.vmpyih.128B
-+    hexagon_V6_vmpyih_acc,                     // llvm.hexagon.V6.vmpyih.acc
-+    hexagon_V6_vmpyih_acc_128B,                // llvm.hexagon.V6.vmpyih.acc.128B
-+    hexagon_V6_vmpyihb,                        // llvm.hexagon.V6.vmpyihb
-+    hexagon_V6_vmpyihb_128B,                   // llvm.hexagon.V6.vmpyihb.128B
-+    hexagon_V6_vmpyihb_acc,                    // llvm.hexagon.V6.vmpyihb.acc
-+    hexagon_V6_vmpyihb_acc_128B,               // llvm.hexagon.V6.vmpyihb.acc.128B
-+    hexagon_V6_vmpyiowh,                       // llvm.hexagon.V6.vmpyiowh
-+    hexagon_V6_vmpyiowh_128B,                  // llvm.hexagon.V6.vmpyiowh.128B
-+    hexagon_V6_vmpyiwb,                        // llvm.hexagon.V6.vmpyiwb
-+    hexagon_V6_vmpyiwb_128B,                   // llvm.hexagon.V6.vmpyiwb.128B
-+    hexagon_V6_vmpyiwb_acc,                    // llvm.hexagon.V6.vmpyiwb.acc
-+    hexagon_V6_vmpyiwb_acc_128B,               // llvm.hexagon.V6.vmpyiwb.acc.128B
-+    hexagon_V6_vmpyiwh,                        // llvm.hexagon.V6.vmpyiwh
-+    hexagon_V6_vmpyiwh_128B,                   // llvm.hexagon.V6.vmpyiwh.128B
-+    hexagon_V6_vmpyiwh_acc,                    // llvm.hexagon.V6.vmpyiwh.acc
-+    hexagon_V6_vmpyiwh_acc_128B,               // llvm.hexagon.V6.vmpyiwh.acc.128B
-+    hexagon_V6_vmpyowh,                        // llvm.hexagon.V6.vmpyowh
-+    hexagon_V6_vmpyowh_128B,                   // llvm.hexagon.V6.vmpyowh.128B
-+    hexagon_V6_vmpyowh_rnd,                    // llvm.hexagon.V6.vmpyowh.rnd
-+    hexagon_V6_vmpyowh_rnd_128B,               // llvm.hexagon.V6.vmpyowh.rnd.128B
-+    hexagon_V6_vmpyowh_rnd_sacc,               // llvm.hexagon.V6.vmpyowh.rnd.sacc
-+    hexagon_V6_vmpyowh_rnd_sacc_128B,          // llvm.hexagon.V6.vmpyowh.rnd.sacc.128B
-+    hexagon_V6_vmpyowh_sacc,                   // llvm.hexagon.V6.vmpyowh.sacc
-+    hexagon_V6_vmpyowh_sacc_128B,              // llvm.hexagon.V6.vmpyowh.sacc.128B
-+    hexagon_V6_vmpyub,                         // llvm.hexagon.V6.vmpyub
-+    hexagon_V6_vmpyub_128B,                    // llvm.hexagon.V6.vmpyub.128B
-+    hexagon_V6_vmpyub_acc,                     // llvm.hexagon.V6.vmpyub.acc
-+    hexagon_V6_vmpyub_acc_128B,                // llvm.hexagon.V6.vmpyub.acc.128B
-+    hexagon_V6_vmpyubv,                        // llvm.hexagon.V6.vmpyubv
-+    hexagon_V6_vmpyubv_128B,                   // llvm.hexagon.V6.vmpyubv.128B
-+    hexagon_V6_vmpyubv_acc,                    // llvm.hexagon.V6.vmpyubv.acc
-+    hexagon_V6_vmpyubv_acc_128B,               // llvm.hexagon.V6.vmpyubv.acc.128B
-+    hexagon_V6_vmpyuh,                         // llvm.hexagon.V6.vmpyuh
-+    hexagon_V6_vmpyuh_128B,                    // llvm.hexagon.V6.vmpyuh.128B
-+    hexagon_V6_vmpyuh_acc,                     // llvm.hexagon.V6.vmpyuh.acc
-+    hexagon_V6_vmpyuh_acc_128B,                // llvm.hexagon.V6.vmpyuh.acc.128B
-+    hexagon_V6_vmpyuhv,                        // llvm.hexagon.V6.vmpyuhv
-+    hexagon_V6_vmpyuhv_128B,                   // llvm.hexagon.V6.vmpyuhv.128B
-+    hexagon_V6_vmpyuhv_acc,                    // llvm.hexagon.V6.vmpyuhv.acc
-+    hexagon_V6_vmpyuhv_acc_128B,               // llvm.hexagon.V6.vmpyuhv.acc.128B
-+    hexagon_V6_vmux,                           // llvm.hexagon.V6.vmux
-+    hexagon_V6_vmux_128B,                      // llvm.hexagon.V6.vmux.128B
-+    hexagon_V6_vnavgh,                         // llvm.hexagon.V6.vnavgh
-+    hexagon_V6_vnavgh_128B,                    // llvm.hexagon.V6.vnavgh.128B
-+    hexagon_V6_vnavgub,                        // llvm.hexagon.V6.vnavgub
-+    hexagon_V6_vnavgub_128B,                   // llvm.hexagon.V6.vnavgub.128B
-+    hexagon_V6_vnavgw,                         // llvm.hexagon.V6.vnavgw
-+    hexagon_V6_vnavgw_128B,                    // llvm.hexagon.V6.vnavgw.128B
-+    hexagon_V6_vnormamth,                      // llvm.hexagon.V6.vnormamth
-+    hexagon_V6_vnormamth_128B,                 // llvm.hexagon.V6.vnormamth.128B
-+    hexagon_V6_vnormamtw,                      // llvm.hexagon.V6.vnormamtw
-+    hexagon_V6_vnormamtw_128B,                 // llvm.hexagon.V6.vnormamtw.128B
-+    hexagon_V6_vnot,                           // llvm.hexagon.V6.vnot
-+    hexagon_V6_vnot_128B,                      // llvm.hexagon.V6.vnot.128B
-+    hexagon_V6_vor,                            // llvm.hexagon.V6.vor
-+    hexagon_V6_vor_128B,                       // llvm.hexagon.V6.vor.128B
-+    hexagon_V6_vpackeb,                        // llvm.hexagon.V6.vpackeb
-+    hexagon_V6_vpackeb_128B,                   // llvm.hexagon.V6.vpackeb.128B
-+    hexagon_V6_vpackeh,                        // llvm.hexagon.V6.vpackeh
-+    hexagon_V6_vpackeh_128B,                   // llvm.hexagon.V6.vpackeh.128B
-+    hexagon_V6_vpackhb_sat,                    // llvm.hexagon.V6.vpackhb.sat
-+    hexagon_V6_vpackhb_sat_128B,               // llvm.hexagon.V6.vpackhb.sat.128B
-+    hexagon_V6_vpackhub_sat,                   // llvm.hexagon.V6.vpackhub.sat
-+    hexagon_V6_vpackhub_sat_128B,              // llvm.hexagon.V6.vpackhub.sat.128B
-+    hexagon_V6_vpackob,                        // llvm.hexagon.V6.vpackob
-+    hexagon_V6_vpackob_128B,                   // llvm.hexagon.V6.vpackob.128B
-+    hexagon_V6_vpackoh,                        // llvm.hexagon.V6.vpackoh
-+    hexagon_V6_vpackoh_128B,                   // llvm.hexagon.V6.vpackoh.128B
-+    hexagon_V6_vpackwh_sat,                    // llvm.hexagon.V6.vpackwh.sat
-+    hexagon_V6_vpackwh_sat_128B,               // llvm.hexagon.V6.vpackwh.sat.128B
-+    hexagon_V6_vpackwuh_sat,                   // llvm.hexagon.V6.vpackwuh.sat
-+    hexagon_V6_vpackwuh_sat_128B,              // llvm.hexagon.V6.vpackwuh.sat.128B
-+    hexagon_V6_vpopcounth,                     // llvm.hexagon.V6.vpopcounth
-+    hexagon_V6_vpopcounth_128B,                // llvm.hexagon.V6.vpopcounth.128B
-+    hexagon_V6_vrdelta,                        // llvm.hexagon.V6.vrdelta
-+    hexagon_V6_vrdelta_128B,                   // llvm.hexagon.V6.vrdelta.128B
-+    hexagon_V6_vrmpybus,                       // llvm.hexagon.V6.vrmpybus
-+    hexagon_V6_vrmpybus_128B,                  // llvm.hexagon.V6.vrmpybus.128B
-+    hexagon_V6_vrmpybus_acc,                   // llvm.hexagon.V6.vrmpybus.acc
-+    hexagon_V6_vrmpybus_acc_128B,              // llvm.hexagon.V6.vrmpybus.acc.128B
-+    hexagon_V6_vrmpybusi,                      // llvm.hexagon.V6.vrmpybusi
-+    hexagon_V6_vrmpybusi_128B,                 // llvm.hexagon.V6.vrmpybusi.128B
-+    hexagon_V6_vrmpybusi_acc,                  // llvm.hexagon.V6.vrmpybusi.acc
-+    hexagon_V6_vrmpybusi_acc_128B,             // llvm.hexagon.V6.vrmpybusi.acc.128B
-+    hexagon_V6_vrmpybusv,                      // llvm.hexagon.V6.vrmpybusv
-+    hexagon_V6_vrmpybusv_128B,                 // llvm.hexagon.V6.vrmpybusv.128B
-+    hexagon_V6_vrmpybusv_acc,                  // llvm.hexagon.V6.vrmpybusv.acc
-+    hexagon_V6_vrmpybusv_acc_128B,             // llvm.hexagon.V6.vrmpybusv.acc.128B
-+    hexagon_V6_vrmpybv,                        // llvm.hexagon.V6.vrmpybv
-+    hexagon_V6_vrmpybv_128B,                   // llvm.hexagon.V6.vrmpybv.128B
-+    hexagon_V6_vrmpybv_acc,                    // llvm.hexagon.V6.vrmpybv.acc
-+    hexagon_V6_vrmpybv_acc_128B,               // llvm.hexagon.V6.vrmpybv.acc.128B
-+    hexagon_V6_vrmpyub,                        // llvm.hexagon.V6.vrmpyub
-+    hexagon_V6_vrmpyub_128B,                   // llvm.hexagon.V6.vrmpyub.128B
-+    hexagon_V6_vrmpyub_acc,                    // llvm.hexagon.V6.vrmpyub.acc
-+    hexagon_V6_vrmpyub_acc_128B,               // llvm.hexagon.V6.vrmpyub.acc.128B
-+    hexagon_V6_vrmpyubi,                       // llvm.hexagon.V6.vrmpyubi
-+    hexagon_V6_vrmpyubi_128B,                  // llvm.hexagon.V6.vrmpyubi.128B
-+    hexagon_V6_vrmpyubi_acc,                   // llvm.hexagon.V6.vrmpyubi.acc
-+    hexagon_V6_vrmpyubi_acc_128B,              // llvm.hexagon.V6.vrmpyubi.acc.128B
-+    hexagon_V6_vrmpyubv,                       // llvm.hexagon.V6.vrmpyubv
-+    hexagon_V6_vrmpyubv_128B,                  // llvm.hexagon.V6.vrmpyubv.128B
-+    hexagon_V6_vrmpyubv_acc,                   // llvm.hexagon.V6.vrmpyubv.acc
-+    hexagon_V6_vrmpyubv_acc_128B,              // llvm.hexagon.V6.vrmpyubv.acc.128B
-+    hexagon_V6_vror,                           // llvm.hexagon.V6.vror
-+    hexagon_V6_vror_128B,                      // llvm.hexagon.V6.vror.128B
-+    hexagon_V6_vroundhb,                       // llvm.hexagon.V6.vroundhb
-+    hexagon_V6_vroundhb_128B,                  // llvm.hexagon.V6.vroundhb.128B
-+    hexagon_V6_vroundhub,                      // llvm.hexagon.V6.vroundhub
-+    hexagon_V6_vroundhub_128B,                 // llvm.hexagon.V6.vroundhub.128B
-+    hexagon_V6_vroundwh,                       // llvm.hexagon.V6.vroundwh
-+    hexagon_V6_vroundwh_128B,                  // llvm.hexagon.V6.vroundwh.128B
-+    hexagon_V6_vroundwuh,                      // llvm.hexagon.V6.vroundwuh
-+    hexagon_V6_vroundwuh_128B,                 // llvm.hexagon.V6.vroundwuh.128B
-+    hexagon_V6_vrsadubi,                       // llvm.hexagon.V6.vrsadubi
-+    hexagon_V6_vrsadubi_128B,                  // llvm.hexagon.V6.vrsadubi.128B
-+    hexagon_V6_vrsadubi_acc,                   // llvm.hexagon.V6.vrsadubi.acc
-+    hexagon_V6_vrsadubi_acc_128B,              // llvm.hexagon.V6.vrsadubi.acc.128B
-+    hexagon_V6_vsathub,                        // llvm.hexagon.V6.vsathub
-+    hexagon_V6_vsathub_128B,                   // llvm.hexagon.V6.vsathub.128B
-+    hexagon_V6_vsatwh,                         // llvm.hexagon.V6.vsatwh
-+    hexagon_V6_vsatwh_128B,                    // llvm.hexagon.V6.vsatwh.128B
-+    hexagon_V6_vsb,                            // llvm.hexagon.V6.vsb
-+    hexagon_V6_vsb_128B,                       // llvm.hexagon.V6.vsb.128B
-+    hexagon_V6_vsh,                            // llvm.hexagon.V6.vsh
-+    hexagon_V6_vsh_128B,                       // llvm.hexagon.V6.vsh.128B
-+    hexagon_V6_vshufeh,                        // llvm.hexagon.V6.vshufeh
-+    hexagon_V6_vshufeh_128B,                   // llvm.hexagon.V6.vshufeh.128B
-+    hexagon_V6_vshuffb,                        // llvm.hexagon.V6.vshuffb
-+    hexagon_V6_vshuffb_128B,                   // llvm.hexagon.V6.vshuffb.128B
-+    hexagon_V6_vshuffeb,                       // llvm.hexagon.V6.vshuffeb
-+    hexagon_V6_vshuffeb_128B,                  // llvm.hexagon.V6.vshuffeb.128B
-+    hexagon_V6_vshuffh,                        // llvm.hexagon.V6.vshuffh
-+    hexagon_V6_vshuffh_128B,                   // llvm.hexagon.V6.vshuffh.128B
-+    hexagon_V6_vshuffob,                       // llvm.hexagon.V6.vshuffob
-+    hexagon_V6_vshuffob_128B,                  // llvm.hexagon.V6.vshuffob.128B
-+    hexagon_V6_vshuffvdd,                      // llvm.hexagon.V6.vshuffvdd
-+    hexagon_V6_vshuffvdd_128B,                 // llvm.hexagon.V6.vshuffvdd.128B
-+    hexagon_V6_vshufoeb,                       // llvm.hexagon.V6.vshufoeb
-+    hexagon_V6_vshufoeb_128B,                  // llvm.hexagon.V6.vshufoeb.128B
-+    hexagon_V6_vshufoeh,                       // llvm.hexagon.V6.vshufoeh
-+    hexagon_V6_vshufoeh_128B,                  // llvm.hexagon.V6.vshufoeh.128B
-+    hexagon_V6_vshufoh,                        // llvm.hexagon.V6.vshufoh
-+    hexagon_V6_vshufoh_128B,                   // llvm.hexagon.V6.vshufoh.128B
-+    hexagon_V6_vsubb,                          // llvm.hexagon.V6.vsubb
-+    hexagon_V6_vsubb_128B,                     // llvm.hexagon.V6.vsubb.128B
-+    hexagon_V6_vsubb_dv,                       // llvm.hexagon.V6.vsubb.dv
-+    hexagon_V6_vsubb_dv_128B,                  // llvm.hexagon.V6.vsubb.dv.128B
-+    hexagon_V6_vsubbnq,                        // llvm.hexagon.V6.vsubbnq
-+    hexagon_V6_vsubbnq_128B,                   // llvm.hexagon.V6.vsubbnq.128B
-+    hexagon_V6_vsubbq,                         // llvm.hexagon.V6.vsubbq
-+    hexagon_V6_vsubbq_128B,                    // llvm.hexagon.V6.vsubbq.128B
-+    hexagon_V6_vsubh,                          // llvm.hexagon.V6.vsubh
-+    hexagon_V6_vsubh_128B,                     // llvm.hexagon.V6.vsubh.128B
-+    hexagon_V6_vsubh_dv,                       // llvm.hexagon.V6.vsubh.dv
-+    hexagon_V6_vsubh_dv_128B,                  // llvm.hexagon.V6.vsubh.dv.128B
-+    hexagon_V6_vsubhnq,                        // llvm.hexagon.V6.vsubhnq
-+    hexagon_V6_vsubhnq_128B,                   // llvm.hexagon.V6.vsubhnq.128B
-+    hexagon_V6_vsubhq,                         // llvm.hexagon.V6.vsubhq
-+    hexagon_V6_vsubhq_128B,                    // llvm.hexagon.V6.vsubhq.128B
-+    hexagon_V6_vsubhsat,                       // llvm.hexagon.V6.vsubhsat
-+    hexagon_V6_vsubhsat_128B,                  // llvm.hexagon.V6.vsubhsat.128B
-+    hexagon_V6_vsubhsat_dv,                    // llvm.hexagon.V6.vsubhsat.dv
-+    hexagon_V6_vsubhsat_dv_128B,               // llvm.hexagon.V6.vsubhsat.dv.128B
-+    hexagon_V6_vsubhw,                         // llvm.hexagon.V6.vsubhw
-+    hexagon_V6_vsubhw_128B,                    // llvm.hexagon.V6.vsubhw.128B
-+    hexagon_V6_vsububh,                        // llvm.hexagon.V6.vsububh
-+    hexagon_V6_vsububh_128B,                   // llvm.hexagon.V6.vsububh.128B
-+    hexagon_V6_vsububsat,                      // llvm.hexagon.V6.vsububsat
-+    hexagon_V6_vsububsat_128B,                 // llvm.hexagon.V6.vsububsat.128B
-+    hexagon_V6_vsububsat_dv,                   // llvm.hexagon.V6.vsububsat.dv
-+    hexagon_V6_vsububsat_dv_128B,              // llvm.hexagon.V6.vsububsat.dv.128B
-+    hexagon_V6_vsubuhsat,                      // llvm.hexagon.V6.vsubuhsat
-+    hexagon_V6_vsubuhsat_128B,                 // llvm.hexagon.V6.vsubuhsat.128B
-+    hexagon_V6_vsubuhsat_dv,                   // llvm.hexagon.V6.vsubuhsat.dv
-+    hexagon_V6_vsubuhsat_dv_128B,              // llvm.hexagon.V6.vsubuhsat.dv.128B
-+    hexagon_V6_vsubuhw,                        // llvm.hexagon.V6.vsubuhw
-+    hexagon_V6_vsubuhw_128B,                   // llvm.hexagon.V6.vsubuhw.128B
-+    hexagon_V6_vsubw,                          // llvm.hexagon.V6.vsubw
-+    hexagon_V6_vsubw_128B,                     // llvm.hexagon.V6.vsubw.128B
-+    hexagon_V6_vsubw_dv,                       // llvm.hexagon.V6.vsubw.dv
-+    hexagon_V6_vsubw_dv_128B,                  // llvm.hexagon.V6.vsubw.dv.128B
-+    hexagon_V6_vsubwnq,                        // llvm.hexagon.V6.vsubwnq
-+    hexagon_V6_vsubwnq_128B,                   // llvm.hexagon.V6.vsubwnq.128B
-+    hexagon_V6_vsubwq,                         // llvm.hexagon.V6.vsubwq
-+    hexagon_V6_vsubwq_128B,                    // llvm.hexagon.V6.vsubwq.128B
-+    hexagon_V6_vsubwsat,                       // llvm.hexagon.V6.vsubwsat
-+    hexagon_V6_vsubwsat_128B,                  // llvm.hexagon.V6.vsubwsat.128B
-+    hexagon_V6_vsubwsat_dv,                    // llvm.hexagon.V6.vsubwsat.dv
-+    hexagon_V6_vsubwsat_dv_128B,               // llvm.hexagon.V6.vsubwsat.dv.128B
-+    hexagon_V6_vswap,                          // llvm.hexagon.V6.vswap
-+    hexagon_V6_vswap_128B,                     // llvm.hexagon.V6.vswap.128B
-+    hexagon_V6_vtmpyb,                         // llvm.hexagon.V6.vtmpyb
-+    hexagon_V6_vtmpyb_128B,                    // llvm.hexagon.V6.vtmpyb.128B
-+    hexagon_V6_vtmpyb_acc,                     // llvm.hexagon.V6.vtmpyb.acc
-+    hexagon_V6_vtmpyb_acc_128B,                // llvm.hexagon.V6.vtmpyb.acc.128B
-+    hexagon_V6_vtmpybus,                       // llvm.hexagon.V6.vtmpybus
-+    hexagon_V6_vtmpybus_128B,                  // llvm.hexagon.V6.vtmpybus.128B
-+    hexagon_V6_vtmpybus_acc,                   // llvm.hexagon.V6.vtmpybus.acc
-+    hexagon_V6_vtmpybus_acc_128B,              // llvm.hexagon.V6.vtmpybus.acc.128B
-+    hexagon_V6_vtmpyhb,                        // llvm.hexagon.V6.vtmpyhb
-+    hexagon_V6_vtmpyhb_128B,                   // llvm.hexagon.V6.vtmpyhb.128B
-+    hexagon_V6_vtmpyhb_acc,                    // llvm.hexagon.V6.vtmpyhb.acc
-+    hexagon_V6_vtmpyhb_acc_128B,               // llvm.hexagon.V6.vtmpyhb.acc.128B
-+    hexagon_V6_vunpackb,                       // llvm.hexagon.V6.vunpackb
-+    hexagon_V6_vunpackb_128B,                  // llvm.hexagon.V6.vunpackb.128B
-+    hexagon_V6_vunpackh,                       // llvm.hexagon.V6.vunpackh
-+    hexagon_V6_vunpackh_128B,                  // llvm.hexagon.V6.vunpackh.128B
-+    hexagon_V6_vunpackob,                      // llvm.hexagon.V6.vunpackob
-+    hexagon_V6_vunpackob_128B,                 // llvm.hexagon.V6.vunpackob.128B
-+    hexagon_V6_vunpackoh,                      // llvm.hexagon.V6.vunpackoh
-+    hexagon_V6_vunpackoh_128B,                 // llvm.hexagon.V6.vunpackoh.128B
-+    hexagon_V6_vunpackub,                      // llvm.hexagon.V6.vunpackub
-+    hexagon_V6_vunpackub_128B,                 // llvm.hexagon.V6.vunpackub.128B
-+    hexagon_V6_vunpackuh,                      // llvm.hexagon.V6.vunpackuh
-+    hexagon_V6_vunpackuh_128B,                 // llvm.hexagon.V6.vunpackuh.128B
-+    hexagon_V6_vxor,                           // llvm.hexagon.V6.vxor
-+    hexagon_V6_vxor_128B,                      // llvm.hexagon.V6.vxor.128B
-+    hexagon_V6_vzb,                            // llvm.hexagon.V6.vzb
-+    hexagon_V6_vzb_128B,                       // llvm.hexagon.V6.vzb.128B
-+    hexagon_V6_vzh,                            // llvm.hexagon.V6.vzh
-+    hexagon_V6_vzh_128B,                       // llvm.hexagon.V6.vzh.128B
-+    hexagon_brev_ldb,                          // llvm.hexagon.brev.ldb
-+    hexagon_brev_ldd,                          // llvm.hexagon.brev.ldd
-+    hexagon_brev_ldh,                          // llvm.hexagon.brev.ldh
-+    hexagon_brev_ldub,                         // llvm.hexagon.brev.ldub
-+    hexagon_brev_lduh,                         // llvm.hexagon.brev.lduh
-+    hexagon_brev_ldw,                          // llvm.hexagon.brev.ldw
-+    hexagon_brev_stb,                          // llvm.hexagon.brev.stb
-+    hexagon_brev_std,                          // llvm.hexagon.brev.std
-+    hexagon_brev_sth,                          // llvm.hexagon.brev.sth
-+    hexagon_brev_sthhi,                        // llvm.hexagon.brev.sthhi
-+    hexagon_brev_stw,                          // llvm.hexagon.brev.stw
-+    hexagon_circ_ldb,                          // llvm.hexagon.circ.ldb
-+    hexagon_circ_ldd,                          // llvm.hexagon.circ.ldd
-+    hexagon_circ_ldh,                          // llvm.hexagon.circ.ldh
-+    hexagon_circ_ldub,                         // llvm.hexagon.circ.ldub
-+    hexagon_circ_lduh,                         // llvm.hexagon.circ.lduh
-+    hexagon_circ_ldw,                          // llvm.hexagon.circ.ldw
-+    hexagon_circ_stb,                          // llvm.hexagon.circ.stb
-+    hexagon_circ_std,                          // llvm.hexagon.circ.std
-+    hexagon_circ_sth,                          // llvm.hexagon.circ.sth
-+    hexagon_circ_sthhi,                        // llvm.hexagon.circ.sthhi
-+    hexagon_circ_stw,                          // llvm.hexagon.circ.stw
-+    hexagon_mm256i_vaddw,                      // llvm.hexagon.mm256i.vaddw
-+    hexagon_prefetch,                          // llvm.hexagon.prefetch
-+    mips_absq_s_ph,                            // llvm.mips.absq.s.ph
-+    mips_absq_s_qb,                            // llvm.mips.absq.s.qb
-+    mips_absq_s_w,                             // llvm.mips.absq.s.w
-+    mips_add_a_b,                              // llvm.mips.add.a.b
-+    mips_add_a_d,                              // llvm.mips.add.a.d
-+    mips_add_a_h,                              // llvm.mips.add.a.h
-+    mips_add_a_w,                              // llvm.mips.add.a.w
-+    mips_addq_ph,                              // llvm.mips.addq.ph
-+    mips_addq_s_ph,                            // llvm.mips.addq.s.ph
-+    mips_addq_s_w,                             // llvm.mips.addq.s.w
-+    mips_addqh_ph,                             // llvm.mips.addqh.ph
-+    mips_addqh_r_ph,                           // llvm.mips.addqh.r.ph
-+    mips_addqh_r_w,                            // llvm.mips.addqh.r.w
-+    mips_addqh_w,                              // llvm.mips.addqh.w
-+    mips_adds_a_b,                             // llvm.mips.adds.a.b
-+    mips_adds_a_d,                             // llvm.mips.adds.a.d
-+    mips_adds_a_h,                             // llvm.mips.adds.a.h
-+    mips_adds_a_w,                             // llvm.mips.adds.a.w
-+    mips_adds_s_b,                             // llvm.mips.adds.s.b
-+    mips_adds_s_d,                             // llvm.mips.adds.s.d
-+    mips_adds_s_h,                             // llvm.mips.adds.s.h
-+    mips_adds_s_w,                             // llvm.mips.adds.s.w
-+    mips_adds_u_b,                             // llvm.mips.adds.u.b
-+    mips_adds_u_d,                             // llvm.mips.adds.u.d
-+    mips_adds_u_h,                             // llvm.mips.adds.u.h
-+    mips_adds_u_w,                             // llvm.mips.adds.u.w
-+    mips_addsc,                                // llvm.mips.addsc
-+    mips_addu_ph,                              // llvm.mips.addu.ph
-+    mips_addu_qb,                              // llvm.mips.addu.qb
-+    mips_addu_s_ph,                            // llvm.mips.addu.s.ph
-+    mips_addu_s_qb,                            // llvm.mips.addu.s.qb
-+    mips_adduh_qb,                             // llvm.mips.adduh.qb
-+    mips_adduh_r_qb,                           // llvm.mips.adduh.r.qb
-+    mips_addv_b,                               // llvm.mips.addv.b
-+    mips_addv_d,                               // llvm.mips.addv.d
-+    mips_addv_h,                               // llvm.mips.addv.h
-+    mips_addv_w,                               // llvm.mips.addv.w
-+    mips_addvi_b,                              // llvm.mips.addvi.b
-+    mips_addvi_d,                              // llvm.mips.addvi.d
-+    mips_addvi_h,                              // llvm.mips.addvi.h
-+    mips_addvi_w,                              // llvm.mips.addvi.w
-+    mips_addwc,                                // llvm.mips.addwc
-+    mips_and_v,                                // llvm.mips.and.v
-+    mips_andi_b,                               // llvm.mips.andi.b
-+    mips_append,                               // llvm.mips.append
-+    mips_asub_s_b,                             // llvm.mips.asub.s.b
-+    mips_asub_s_d,                             // llvm.mips.asub.s.d
-+    mips_asub_s_h,                             // llvm.mips.asub.s.h
-+    mips_asub_s_w,                             // llvm.mips.asub.s.w
-+    mips_asub_u_b,                             // llvm.mips.asub.u.b
-+    mips_asub_u_d,                             // llvm.mips.asub.u.d
-+    mips_asub_u_h,                             // llvm.mips.asub.u.h
-+    mips_asub_u_w,                             // llvm.mips.asub.u.w
-+    mips_ave_s_b,                              // llvm.mips.ave.s.b
-+    mips_ave_s_d,                              // llvm.mips.ave.s.d
-+    mips_ave_s_h,                              // llvm.mips.ave.s.h
-+    mips_ave_s_w,                              // llvm.mips.ave.s.w
-+    mips_ave_u_b,                              // llvm.mips.ave.u.b
-+    mips_ave_u_d,                              // llvm.mips.ave.u.d
-+    mips_ave_u_h,                              // llvm.mips.ave.u.h
-+    mips_ave_u_w,                              // llvm.mips.ave.u.w
-+    mips_aver_s_b,                             // llvm.mips.aver.s.b
-+    mips_aver_s_d,                             // llvm.mips.aver.s.d
-+    mips_aver_s_h,                             // llvm.mips.aver.s.h
-+    mips_aver_s_w,                             // llvm.mips.aver.s.w
-+    mips_aver_u_b,                             // llvm.mips.aver.u.b
-+    mips_aver_u_d,                             // llvm.mips.aver.u.d
-+    mips_aver_u_h,                             // llvm.mips.aver.u.h
-+    mips_aver_u_w,                             // llvm.mips.aver.u.w
-+    mips_balign,                               // llvm.mips.balign
-+    mips_bclr_b,                               // llvm.mips.bclr.b
-+    mips_bclr_d,                               // llvm.mips.bclr.d
-+    mips_bclr_h,                               // llvm.mips.bclr.h
-+    mips_bclr_w,                               // llvm.mips.bclr.w
-+    mips_bclri_b,                              // llvm.mips.bclri.b
-+    mips_bclri_d,                              // llvm.mips.bclri.d
-+    mips_bclri_h,                              // llvm.mips.bclri.h
-+    mips_bclri_w,                              // llvm.mips.bclri.w
-+    mips_binsl_b,                              // llvm.mips.binsl.b
-+    mips_binsl_d,                              // llvm.mips.binsl.d
-+    mips_binsl_h,                              // llvm.mips.binsl.h
-+    mips_binsl_w,                              // llvm.mips.binsl.w
-+    mips_binsli_b,                             // llvm.mips.binsli.b
-+    mips_binsli_d,                             // llvm.mips.binsli.d
-+    mips_binsli_h,                             // llvm.mips.binsli.h
-+    mips_binsli_w,                             // llvm.mips.binsli.w
-+    mips_binsr_b,                              // llvm.mips.binsr.b
-+    mips_binsr_d,                              // llvm.mips.binsr.d
-+    mips_binsr_h,                              // llvm.mips.binsr.h
-+    mips_binsr_w,                              // llvm.mips.binsr.w
-+    mips_binsri_b,                             // llvm.mips.binsri.b
-+    mips_binsri_d,                             // llvm.mips.binsri.d
-+    mips_binsri_h,                             // llvm.mips.binsri.h
-+    mips_binsri_w,                             // llvm.mips.binsri.w
-+    mips_bitrev,                               // llvm.mips.bitrev
-+    mips_bmnz_v,                               // llvm.mips.bmnz.v
-+    mips_bmnzi_b,                              // llvm.mips.bmnzi.b
-+    mips_bmz_v,                                // llvm.mips.bmz.v
-+    mips_bmzi_b,                               // llvm.mips.bmzi.b
-+    mips_bneg_b,                               // llvm.mips.bneg.b
-+    mips_bneg_d,                               // llvm.mips.bneg.d
-+    mips_bneg_h,                               // llvm.mips.bneg.h
-+    mips_bneg_w,                               // llvm.mips.bneg.w
-+    mips_bnegi_b,                              // llvm.mips.bnegi.b
-+    mips_bnegi_d,                              // llvm.mips.bnegi.d
-+    mips_bnegi_h,                              // llvm.mips.bnegi.h
-+    mips_bnegi_w,                              // llvm.mips.bnegi.w
-+    mips_bnz_b,                                // llvm.mips.bnz.b
-+    mips_bnz_d,                                // llvm.mips.bnz.d
-+    mips_bnz_h,                                // llvm.mips.bnz.h
-+    mips_bnz_v,                                // llvm.mips.bnz.v
-+    mips_bnz_w,                                // llvm.mips.bnz.w
-+    mips_bposge32,                             // llvm.mips.bposge32
-+    mips_bsel_v,                               // llvm.mips.bsel.v
-+    mips_bseli_b,                              // llvm.mips.bseli.b
-+    mips_bset_b,                               // llvm.mips.bset.b
-+    mips_bset_d,                               // llvm.mips.bset.d
-+    mips_bset_h,                               // llvm.mips.bset.h
-+    mips_bset_w,                               // llvm.mips.bset.w
-+    mips_bseti_b,                              // llvm.mips.bseti.b
-+    mips_bseti_d,                              // llvm.mips.bseti.d
-+    mips_bseti_h,                              // llvm.mips.bseti.h
-+    mips_bseti_w,                              // llvm.mips.bseti.w
-+    mips_bz_b,                                 // llvm.mips.bz.b
-+    mips_bz_d,                                 // llvm.mips.bz.d
-+    mips_bz_h,                                 // llvm.mips.bz.h
-+    mips_bz_v,                                 // llvm.mips.bz.v
-+    mips_bz_w,                                 // llvm.mips.bz.w
-+    mips_ceq_b,                                // llvm.mips.ceq.b
-+    mips_ceq_d,                                // llvm.mips.ceq.d
-+    mips_ceq_h,                                // llvm.mips.ceq.h
-+    mips_ceq_w,                                // llvm.mips.ceq.w
-+    mips_ceqi_b,                               // llvm.mips.ceqi.b
-+    mips_ceqi_d,                               // llvm.mips.ceqi.d
-+    mips_ceqi_h,                               // llvm.mips.ceqi.h
-+    mips_ceqi_w,                               // llvm.mips.ceqi.w
-+    mips_cfcmsa,                               // llvm.mips.cfcmsa
-+    mips_cle_s_b,                              // llvm.mips.cle.s.b
-+    mips_cle_s_d,                              // llvm.mips.cle.s.d
-+    mips_cle_s_h,                              // llvm.mips.cle.s.h
-+    mips_cle_s_w,                              // llvm.mips.cle.s.w
-+    mips_cle_u_b,                              // llvm.mips.cle.u.b
-+    mips_cle_u_d,                              // llvm.mips.cle.u.d
-+    mips_cle_u_h,                              // llvm.mips.cle.u.h
-+    mips_cle_u_w,                              // llvm.mips.cle.u.w
-+    mips_clei_s_b,                             // llvm.mips.clei.s.b
-+    mips_clei_s_d,                             // llvm.mips.clei.s.d
-+    mips_clei_s_h,                             // llvm.mips.clei.s.h
-+    mips_clei_s_w,                             // llvm.mips.clei.s.w
-+    mips_clei_u_b,                             // llvm.mips.clei.u.b
-+    mips_clei_u_d,                             // llvm.mips.clei.u.d
-+    mips_clei_u_h,                             // llvm.mips.clei.u.h
-+    mips_clei_u_w,                             // llvm.mips.clei.u.w
-+    mips_clt_s_b,                              // llvm.mips.clt.s.b
-+    mips_clt_s_d,                              // llvm.mips.clt.s.d
-+    mips_clt_s_h,                              // llvm.mips.clt.s.h
-+    mips_clt_s_w,                              // llvm.mips.clt.s.w
-+    mips_clt_u_b,                              // llvm.mips.clt.u.b
-+    mips_clt_u_d,                              // llvm.mips.clt.u.d
-+    mips_clt_u_h,                              // llvm.mips.clt.u.h
-+    mips_clt_u_w,                              // llvm.mips.clt.u.w
-+    mips_clti_s_b,                             // llvm.mips.clti.s.b
-+    mips_clti_s_d,                             // llvm.mips.clti.s.d
-+    mips_clti_s_h,                             // llvm.mips.clti.s.h
-+    mips_clti_s_w,                             // llvm.mips.clti.s.w
-+    mips_clti_u_b,                             // llvm.mips.clti.u.b
-+    mips_clti_u_d,                             // llvm.mips.clti.u.d
-+    mips_clti_u_h,                             // llvm.mips.clti.u.h
-+    mips_clti_u_w,                             // llvm.mips.clti.u.w
-+    mips_cmp_eq_ph,                            // llvm.mips.cmp.eq.ph
-+    mips_cmp_le_ph,                            // llvm.mips.cmp.le.ph
-+    mips_cmp_lt_ph,                            // llvm.mips.cmp.lt.ph
-+    mips_cmpgdu_eq_qb,                         // llvm.mips.cmpgdu.eq.qb
-+    mips_cmpgdu_le_qb,                         // llvm.mips.cmpgdu.le.qb
-+    mips_cmpgdu_lt_qb,                         // llvm.mips.cmpgdu.lt.qb
-+    mips_cmpgu_eq_qb,                          // llvm.mips.cmpgu.eq.qb
-+    mips_cmpgu_le_qb,                          // llvm.mips.cmpgu.le.qb
-+    mips_cmpgu_lt_qb,                          // llvm.mips.cmpgu.lt.qb
-+    mips_cmpu_eq_qb,                           // llvm.mips.cmpu.eq.qb
-+    mips_cmpu_le_qb,                           // llvm.mips.cmpu.le.qb
-+    mips_cmpu_lt_qb,                           // llvm.mips.cmpu.lt.qb
-+    mips_copy_s_b,                             // llvm.mips.copy.s.b
-+    mips_copy_s_d,                             // llvm.mips.copy.s.d
-+    mips_copy_s_h,                             // llvm.mips.copy.s.h
-+    mips_copy_s_w,                             // llvm.mips.copy.s.w
-+    mips_copy_u_b,                             // llvm.mips.copy.u.b
-+    mips_copy_u_d,                             // llvm.mips.copy.u.d
-+    mips_copy_u_h,                             // llvm.mips.copy.u.h
-+    mips_copy_u_w,                             // llvm.mips.copy.u.w
-+    mips_ctcmsa,                               // llvm.mips.ctcmsa
-+    mips_div_s_b,                              // llvm.mips.div.s.b
-+    mips_div_s_d,                              // llvm.mips.div.s.d
-+    mips_div_s_h,                              // llvm.mips.div.s.h
-+    mips_div_s_w,                              // llvm.mips.div.s.w
-+    mips_div_u_b,                              // llvm.mips.div.u.b
-+    mips_div_u_d,                              // llvm.mips.div.u.d
-+    mips_div_u_h,                              // llvm.mips.div.u.h
-+    mips_div_u_w,                              // llvm.mips.div.u.w
-+    mips_dlsa,                                 // llvm.mips.dlsa
-+    mips_dotp_s_d,                             // llvm.mips.dotp.s.d
-+    mips_dotp_s_h,                             // llvm.mips.dotp.s.h
-+    mips_dotp_s_w,                             // llvm.mips.dotp.s.w
-+    mips_dotp_u_d,                             // llvm.mips.dotp.u.d
-+    mips_dotp_u_h,                             // llvm.mips.dotp.u.h
-+    mips_dotp_u_w,                             // llvm.mips.dotp.u.w
-+    mips_dpa_w_ph,                             // llvm.mips.dpa.w.ph
-+    mips_dpadd_s_d,                            // llvm.mips.dpadd.s.d
-+    mips_dpadd_s_h,                            // llvm.mips.dpadd.s.h
-+    mips_dpadd_s_w,                            // llvm.mips.dpadd.s.w
-+    mips_dpadd_u_d,                            // llvm.mips.dpadd.u.d
-+    mips_dpadd_u_h,                            // llvm.mips.dpadd.u.h
-+    mips_dpadd_u_w,                            // llvm.mips.dpadd.u.w
-+    mips_dpaq_s_w_ph,                          // llvm.mips.dpaq.s.w.ph
-+    mips_dpaq_sa_l_w,                          // llvm.mips.dpaq.sa.l.w
-+    mips_dpaqx_s_w_ph,                         // llvm.mips.dpaqx.s.w.ph
-+    mips_dpaqx_sa_w_ph,                        // llvm.mips.dpaqx.sa.w.ph
-+    mips_dpau_h_qbl,                           // llvm.mips.dpau.h.qbl
-+    mips_dpau_h_qbr,                           // llvm.mips.dpau.h.qbr
-+    mips_dpax_w_ph,                            // llvm.mips.dpax.w.ph
-+    mips_dps_w_ph,                             // llvm.mips.dps.w.ph
-+    mips_dpsq_s_w_ph,                          // llvm.mips.dpsq.s.w.ph
-+    mips_dpsq_sa_l_w,                          // llvm.mips.dpsq.sa.l.w
-+    mips_dpsqx_s_w_ph,                         // llvm.mips.dpsqx.s.w.ph
-+    mips_dpsqx_sa_w_ph,                        // llvm.mips.dpsqx.sa.w.ph
-+    mips_dpsu_h_qbl,                           // llvm.mips.dpsu.h.qbl
-+    mips_dpsu_h_qbr,                           // llvm.mips.dpsu.h.qbr
-+    mips_dpsub_s_d,                            // llvm.mips.dpsub.s.d
-+    mips_dpsub_s_h,                            // llvm.mips.dpsub.s.h
-+    mips_dpsub_s_w,                            // llvm.mips.dpsub.s.w
-+    mips_dpsub_u_d,                            // llvm.mips.dpsub.u.d
-+    mips_dpsub_u_h,                            // llvm.mips.dpsub.u.h
-+    mips_dpsub_u_w,                            // llvm.mips.dpsub.u.w
-+    mips_dpsx_w_ph,                            // llvm.mips.dpsx.w.ph
-+    mips_extp,                                 // llvm.mips.extp
-+    mips_extpdp,                               // llvm.mips.extpdp
-+    mips_extr_r_w,                             // llvm.mips.extr.r.w
-+    mips_extr_rs_w,                            // llvm.mips.extr.rs.w
-+    mips_extr_s_h,                             // llvm.mips.extr.s.h
-+    mips_extr_w,                               // llvm.mips.extr.w
-+    mips_fadd_d,                               // llvm.mips.fadd.d
-+    mips_fadd_w,                               // llvm.mips.fadd.w
-+    mips_fcaf_d,                               // llvm.mips.fcaf.d
-+    mips_fcaf_w,                               // llvm.mips.fcaf.w
-+    mips_fceq_d,                               // llvm.mips.fceq.d
-+    mips_fceq_w,                               // llvm.mips.fceq.w
-+    mips_fclass_d,                             // llvm.mips.fclass.d
-+    mips_fclass_w,                             // llvm.mips.fclass.w
-+    mips_fcle_d,                               // llvm.mips.fcle.d
-+    mips_fcle_w,                               // llvm.mips.fcle.w
-+    mips_fclt_d,                               // llvm.mips.fclt.d
-+    mips_fclt_w,                               // llvm.mips.fclt.w
-+    mips_fcne_d,                               // llvm.mips.fcne.d
-+    mips_fcne_w,                               // llvm.mips.fcne.w
-+    mips_fcor_d,                               // llvm.mips.fcor.d
-+    mips_fcor_w,                               // llvm.mips.fcor.w
-+    mips_fcueq_d,                              // llvm.mips.fcueq.d
-+    mips_fcueq_w,                              // llvm.mips.fcueq.w
-+    mips_fcule_d,                              // llvm.mips.fcule.d
-+    mips_fcule_w,                              // llvm.mips.fcule.w
-+    mips_fcult_d,                              // llvm.mips.fcult.d
-+    mips_fcult_w,                              // llvm.mips.fcult.w
-+    mips_fcun_d,                               // llvm.mips.fcun.d
-+    mips_fcun_w,                               // llvm.mips.fcun.w
-+    mips_fcune_d,                              // llvm.mips.fcune.d
-+    mips_fcune_w,                              // llvm.mips.fcune.w
-+    mips_fdiv_d,                               // llvm.mips.fdiv.d
-+    mips_fdiv_w,                               // llvm.mips.fdiv.w
-+    mips_fexdo_h,                              // llvm.mips.fexdo.h
-+    mips_fexdo_w,                              // llvm.mips.fexdo.w
-+    mips_fexp2_d,                              // llvm.mips.fexp2.d
-+    mips_fexp2_w,                              // llvm.mips.fexp2.w
-+    mips_fexupl_d,                             // llvm.mips.fexupl.d
-+    mips_fexupl_w,                             // llvm.mips.fexupl.w
-+    mips_fexupr_d,                             // llvm.mips.fexupr.d
-+    mips_fexupr_w,                             // llvm.mips.fexupr.w
-+    mips_ffint_s_d,                            // llvm.mips.ffint.s.d
-+    mips_ffint_s_w,                            // llvm.mips.ffint.s.w
-+    mips_ffint_u_d,                            // llvm.mips.ffint.u.d
-+    mips_ffint_u_w,                            // llvm.mips.ffint.u.w
-+    mips_ffql_d,                               // llvm.mips.ffql.d
-+    mips_ffql_w,                               // llvm.mips.ffql.w
-+    mips_ffqr_d,                               // llvm.mips.ffqr.d
-+    mips_ffqr_w,                               // llvm.mips.ffqr.w
-+    mips_fill_b,                               // llvm.mips.fill.b
-+    mips_fill_d,                               // llvm.mips.fill.d
-+    mips_fill_h,                               // llvm.mips.fill.h
-+    mips_fill_w,                               // llvm.mips.fill.w
-+    mips_flog2_d,                              // llvm.mips.flog2.d
-+    mips_flog2_w,                              // llvm.mips.flog2.w
-+    mips_fmadd_d,                              // llvm.mips.fmadd.d
-+    mips_fmadd_w,                              // llvm.mips.fmadd.w
-+    mips_fmax_a_d,                             // llvm.mips.fmax.a.d
-+    mips_fmax_a_w,                             // llvm.mips.fmax.a.w
-+    mips_fmax_d,                               // llvm.mips.fmax.d
-+    mips_fmax_w,                               // llvm.mips.fmax.w
-+    mips_fmin_a_d,                             // llvm.mips.fmin.a.d
-+    mips_fmin_a_w,                             // llvm.mips.fmin.a.w
-+    mips_fmin_d,                               // llvm.mips.fmin.d
-+    mips_fmin_w,                               // llvm.mips.fmin.w
-+    mips_fmsub_d,                              // llvm.mips.fmsub.d
-+    mips_fmsub_w,                              // llvm.mips.fmsub.w
-+    mips_fmul_d,                               // llvm.mips.fmul.d
-+    mips_fmul_w,                               // llvm.mips.fmul.w
-+    mips_frcp_d,                               // llvm.mips.frcp.d
-+    mips_frcp_w,                               // llvm.mips.frcp.w
-+    mips_frint_d,                              // llvm.mips.frint.d
-+    mips_frint_w,                              // llvm.mips.frint.w
-+    mips_frsqrt_d,                             // llvm.mips.frsqrt.d
-+    mips_frsqrt_w,                             // llvm.mips.frsqrt.w
-+    mips_fsaf_d,                               // llvm.mips.fsaf.d
-+    mips_fsaf_w,                               // llvm.mips.fsaf.w
-+    mips_fseq_d,                               // llvm.mips.fseq.d
-+    mips_fseq_w,                               // llvm.mips.fseq.w
-+    mips_fsle_d,                               // llvm.mips.fsle.d
-+    mips_fsle_w,                               // llvm.mips.fsle.w
-+    mips_fslt_d,                               // llvm.mips.fslt.d
-+    mips_fslt_w,                               // llvm.mips.fslt.w
-+    mips_fsne_d,                               // llvm.mips.fsne.d
-+    mips_fsne_w,                               // llvm.mips.fsne.w
-+    mips_fsor_d,                               // llvm.mips.fsor.d
-+    mips_fsor_w,                               // llvm.mips.fsor.w
-+    mips_fsqrt_d,                              // llvm.mips.fsqrt.d
-+    mips_fsqrt_w,                              // llvm.mips.fsqrt.w
-+    mips_fsub_d,                               // llvm.mips.fsub.d
-+    mips_fsub_w,                               // llvm.mips.fsub.w
-+    mips_fsueq_d,                              // llvm.mips.fsueq.d
-+    mips_fsueq_w,                              // llvm.mips.fsueq.w
-+    mips_fsule_d,                              // llvm.mips.fsule.d
-+    mips_fsule_w,                              // llvm.mips.fsule.w
-+    mips_fsult_d,                              // llvm.mips.fsult.d
-+    mips_fsult_w,                              // llvm.mips.fsult.w
-+    mips_fsun_d,                               // llvm.mips.fsun.d
-+    mips_fsun_w,                               // llvm.mips.fsun.w
-+    mips_fsune_d,                              // llvm.mips.fsune.d
-+    mips_fsune_w,                              // llvm.mips.fsune.w
-+    mips_ftint_s_d,                            // llvm.mips.ftint.s.d
-+    mips_ftint_s_w,                            // llvm.mips.ftint.s.w
-+    mips_ftint_u_d,                            // llvm.mips.ftint.u.d
-+    mips_ftint_u_w,                            // llvm.mips.ftint.u.w
-+    mips_ftq_h,                                // llvm.mips.ftq.h
-+    mips_ftq_w,                                // llvm.mips.ftq.w
-+    mips_ftrunc_s_d,                           // llvm.mips.ftrunc.s.d
-+    mips_ftrunc_s_w,                           // llvm.mips.ftrunc.s.w
-+    mips_ftrunc_u_d,                           // llvm.mips.ftrunc.u.d
-+    mips_ftrunc_u_w,                           // llvm.mips.ftrunc.u.w
-+    mips_hadd_s_d,                             // llvm.mips.hadd.s.d
-+    mips_hadd_s_h,                             // llvm.mips.hadd.s.h
-+    mips_hadd_s_w,                             // llvm.mips.hadd.s.w
-+    mips_hadd_u_d,                             // llvm.mips.hadd.u.d
-+    mips_hadd_u_h,                             // llvm.mips.hadd.u.h
-+    mips_hadd_u_w,                             // llvm.mips.hadd.u.w
-+    mips_hsub_s_d,                             // llvm.mips.hsub.s.d
-+    mips_hsub_s_h,                             // llvm.mips.hsub.s.h
-+    mips_hsub_s_w,                             // llvm.mips.hsub.s.w
-+    mips_hsub_u_d,                             // llvm.mips.hsub.u.d
-+    mips_hsub_u_h,                             // llvm.mips.hsub.u.h
-+    mips_hsub_u_w,                             // llvm.mips.hsub.u.w
-+    mips_ilvev_b,                              // llvm.mips.ilvev.b
-+    mips_ilvev_d,                              // llvm.mips.ilvev.d
-+    mips_ilvev_h,                              // llvm.mips.ilvev.h
-+    mips_ilvev_w,                              // llvm.mips.ilvev.w
-+    mips_ilvl_b,                               // llvm.mips.ilvl.b
-+    mips_ilvl_d,                               // llvm.mips.ilvl.d
-+    mips_ilvl_h,                               // llvm.mips.ilvl.h
-+    mips_ilvl_w,                               // llvm.mips.ilvl.w
-+    mips_ilvod_b,                              // llvm.mips.ilvod.b
-+    mips_ilvod_d,                              // llvm.mips.ilvod.d
-+    mips_ilvod_h,                              // llvm.mips.ilvod.h
-+    mips_ilvod_w,                              // llvm.mips.ilvod.w
-+    mips_ilvr_b,                               // llvm.mips.ilvr.b
-+    mips_ilvr_d,                               // llvm.mips.ilvr.d
-+    mips_ilvr_h,                               // llvm.mips.ilvr.h
-+    mips_ilvr_w,                               // llvm.mips.ilvr.w
-+    mips_insert_b,                             // llvm.mips.insert.b
-+    mips_insert_d,                             // llvm.mips.insert.d
-+    mips_insert_h,                             // llvm.mips.insert.h
-+    mips_insert_w,                             // llvm.mips.insert.w
-+    mips_insv,                                 // llvm.mips.insv
-+    mips_insve_b,                              // llvm.mips.insve.b
-+    mips_insve_d,                              // llvm.mips.insve.d
-+    mips_insve_h,                              // llvm.mips.insve.h
-+    mips_insve_w,                              // llvm.mips.insve.w
-+    mips_lbux,                                 // llvm.mips.lbux
-+    mips_ld_b,                                 // llvm.mips.ld.b
-+    mips_ld_d,                                 // llvm.mips.ld.d
-+    mips_ld_h,                                 // llvm.mips.ld.h
-+    mips_ld_w,                                 // llvm.mips.ld.w
-+    mips_ldi_b,                                // llvm.mips.ldi.b
-+    mips_ldi_d,                                // llvm.mips.ldi.d
-+    mips_ldi_h,                                // llvm.mips.ldi.h
-+    mips_ldi_w,                                // llvm.mips.ldi.w
-+    mips_lhx,                                  // llvm.mips.lhx
-+    mips_lsa,                                  // llvm.mips.lsa
-+    mips_lwx,                                  // llvm.mips.lwx
-+    mips_madd,                                 // llvm.mips.madd
-+    mips_madd_q_h,                             // llvm.mips.madd.q.h
-+    mips_madd_q_w,                             // llvm.mips.madd.q.w
-+    mips_maddr_q_h,                            // llvm.mips.maddr.q.h
-+    mips_maddr_q_w,                            // llvm.mips.maddr.q.w
-+    mips_maddu,                                // llvm.mips.maddu
-+    mips_maddv_b,                              // llvm.mips.maddv.b
-+    mips_maddv_d,                              // llvm.mips.maddv.d
-+    mips_maddv_h,                              // llvm.mips.maddv.h
-+    mips_maddv_w,                              // llvm.mips.maddv.w
-+    mips_maq_s_w_phl,                          // llvm.mips.maq.s.w.phl
-+    mips_maq_s_w_phr,                          // llvm.mips.maq.s.w.phr
-+    mips_maq_sa_w_phl,                         // llvm.mips.maq.sa.w.phl
-+    mips_maq_sa_w_phr,                         // llvm.mips.maq.sa.w.phr
-+    mips_max_a_b,                              // llvm.mips.max.a.b
-+    mips_max_a_d,                              // llvm.mips.max.a.d
-+    mips_max_a_h,                              // llvm.mips.max.a.h
-+    mips_max_a_w,                              // llvm.mips.max.a.w
-+    mips_max_s_b,                              // llvm.mips.max.s.b
-+    mips_max_s_d,                              // llvm.mips.max.s.d
-+    mips_max_s_h,                              // llvm.mips.max.s.h
-+    mips_max_s_w,                              // llvm.mips.max.s.w
-+    mips_max_u_b,                              // llvm.mips.max.u.b
-+    mips_max_u_d,                              // llvm.mips.max.u.d
-+    mips_max_u_h,                              // llvm.mips.max.u.h
-+    mips_max_u_w,                              // llvm.mips.max.u.w
-+    mips_maxi_s_b,                             // llvm.mips.maxi.s.b
-+    mips_maxi_s_d,                             // llvm.mips.maxi.s.d
-+    mips_maxi_s_h,                             // llvm.mips.maxi.s.h
-+    mips_maxi_s_w,                             // llvm.mips.maxi.s.w
-+    mips_maxi_u_b,                             // llvm.mips.maxi.u.b
-+    mips_maxi_u_d,                             // llvm.mips.maxi.u.d
-+    mips_maxi_u_h,                             // llvm.mips.maxi.u.h
-+    mips_maxi_u_w,                             // llvm.mips.maxi.u.w
-+    mips_min_a_b,                              // llvm.mips.min.a.b
-+    mips_min_a_d,                              // llvm.mips.min.a.d
-+    mips_min_a_h,                              // llvm.mips.min.a.h
-+    mips_min_a_w,                              // llvm.mips.min.a.w
-+    mips_min_s_b,                              // llvm.mips.min.s.b
-+    mips_min_s_d,                              // llvm.mips.min.s.d
-+    mips_min_s_h,                              // llvm.mips.min.s.h
-+    mips_min_s_w,                              // llvm.mips.min.s.w
-+    mips_min_u_b,                              // llvm.mips.min.u.b
-+    mips_min_u_d,                              // llvm.mips.min.u.d
-+    mips_min_u_h,                              // llvm.mips.min.u.h
-+    mips_min_u_w,                              // llvm.mips.min.u.w
-+    mips_mini_s_b,                             // llvm.mips.mini.s.b
-+    mips_mini_s_d,                             // llvm.mips.mini.s.d
-+    mips_mini_s_h,                             // llvm.mips.mini.s.h
-+    mips_mini_s_w,                             // llvm.mips.mini.s.w
-+    mips_mini_u_b,                             // llvm.mips.mini.u.b
-+    mips_mini_u_d,                             // llvm.mips.mini.u.d
-+    mips_mini_u_h,                             // llvm.mips.mini.u.h
-+    mips_mini_u_w,                             // llvm.mips.mini.u.w
-+    mips_mod_s_b,                              // llvm.mips.mod.s.b
-+    mips_mod_s_d,                              // llvm.mips.mod.s.d
-+    mips_mod_s_h,                              // llvm.mips.mod.s.h
-+    mips_mod_s_w,                              // llvm.mips.mod.s.w
-+    mips_mod_u_b,                              // llvm.mips.mod.u.b
-+    mips_mod_u_d,                              // llvm.mips.mod.u.d
-+    mips_mod_u_h,                              // llvm.mips.mod.u.h
-+    mips_mod_u_w,                              // llvm.mips.mod.u.w
-+    mips_modsub,                               // llvm.mips.modsub
-+    mips_move_v,                               // llvm.mips.move.v
-+    mips_msub,                                 // llvm.mips.msub
-+    mips_msub_q_h,                             // llvm.mips.msub.q.h
-+    mips_msub_q_w,                             // llvm.mips.msub.q.w
-+    mips_msubr_q_h,                            // llvm.mips.msubr.q.h
-+    mips_msubr_q_w,                            // llvm.mips.msubr.q.w
-+    mips_msubu,                                // llvm.mips.msubu
-+    mips_msubv_b,                              // llvm.mips.msubv.b
-+    mips_msubv_d,                              // llvm.mips.msubv.d
-+    mips_msubv_h,                              // llvm.mips.msubv.h
-+    mips_msubv_w,                              // llvm.mips.msubv.w
-+    mips_mthlip,                               // llvm.mips.mthlip
-+    mips_mul_ph,                               // llvm.mips.mul.ph
-+    mips_mul_q_h,                              // llvm.mips.mul.q.h
-+    mips_mul_q_w,                              // llvm.mips.mul.q.w
-+    mips_mul_s_ph,                             // llvm.mips.mul.s.ph
-+    mips_muleq_s_w_phl,                        // llvm.mips.muleq.s.w.phl
-+    mips_muleq_s_w_phr,                        // llvm.mips.muleq.s.w.phr
-+    mips_muleu_s_ph_qbl,                       // llvm.mips.muleu.s.ph.qbl
-+    mips_muleu_s_ph_qbr,                       // llvm.mips.muleu.s.ph.qbr
-+    mips_mulq_rs_ph,                           // llvm.mips.mulq.rs.ph
-+    mips_mulq_rs_w,                            // llvm.mips.mulq.rs.w
-+    mips_mulq_s_ph,                            // llvm.mips.mulq.s.ph
-+    mips_mulq_s_w,                             // llvm.mips.mulq.s.w
-+    mips_mulr_q_h,                             // llvm.mips.mulr.q.h
-+    mips_mulr_q_w,                             // llvm.mips.mulr.q.w
-+    mips_mulsa_w_ph,                           // llvm.mips.mulsa.w.ph
-+    mips_mulsaq_s_w_ph,                        // llvm.mips.mulsaq.s.w.ph
-+    mips_mult,                                 // llvm.mips.mult
-+    mips_multu,                                // llvm.mips.multu
-+    mips_mulv_b,                               // llvm.mips.mulv.b
-+    mips_mulv_d,                               // llvm.mips.mulv.d
-+    mips_mulv_h,                               // llvm.mips.mulv.h
-+    mips_mulv_w,                               // llvm.mips.mulv.w
-+    mips_nloc_b,                               // llvm.mips.nloc.b
-+    mips_nloc_d,                               // llvm.mips.nloc.d
-+    mips_nloc_h,                               // llvm.mips.nloc.h
-+    mips_nloc_w,                               // llvm.mips.nloc.w
-+    mips_nlzc_b,                               // llvm.mips.nlzc.b
-+    mips_nlzc_d,                               // llvm.mips.nlzc.d
-+    mips_nlzc_h,                               // llvm.mips.nlzc.h
-+    mips_nlzc_w,                               // llvm.mips.nlzc.w
-+    mips_nor_v,                                // llvm.mips.nor.v
-+    mips_nori_b,                               // llvm.mips.nori.b
-+    mips_or_v,                                 // llvm.mips.or.v
-+    mips_ori_b,                                // llvm.mips.ori.b
-+    mips_packrl_ph,                            // llvm.mips.packrl.ph
-+    mips_pckev_b,                              // llvm.mips.pckev.b
-+    mips_pckev_d,                              // llvm.mips.pckev.d
-+    mips_pckev_h,                              // llvm.mips.pckev.h
-+    mips_pckev_w,                              // llvm.mips.pckev.w
-+    mips_pckod_b,                              // llvm.mips.pckod.b
-+    mips_pckod_d,                              // llvm.mips.pckod.d
-+    mips_pckod_h,                              // llvm.mips.pckod.h
-+    mips_pckod_w,                              // llvm.mips.pckod.w
-+    mips_pcnt_b,                               // llvm.mips.pcnt.b
-+    mips_pcnt_d,                               // llvm.mips.pcnt.d
-+    mips_pcnt_h,                               // llvm.mips.pcnt.h
-+    mips_pcnt_w,                               // llvm.mips.pcnt.w
-+    mips_pick_ph,                              // llvm.mips.pick.ph
-+    mips_pick_qb,                              // llvm.mips.pick.qb
-+    mips_preceq_w_phl,                         // llvm.mips.preceq.w.phl
-+    mips_preceq_w_phr,                         // llvm.mips.preceq.w.phr
-+    mips_precequ_ph_qbl,                       // llvm.mips.precequ.ph.qbl
-+    mips_precequ_ph_qbla,                      // llvm.mips.precequ.ph.qbla
-+    mips_precequ_ph_qbr,                       // llvm.mips.precequ.ph.qbr
-+    mips_precequ_ph_qbra,                      // llvm.mips.precequ.ph.qbra
-+    mips_preceu_ph_qbl,                        // llvm.mips.preceu.ph.qbl
-+    mips_preceu_ph_qbla,                       // llvm.mips.preceu.ph.qbla
-+    mips_preceu_ph_qbr,                        // llvm.mips.preceu.ph.qbr
-+    mips_preceu_ph_qbra,                       // llvm.mips.preceu.ph.qbra
-+    mips_precr_qb_ph,                          // llvm.mips.precr.qb.ph
-+    mips_precr_sra_ph_w,                       // llvm.mips.precr.sra.ph.w
-+    mips_precr_sra_r_ph_w,                     // llvm.mips.precr.sra.r.ph.w
-+    mips_precrq_ph_w,                          // llvm.mips.precrq.ph.w
-+    mips_precrq_qb_ph,                         // llvm.mips.precrq.qb.ph
-+    mips_precrq_rs_ph_w,                       // llvm.mips.precrq.rs.ph.w
-+    mips_precrqu_s_qb_ph,                      // llvm.mips.precrqu.s.qb.ph
-+    mips_prepend,                              // llvm.mips.prepend
-+    mips_raddu_w_qb,                           // llvm.mips.raddu.w.qb
-+    mips_rddsp,                                // llvm.mips.rddsp
-+    mips_repl_ph,                              // llvm.mips.repl.ph
-+    mips_repl_qb,                              // llvm.mips.repl.qb
-+    mips_sat_s_b,                              // llvm.mips.sat.s.b
-+    mips_sat_s_d,                              // llvm.mips.sat.s.d
-+    mips_sat_s_h,                              // llvm.mips.sat.s.h
-+    mips_sat_s_w,                              // llvm.mips.sat.s.w
-+    mips_sat_u_b,                              // llvm.mips.sat.u.b
-+    mips_sat_u_d,                              // llvm.mips.sat.u.d
-+    mips_sat_u_h,                              // llvm.mips.sat.u.h
-+    mips_sat_u_w,                              // llvm.mips.sat.u.w
-+    mips_shf_b,                                // llvm.mips.shf.b
-+    mips_shf_h,                                // llvm.mips.shf.h
-+    mips_shf_w,                                // llvm.mips.shf.w
-+    mips_shilo,                                // llvm.mips.shilo
-+    mips_shll_ph,                              // llvm.mips.shll.ph
-+    mips_shll_qb,                              // llvm.mips.shll.qb
-+    mips_shll_s_ph,                            // llvm.mips.shll.s.ph
-+    mips_shll_s_w,                             // llvm.mips.shll.s.w
-+    mips_shra_ph,                              // llvm.mips.shra.ph
-+    mips_shra_qb,                              // llvm.mips.shra.qb
-+    mips_shra_r_ph,                            // llvm.mips.shra.r.ph
-+    mips_shra_r_qb,                            // llvm.mips.shra.r.qb
-+    mips_shra_r_w,                             // llvm.mips.shra.r.w
-+    mips_shrl_ph,                              // llvm.mips.shrl.ph
-+    mips_shrl_qb,                              // llvm.mips.shrl.qb
-+    mips_sld_b,                                // llvm.mips.sld.b
-+    mips_sld_d,                                // llvm.mips.sld.d
-+    mips_sld_h,                                // llvm.mips.sld.h
-+    mips_sld_w,                                // llvm.mips.sld.w
-+    mips_sldi_b,                               // llvm.mips.sldi.b
-+    mips_sldi_d,                               // llvm.mips.sldi.d
-+    mips_sldi_h,                               // llvm.mips.sldi.h
-+    mips_sldi_w,                               // llvm.mips.sldi.w
-+    mips_sll_b,                                // llvm.mips.sll.b
-+    mips_sll_d,                                // llvm.mips.sll.d
-+    mips_sll_h,                                // llvm.mips.sll.h
-+    mips_sll_w,                                // llvm.mips.sll.w
-+    mips_slli_b,                               // llvm.mips.slli.b
-+    mips_slli_d,                               // llvm.mips.slli.d
-+    mips_slli_h,                               // llvm.mips.slli.h
-+    mips_slli_w,                               // llvm.mips.slli.w
-+    mips_splat_b,                              // llvm.mips.splat.b
-+    mips_splat_d,                              // llvm.mips.splat.d
-+    mips_splat_h,                              // llvm.mips.splat.h
-+    mips_splat_w,                              // llvm.mips.splat.w
-+    mips_splati_b,                             // llvm.mips.splati.b
-+    mips_splati_d,                             // llvm.mips.splati.d
-+    mips_splati_h,                             // llvm.mips.splati.h
-+    mips_splati_w,                             // llvm.mips.splati.w
-+    mips_sra_b,                                // llvm.mips.sra.b
-+    mips_sra_d,                                // llvm.mips.sra.d
-+    mips_sra_h,                                // llvm.mips.sra.h
-+    mips_sra_w,                                // llvm.mips.sra.w
-+    mips_srai_b,                               // llvm.mips.srai.b
-+    mips_srai_d,                               // llvm.mips.srai.d
-+    mips_srai_h,                               // llvm.mips.srai.h
-+    mips_srai_w,                               // llvm.mips.srai.w
-+    mips_srar_b,                               // llvm.mips.srar.b
-+    mips_srar_d,                               // llvm.mips.srar.d
-+    mips_srar_h,                               // llvm.mips.srar.h
-+    mips_srar_w,                               // llvm.mips.srar.w
-+    mips_srari_b,                              // llvm.mips.srari.b
-+    mips_srari_d,                              // llvm.mips.srari.d
-+    mips_srari_h,                              // llvm.mips.srari.h
-+    mips_srari_w,                              // llvm.mips.srari.w
-+    mips_srl_b,                                // llvm.mips.srl.b
-+    mips_srl_d,                                // llvm.mips.srl.d
-+    mips_srl_h,                                // llvm.mips.srl.h
-+    mips_srl_w,                                // llvm.mips.srl.w
-+    mips_srli_b,                               // llvm.mips.srli.b
-+    mips_srli_d,                               // llvm.mips.srli.d
-+    mips_srli_h,                               // llvm.mips.srli.h
-+    mips_srli_w,                               // llvm.mips.srli.w
-+    mips_srlr_b,                               // llvm.mips.srlr.b
-+    mips_srlr_d,                               // llvm.mips.srlr.d
-+    mips_srlr_h,                               // llvm.mips.srlr.h
-+    mips_srlr_w,                               // llvm.mips.srlr.w
-+    mips_srlri_b,                              // llvm.mips.srlri.b
-+    mips_srlri_d,                              // llvm.mips.srlri.d
-+    mips_srlri_h,                              // llvm.mips.srlri.h
-+    mips_srlri_w,                              // llvm.mips.srlri.w
-+    mips_st_b,                                 // llvm.mips.st.b
-+    mips_st_d,                                 // llvm.mips.st.d
-+    mips_st_h,                                 // llvm.mips.st.h
-+    mips_st_w,                                 // llvm.mips.st.w
-+    mips_subq_ph,                              // llvm.mips.subq.ph
-+    mips_subq_s_ph,                            // llvm.mips.subq.s.ph
-+    mips_subq_s_w,                             // llvm.mips.subq.s.w
-+    mips_subqh_ph,                             // llvm.mips.subqh.ph
-+    mips_subqh_r_ph,                           // llvm.mips.subqh.r.ph
-+    mips_subqh_r_w,                            // llvm.mips.subqh.r.w
-+    mips_subqh_w,                              // llvm.mips.subqh.w
-+    mips_subs_s_b,                             // llvm.mips.subs.s.b
-+    mips_subs_s_d,                             // llvm.mips.subs.s.d
-+    mips_subs_s_h,                             // llvm.mips.subs.s.h
-+    mips_subs_s_w,                             // llvm.mips.subs.s.w
-+    mips_subs_u_b,                             // llvm.mips.subs.u.b
-+    mips_subs_u_d,                             // llvm.mips.subs.u.d
-+    mips_subs_u_h,                             // llvm.mips.subs.u.h
-+    mips_subs_u_w,                             // llvm.mips.subs.u.w
-+    mips_subsus_u_b,                           // llvm.mips.subsus.u.b
-+    mips_subsus_u_d,                           // llvm.mips.subsus.u.d
-+    mips_subsus_u_h,                           // llvm.mips.subsus.u.h
-+    mips_subsus_u_w,                           // llvm.mips.subsus.u.w
-+    mips_subsuu_s_b,                           // llvm.mips.subsuu.s.b
-+    mips_subsuu_s_d,                           // llvm.mips.subsuu.s.d
-+    mips_subsuu_s_h,                           // llvm.mips.subsuu.s.h
-+    mips_subsuu_s_w,                           // llvm.mips.subsuu.s.w
-+    mips_subu_ph,                              // llvm.mips.subu.ph
-+    mips_subu_qb,                              // llvm.mips.subu.qb
-+    mips_subu_s_ph,                            // llvm.mips.subu.s.ph
-+    mips_subu_s_qb,                            // llvm.mips.subu.s.qb
-+    mips_subuh_qb,                             // llvm.mips.subuh.qb
-+    mips_subuh_r_qb,                           // llvm.mips.subuh.r.qb
-+    mips_subv_b,                               // llvm.mips.subv.b
-+    mips_subv_d,                               // llvm.mips.subv.d
-+    mips_subv_h,                               // llvm.mips.subv.h
-+    mips_subv_w,                               // llvm.mips.subv.w
-+    mips_subvi_b,                              // llvm.mips.subvi.b
-+    mips_subvi_d,                              // llvm.mips.subvi.d
-+    mips_subvi_h,                              // llvm.mips.subvi.h
-+    mips_subvi_w,                              // llvm.mips.subvi.w
-+    mips_vshf_b,                               // llvm.mips.vshf.b
-+    mips_vshf_d,                               // llvm.mips.vshf.d
-+    mips_vshf_h,                               // llvm.mips.vshf.h
-+    mips_vshf_w,                               // llvm.mips.vshf.w
-+    mips_wrdsp,                                // llvm.mips.wrdsp
-+    mips_xor_v,                                // llvm.mips.xor.v
-+    mips_xori_b,                               // llvm.mips.xori.b
-+    nvvm_abs_i,                                // llvm.nvvm.abs.i
-+    nvvm_abs_ll,                               // llvm.nvvm.abs.ll
-+    nvvm_add_rm_d,                             // llvm.nvvm.add.rm.d
-+    nvvm_add_rm_f,                             // llvm.nvvm.add.rm.f
-+    nvvm_add_rm_ftz_f,                         // llvm.nvvm.add.rm.ftz.f
-+    nvvm_add_rn_d,                             // llvm.nvvm.add.rn.d
-+    nvvm_add_rn_f,                             // llvm.nvvm.add.rn.f
-+    nvvm_add_rn_ftz_f,                         // llvm.nvvm.add.rn.ftz.f
-+    nvvm_add_rp_d,                             // llvm.nvvm.add.rp.d
-+    nvvm_add_rp_f,                             // llvm.nvvm.add.rp.f
-+    nvvm_add_rp_ftz_f,                         // llvm.nvvm.add.rp.ftz.f
-+    nvvm_add_rz_d,                             // llvm.nvvm.add.rz.d
-+    nvvm_add_rz_f,                             // llvm.nvvm.add.rz.f
-+    nvvm_add_rz_ftz_f,                         // llvm.nvvm.add.rz.ftz.f
-+    nvvm_atomic_add_gen_f_cta,                 // llvm.nvvm.atomic.add.gen.f.cta
-+    nvvm_atomic_add_gen_f_sys,                 // llvm.nvvm.atomic.add.gen.f.sys
-+    nvvm_atomic_add_gen_i_cta,                 // llvm.nvvm.atomic.add.gen.i.cta
-+    nvvm_atomic_add_gen_i_sys,                 // llvm.nvvm.atomic.add.gen.i.sys
-+    nvvm_atomic_and_gen_i_cta,                 // llvm.nvvm.atomic.and.gen.i.cta
-+    nvvm_atomic_and_gen_i_sys,                 // llvm.nvvm.atomic.and.gen.i.sys
-+    nvvm_atomic_cas_gen_i_cta,                 // llvm.nvvm.atomic.cas.gen.i.cta
-+    nvvm_atomic_cas_gen_i_sys,                 // llvm.nvvm.atomic.cas.gen.i.sys
-+    nvvm_atomic_dec_gen_i_cta,                 // llvm.nvvm.atomic.dec.gen.i.cta
-+    nvvm_atomic_dec_gen_i_sys,                 // llvm.nvvm.atomic.dec.gen.i.sys
-+    nvvm_atomic_exch_gen_i_cta,                // llvm.nvvm.atomic.exch.gen.i.cta
-+    nvvm_atomic_exch_gen_i_sys,                // llvm.nvvm.atomic.exch.gen.i.sys
-+    nvvm_atomic_inc_gen_i_cta,                 // llvm.nvvm.atomic.inc.gen.i.cta
-+    nvvm_atomic_inc_gen_i_sys,                 // llvm.nvvm.atomic.inc.gen.i.sys
-+    nvvm_atomic_load_add_f32,                  // llvm.nvvm.atomic.load.add.f32
-+    nvvm_atomic_load_dec_32,                   // llvm.nvvm.atomic.load.dec.32
-+    nvvm_atomic_load_inc_32,                   // llvm.nvvm.atomic.load.inc.32
-+    nvvm_atomic_max_gen_i_cta,                 // llvm.nvvm.atomic.max.gen.i.cta
-+    nvvm_atomic_max_gen_i_sys,                 // llvm.nvvm.atomic.max.gen.i.sys
-+    nvvm_atomic_min_gen_i_cta,                 // llvm.nvvm.atomic.min.gen.i.cta
-+    nvvm_atomic_min_gen_i_sys,                 // llvm.nvvm.atomic.min.gen.i.sys
-+    nvvm_atomic_or_gen_i_cta,                  // llvm.nvvm.atomic.or.gen.i.cta
-+    nvvm_atomic_or_gen_i_sys,                  // llvm.nvvm.atomic.or.gen.i.sys
-+    nvvm_atomic_xor_gen_i_cta,                 // llvm.nvvm.atomic.xor.gen.i.cta
-+    nvvm_atomic_xor_gen_i_sys,                 // llvm.nvvm.atomic.xor.gen.i.sys
-+    nvvm_bar_sync,                             // llvm.nvvm.bar.sync
-+    nvvm_barrier0,                             // llvm.nvvm.barrier0
-+    nvvm_barrier0_and,                         // llvm.nvvm.barrier0.and
-+    nvvm_barrier0_or,                          // llvm.nvvm.barrier0.or
-+    nvvm_barrier0_popc,                        // llvm.nvvm.barrier0.popc
-+    nvvm_bitcast_d2ll,                         // llvm.nvvm.bitcast.d2ll
-+    nvvm_bitcast_f2i,                          // llvm.nvvm.bitcast.f2i
-+    nvvm_bitcast_i2f,                          // llvm.nvvm.bitcast.i2f
-+    nvvm_bitcast_ll2d,                         // llvm.nvvm.bitcast.ll2d
-+    nvvm_brev32,                               // llvm.nvvm.brev32
-+    nvvm_brev64,                               // llvm.nvvm.brev64
-+    nvvm_ceil_d,                               // llvm.nvvm.ceil.d
-+    nvvm_ceil_f,                               // llvm.nvvm.ceil.f
-+    nvvm_ceil_ftz_f,                           // llvm.nvvm.ceil.ftz.f
-+    nvvm_clz_i,                                // llvm.nvvm.clz.i
-+    nvvm_clz_ll,                               // llvm.nvvm.clz.ll
-+    nvvm_compiler_error,                       // llvm.nvvm.compiler.error
-+    nvvm_compiler_warn,                        // llvm.nvvm.compiler.warn
-+    nvvm_cos_approx_f,                         // llvm.nvvm.cos.approx.f
-+    nvvm_cos_approx_ftz_f,                     // llvm.nvvm.cos.approx.ftz.f
-+    nvvm_d2f_rm,                               // llvm.nvvm.d2f.rm
-+    nvvm_d2f_rm_ftz,                           // llvm.nvvm.d2f.rm.ftz
-+    nvvm_d2f_rn,                               // llvm.nvvm.d2f.rn
-+    nvvm_d2f_rn_ftz,                           // llvm.nvvm.d2f.rn.ftz
-+    nvvm_d2f_rp,                               // llvm.nvvm.d2f.rp
-+    nvvm_d2f_rp_ftz,                           // llvm.nvvm.d2f.rp.ftz
-+    nvvm_d2f_rz,                               // llvm.nvvm.d2f.rz
-+    nvvm_d2f_rz_ftz,                           // llvm.nvvm.d2f.rz.ftz
-+    nvvm_d2i_hi,                               // llvm.nvvm.d2i.hi
-+    nvvm_d2i_lo,                               // llvm.nvvm.d2i.lo
-+    nvvm_d2i_rm,                               // llvm.nvvm.d2i.rm
-+    nvvm_d2i_rn,                               // llvm.nvvm.d2i.rn
-+    nvvm_d2i_rp,                               // llvm.nvvm.d2i.rp
-+    nvvm_d2i_rz,                               // llvm.nvvm.d2i.rz
-+    nvvm_d2ll_rm,                              // llvm.nvvm.d2ll.rm
-+    nvvm_d2ll_rn,                              // llvm.nvvm.d2ll.rn
-+    nvvm_d2ll_rp,                              // llvm.nvvm.d2ll.rp
-+    nvvm_d2ll_rz,                              // llvm.nvvm.d2ll.rz
-+    nvvm_d2ui_rm,                              // llvm.nvvm.d2ui.rm
-+    nvvm_d2ui_rn,                              // llvm.nvvm.d2ui.rn
-+    nvvm_d2ui_rp,                              // llvm.nvvm.d2ui.rp
-+    nvvm_d2ui_rz,                              // llvm.nvvm.d2ui.rz
-+    nvvm_d2ull_rm,                             // llvm.nvvm.d2ull.rm
-+    nvvm_d2ull_rn,                             // llvm.nvvm.d2ull.rn
-+    nvvm_d2ull_rp,                             // llvm.nvvm.d2ull.rp
-+    nvvm_d2ull_rz,                             // llvm.nvvm.d2ull.rz
-+    nvvm_div_approx_f,                         // llvm.nvvm.div.approx.f
-+    nvvm_div_approx_ftz_f,                     // llvm.nvvm.div.approx.ftz.f
-+    nvvm_div_rm_d,                             // llvm.nvvm.div.rm.d
-+    nvvm_div_rm_f,                             // llvm.nvvm.div.rm.f
-+    nvvm_div_rm_ftz_f,                         // llvm.nvvm.div.rm.ftz.f
-+    nvvm_div_rn_d,                             // llvm.nvvm.div.rn.d
-+    nvvm_div_rn_f,                             // llvm.nvvm.div.rn.f
-+    nvvm_div_rn_ftz_f,                         // llvm.nvvm.div.rn.ftz.f
-+    nvvm_div_rp_d,                             // llvm.nvvm.div.rp.d
-+    nvvm_div_rp_f,                             // llvm.nvvm.div.rp.f
-+    nvvm_div_rp_ftz_f,                         // llvm.nvvm.div.rp.ftz.f
-+    nvvm_div_rz_d,                             // llvm.nvvm.div.rz.d
-+    nvvm_div_rz_f,                             // llvm.nvvm.div.rz.f
-+    nvvm_div_rz_ftz_f,                         // llvm.nvvm.div.rz.ftz.f
-+    nvvm_ex2_approx_d,                         // llvm.nvvm.ex2.approx.d
-+    nvvm_ex2_approx_f,                         // llvm.nvvm.ex2.approx.f
-+    nvvm_ex2_approx_ftz_f,                     // llvm.nvvm.ex2.approx.ftz.f
-+    nvvm_f2h_rn,                               // llvm.nvvm.f2h.rn
-+    nvvm_f2h_rn_ftz,                           // llvm.nvvm.f2h.rn.ftz
-+    nvvm_f2i_rm,                               // llvm.nvvm.f2i.rm
-+    nvvm_f2i_rm_ftz,                           // llvm.nvvm.f2i.rm.ftz
-+    nvvm_f2i_rn,                               // llvm.nvvm.f2i.rn
-+    nvvm_f2i_rn_ftz,                           // llvm.nvvm.f2i.rn.ftz
-+    nvvm_f2i_rp,                               // llvm.nvvm.f2i.rp
-+    nvvm_f2i_rp_ftz,                           // llvm.nvvm.f2i.rp.ftz
-+    nvvm_f2i_rz,                               // llvm.nvvm.f2i.rz
-+    nvvm_f2i_rz_ftz,                           // llvm.nvvm.f2i.rz.ftz
-+    nvvm_f2ll_rm,                              // llvm.nvvm.f2ll.rm
-+    nvvm_f2ll_rm_ftz,                          // llvm.nvvm.f2ll.rm.ftz
-+    nvvm_f2ll_rn,                              // llvm.nvvm.f2ll.rn
-+    nvvm_f2ll_rn_ftz,                          // llvm.nvvm.f2ll.rn.ftz
-+    nvvm_f2ll_rp,                              // llvm.nvvm.f2ll.rp
-+    nvvm_f2ll_rp_ftz,                          // llvm.nvvm.f2ll.rp.ftz
-+    nvvm_f2ll_rz,                              // llvm.nvvm.f2ll.rz
-+    nvvm_f2ll_rz_ftz,                          // llvm.nvvm.f2ll.rz.ftz
-+    nvvm_f2ui_rm,                              // llvm.nvvm.f2ui.rm
-+    nvvm_f2ui_rm_ftz,                          // llvm.nvvm.f2ui.rm.ftz
-+    nvvm_f2ui_rn,                              // llvm.nvvm.f2ui.rn
-+    nvvm_f2ui_rn_ftz,                          // llvm.nvvm.f2ui.rn.ftz
-+    nvvm_f2ui_rp,                              // llvm.nvvm.f2ui.rp
-+    nvvm_f2ui_rp_ftz,                          // llvm.nvvm.f2ui.rp.ftz
-+    nvvm_f2ui_rz,                              // llvm.nvvm.f2ui.rz
-+    nvvm_f2ui_rz_ftz,                          // llvm.nvvm.f2ui.rz.ftz
-+    nvvm_f2ull_rm,                             // llvm.nvvm.f2ull.rm
-+    nvvm_f2ull_rm_ftz,                         // llvm.nvvm.f2ull.rm.ftz
-+    nvvm_f2ull_rn,                             // llvm.nvvm.f2ull.rn
-+    nvvm_f2ull_rn_ftz,                         // llvm.nvvm.f2ull.rn.ftz
-+    nvvm_f2ull_rp,                             // llvm.nvvm.f2ull.rp
-+    nvvm_f2ull_rp_ftz,                         // llvm.nvvm.f2ull.rp.ftz
-+    nvvm_f2ull_rz,                             // llvm.nvvm.f2ull.rz
-+    nvvm_f2ull_rz_ftz,                         // llvm.nvvm.f2ull.rz.ftz
-+    nvvm_fabs_d,                               // llvm.nvvm.fabs.d
-+    nvvm_fabs_f,                               // llvm.nvvm.fabs.f
-+    nvvm_fabs_ftz_f,                           // llvm.nvvm.fabs.ftz.f
-+    nvvm_floor_d,                              // llvm.nvvm.floor.d
-+    nvvm_floor_f,                              // llvm.nvvm.floor.f
-+    nvvm_floor_ftz_f,                          // llvm.nvvm.floor.ftz.f
-+    nvvm_fma_rm_d,                             // llvm.nvvm.fma.rm.d
-+    nvvm_fma_rm_f,                             // llvm.nvvm.fma.rm.f
-+    nvvm_fma_rm_ftz_f,                         // llvm.nvvm.fma.rm.ftz.f
-+    nvvm_fma_rn_d,                             // llvm.nvvm.fma.rn.d
-+    nvvm_fma_rn_f,                             // llvm.nvvm.fma.rn.f
-+    nvvm_fma_rn_ftz_f,                         // llvm.nvvm.fma.rn.ftz.f
-+    nvvm_fma_rp_d,                             // llvm.nvvm.fma.rp.d
-+    nvvm_fma_rp_f,                             // llvm.nvvm.fma.rp.f
-+    nvvm_fma_rp_ftz_f,                         // llvm.nvvm.fma.rp.ftz.f
-+    nvvm_fma_rz_d,                             // llvm.nvvm.fma.rz.d
-+    nvvm_fma_rz_f,                             // llvm.nvvm.fma.rz.f
-+    nvvm_fma_rz_ftz_f,                         // llvm.nvvm.fma.rz.ftz.f
-+    nvvm_fmax_d,                               // llvm.nvvm.fmax.d
-+    nvvm_fmax_f,                               // llvm.nvvm.fmax.f
-+    nvvm_fmax_ftz_f,                           // llvm.nvvm.fmax.ftz.f
-+    nvvm_fmin_d,                               // llvm.nvvm.fmin.d
-+    nvvm_fmin_f,                               // llvm.nvvm.fmin.f
-+    nvvm_fmin_ftz_f,                           // llvm.nvvm.fmin.ftz.f
-+    nvvm_h2f,                                  // llvm.nvvm.h2f
-+    nvvm_i2d_rm,                               // llvm.nvvm.i2d.rm
-+    nvvm_i2d_rn,                               // llvm.nvvm.i2d.rn
-+    nvvm_i2d_rp,                               // llvm.nvvm.i2d.rp
-+    nvvm_i2d_rz,                               // llvm.nvvm.i2d.rz
-+    nvvm_i2f_rm,                               // llvm.nvvm.i2f.rm
-+    nvvm_i2f_rn,                               // llvm.nvvm.i2f.rn
-+    nvvm_i2f_rp,                               // llvm.nvvm.i2f.rp
-+    nvvm_i2f_rz,                               // llvm.nvvm.i2f.rz
-+    nvvm_isspacep_const,                       // llvm.nvvm.isspacep.const
-+    nvvm_isspacep_global,                      // llvm.nvvm.isspacep.global
-+    nvvm_isspacep_local,                       // llvm.nvvm.isspacep.local
-+    nvvm_isspacep_shared,                      // llvm.nvvm.isspacep.shared
-+    nvvm_istypep_sampler,                      // llvm.nvvm.istypep.sampler
-+    nvvm_istypep_surface,                      // llvm.nvvm.istypep.surface
-+    nvvm_istypep_texture,                      // llvm.nvvm.istypep.texture
-+    nvvm_ldg_global_f,                         // llvm.nvvm.ldg.global.f
-+    nvvm_ldg_global_i,                         // llvm.nvvm.ldg.global.i
-+    nvvm_ldg_global_p,                         // llvm.nvvm.ldg.global.p
-+    nvvm_ldu_global_f,                         // llvm.nvvm.ldu.global.f
-+    nvvm_ldu_global_i,                         // llvm.nvvm.ldu.global.i
-+    nvvm_ldu_global_p,                         // llvm.nvvm.ldu.global.p
-+    nvvm_lg2_approx_d,                         // llvm.nvvm.lg2.approx.d
-+    nvvm_lg2_approx_f,                         // llvm.nvvm.lg2.approx.f
-+    nvvm_lg2_approx_ftz_f,                     // llvm.nvvm.lg2.approx.ftz.f
-+    nvvm_ll2d_rm,                              // llvm.nvvm.ll2d.rm
-+    nvvm_ll2d_rn,                              // llvm.nvvm.ll2d.rn
-+    nvvm_ll2d_rp,                              // llvm.nvvm.ll2d.rp
-+    nvvm_ll2d_rz,                              // llvm.nvvm.ll2d.rz
-+    nvvm_ll2f_rm,                              // llvm.nvvm.ll2f.rm
-+    nvvm_ll2f_rn,                              // llvm.nvvm.ll2f.rn
-+    nvvm_ll2f_rp,                              // llvm.nvvm.ll2f.rp
-+    nvvm_ll2f_rz,                              // llvm.nvvm.ll2f.rz
-+    nvvm_lohi_i2d,                             // llvm.nvvm.lohi.i2d
-+    nvvm_max_i,                                // llvm.nvvm.max.i
-+    nvvm_max_ll,                               // llvm.nvvm.max.ll
-+    nvvm_max_ui,                               // llvm.nvvm.max.ui
-+    nvvm_max_ull,                              // llvm.nvvm.max.ull
-+    nvvm_membar_cta,                           // llvm.nvvm.membar.cta
-+    nvvm_membar_gl,                            // llvm.nvvm.membar.gl
-+    nvvm_membar_sys,                           // llvm.nvvm.membar.sys
-+    nvvm_min_i,                                // llvm.nvvm.min.i
-+    nvvm_min_ll,                               // llvm.nvvm.min.ll
-+    nvvm_min_ui,                               // llvm.nvvm.min.ui
-+    nvvm_min_ull,                              // llvm.nvvm.min.ull
-+    nvvm_move_double,                          // llvm.nvvm.move.double
-+    nvvm_move_float,                           // llvm.nvvm.move.float
-+    nvvm_move_i16,                             // llvm.nvvm.move.i16
-+    nvvm_move_i32,                             // llvm.nvvm.move.i32
-+    nvvm_move_i64,                             // llvm.nvvm.move.i64
-+    nvvm_move_ptr,                             // llvm.nvvm.move.ptr
-+    nvvm_mul_rm_d,                             // llvm.nvvm.mul.rm.d
-+    nvvm_mul_rm_f,                             // llvm.nvvm.mul.rm.f
-+    nvvm_mul_rm_ftz_f,                         // llvm.nvvm.mul.rm.ftz.f
-+    nvvm_mul_rn_d,                             // llvm.nvvm.mul.rn.d
-+    nvvm_mul_rn_f,                             // llvm.nvvm.mul.rn.f
-+    nvvm_mul_rn_ftz_f,                         // llvm.nvvm.mul.rn.ftz.f
-+    nvvm_mul_rp_d,                             // llvm.nvvm.mul.rp.d
-+    nvvm_mul_rp_f,                             // llvm.nvvm.mul.rp.f
-+    nvvm_mul_rp_ftz_f,                         // llvm.nvvm.mul.rp.ftz.f
-+    nvvm_mul_rz_d,                             // llvm.nvvm.mul.rz.d
-+    nvvm_mul_rz_f,                             // llvm.nvvm.mul.rz.f
-+    nvvm_mul_rz_ftz_f,                         // llvm.nvvm.mul.rz.ftz.f
-+    nvvm_mul24_i,                              // llvm.nvvm.mul24.i
-+    nvvm_mul24_ui,                             // llvm.nvvm.mul24.ui
-+    nvvm_mulhi_i,                              // llvm.nvvm.mulhi.i
-+    nvvm_mulhi_ll,                             // llvm.nvvm.mulhi.ll
-+    nvvm_mulhi_ui,                             // llvm.nvvm.mulhi.ui
-+    nvvm_mulhi_ull,                            // llvm.nvvm.mulhi.ull
-+    nvvm_popc_i,                               // llvm.nvvm.popc.i
-+    nvvm_popc_ll,                              // llvm.nvvm.popc.ll
-+    nvvm_prmt,                                 // llvm.nvvm.prmt
-+    nvvm_ptr_constant_to_gen,                  // llvm.nvvm.ptr.constant.to.gen
-+    nvvm_ptr_gen_to_constant,                  // llvm.nvvm.ptr.gen.to.constant
-+    nvvm_ptr_gen_to_global,                    // llvm.nvvm.ptr.gen.to.global
-+    nvvm_ptr_gen_to_local,                     // llvm.nvvm.ptr.gen.to.local
-+    nvvm_ptr_gen_to_param,                     // llvm.nvvm.ptr.gen.to.param
-+    nvvm_ptr_gen_to_shared,                    // llvm.nvvm.ptr.gen.to.shared
-+    nvvm_ptr_global_to_gen,                    // llvm.nvvm.ptr.global.to.gen
-+    nvvm_ptr_local_to_gen,                     // llvm.nvvm.ptr.local.to.gen
-+    nvvm_ptr_shared_to_gen,                    // llvm.nvvm.ptr.shared.to.gen
-+    nvvm_rcp_approx_ftz_d,                     // llvm.nvvm.rcp.approx.ftz.d
-+    nvvm_rcp_rm_d,                             // llvm.nvvm.rcp.rm.d
-+    nvvm_rcp_rm_f,                             // llvm.nvvm.rcp.rm.f
-+    nvvm_rcp_rm_ftz_f,                         // llvm.nvvm.rcp.rm.ftz.f
-+    nvvm_rcp_rn_d,                             // llvm.nvvm.rcp.rn.d
-+    nvvm_rcp_rn_f,                             // llvm.nvvm.rcp.rn.f
-+    nvvm_rcp_rn_ftz_f,                         // llvm.nvvm.rcp.rn.ftz.f
-+    nvvm_rcp_rp_d,                             // llvm.nvvm.rcp.rp.d
-+    nvvm_rcp_rp_f,                             // llvm.nvvm.rcp.rp.f
-+    nvvm_rcp_rp_ftz_f,                         // llvm.nvvm.rcp.rp.ftz.f
-+    nvvm_rcp_rz_d,                             // llvm.nvvm.rcp.rz.d
-+    nvvm_rcp_rz_f,                             // llvm.nvvm.rcp.rz.f
-+    nvvm_rcp_rz_ftz_f,                         // llvm.nvvm.rcp.rz.ftz.f
-+    nvvm_read_ptx_sreg_clock,                  // llvm.nvvm.read.ptx.sreg.clock
-+    nvvm_read_ptx_sreg_clock64,                // llvm.nvvm.read.ptx.sreg.clock64
-+    nvvm_read_ptx_sreg_ctaid_w,                // llvm.nvvm.read.ptx.sreg.ctaid.w
-+    nvvm_read_ptx_sreg_ctaid_x,                // llvm.nvvm.read.ptx.sreg.ctaid.x
-+    nvvm_read_ptx_sreg_ctaid_y,                // llvm.nvvm.read.ptx.sreg.ctaid.y
-+    nvvm_read_ptx_sreg_ctaid_z,                // llvm.nvvm.read.ptx.sreg.ctaid.z
-+    nvvm_read_ptx_sreg_envreg0,                // llvm.nvvm.read.ptx.sreg.envreg0
-+    nvvm_read_ptx_sreg_envreg1,                // llvm.nvvm.read.ptx.sreg.envreg1
-+    nvvm_read_ptx_sreg_envreg10,               // llvm.nvvm.read.ptx.sreg.envreg10
-+    nvvm_read_ptx_sreg_envreg11,               // llvm.nvvm.read.ptx.sreg.envreg11
-+    nvvm_read_ptx_sreg_envreg12,               // llvm.nvvm.read.ptx.sreg.envreg12
-+    nvvm_read_ptx_sreg_envreg13,               // llvm.nvvm.read.ptx.sreg.envreg13
-+    nvvm_read_ptx_sreg_envreg14,               // llvm.nvvm.read.ptx.sreg.envreg14
-+    nvvm_read_ptx_sreg_envreg15,               // llvm.nvvm.read.ptx.sreg.envreg15
-+    nvvm_read_ptx_sreg_envreg16,               // llvm.nvvm.read.ptx.sreg.envreg16
-+    nvvm_read_ptx_sreg_envreg17,               // llvm.nvvm.read.ptx.sreg.envreg17
-+    nvvm_read_ptx_sreg_envreg18,               // llvm.nvvm.read.ptx.sreg.envreg18
-+    nvvm_read_ptx_sreg_envreg19,               // llvm.nvvm.read.ptx.sreg.envreg19
-+    nvvm_read_ptx_sreg_envreg2,                // llvm.nvvm.read.ptx.sreg.envreg2
-+    nvvm_read_ptx_sreg_envreg20,               // llvm.nvvm.read.ptx.sreg.envreg20
-+    nvvm_read_ptx_sreg_envreg21,               // llvm.nvvm.read.ptx.sreg.envreg21
-+    nvvm_read_ptx_sreg_envreg22,               // llvm.nvvm.read.ptx.sreg.envreg22
-+    nvvm_read_ptx_sreg_envreg23,               // llvm.nvvm.read.ptx.sreg.envreg23
-+    nvvm_read_ptx_sreg_envreg24,               // llvm.nvvm.read.ptx.sreg.envreg24
-+    nvvm_read_ptx_sreg_envreg25,               // llvm.nvvm.read.ptx.sreg.envreg25
-+    nvvm_read_ptx_sreg_envreg26,               // llvm.nvvm.read.ptx.sreg.envreg26
-+    nvvm_read_ptx_sreg_envreg27,               // llvm.nvvm.read.ptx.sreg.envreg27
-+    nvvm_read_ptx_sreg_envreg28,               // llvm.nvvm.read.ptx.sreg.envreg28
-+    nvvm_read_ptx_sreg_envreg29,               // llvm.nvvm.read.ptx.sreg.envreg29
-+    nvvm_read_ptx_sreg_envreg3,                // llvm.nvvm.read.ptx.sreg.envreg3
-+    nvvm_read_ptx_sreg_envreg30,               // llvm.nvvm.read.ptx.sreg.envreg30
-+    nvvm_read_ptx_sreg_envreg31,               // llvm.nvvm.read.ptx.sreg.envreg31
-+    nvvm_read_ptx_sreg_envreg4,                // llvm.nvvm.read.ptx.sreg.envreg4
-+    nvvm_read_ptx_sreg_envreg5,                // llvm.nvvm.read.ptx.sreg.envreg5
-+    nvvm_read_ptx_sreg_envreg6,                // llvm.nvvm.read.ptx.sreg.envreg6
-+    nvvm_read_ptx_sreg_envreg7,                // llvm.nvvm.read.ptx.sreg.envreg7
-+    nvvm_read_ptx_sreg_envreg8,                // llvm.nvvm.read.ptx.sreg.envreg8
-+    nvvm_read_ptx_sreg_envreg9,                // llvm.nvvm.read.ptx.sreg.envreg9
-+    nvvm_read_ptx_sreg_gridid,                 // llvm.nvvm.read.ptx.sreg.gridid
-+    nvvm_read_ptx_sreg_laneid,                 // llvm.nvvm.read.ptx.sreg.laneid
-+    nvvm_read_ptx_sreg_lanemask_eq,            // llvm.nvvm.read.ptx.sreg.lanemask.eq
-+    nvvm_read_ptx_sreg_lanemask_ge,            // llvm.nvvm.read.ptx.sreg.lanemask.ge
-+    nvvm_read_ptx_sreg_lanemask_gt,            // llvm.nvvm.read.ptx.sreg.lanemask.gt
-+    nvvm_read_ptx_sreg_lanemask_le,            // llvm.nvvm.read.ptx.sreg.lanemask.le
-+    nvvm_read_ptx_sreg_lanemask_lt,            // llvm.nvvm.read.ptx.sreg.lanemask.lt
-+    nvvm_read_ptx_sreg_nctaid_w,               // llvm.nvvm.read.ptx.sreg.nctaid.w
-+    nvvm_read_ptx_sreg_nctaid_x,               // llvm.nvvm.read.ptx.sreg.nctaid.x
-+    nvvm_read_ptx_sreg_nctaid_y,               // llvm.nvvm.read.ptx.sreg.nctaid.y
-+    nvvm_read_ptx_sreg_nctaid_z,               // llvm.nvvm.read.ptx.sreg.nctaid.z
-+    nvvm_read_ptx_sreg_nsmid,                  // llvm.nvvm.read.ptx.sreg.nsmid
-+    nvvm_read_ptx_sreg_ntid_w,                 // llvm.nvvm.read.ptx.sreg.ntid.w
-+    nvvm_read_ptx_sreg_ntid_x,                 // llvm.nvvm.read.ptx.sreg.ntid.x
-+    nvvm_read_ptx_sreg_ntid_y,                 // llvm.nvvm.read.ptx.sreg.ntid.y
-+    nvvm_read_ptx_sreg_ntid_z,                 // llvm.nvvm.read.ptx.sreg.ntid.z
-+    nvvm_read_ptx_sreg_nwarpid,                // llvm.nvvm.read.ptx.sreg.nwarpid
-+    nvvm_read_ptx_sreg_pm0,                    // llvm.nvvm.read.ptx.sreg.pm0
-+    nvvm_read_ptx_sreg_pm1,                    // llvm.nvvm.read.ptx.sreg.pm1
-+    nvvm_read_ptx_sreg_pm2,                    // llvm.nvvm.read.ptx.sreg.pm2
-+    nvvm_read_ptx_sreg_pm3,                    // llvm.nvvm.read.ptx.sreg.pm3
-+    nvvm_read_ptx_sreg_smid,                   // llvm.nvvm.read.ptx.sreg.smid
-+    nvvm_read_ptx_sreg_tid_w,                  // llvm.nvvm.read.ptx.sreg.tid.w
-+    nvvm_read_ptx_sreg_tid_x,                  // llvm.nvvm.read.ptx.sreg.tid.x
-+    nvvm_read_ptx_sreg_tid_y,                  // llvm.nvvm.read.ptx.sreg.tid.y
-+    nvvm_read_ptx_sreg_tid_z,                  // llvm.nvvm.read.ptx.sreg.tid.z
-+    nvvm_read_ptx_sreg_warpid,                 // llvm.nvvm.read.ptx.sreg.warpid
-+    nvvm_read_ptx_sreg_warpsize,               // llvm.nvvm.read.ptx.sreg.warpsize
-+    nvvm_reflect,                              // llvm.nvvm.reflect
-+    nvvm_rotate_b32,                           // llvm.nvvm.rotate.b32
-+    nvvm_rotate_b64,                           // llvm.nvvm.rotate.b64
-+    nvvm_rotate_right_b64,                     // llvm.nvvm.rotate.right.b64
-+    nvvm_round_d,                              // llvm.nvvm.round.d
-+    nvvm_round_f,                              // llvm.nvvm.round.f
-+    nvvm_round_ftz_f,                          // llvm.nvvm.round.ftz.f
-+    nvvm_rsqrt_approx_d,                       // llvm.nvvm.rsqrt.approx.d
-+    nvvm_rsqrt_approx_f,                       // llvm.nvvm.rsqrt.approx.f
-+    nvvm_rsqrt_approx_ftz_f,                   // llvm.nvvm.rsqrt.approx.ftz.f
-+    nvvm_sad_i,                                // llvm.nvvm.sad.i
-+    nvvm_sad_ui,                               // llvm.nvvm.sad.ui
-+    nvvm_saturate_d,                           // llvm.nvvm.saturate.d
-+    nvvm_saturate_f,                           // llvm.nvvm.saturate.f
-+    nvvm_saturate_ftz_f,                       // llvm.nvvm.saturate.ftz.f
-+    nvvm_shfl_bfly_f32,                        // llvm.nvvm.shfl.bfly.f32
-+    nvvm_shfl_bfly_i32,                        // llvm.nvvm.shfl.bfly.i32
-+    nvvm_shfl_down_f32,                        // llvm.nvvm.shfl.down.f32
-+    nvvm_shfl_down_i32,                        // llvm.nvvm.shfl.down.i32
-+    nvvm_shfl_idx_f32,                         // llvm.nvvm.shfl.idx.f32
-+    nvvm_shfl_idx_i32,                         // llvm.nvvm.shfl.idx.i32
-+    nvvm_shfl_up_f32,                          // llvm.nvvm.shfl.up.f32
-+    nvvm_shfl_up_i32,                          // llvm.nvvm.shfl.up.i32
-+    nvvm_sin_approx_f,                         // llvm.nvvm.sin.approx.f
-+    nvvm_sin_approx_ftz_f,                     // llvm.nvvm.sin.approx.ftz.f
-+    nvvm_sqrt_approx_f,                        // llvm.nvvm.sqrt.approx.f
-+    nvvm_sqrt_approx_ftz_f,                    // llvm.nvvm.sqrt.approx.ftz.f
-+    nvvm_sqrt_f,                               // llvm.nvvm.sqrt.f
-+    nvvm_sqrt_rm_d,                            // llvm.nvvm.sqrt.rm.d
-+    nvvm_sqrt_rm_f,                            // llvm.nvvm.sqrt.rm.f
-+    nvvm_sqrt_rm_ftz_f,                        // llvm.nvvm.sqrt.rm.ftz.f
-+    nvvm_sqrt_rn_d,                            // llvm.nvvm.sqrt.rn.d
-+    nvvm_sqrt_rn_f,                            // llvm.nvvm.sqrt.rn.f
-+    nvvm_sqrt_rn_ftz_f,                        // llvm.nvvm.sqrt.rn.ftz.f
-+    nvvm_sqrt_rp_d,                            // llvm.nvvm.sqrt.rp.d
-+    nvvm_sqrt_rp_f,                            // llvm.nvvm.sqrt.rp.f
-+    nvvm_sqrt_rp_ftz_f,                        // llvm.nvvm.sqrt.rp.ftz.f
-+    nvvm_sqrt_rz_d,                            // llvm.nvvm.sqrt.rz.d
-+    nvvm_sqrt_rz_f,                            // llvm.nvvm.sqrt.rz.f
-+    nvvm_sqrt_rz_ftz_f,                        // llvm.nvvm.sqrt.rz.ftz.f
-+    nvvm_suld_1d_array_i16_clamp,              // llvm.nvvm.suld.1d.array.i16.clamp
-+    nvvm_suld_1d_array_i16_trap,               // llvm.nvvm.suld.1d.array.i16.trap
-+    nvvm_suld_1d_array_i16_zero,               // llvm.nvvm.suld.1d.array.i16.zero
-+    nvvm_suld_1d_array_i32_clamp,              // llvm.nvvm.suld.1d.array.i32.clamp
-+    nvvm_suld_1d_array_i32_trap,               // llvm.nvvm.suld.1d.array.i32.trap
-+    nvvm_suld_1d_array_i32_zero,               // llvm.nvvm.suld.1d.array.i32.zero
-+    nvvm_suld_1d_array_i64_clamp,              // llvm.nvvm.suld.1d.array.i64.clamp
-+    nvvm_suld_1d_array_i64_trap,               // llvm.nvvm.suld.1d.array.i64.trap
-+    nvvm_suld_1d_array_i64_zero,               // llvm.nvvm.suld.1d.array.i64.zero
-+    nvvm_suld_1d_array_i8_clamp,               // llvm.nvvm.suld.1d.array.i8.clamp
-+    nvvm_suld_1d_array_i8_trap,                // llvm.nvvm.suld.1d.array.i8.trap
-+    nvvm_suld_1d_array_i8_zero,                // llvm.nvvm.suld.1d.array.i8.zero
-+    nvvm_suld_1d_array_v2i16_clamp,            // llvm.nvvm.suld.1d.array.v2i16.clamp
-+    nvvm_suld_1d_array_v2i16_trap,             // llvm.nvvm.suld.1d.array.v2i16.trap
-+    nvvm_suld_1d_array_v2i16_zero,             // llvm.nvvm.suld.1d.array.v2i16.zero
-+    nvvm_suld_1d_array_v2i32_clamp,            // llvm.nvvm.suld.1d.array.v2i32.clamp
-+    nvvm_suld_1d_array_v2i32_trap,             // llvm.nvvm.suld.1d.array.v2i32.trap
-+    nvvm_suld_1d_array_v2i32_zero,             // llvm.nvvm.suld.1d.array.v2i32.zero
-+    nvvm_suld_1d_array_v2i64_clamp,            // llvm.nvvm.suld.1d.array.v2i64.clamp
-+    nvvm_suld_1d_array_v2i64_trap,             // llvm.nvvm.suld.1d.array.v2i64.trap
-+    nvvm_suld_1d_array_v2i64_zero,             // llvm.nvvm.suld.1d.array.v2i64.zero
-+    nvvm_suld_1d_array_v2i8_clamp,             // llvm.nvvm.suld.1d.array.v2i8.clamp
-+    nvvm_suld_1d_array_v2i8_trap,              // llvm.nvvm.suld.1d.array.v2i8.trap
-+    nvvm_suld_1d_array_v2i8_zero,              // llvm.nvvm.suld.1d.array.v2i8.zero
-+    nvvm_suld_1d_array_v4i16_clamp,            // llvm.nvvm.suld.1d.array.v4i16.clamp
-+    nvvm_suld_1d_array_v4i16_trap,             // llvm.nvvm.suld.1d.array.v4i16.trap
-+    nvvm_suld_1d_array_v4i16_zero,             // llvm.nvvm.suld.1d.array.v4i16.zero
-+    nvvm_suld_1d_array_v4i32_clamp,            // llvm.nvvm.suld.1d.array.v4i32.clamp
-+    nvvm_suld_1d_array_v4i32_trap,             // llvm.nvvm.suld.1d.array.v4i32.trap
-+    nvvm_suld_1d_array_v4i32_zero,             // llvm.nvvm.suld.1d.array.v4i32.zero
-+    nvvm_suld_1d_array_v4i8_clamp,             // llvm.nvvm.suld.1d.array.v4i8.clamp
-+    nvvm_suld_1d_array_v4i8_trap,              // llvm.nvvm.suld.1d.array.v4i8.trap
-+    nvvm_suld_1d_array_v4i8_zero,              // llvm.nvvm.suld.1d.array.v4i8.zero
-+    nvvm_suld_1d_i16_clamp,                    // llvm.nvvm.suld.1d.i16.clamp
-+    nvvm_suld_1d_i16_trap,                     // llvm.nvvm.suld.1d.i16.trap
-+    nvvm_suld_1d_i16_zero,                     // llvm.nvvm.suld.1d.i16.zero
-+    nvvm_suld_1d_i32_clamp,                    // llvm.nvvm.suld.1d.i32.clamp
-+    nvvm_suld_1d_i32_trap,                     // llvm.nvvm.suld.1d.i32.trap
-+    nvvm_suld_1d_i32_zero,                     // llvm.nvvm.suld.1d.i32.zero
-+    nvvm_suld_1d_i64_clamp,                    // llvm.nvvm.suld.1d.i64.clamp
-+    nvvm_suld_1d_i64_trap,                     // llvm.nvvm.suld.1d.i64.trap
-+    nvvm_suld_1d_i64_zero,                     // llvm.nvvm.suld.1d.i64.zero
-+    nvvm_suld_1d_i8_clamp,                     // llvm.nvvm.suld.1d.i8.clamp
-+    nvvm_suld_1d_i8_trap,                      // llvm.nvvm.suld.1d.i8.trap
-+    nvvm_suld_1d_i8_zero,                      // llvm.nvvm.suld.1d.i8.zero
-+    nvvm_suld_1d_v2i16_clamp,                  // llvm.nvvm.suld.1d.v2i16.clamp
-+    nvvm_suld_1d_v2i16_trap,                   // llvm.nvvm.suld.1d.v2i16.trap
-+    nvvm_suld_1d_v2i16_zero,                   // llvm.nvvm.suld.1d.v2i16.zero
-+    nvvm_suld_1d_v2i32_clamp,                  // llvm.nvvm.suld.1d.v2i32.clamp
-+    nvvm_suld_1d_v2i32_trap,                   // llvm.nvvm.suld.1d.v2i32.trap
-+    nvvm_suld_1d_v2i32_zero,                   // llvm.nvvm.suld.1d.v2i32.zero
-+    nvvm_suld_1d_v2i64_clamp,                  // llvm.nvvm.suld.1d.v2i64.clamp
-+    nvvm_suld_1d_v2i64_trap,                   // llvm.nvvm.suld.1d.v2i64.trap
-+    nvvm_suld_1d_v2i64_zero,                   // llvm.nvvm.suld.1d.v2i64.zero
-+    nvvm_suld_1d_v2i8_clamp,                   // llvm.nvvm.suld.1d.v2i8.clamp
-+    nvvm_suld_1d_v2i8_trap,                    // llvm.nvvm.suld.1d.v2i8.trap
-+    nvvm_suld_1d_v2i8_zero,                    // llvm.nvvm.suld.1d.v2i8.zero
-+    nvvm_suld_1d_v4i16_clamp,                  // llvm.nvvm.suld.1d.v4i16.clamp
-+    nvvm_suld_1d_v4i16_trap,                   // llvm.nvvm.suld.1d.v4i16.trap
-+    nvvm_suld_1d_v4i16_zero,                   // llvm.nvvm.suld.1d.v4i16.zero
-+    nvvm_suld_1d_v4i32_clamp,                  // llvm.nvvm.suld.1d.v4i32.clamp
-+    nvvm_suld_1d_v4i32_trap,                   // llvm.nvvm.suld.1d.v4i32.trap
-+    nvvm_suld_1d_v4i32_zero,                   // llvm.nvvm.suld.1d.v4i32.zero
-+    nvvm_suld_1d_v4i8_clamp,                   // llvm.nvvm.suld.1d.v4i8.clamp
-+    nvvm_suld_1d_v4i8_trap,                    // llvm.nvvm.suld.1d.v4i8.trap
-+    nvvm_suld_1d_v4i8_zero,                    // llvm.nvvm.suld.1d.v4i8.zero
-+    nvvm_suld_2d_array_i16_clamp,              // llvm.nvvm.suld.2d.array.i16.clamp
-+    nvvm_suld_2d_array_i16_trap,               // llvm.nvvm.suld.2d.array.i16.trap
-+    nvvm_suld_2d_array_i16_zero,               // llvm.nvvm.suld.2d.array.i16.zero
-+    nvvm_suld_2d_array_i32_clamp,              // llvm.nvvm.suld.2d.array.i32.clamp
-+    nvvm_suld_2d_array_i32_trap,               // llvm.nvvm.suld.2d.array.i32.trap
-+    nvvm_suld_2d_array_i32_zero,               // llvm.nvvm.suld.2d.array.i32.zero
-+    nvvm_suld_2d_array_i64_clamp,              // llvm.nvvm.suld.2d.array.i64.clamp
-+    nvvm_suld_2d_array_i64_trap,               // llvm.nvvm.suld.2d.array.i64.trap
-+    nvvm_suld_2d_array_i64_zero,               // llvm.nvvm.suld.2d.array.i64.zero
-+    nvvm_suld_2d_array_i8_clamp,               // llvm.nvvm.suld.2d.array.i8.clamp
-+    nvvm_suld_2d_array_i8_trap,                // llvm.nvvm.suld.2d.array.i8.trap
-+    nvvm_suld_2d_array_i8_zero,                // llvm.nvvm.suld.2d.array.i8.zero
-+    nvvm_suld_2d_array_v2i16_clamp,            // llvm.nvvm.suld.2d.array.v2i16.clamp
-+    nvvm_suld_2d_array_v2i16_trap,             // llvm.nvvm.suld.2d.array.v2i16.trap
-+    nvvm_suld_2d_array_v2i16_zero,             // llvm.nvvm.suld.2d.array.v2i16.zero
-+    nvvm_suld_2d_array_v2i32_clamp,            // llvm.nvvm.suld.2d.array.v2i32.clamp
-+    nvvm_suld_2d_array_v2i32_trap,             // llvm.nvvm.suld.2d.array.v2i32.trap
-+    nvvm_suld_2d_array_v2i32_zero,             // llvm.nvvm.suld.2d.array.v2i32.zero
-+    nvvm_suld_2d_array_v2i64_clamp,            // llvm.nvvm.suld.2d.array.v2i64.clamp
-+    nvvm_suld_2d_array_v2i64_trap,             // llvm.nvvm.suld.2d.array.v2i64.trap
-+    nvvm_suld_2d_array_v2i64_zero,             // llvm.nvvm.suld.2d.array.v2i64.zero
-+    nvvm_suld_2d_array_v2i8_clamp,             // llvm.nvvm.suld.2d.array.v2i8.clamp
-+    nvvm_suld_2d_array_v2i8_trap,              // llvm.nvvm.suld.2d.array.v2i8.trap
-+    nvvm_suld_2d_array_v2i8_zero,              // llvm.nvvm.suld.2d.array.v2i8.zero
-+    nvvm_suld_2d_array_v4i16_clamp,            // llvm.nvvm.suld.2d.array.v4i16.clamp
-+    nvvm_suld_2d_array_v4i16_trap,             // llvm.nvvm.suld.2d.array.v4i16.trap
-+    nvvm_suld_2d_array_v4i16_zero,             // llvm.nvvm.suld.2d.array.v4i16.zero
-+    nvvm_suld_2d_array_v4i32_clamp,            // llvm.nvvm.suld.2d.array.v4i32.clamp
-+    nvvm_suld_2d_array_v4i32_trap,             // llvm.nvvm.suld.2d.array.v4i32.trap
-+    nvvm_suld_2d_array_v4i32_zero,             // llvm.nvvm.suld.2d.array.v4i32.zero
-+    nvvm_suld_2d_array_v4i8_clamp,             // llvm.nvvm.suld.2d.array.v4i8.clamp
-+    nvvm_suld_2d_array_v4i8_trap,              // llvm.nvvm.suld.2d.array.v4i8.trap
-+    nvvm_suld_2d_array_v4i8_zero,              // llvm.nvvm.suld.2d.array.v4i8.zero
-+    nvvm_suld_2d_i16_clamp,                    // llvm.nvvm.suld.2d.i16.clamp
-+    nvvm_suld_2d_i16_trap,                     // llvm.nvvm.suld.2d.i16.trap
-+    nvvm_suld_2d_i16_zero,                     // llvm.nvvm.suld.2d.i16.zero
-+    nvvm_suld_2d_i32_clamp,                    // llvm.nvvm.suld.2d.i32.clamp
-+    nvvm_suld_2d_i32_trap,                     // llvm.nvvm.suld.2d.i32.trap
-+    nvvm_suld_2d_i32_zero,                     // llvm.nvvm.suld.2d.i32.zero
-+    nvvm_suld_2d_i64_clamp,                    // llvm.nvvm.suld.2d.i64.clamp
-+    nvvm_suld_2d_i64_trap,                     // llvm.nvvm.suld.2d.i64.trap
-+    nvvm_suld_2d_i64_zero,                     // llvm.nvvm.suld.2d.i64.zero
-+    nvvm_suld_2d_i8_clamp,                     // llvm.nvvm.suld.2d.i8.clamp
-+    nvvm_suld_2d_i8_trap,                      // llvm.nvvm.suld.2d.i8.trap
-+    nvvm_suld_2d_i8_zero,                      // llvm.nvvm.suld.2d.i8.zero
-+    nvvm_suld_2d_v2i16_clamp,                  // llvm.nvvm.suld.2d.v2i16.clamp
-+    nvvm_suld_2d_v2i16_trap,                   // llvm.nvvm.suld.2d.v2i16.trap
-+    nvvm_suld_2d_v2i16_zero,                   // llvm.nvvm.suld.2d.v2i16.zero
-+    nvvm_suld_2d_v2i32_clamp,                  // llvm.nvvm.suld.2d.v2i32.clamp
-+    nvvm_suld_2d_v2i32_trap,                   // llvm.nvvm.suld.2d.v2i32.trap
-+    nvvm_suld_2d_v2i32_zero,                   // llvm.nvvm.suld.2d.v2i32.zero
-+    nvvm_suld_2d_v2i64_clamp,                  // llvm.nvvm.suld.2d.v2i64.clamp
-+    nvvm_suld_2d_v2i64_trap,                   // llvm.nvvm.suld.2d.v2i64.trap
-+    nvvm_suld_2d_v2i64_zero,                   // llvm.nvvm.suld.2d.v2i64.zero
-+    nvvm_suld_2d_v2i8_clamp,                   // llvm.nvvm.suld.2d.v2i8.clamp
-+    nvvm_suld_2d_v2i8_trap,                    // llvm.nvvm.suld.2d.v2i8.trap
-+    nvvm_suld_2d_v2i8_zero,                    // llvm.nvvm.suld.2d.v2i8.zero
-+    nvvm_suld_2d_v4i16_clamp,                  // llvm.nvvm.suld.2d.v4i16.clamp
-+    nvvm_suld_2d_v4i16_trap,                   // llvm.nvvm.suld.2d.v4i16.trap
-+    nvvm_suld_2d_v4i16_zero,                   // llvm.nvvm.suld.2d.v4i16.zero
-+    nvvm_suld_2d_v4i32_clamp,                  // llvm.nvvm.suld.2d.v4i32.clamp
-+    nvvm_suld_2d_v4i32_trap,                   // llvm.nvvm.suld.2d.v4i32.trap
-+    nvvm_suld_2d_v4i32_zero,                   // llvm.nvvm.suld.2d.v4i32.zero
-+    nvvm_suld_2d_v4i8_clamp,                   // llvm.nvvm.suld.2d.v4i8.clamp
-+    nvvm_suld_2d_v4i8_trap,                    // llvm.nvvm.suld.2d.v4i8.trap
-+    nvvm_suld_2d_v4i8_zero,                    // llvm.nvvm.suld.2d.v4i8.zero
-+    nvvm_suld_3d_i16_clamp,                    // llvm.nvvm.suld.3d.i16.clamp
-+    nvvm_suld_3d_i16_trap,                     // llvm.nvvm.suld.3d.i16.trap
-+    nvvm_suld_3d_i16_zero,                     // llvm.nvvm.suld.3d.i16.zero
-+    nvvm_suld_3d_i32_clamp,                    // llvm.nvvm.suld.3d.i32.clamp
-+    nvvm_suld_3d_i32_trap,                     // llvm.nvvm.suld.3d.i32.trap
-+    nvvm_suld_3d_i32_zero,                     // llvm.nvvm.suld.3d.i32.zero
-+    nvvm_suld_3d_i64_clamp,                    // llvm.nvvm.suld.3d.i64.clamp
-+    nvvm_suld_3d_i64_trap,                     // llvm.nvvm.suld.3d.i64.trap
-+    nvvm_suld_3d_i64_zero,                     // llvm.nvvm.suld.3d.i64.zero
-+    nvvm_suld_3d_i8_clamp,                     // llvm.nvvm.suld.3d.i8.clamp
-+    nvvm_suld_3d_i8_trap,                      // llvm.nvvm.suld.3d.i8.trap
-+    nvvm_suld_3d_i8_zero,                      // llvm.nvvm.suld.3d.i8.zero
-+    nvvm_suld_3d_v2i16_clamp,                  // llvm.nvvm.suld.3d.v2i16.clamp
-+    nvvm_suld_3d_v2i16_trap,                   // llvm.nvvm.suld.3d.v2i16.trap
-+    nvvm_suld_3d_v2i16_zero,                   // llvm.nvvm.suld.3d.v2i16.zero
-+    nvvm_suld_3d_v2i32_clamp,                  // llvm.nvvm.suld.3d.v2i32.clamp
-+    nvvm_suld_3d_v2i32_trap,                   // llvm.nvvm.suld.3d.v2i32.trap
-+    nvvm_suld_3d_v2i32_zero,                   // llvm.nvvm.suld.3d.v2i32.zero
-+    nvvm_suld_3d_v2i64_clamp,                  // llvm.nvvm.suld.3d.v2i64.clamp
-+    nvvm_suld_3d_v2i64_trap,                   // llvm.nvvm.suld.3d.v2i64.trap
-+    nvvm_suld_3d_v2i64_zero,                   // llvm.nvvm.suld.3d.v2i64.zero
-+    nvvm_suld_3d_v2i8_clamp,                   // llvm.nvvm.suld.3d.v2i8.clamp
-+    nvvm_suld_3d_v2i8_trap,                    // llvm.nvvm.suld.3d.v2i8.trap
-+    nvvm_suld_3d_v2i8_zero,                    // llvm.nvvm.suld.3d.v2i8.zero
-+    nvvm_suld_3d_v4i16_clamp,                  // llvm.nvvm.suld.3d.v4i16.clamp
-+    nvvm_suld_3d_v4i16_trap,                   // llvm.nvvm.suld.3d.v4i16.trap
-+    nvvm_suld_3d_v4i16_zero,                   // llvm.nvvm.suld.3d.v4i16.zero
-+    nvvm_suld_3d_v4i32_clamp,                  // llvm.nvvm.suld.3d.v4i32.clamp
-+    nvvm_suld_3d_v4i32_trap,                   // llvm.nvvm.suld.3d.v4i32.trap
-+    nvvm_suld_3d_v4i32_zero,                   // llvm.nvvm.suld.3d.v4i32.zero
-+    nvvm_suld_3d_v4i8_clamp,                   // llvm.nvvm.suld.3d.v4i8.clamp
-+    nvvm_suld_3d_v4i8_trap,                    // llvm.nvvm.suld.3d.v4i8.trap
-+    nvvm_suld_3d_v4i8_zero,                    // llvm.nvvm.suld.3d.v4i8.zero
-+    nvvm_suq_array_size,                       // llvm.nvvm.suq.array.size
-+    nvvm_suq_channel_data_type,                // llvm.nvvm.suq.channel.data.type
-+    nvvm_suq_channel_order,                    // llvm.nvvm.suq.channel.order
-+    nvvm_suq_depth,                            // llvm.nvvm.suq.depth
-+    nvvm_suq_height,                           // llvm.nvvm.suq.height
-+    nvvm_suq_width,                            // llvm.nvvm.suq.width
-+    nvvm_sust_b_1d_array_i16_clamp,            // llvm.nvvm.sust.b.1d.array.i16.clamp
-+    nvvm_sust_b_1d_array_i16_trap,             // llvm.nvvm.sust.b.1d.array.i16.trap
-+    nvvm_sust_b_1d_array_i16_zero,             // llvm.nvvm.sust.b.1d.array.i16.zero
-+    nvvm_sust_b_1d_array_i32_clamp,            // llvm.nvvm.sust.b.1d.array.i32.clamp
-+    nvvm_sust_b_1d_array_i32_trap,             // llvm.nvvm.sust.b.1d.array.i32.trap
-+    nvvm_sust_b_1d_array_i32_zero,             // llvm.nvvm.sust.b.1d.array.i32.zero
-+    nvvm_sust_b_1d_array_i64_clamp,            // llvm.nvvm.sust.b.1d.array.i64.clamp
-+    nvvm_sust_b_1d_array_i64_trap,             // llvm.nvvm.sust.b.1d.array.i64.trap
-+    nvvm_sust_b_1d_array_i64_zero,             // llvm.nvvm.sust.b.1d.array.i64.zero
-+    nvvm_sust_b_1d_array_i8_clamp,             // llvm.nvvm.sust.b.1d.array.i8.clamp
-+    nvvm_sust_b_1d_array_i8_trap,              // llvm.nvvm.sust.b.1d.array.i8.trap
-+    nvvm_sust_b_1d_array_i8_zero,              // llvm.nvvm.sust.b.1d.array.i8.zero
-+    nvvm_sust_b_1d_array_v2i16_clamp,          // llvm.nvvm.sust.b.1d.array.v2i16.clamp
-+    nvvm_sust_b_1d_array_v2i16_trap,           // llvm.nvvm.sust.b.1d.array.v2i16.trap
-+    nvvm_sust_b_1d_array_v2i16_zero,           // llvm.nvvm.sust.b.1d.array.v2i16.zero
-+    nvvm_sust_b_1d_array_v2i32_clamp,          // llvm.nvvm.sust.b.1d.array.v2i32.clamp
-+    nvvm_sust_b_1d_array_v2i32_trap,           // llvm.nvvm.sust.b.1d.array.v2i32.trap
-+    nvvm_sust_b_1d_array_v2i32_zero,           // llvm.nvvm.sust.b.1d.array.v2i32.zero
-+    nvvm_sust_b_1d_array_v2i64_clamp,          // llvm.nvvm.sust.b.1d.array.v2i64.clamp
-+    nvvm_sust_b_1d_array_v2i64_trap,           // llvm.nvvm.sust.b.1d.array.v2i64.trap
-+    nvvm_sust_b_1d_array_v2i64_zero,           // llvm.nvvm.sust.b.1d.array.v2i64.zero
-+    nvvm_sust_b_1d_array_v2i8_clamp,           // llvm.nvvm.sust.b.1d.array.v2i8.clamp
-+    nvvm_sust_b_1d_array_v2i8_trap,            // llvm.nvvm.sust.b.1d.array.v2i8.trap
-+    nvvm_sust_b_1d_array_v2i8_zero,            // llvm.nvvm.sust.b.1d.array.v2i8.zero
-+    nvvm_sust_b_1d_array_v4i16_clamp,          // llvm.nvvm.sust.b.1d.array.v4i16.clamp
-+    nvvm_sust_b_1d_array_v4i16_trap,           // llvm.nvvm.sust.b.1d.array.v4i16.trap
-+    nvvm_sust_b_1d_array_v4i16_zero,           // llvm.nvvm.sust.b.1d.array.v4i16.zero
-+    nvvm_sust_b_1d_array_v4i32_clamp,          // llvm.nvvm.sust.b.1d.array.v4i32.clamp
-+    nvvm_sust_b_1d_array_v4i32_trap,           // llvm.nvvm.sust.b.1d.array.v4i32.trap
-+    nvvm_sust_b_1d_array_v4i32_zero,           // llvm.nvvm.sust.b.1d.array.v4i32.zero
-+    nvvm_sust_b_1d_array_v4i8_clamp,           // llvm.nvvm.sust.b.1d.array.v4i8.clamp
-+    nvvm_sust_b_1d_array_v4i8_trap,            // llvm.nvvm.sust.b.1d.array.v4i8.trap
-+    nvvm_sust_b_1d_array_v4i8_zero,            // llvm.nvvm.sust.b.1d.array.v4i8.zero
-+    nvvm_sust_b_1d_i16_clamp,                  // llvm.nvvm.sust.b.1d.i16.clamp
-+    nvvm_sust_b_1d_i16_trap,                   // llvm.nvvm.sust.b.1d.i16.trap
-+    nvvm_sust_b_1d_i16_zero,                   // llvm.nvvm.sust.b.1d.i16.zero
-+    nvvm_sust_b_1d_i32_clamp,                  // llvm.nvvm.sust.b.1d.i32.clamp
-+    nvvm_sust_b_1d_i32_trap,                   // llvm.nvvm.sust.b.1d.i32.trap
-+    nvvm_sust_b_1d_i32_zero,                   // llvm.nvvm.sust.b.1d.i32.zero
-+    nvvm_sust_b_1d_i64_clamp,                  // llvm.nvvm.sust.b.1d.i64.clamp
-+    nvvm_sust_b_1d_i64_trap,                   // llvm.nvvm.sust.b.1d.i64.trap
-+    nvvm_sust_b_1d_i64_zero,                   // llvm.nvvm.sust.b.1d.i64.zero
-+    nvvm_sust_b_1d_i8_clamp,                   // llvm.nvvm.sust.b.1d.i8.clamp
-+    nvvm_sust_b_1d_i8_trap,                    // llvm.nvvm.sust.b.1d.i8.trap
-+    nvvm_sust_b_1d_i8_zero,                    // llvm.nvvm.sust.b.1d.i8.zero
-+    nvvm_sust_b_1d_v2i16_clamp,                // llvm.nvvm.sust.b.1d.v2i16.clamp
-+    nvvm_sust_b_1d_v2i16_trap,                 // llvm.nvvm.sust.b.1d.v2i16.trap
-+    nvvm_sust_b_1d_v2i16_zero,                 // llvm.nvvm.sust.b.1d.v2i16.zero
-+    nvvm_sust_b_1d_v2i32_clamp,                // llvm.nvvm.sust.b.1d.v2i32.clamp
-+    nvvm_sust_b_1d_v2i32_trap,                 // llvm.nvvm.sust.b.1d.v2i32.trap
-+    nvvm_sust_b_1d_v2i32_zero,                 // llvm.nvvm.sust.b.1d.v2i32.zero
-+    nvvm_sust_b_1d_v2i64_clamp,                // llvm.nvvm.sust.b.1d.v2i64.clamp
-+    nvvm_sust_b_1d_v2i64_trap,                 // llvm.nvvm.sust.b.1d.v2i64.trap
-+    nvvm_sust_b_1d_v2i64_zero,                 // llvm.nvvm.sust.b.1d.v2i64.zero
-+    nvvm_sust_b_1d_v2i8_clamp,                 // llvm.nvvm.sust.b.1d.v2i8.clamp
-+    nvvm_sust_b_1d_v2i8_trap,                  // llvm.nvvm.sust.b.1d.v2i8.trap
-+    nvvm_sust_b_1d_v2i8_zero,                  // llvm.nvvm.sust.b.1d.v2i8.zero
-+    nvvm_sust_b_1d_v4i16_clamp,                // llvm.nvvm.sust.b.1d.v4i16.clamp
-+    nvvm_sust_b_1d_v4i16_trap,                 // llvm.nvvm.sust.b.1d.v4i16.trap
-+    nvvm_sust_b_1d_v4i16_zero,                 // llvm.nvvm.sust.b.1d.v4i16.zero
-+    nvvm_sust_b_1d_v4i32_clamp,                // llvm.nvvm.sust.b.1d.v4i32.clamp
-+    nvvm_sust_b_1d_v4i32_trap,                 // llvm.nvvm.sust.b.1d.v4i32.trap
-+    nvvm_sust_b_1d_v4i32_zero,                 // llvm.nvvm.sust.b.1d.v4i32.zero
-+    nvvm_sust_b_1d_v4i8_clamp,                 // llvm.nvvm.sust.b.1d.v4i8.clamp
-+    nvvm_sust_b_1d_v4i8_trap,                  // llvm.nvvm.sust.b.1d.v4i8.trap
-+    nvvm_sust_b_1d_v4i8_zero,                  // llvm.nvvm.sust.b.1d.v4i8.zero
-+    nvvm_sust_b_2d_array_i16_clamp,            // llvm.nvvm.sust.b.2d.array.i16.clamp
-+    nvvm_sust_b_2d_array_i16_trap,             // llvm.nvvm.sust.b.2d.array.i16.trap
-+    nvvm_sust_b_2d_array_i16_zero,             // llvm.nvvm.sust.b.2d.array.i16.zero
-+    nvvm_sust_b_2d_array_i32_clamp,            // llvm.nvvm.sust.b.2d.array.i32.clamp
-+    nvvm_sust_b_2d_array_i32_trap,             // llvm.nvvm.sust.b.2d.array.i32.trap
-+    nvvm_sust_b_2d_array_i32_zero,             // llvm.nvvm.sust.b.2d.array.i32.zero
-+    nvvm_sust_b_2d_array_i64_clamp,            // llvm.nvvm.sust.b.2d.array.i64.clamp
-+    nvvm_sust_b_2d_array_i64_trap,             // llvm.nvvm.sust.b.2d.array.i64.trap
-+    nvvm_sust_b_2d_array_i64_zero,             // llvm.nvvm.sust.b.2d.array.i64.zero
-+    nvvm_sust_b_2d_array_i8_clamp,             // llvm.nvvm.sust.b.2d.array.i8.clamp
-+    nvvm_sust_b_2d_array_i8_trap,              // llvm.nvvm.sust.b.2d.array.i8.trap
-+    nvvm_sust_b_2d_array_i8_zero,              // llvm.nvvm.sust.b.2d.array.i8.zero
-+    nvvm_sust_b_2d_array_v2i16_clamp,          // llvm.nvvm.sust.b.2d.array.v2i16.clamp
-+    nvvm_sust_b_2d_array_v2i16_trap,           // llvm.nvvm.sust.b.2d.array.v2i16.trap
-+    nvvm_sust_b_2d_array_v2i16_zero,           // llvm.nvvm.sust.b.2d.array.v2i16.zero
-+    nvvm_sust_b_2d_array_v2i32_clamp,          // llvm.nvvm.sust.b.2d.array.v2i32.clamp
-+    nvvm_sust_b_2d_array_v2i32_trap,           // llvm.nvvm.sust.b.2d.array.v2i32.trap
-+    nvvm_sust_b_2d_array_v2i32_zero,           // llvm.nvvm.sust.b.2d.array.v2i32.zero
-+    nvvm_sust_b_2d_array_v2i64_clamp,          // llvm.nvvm.sust.b.2d.array.v2i64.clamp
-+    nvvm_sust_b_2d_array_v2i64_trap,           // llvm.nvvm.sust.b.2d.array.v2i64.trap
-+    nvvm_sust_b_2d_array_v2i64_zero,           // llvm.nvvm.sust.b.2d.array.v2i64.zero
-+    nvvm_sust_b_2d_array_v2i8_clamp,           // llvm.nvvm.sust.b.2d.array.v2i8.clamp
-+    nvvm_sust_b_2d_array_v2i8_trap,            // llvm.nvvm.sust.b.2d.array.v2i8.trap
-+    nvvm_sust_b_2d_array_v2i8_zero,            // llvm.nvvm.sust.b.2d.array.v2i8.zero
-+    nvvm_sust_b_2d_array_v4i16_clamp,          // llvm.nvvm.sust.b.2d.array.v4i16.clamp
-+    nvvm_sust_b_2d_array_v4i16_trap,           // llvm.nvvm.sust.b.2d.array.v4i16.trap
-+    nvvm_sust_b_2d_array_v4i16_zero,           // llvm.nvvm.sust.b.2d.array.v4i16.zero
-+    nvvm_sust_b_2d_array_v4i32_clamp,          // llvm.nvvm.sust.b.2d.array.v4i32.clamp
-+    nvvm_sust_b_2d_array_v4i32_trap,           // llvm.nvvm.sust.b.2d.array.v4i32.trap
-+    nvvm_sust_b_2d_array_v4i32_zero,           // llvm.nvvm.sust.b.2d.array.v4i32.zero
-+    nvvm_sust_b_2d_array_v4i8_clamp,           // llvm.nvvm.sust.b.2d.array.v4i8.clamp
-+    nvvm_sust_b_2d_array_v4i8_trap,            // llvm.nvvm.sust.b.2d.array.v4i8.trap
-+    nvvm_sust_b_2d_array_v4i8_zero,            // llvm.nvvm.sust.b.2d.array.v4i8.zero
-+    nvvm_sust_b_2d_i16_clamp,                  // llvm.nvvm.sust.b.2d.i16.clamp
-+    nvvm_sust_b_2d_i16_trap,                   // llvm.nvvm.sust.b.2d.i16.trap
-+    nvvm_sust_b_2d_i16_zero,                   // llvm.nvvm.sust.b.2d.i16.zero
-+    nvvm_sust_b_2d_i32_clamp,                  // llvm.nvvm.sust.b.2d.i32.clamp
-+    nvvm_sust_b_2d_i32_trap,                   // llvm.nvvm.sust.b.2d.i32.trap
-+    nvvm_sust_b_2d_i32_zero,                   // llvm.nvvm.sust.b.2d.i32.zero
-+    nvvm_sust_b_2d_i64_clamp,                  // llvm.nvvm.sust.b.2d.i64.clamp
-+    nvvm_sust_b_2d_i64_trap,                   // llvm.nvvm.sust.b.2d.i64.trap
-+    nvvm_sust_b_2d_i64_zero,                   // llvm.nvvm.sust.b.2d.i64.zero
-+    nvvm_sust_b_2d_i8_clamp,                   // llvm.nvvm.sust.b.2d.i8.clamp
-+    nvvm_sust_b_2d_i8_trap,                    // llvm.nvvm.sust.b.2d.i8.trap
-+    nvvm_sust_b_2d_i8_zero,                    // llvm.nvvm.sust.b.2d.i8.zero
-+    nvvm_sust_b_2d_v2i16_clamp,                // llvm.nvvm.sust.b.2d.v2i16.clamp
-+    nvvm_sust_b_2d_v2i16_trap,                 // llvm.nvvm.sust.b.2d.v2i16.trap
-+    nvvm_sust_b_2d_v2i16_zero,                 // llvm.nvvm.sust.b.2d.v2i16.zero
-+    nvvm_sust_b_2d_v2i32_clamp,                // llvm.nvvm.sust.b.2d.v2i32.clamp
-+    nvvm_sust_b_2d_v2i32_trap,                 // llvm.nvvm.sust.b.2d.v2i32.trap
-+    nvvm_sust_b_2d_v2i32_zero,                 // llvm.nvvm.sust.b.2d.v2i32.zero
-+    nvvm_sust_b_2d_v2i64_clamp,                // llvm.nvvm.sust.b.2d.v2i64.clamp
-+    nvvm_sust_b_2d_v2i64_trap,                 // llvm.nvvm.sust.b.2d.v2i64.trap
-+    nvvm_sust_b_2d_v2i64_zero,                 // llvm.nvvm.sust.b.2d.v2i64.zero
-+    nvvm_sust_b_2d_v2i8_clamp,                 // llvm.nvvm.sust.b.2d.v2i8.clamp
-+    nvvm_sust_b_2d_v2i8_trap,                  // llvm.nvvm.sust.b.2d.v2i8.trap
-+    nvvm_sust_b_2d_v2i8_zero,                  // llvm.nvvm.sust.b.2d.v2i8.zero
-+    nvvm_sust_b_2d_v4i16_clamp,                // llvm.nvvm.sust.b.2d.v4i16.clamp
-+    nvvm_sust_b_2d_v4i16_trap,                 // llvm.nvvm.sust.b.2d.v4i16.trap
-+    nvvm_sust_b_2d_v4i16_zero,                 // llvm.nvvm.sust.b.2d.v4i16.zero
-+    nvvm_sust_b_2d_v4i32_clamp,                // llvm.nvvm.sust.b.2d.v4i32.clamp
-+    nvvm_sust_b_2d_v4i32_trap,                 // llvm.nvvm.sust.b.2d.v4i32.trap
-+    nvvm_sust_b_2d_v4i32_zero,                 // llvm.nvvm.sust.b.2d.v4i32.zero
-+    nvvm_sust_b_2d_v4i8_clamp,                 // llvm.nvvm.sust.b.2d.v4i8.clamp
-+    nvvm_sust_b_2d_v4i8_trap,                  // llvm.nvvm.sust.b.2d.v4i8.trap
-+    nvvm_sust_b_2d_v4i8_zero,                  // llvm.nvvm.sust.b.2d.v4i8.zero
-+    nvvm_sust_b_3d_i16_clamp,                  // llvm.nvvm.sust.b.3d.i16.clamp
-+    nvvm_sust_b_3d_i16_trap,                   // llvm.nvvm.sust.b.3d.i16.trap
-+    nvvm_sust_b_3d_i16_zero,                   // llvm.nvvm.sust.b.3d.i16.zero
-+    nvvm_sust_b_3d_i32_clamp,                  // llvm.nvvm.sust.b.3d.i32.clamp
-+    nvvm_sust_b_3d_i32_trap,                   // llvm.nvvm.sust.b.3d.i32.trap
-+    nvvm_sust_b_3d_i32_zero,                   // llvm.nvvm.sust.b.3d.i32.zero
-+    nvvm_sust_b_3d_i64_clamp,                  // llvm.nvvm.sust.b.3d.i64.clamp
-+    nvvm_sust_b_3d_i64_trap,                   // llvm.nvvm.sust.b.3d.i64.trap
-+    nvvm_sust_b_3d_i64_zero,                   // llvm.nvvm.sust.b.3d.i64.zero
-+    nvvm_sust_b_3d_i8_clamp,                   // llvm.nvvm.sust.b.3d.i8.clamp
-+    nvvm_sust_b_3d_i8_trap,                    // llvm.nvvm.sust.b.3d.i8.trap
-+    nvvm_sust_b_3d_i8_zero,                    // llvm.nvvm.sust.b.3d.i8.zero
-+    nvvm_sust_b_3d_v2i16_clamp,                // llvm.nvvm.sust.b.3d.v2i16.clamp
-+    nvvm_sust_b_3d_v2i16_trap,                 // llvm.nvvm.sust.b.3d.v2i16.trap
-+    nvvm_sust_b_3d_v2i16_zero,                 // llvm.nvvm.sust.b.3d.v2i16.zero
-+    nvvm_sust_b_3d_v2i32_clamp,                // llvm.nvvm.sust.b.3d.v2i32.clamp
-+    nvvm_sust_b_3d_v2i32_trap,                 // llvm.nvvm.sust.b.3d.v2i32.trap
-+    nvvm_sust_b_3d_v2i32_zero,                 // llvm.nvvm.sust.b.3d.v2i32.zero
-+    nvvm_sust_b_3d_v2i64_clamp,                // llvm.nvvm.sust.b.3d.v2i64.clamp
-+    nvvm_sust_b_3d_v2i64_trap,                 // llvm.nvvm.sust.b.3d.v2i64.trap
-+    nvvm_sust_b_3d_v2i64_zero,                 // llvm.nvvm.sust.b.3d.v2i64.zero
-+    nvvm_sust_b_3d_v2i8_clamp,                 // llvm.nvvm.sust.b.3d.v2i8.clamp
-+    nvvm_sust_b_3d_v2i8_trap,                  // llvm.nvvm.sust.b.3d.v2i8.trap
-+    nvvm_sust_b_3d_v2i8_zero,                  // llvm.nvvm.sust.b.3d.v2i8.zero
-+    nvvm_sust_b_3d_v4i16_clamp,                // llvm.nvvm.sust.b.3d.v4i16.clamp
-+    nvvm_sust_b_3d_v4i16_trap,                 // llvm.nvvm.sust.b.3d.v4i16.trap
-+    nvvm_sust_b_3d_v4i16_zero,                 // llvm.nvvm.sust.b.3d.v4i16.zero
-+    nvvm_sust_b_3d_v4i32_clamp,                // llvm.nvvm.sust.b.3d.v4i32.clamp
-+    nvvm_sust_b_3d_v4i32_trap,                 // llvm.nvvm.sust.b.3d.v4i32.trap
-+    nvvm_sust_b_3d_v4i32_zero,                 // llvm.nvvm.sust.b.3d.v4i32.zero
-+    nvvm_sust_b_3d_v4i8_clamp,                 // llvm.nvvm.sust.b.3d.v4i8.clamp
-+    nvvm_sust_b_3d_v4i8_trap,                  // llvm.nvvm.sust.b.3d.v4i8.trap
-+    nvvm_sust_b_3d_v4i8_zero,                  // llvm.nvvm.sust.b.3d.v4i8.zero
-+    nvvm_sust_p_1d_array_i16_trap,             // llvm.nvvm.sust.p.1d.array.i16.trap
-+    nvvm_sust_p_1d_array_i32_trap,             // llvm.nvvm.sust.p.1d.array.i32.trap
-+    nvvm_sust_p_1d_array_i8_trap,              // llvm.nvvm.sust.p.1d.array.i8.trap
-+    nvvm_sust_p_1d_array_v2i16_trap,           // llvm.nvvm.sust.p.1d.array.v2i16.trap
-+    nvvm_sust_p_1d_array_v2i32_trap,           // llvm.nvvm.sust.p.1d.array.v2i32.trap
-+    nvvm_sust_p_1d_array_v2i8_trap,            // llvm.nvvm.sust.p.1d.array.v2i8.trap
-+    nvvm_sust_p_1d_array_v4i16_trap,           // llvm.nvvm.sust.p.1d.array.v4i16.trap
-+    nvvm_sust_p_1d_array_v4i32_trap,           // llvm.nvvm.sust.p.1d.array.v4i32.trap
-+    nvvm_sust_p_1d_array_v4i8_trap,            // llvm.nvvm.sust.p.1d.array.v4i8.trap
-+    nvvm_sust_p_1d_i16_trap,                   // llvm.nvvm.sust.p.1d.i16.trap
-+    nvvm_sust_p_1d_i32_trap,                   // llvm.nvvm.sust.p.1d.i32.trap
-+    nvvm_sust_p_1d_i8_trap,                    // llvm.nvvm.sust.p.1d.i8.trap
-+    nvvm_sust_p_1d_v2i16_trap,                 // llvm.nvvm.sust.p.1d.v2i16.trap
-+    nvvm_sust_p_1d_v2i32_trap,                 // llvm.nvvm.sust.p.1d.v2i32.trap
-+    nvvm_sust_p_1d_v2i8_trap,                  // llvm.nvvm.sust.p.1d.v2i8.trap
-+    nvvm_sust_p_1d_v4i16_trap,                 // llvm.nvvm.sust.p.1d.v4i16.trap
-+    nvvm_sust_p_1d_v4i32_trap,                 // llvm.nvvm.sust.p.1d.v4i32.trap
-+    nvvm_sust_p_1d_v4i8_trap,                  // llvm.nvvm.sust.p.1d.v4i8.trap
-+    nvvm_sust_p_2d_array_i16_trap,             // llvm.nvvm.sust.p.2d.array.i16.trap
-+    nvvm_sust_p_2d_array_i32_trap,             // llvm.nvvm.sust.p.2d.array.i32.trap
-+    nvvm_sust_p_2d_array_i8_trap,              // llvm.nvvm.sust.p.2d.array.i8.trap
-+    nvvm_sust_p_2d_array_v2i16_trap,           // llvm.nvvm.sust.p.2d.array.v2i16.trap
-+    nvvm_sust_p_2d_array_v2i32_trap,           // llvm.nvvm.sust.p.2d.array.v2i32.trap
-+    nvvm_sust_p_2d_array_v2i8_trap,            // llvm.nvvm.sust.p.2d.array.v2i8.trap
-+    nvvm_sust_p_2d_array_v4i16_trap,           // llvm.nvvm.sust.p.2d.array.v4i16.trap
-+    nvvm_sust_p_2d_array_v4i32_trap,           // llvm.nvvm.sust.p.2d.array.v4i32.trap
-+    nvvm_sust_p_2d_array_v4i8_trap,            // llvm.nvvm.sust.p.2d.array.v4i8.trap
-+    nvvm_sust_p_2d_i16_trap,                   // llvm.nvvm.sust.p.2d.i16.trap
-+    nvvm_sust_p_2d_i32_trap,                   // llvm.nvvm.sust.p.2d.i32.trap
-+    nvvm_sust_p_2d_i8_trap,                    // llvm.nvvm.sust.p.2d.i8.trap
-+    nvvm_sust_p_2d_v2i16_trap,                 // llvm.nvvm.sust.p.2d.v2i16.trap
-+    nvvm_sust_p_2d_v2i32_trap,                 // llvm.nvvm.sust.p.2d.v2i32.trap
-+    nvvm_sust_p_2d_v2i8_trap,                  // llvm.nvvm.sust.p.2d.v2i8.trap
-+    nvvm_sust_p_2d_v4i16_trap,                 // llvm.nvvm.sust.p.2d.v4i16.trap
-+    nvvm_sust_p_2d_v4i32_trap,                 // llvm.nvvm.sust.p.2d.v4i32.trap
-+    nvvm_sust_p_2d_v4i8_trap,                  // llvm.nvvm.sust.p.2d.v4i8.trap
-+    nvvm_sust_p_3d_i16_trap,                   // llvm.nvvm.sust.p.3d.i16.trap
-+    nvvm_sust_p_3d_i32_trap,                   // llvm.nvvm.sust.p.3d.i32.trap
-+    nvvm_sust_p_3d_i8_trap,                    // llvm.nvvm.sust.p.3d.i8.trap
-+    nvvm_sust_p_3d_v2i16_trap,                 // llvm.nvvm.sust.p.3d.v2i16.trap
-+    nvvm_sust_p_3d_v2i32_trap,                 // llvm.nvvm.sust.p.3d.v2i32.trap
-+    nvvm_sust_p_3d_v2i8_trap,                  // llvm.nvvm.sust.p.3d.v2i8.trap
-+    nvvm_sust_p_3d_v4i16_trap,                 // llvm.nvvm.sust.p.3d.v4i16.trap
-+    nvvm_sust_p_3d_v4i32_trap,                 // llvm.nvvm.sust.p.3d.v4i32.trap
-+    nvvm_sust_p_3d_v4i8_trap,                  // llvm.nvvm.sust.p.3d.v4i8.trap
-+    nvvm_swap_lo_hi_b64,                       // llvm.nvvm.swap.lo.hi.b64
-+    nvvm_tex_1d_array_grad_v4f32_f32,          // llvm.nvvm.tex.1d.array.grad.v4f32.f32
-+    nvvm_tex_1d_array_grad_v4s32_f32,          // llvm.nvvm.tex.1d.array.grad.v4s32.f32
-+    nvvm_tex_1d_array_grad_v4u32_f32,          // llvm.nvvm.tex.1d.array.grad.v4u32.f32
-+    nvvm_tex_1d_array_level_v4f32_f32,         // llvm.nvvm.tex.1d.array.level.v4f32.f32
-+    nvvm_tex_1d_array_level_v4s32_f32,         // llvm.nvvm.tex.1d.array.level.v4s32.f32
-+    nvvm_tex_1d_array_level_v4u32_f32,         // llvm.nvvm.tex.1d.array.level.v4u32.f32
-+    nvvm_tex_1d_array_v4f32_f32,               // llvm.nvvm.tex.1d.array.v4f32.f32
-+    nvvm_tex_1d_array_v4f32_s32,               // llvm.nvvm.tex.1d.array.v4f32.s32
-+    nvvm_tex_1d_array_v4s32_f32,               // llvm.nvvm.tex.1d.array.v4s32.f32
-+    nvvm_tex_1d_array_v4s32_s32,               // llvm.nvvm.tex.1d.array.v4s32.s32
-+    nvvm_tex_1d_array_v4u32_f32,               // llvm.nvvm.tex.1d.array.v4u32.f32
-+    nvvm_tex_1d_array_v4u32_s32,               // llvm.nvvm.tex.1d.array.v4u32.s32
-+    nvvm_tex_1d_grad_v4f32_f32,                // llvm.nvvm.tex.1d.grad.v4f32.f32
-+    nvvm_tex_1d_grad_v4s32_f32,                // llvm.nvvm.tex.1d.grad.v4s32.f32
-+    nvvm_tex_1d_grad_v4u32_f32,                // llvm.nvvm.tex.1d.grad.v4u32.f32
-+    nvvm_tex_1d_level_v4f32_f32,               // llvm.nvvm.tex.1d.level.v4f32.f32
-+    nvvm_tex_1d_level_v4s32_f32,               // llvm.nvvm.tex.1d.level.v4s32.f32
-+    nvvm_tex_1d_level_v4u32_f32,               // llvm.nvvm.tex.1d.level.v4u32.f32
-+    nvvm_tex_1d_v4f32_f32,                     // llvm.nvvm.tex.1d.v4f32.f32
-+    nvvm_tex_1d_v4f32_s32,                     // llvm.nvvm.tex.1d.v4f32.s32
-+    nvvm_tex_1d_v4s32_f32,                     // llvm.nvvm.tex.1d.v4s32.f32
-+    nvvm_tex_1d_v4s32_s32,                     // llvm.nvvm.tex.1d.v4s32.s32
-+    nvvm_tex_1d_v4u32_f32,                     // llvm.nvvm.tex.1d.v4u32.f32
-+    nvvm_tex_1d_v4u32_s32,                     // llvm.nvvm.tex.1d.v4u32.s32
-+    nvvm_tex_2d_array_grad_v4f32_f32,          // llvm.nvvm.tex.2d.array.grad.v4f32.f32
-+    nvvm_tex_2d_array_grad_v4s32_f32,          // llvm.nvvm.tex.2d.array.grad.v4s32.f32
-+    nvvm_tex_2d_array_grad_v4u32_f32,          // llvm.nvvm.tex.2d.array.grad.v4u32.f32
-+    nvvm_tex_2d_array_level_v4f32_f32,         // llvm.nvvm.tex.2d.array.level.v4f32.f32
-+    nvvm_tex_2d_array_level_v4s32_f32,         // llvm.nvvm.tex.2d.array.level.v4s32.f32
-+    nvvm_tex_2d_array_level_v4u32_f32,         // llvm.nvvm.tex.2d.array.level.v4u32.f32
-+    nvvm_tex_2d_array_v4f32_f32,               // llvm.nvvm.tex.2d.array.v4f32.f32
-+    nvvm_tex_2d_array_v4f32_s32,               // llvm.nvvm.tex.2d.array.v4f32.s32
-+    nvvm_tex_2d_array_v4s32_f32,               // llvm.nvvm.tex.2d.array.v4s32.f32
-+    nvvm_tex_2d_array_v4s32_s32,               // llvm.nvvm.tex.2d.array.v4s32.s32
-+    nvvm_tex_2d_array_v4u32_f32,               // llvm.nvvm.tex.2d.array.v4u32.f32
-+    nvvm_tex_2d_array_v4u32_s32,               // llvm.nvvm.tex.2d.array.v4u32.s32
-+    nvvm_tex_2d_grad_v4f32_f32,                // llvm.nvvm.tex.2d.grad.v4f32.f32
-+    nvvm_tex_2d_grad_v4s32_f32,                // llvm.nvvm.tex.2d.grad.v4s32.f32
-+    nvvm_tex_2d_grad_v4u32_f32,                // llvm.nvvm.tex.2d.grad.v4u32.f32
-+    nvvm_tex_2d_level_v4f32_f32,               // llvm.nvvm.tex.2d.level.v4f32.f32
-+    nvvm_tex_2d_level_v4s32_f32,               // llvm.nvvm.tex.2d.level.v4s32.f32
-+    nvvm_tex_2d_level_v4u32_f32,               // llvm.nvvm.tex.2d.level.v4u32.f32
-+    nvvm_tex_2d_v4f32_f32,                     // llvm.nvvm.tex.2d.v4f32.f32
-+    nvvm_tex_2d_v4f32_s32,                     // llvm.nvvm.tex.2d.v4f32.s32
-+    nvvm_tex_2d_v4s32_f32,                     // llvm.nvvm.tex.2d.v4s32.f32
-+    nvvm_tex_2d_v4s32_s32,                     // llvm.nvvm.tex.2d.v4s32.s32
-+    nvvm_tex_2d_v4u32_f32,                     // llvm.nvvm.tex.2d.v4u32.f32
-+    nvvm_tex_2d_v4u32_s32,                     // llvm.nvvm.tex.2d.v4u32.s32
-+    nvvm_tex_3d_grad_v4f32_f32,                // llvm.nvvm.tex.3d.grad.v4f32.f32
-+    nvvm_tex_3d_grad_v4s32_f32,                // llvm.nvvm.tex.3d.grad.v4s32.f32
-+    nvvm_tex_3d_grad_v4u32_f32,                // llvm.nvvm.tex.3d.grad.v4u32.f32
-+    nvvm_tex_3d_level_v4f32_f32,               // llvm.nvvm.tex.3d.level.v4f32.f32
-+    nvvm_tex_3d_level_v4s32_f32,               // llvm.nvvm.tex.3d.level.v4s32.f32
-+    nvvm_tex_3d_level_v4u32_f32,               // llvm.nvvm.tex.3d.level.v4u32.f32
-+    nvvm_tex_3d_v4f32_f32,                     // llvm.nvvm.tex.3d.v4f32.f32
-+    nvvm_tex_3d_v4f32_s32,                     // llvm.nvvm.tex.3d.v4f32.s32
-+    nvvm_tex_3d_v4s32_f32,                     // llvm.nvvm.tex.3d.v4s32.f32
-+    nvvm_tex_3d_v4s32_s32,                     // llvm.nvvm.tex.3d.v4s32.s32
-+    nvvm_tex_3d_v4u32_f32,                     // llvm.nvvm.tex.3d.v4u32.f32
-+    nvvm_tex_3d_v4u32_s32,                     // llvm.nvvm.tex.3d.v4u32.s32
-+    nvvm_tex_cube_array_level_v4f32_f32,       // llvm.nvvm.tex.cube.array.level.v4f32.f32
-+    nvvm_tex_cube_array_level_v4s32_f32,       // llvm.nvvm.tex.cube.array.level.v4s32.f32
-+    nvvm_tex_cube_array_level_v4u32_f32,       // llvm.nvvm.tex.cube.array.level.v4u32.f32
-+    nvvm_tex_cube_array_v4f32_f32,             // llvm.nvvm.tex.cube.array.v4f32.f32
-+    nvvm_tex_cube_array_v4s32_f32,             // llvm.nvvm.tex.cube.array.v4s32.f32
-+    nvvm_tex_cube_array_v4u32_f32,             // llvm.nvvm.tex.cube.array.v4u32.f32
-+    nvvm_tex_cube_level_v4f32_f32,             // llvm.nvvm.tex.cube.level.v4f32.f32
-+    nvvm_tex_cube_level_v4s32_f32,             // llvm.nvvm.tex.cube.level.v4s32.f32
-+    nvvm_tex_cube_level_v4u32_f32,             // llvm.nvvm.tex.cube.level.v4u32.f32
-+    nvvm_tex_cube_v4f32_f32,                   // llvm.nvvm.tex.cube.v4f32.f32
-+    nvvm_tex_cube_v4s32_f32,                   // llvm.nvvm.tex.cube.v4s32.f32
-+    nvvm_tex_cube_v4u32_f32,                   // llvm.nvvm.tex.cube.v4u32.f32
-+    nvvm_tex_unified_1d_array_grad_v4f32_f32,  // llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32
-+    nvvm_tex_unified_1d_array_grad_v4s32_f32,  // llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32
-+    nvvm_tex_unified_1d_array_grad_v4u32_f32,  // llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32
-+    nvvm_tex_unified_1d_array_level_v4f32_f32,  // llvm.nvvm.tex.unified.1d.array.level.v4f32.f32
-+    nvvm_tex_unified_1d_array_level_v4s32_f32,  // llvm.nvvm.tex.unified.1d.array.level.v4s32.f32
-+    nvvm_tex_unified_1d_array_level_v4u32_f32,  // llvm.nvvm.tex.unified.1d.array.level.v4u32.f32
-+    nvvm_tex_unified_1d_array_v4f32_f32,       // llvm.nvvm.tex.unified.1d.array.v4f32.f32
-+    nvvm_tex_unified_1d_array_v4f32_s32,       // llvm.nvvm.tex.unified.1d.array.v4f32.s32
-+    nvvm_tex_unified_1d_array_v4s32_f32,       // llvm.nvvm.tex.unified.1d.array.v4s32.f32
-+    nvvm_tex_unified_1d_array_v4s32_s32,       // llvm.nvvm.tex.unified.1d.array.v4s32.s32
-+    nvvm_tex_unified_1d_array_v4u32_f32,       // llvm.nvvm.tex.unified.1d.array.v4u32.f32
-+    nvvm_tex_unified_1d_array_v4u32_s32,       // llvm.nvvm.tex.unified.1d.array.v4u32.s32
-+    nvvm_tex_unified_1d_grad_v4f32_f32,        // llvm.nvvm.tex.unified.1d.grad.v4f32.f32
-+    nvvm_tex_unified_1d_grad_v4s32_f32,        // llvm.nvvm.tex.unified.1d.grad.v4s32.f32
-+    nvvm_tex_unified_1d_grad_v4u32_f32,        // llvm.nvvm.tex.unified.1d.grad.v4u32.f32
-+    nvvm_tex_unified_1d_level_v4f32_f32,       // llvm.nvvm.tex.unified.1d.level.v4f32.f32
-+    nvvm_tex_unified_1d_level_v4s32_f32,       // llvm.nvvm.tex.unified.1d.level.v4s32.f32
-+    nvvm_tex_unified_1d_level_v4u32_f32,       // llvm.nvvm.tex.unified.1d.level.v4u32.f32
-+    nvvm_tex_unified_1d_v4f32_f32,             // llvm.nvvm.tex.unified.1d.v4f32.f32
-+    nvvm_tex_unified_1d_v4f32_s32,             // llvm.nvvm.tex.unified.1d.v4f32.s32
-+    nvvm_tex_unified_1d_v4s32_f32,             // llvm.nvvm.tex.unified.1d.v4s32.f32
-+    nvvm_tex_unified_1d_v4s32_s32,             // llvm.nvvm.tex.unified.1d.v4s32.s32
-+    nvvm_tex_unified_1d_v4u32_f32,             // llvm.nvvm.tex.unified.1d.v4u32.f32
-+    nvvm_tex_unified_1d_v4u32_s32,             // llvm.nvvm.tex.unified.1d.v4u32.s32
-+    nvvm_tex_unified_2d_array_grad_v4f32_f32,  // llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32
-+    nvvm_tex_unified_2d_array_grad_v4s32_f32,  // llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32
-+    nvvm_tex_unified_2d_array_grad_v4u32_f32,  // llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32
-+    nvvm_tex_unified_2d_array_level_v4f32_f32,  // llvm.nvvm.tex.unified.2d.array.level.v4f32.f32
-+    nvvm_tex_unified_2d_array_level_v4s32_f32,  // llvm.nvvm.tex.unified.2d.array.level.v4s32.f32
-+    nvvm_tex_unified_2d_array_level_v4u32_f32,  // llvm.nvvm.tex.unified.2d.array.level.v4u32.f32
-+    nvvm_tex_unified_2d_array_v4f32_f32,       // llvm.nvvm.tex.unified.2d.array.v4f32.f32
-+    nvvm_tex_unified_2d_array_v4f32_s32,       // llvm.nvvm.tex.unified.2d.array.v4f32.s32
-+    nvvm_tex_unified_2d_array_v4s32_f32,       // llvm.nvvm.tex.unified.2d.array.v4s32.f32
-+    nvvm_tex_unified_2d_array_v4s32_s32,       // llvm.nvvm.tex.unified.2d.array.v4s32.s32
-+    nvvm_tex_unified_2d_array_v4u32_f32,       // llvm.nvvm.tex.unified.2d.array.v4u32.f32
-+    nvvm_tex_unified_2d_array_v4u32_s32,       // llvm.nvvm.tex.unified.2d.array.v4u32.s32
-+    nvvm_tex_unified_2d_grad_v4f32_f32,        // llvm.nvvm.tex.unified.2d.grad.v4f32.f32
-+    nvvm_tex_unified_2d_grad_v4s32_f32,        // llvm.nvvm.tex.unified.2d.grad.v4s32.f32
-+    nvvm_tex_unified_2d_grad_v4u32_f32,        // llvm.nvvm.tex.unified.2d.grad.v4u32.f32
-+    nvvm_tex_unified_2d_level_v4f32_f32,       // llvm.nvvm.tex.unified.2d.level.v4f32.f32
-+    nvvm_tex_unified_2d_level_v4s32_f32,       // llvm.nvvm.tex.unified.2d.level.v4s32.f32
-+    nvvm_tex_unified_2d_level_v4u32_f32,       // llvm.nvvm.tex.unified.2d.level.v4u32.f32
-+    nvvm_tex_unified_2d_v4f32_f32,             // llvm.nvvm.tex.unified.2d.v4f32.f32
-+    nvvm_tex_unified_2d_v4f32_s32,             // llvm.nvvm.tex.unified.2d.v4f32.s32
-+    nvvm_tex_unified_2d_v4s32_f32,             // llvm.nvvm.tex.unified.2d.v4s32.f32
-+    nvvm_tex_unified_2d_v4s32_s32,             // llvm.nvvm.tex.unified.2d.v4s32.s32
-+    nvvm_tex_unified_2d_v4u32_f32,             // llvm.nvvm.tex.unified.2d.v4u32.f32
-+    nvvm_tex_unified_2d_v4u32_s32,             // llvm.nvvm.tex.unified.2d.v4u32.s32
-+    nvvm_tex_unified_3d_grad_v4f32_f32,        // llvm.nvvm.tex.unified.3d.grad.v4f32.f32
-+    nvvm_tex_unified_3d_grad_v4s32_f32,        // llvm.nvvm.tex.unified.3d.grad.v4s32.f32
-+    nvvm_tex_unified_3d_grad_v4u32_f32,        // llvm.nvvm.tex.unified.3d.grad.v4u32.f32
-+    nvvm_tex_unified_3d_level_v4f32_f32,       // llvm.nvvm.tex.unified.3d.level.v4f32.f32
-+    nvvm_tex_unified_3d_level_v4s32_f32,       // llvm.nvvm.tex.unified.3d.level.v4s32.f32
-+    nvvm_tex_unified_3d_level_v4u32_f32,       // llvm.nvvm.tex.unified.3d.level.v4u32.f32
-+    nvvm_tex_unified_3d_v4f32_f32,             // llvm.nvvm.tex.unified.3d.v4f32.f32
-+    nvvm_tex_unified_3d_v4f32_s32,             // llvm.nvvm.tex.unified.3d.v4f32.s32
-+    nvvm_tex_unified_3d_v4s32_f32,             // llvm.nvvm.tex.unified.3d.v4s32.f32
-+    nvvm_tex_unified_3d_v4s32_s32,             // llvm.nvvm.tex.unified.3d.v4s32.s32
-+    nvvm_tex_unified_3d_v4u32_f32,             // llvm.nvvm.tex.unified.3d.v4u32.f32
-+    nvvm_tex_unified_3d_v4u32_s32,             // llvm.nvvm.tex.unified.3d.v4u32.s32
-+    nvvm_tex_unified_cube_array_level_v4f32_f32,  // llvm.nvvm.tex.unified.cube.array.level.v4f32.f32
-+    nvvm_tex_unified_cube_array_level_v4s32_f32,  // llvm.nvvm.tex.unified.cube.array.level.v4s32.f32
-+    nvvm_tex_unified_cube_array_level_v4u32_f32,  // llvm.nvvm.tex.unified.cube.array.level.v4u32.f32
-+    nvvm_tex_unified_cube_array_v4f32_f32,     // llvm.nvvm.tex.unified.cube.array.v4f32.f32
-+    nvvm_tex_unified_cube_array_v4s32_f32,     // llvm.nvvm.tex.unified.cube.array.v4s32.f32
-+    nvvm_tex_unified_cube_array_v4u32_f32,     // llvm.nvvm.tex.unified.cube.array.v4u32.f32
-+    nvvm_tex_unified_cube_level_v4f32_f32,     // llvm.nvvm.tex.unified.cube.level.v4f32.f32
-+    nvvm_tex_unified_cube_level_v4s32_f32,     // llvm.nvvm.tex.unified.cube.level.v4s32.f32
-+    nvvm_tex_unified_cube_level_v4u32_f32,     // llvm.nvvm.tex.unified.cube.level.v4u32.f32
-+    nvvm_tex_unified_cube_v4f32_f32,           // llvm.nvvm.tex.unified.cube.v4f32.f32
-+    nvvm_tex_unified_cube_v4s32_f32,           // llvm.nvvm.tex.unified.cube.v4s32.f32
-+    nvvm_tex_unified_cube_v4u32_f32,           // llvm.nvvm.tex.unified.cube.v4u32.f32
-+    nvvm_texsurf_handle,                       // llvm.nvvm.texsurf.handle
-+    nvvm_texsurf_handle_internal,              // llvm.nvvm.texsurf.handle.internal
-+    nvvm_tld4_a_2d_v4f32_f32,                  // llvm.nvvm.tld4.a.2d.v4f32.f32
-+    nvvm_tld4_a_2d_v4s32_f32,                  // llvm.nvvm.tld4.a.2d.v4s32.f32
-+    nvvm_tld4_a_2d_v4u32_f32,                  // llvm.nvvm.tld4.a.2d.v4u32.f32
-+    nvvm_tld4_b_2d_v4f32_f32,                  // llvm.nvvm.tld4.b.2d.v4f32.f32
-+    nvvm_tld4_b_2d_v4s32_f32,                  // llvm.nvvm.tld4.b.2d.v4s32.f32
-+    nvvm_tld4_b_2d_v4u32_f32,                  // llvm.nvvm.tld4.b.2d.v4u32.f32
-+    nvvm_tld4_g_2d_v4f32_f32,                  // llvm.nvvm.tld4.g.2d.v4f32.f32
-+    nvvm_tld4_g_2d_v4s32_f32,                  // llvm.nvvm.tld4.g.2d.v4s32.f32
-+    nvvm_tld4_g_2d_v4u32_f32,                  // llvm.nvvm.tld4.g.2d.v4u32.f32
-+    nvvm_tld4_r_2d_v4f32_f32,                  // llvm.nvvm.tld4.r.2d.v4f32.f32
-+    nvvm_tld4_r_2d_v4s32_f32,                  // llvm.nvvm.tld4.r.2d.v4s32.f32
-+    nvvm_tld4_r_2d_v4u32_f32,                  // llvm.nvvm.tld4.r.2d.v4u32.f32
-+    nvvm_tld4_unified_a_2d_v4f32_f32,          // llvm.nvvm.tld4.unified.a.2d.v4f32.f32
-+    nvvm_tld4_unified_a_2d_v4s32_f32,          // llvm.nvvm.tld4.unified.a.2d.v4s32.f32
-+    nvvm_tld4_unified_a_2d_v4u32_f32,          // llvm.nvvm.tld4.unified.a.2d.v4u32.f32
-+    nvvm_tld4_unified_b_2d_v4f32_f32,          // llvm.nvvm.tld4.unified.b.2d.v4f32.f32
-+    nvvm_tld4_unified_b_2d_v4s32_f32,          // llvm.nvvm.tld4.unified.b.2d.v4s32.f32
-+    nvvm_tld4_unified_b_2d_v4u32_f32,          // llvm.nvvm.tld4.unified.b.2d.v4u32.f32
-+    nvvm_tld4_unified_g_2d_v4f32_f32,          // llvm.nvvm.tld4.unified.g.2d.v4f32.f32
-+    nvvm_tld4_unified_g_2d_v4s32_f32,          // llvm.nvvm.tld4.unified.g.2d.v4s32.f32
-+    nvvm_tld4_unified_g_2d_v4u32_f32,          // llvm.nvvm.tld4.unified.g.2d.v4u32.f32
-+    nvvm_tld4_unified_r_2d_v4f32_f32,          // llvm.nvvm.tld4.unified.r.2d.v4f32.f32
-+    nvvm_tld4_unified_r_2d_v4s32_f32,          // llvm.nvvm.tld4.unified.r.2d.v4s32.f32
-+    nvvm_tld4_unified_r_2d_v4u32_f32,          // llvm.nvvm.tld4.unified.r.2d.v4u32.f32
-+    nvvm_trunc_d,                              // llvm.nvvm.trunc.d
-+    nvvm_trunc_f,                              // llvm.nvvm.trunc.f
-+    nvvm_trunc_ftz_f,                          // llvm.nvvm.trunc.ftz.f
-+    nvvm_txq_array_size,                       // llvm.nvvm.txq.array.size
-+    nvvm_txq_channel_data_type,                // llvm.nvvm.txq.channel.data.type
-+    nvvm_txq_channel_order,                    // llvm.nvvm.txq.channel.order
-+    nvvm_txq_depth,                            // llvm.nvvm.txq.depth
-+    nvvm_txq_height,                           // llvm.nvvm.txq.height
-+    nvvm_txq_num_mipmap_levels,                // llvm.nvvm.txq.num.mipmap.levels
-+    nvvm_txq_num_samples,                      // llvm.nvvm.txq.num.samples
-+    nvvm_txq_width,                            // llvm.nvvm.txq.width
-+    nvvm_ui2d_rm,                              // llvm.nvvm.ui2d.rm
-+    nvvm_ui2d_rn,                              // llvm.nvvm.ui2d.rn
-+    nvvm_ui2d_rp,                              // llvm.nvvm.ui2d.rp
-+    nvvm_ui2d_rz,                              // llvm.nvvm.ui2d.rz
-+    nvvm_ui2f_rm,                              // llvm.nvvm.ui2f.rm
-+    nvvm_ui2f_rn,                              // llvm.nvvm.ui2f.rn
-+    nvvm_ui2f_rp,                              // llvm.nvvm.ui2f.rp
-+    nvvm_ui2f_rz,                              // llvm.nvvm.ui2f.rz
-+    nvvm_ull2d_rm,                             // llvm.nvvm.ull2d.rm
-+    nvvm_ull2d_rn,                             // llvm.nvvm.ull2d.rn
-+    nvvm_ull2d_rp,                             // llvm.nvvm.ull2d.rp
-+    nvvm_ull2d_rz,                             // llvm.nvvm.ull2d.rz
-+    nvvm_ull2f_rm,                             // llvm.nvvm.ull2f.rm
-+    nvvm_ull2f_rn,                             // llvm.nvvm.ull2f.rn
-+    nvvm_ull2f_rp,                             // llvm.nvvm.ull2f.rp
-+    nvvm_ull2f_rz,                             // llvm.nvvm.ull2f.rz
-+    ppc_altivec_crypto_vcipher,                // llvm.ppc.altivec.crypto.vcipher
-+    ppc_altivec_crypto_vcipherlast,            // llvm.ppc.altivec.crypto.vcipherlast
-+    ppc_altivec_crypto_vncipher,               // llvm.ppc.altivec.crypto.vncipher
-+    ppc_altivec_crypto_vncipherlast,           // llvm.ppc.altivec.crypto.vncipherlast
-+    ppc_altivec_crypto_vpermxor,               // llvm.ppc.altivec.crypto.vpermxor
-+    ppc_altivec_crypto_vpmsumb,                // llvm.ppc.altivec.crypto.vpmsumb
-+    ppc_altivec_crypto_vpmsumd,                // llvm.ppc.altivec.crypto.vpmsumd
-+    ppc_altivec_crypto_vpmsumh,                // llvm.ppc.altivec.crypto.vpmsumh
-+    ppc_altivec_crypto_vpmsumw,                // llvm.ppc.altivec.crypto.vpmsumw
-+    ppc_altivec_crypto_vsbox,                  // llvm.ppc.altivec.crypto.vsbox
-+    ppc_altivec_crypto_vshasigmad,             // llvm.ppc.altivec.crypto.vshasigmad
-+    ppc_altivec_crypto_vshasigmaw,             // llvm.ppc.altivec.crypto.vshasigmaw
-+    ppc_altivec_dss,                           // llvm.ppc.altivec.dss
-+    ppc_altivec_dssall,                        // llvm.ppc.altivec.dssall
-+    ppc_altivec_dst,                           // llvm.ppc.altivec.dst
-+    ppc_altivec_dstst,                         // llvm.ppc.altivec.dstst
-+    ppc_altivec_dststt,                        // llvm.ppc.altivec.dststt
-+    ppc_altivec_dstt,                          // llvm.ppc.altivec.dstt
-+    ppc_altivec_lvebx,                         // llvm.ppc.altivec.lvebx
-+    ppc_altivec_lvehx,                         // llvm.ppc.altivec.lvehx
-+    ppc_altivec_lvewx,                         // llvm.ppc.altivec.lvewx
-+    ppc_altivec_lvsl,                          // llvm.ppc.altivec.lvsl
-+    ppc_altivec_lvsr,                          // llvm.ppc.altivec.lvsr
-+    ppc_altivec_lvx,                           // llvm.ppc.altivec.lvx
-+    ppc_altivec_lvxl,                          // llvm.ppc.altivec.lvxl
-+    ppc_altivec_mfvscr,                        // llvm.ppc.altivec.mfvscr
-+    ppc_altivec_mtvscr,                        // llvm.ppc.altivec.mtvscr
-+    ppc_altivec_stvebx,                        // llvm.ppc.altivec.stvebx
-+    ppc_altivec_stvehx,                        // llvm.ppc.altivec.stvehx
-+    ppc_altivec_stvewx,                        // llvm.ppc.altivec.stvewx
-+    ppc_altivec_stvx,                          // llvm.ppc.altivec.stvx
-+    ppc_altivec_stvxl,                         // llvm.ppc.altivec.stvxl
-+    ppc_altivec_vabsdub,                       // llvm.ppc.altivec.vabsdub
-+    ppc_altivec_vabsduh,                       // llvm.ppc.altivec.vabsduh
-+    ppc_altivec_vabsduw,                       // llvm.ppc.altivec.vabsduw
-+    ppc_altivec_vaddcuq,                       // llvm.ppc.altivec.vaddcuq
-+    ppc_altivec_vaddcuw,                       // llvm.ppc.altivec.vaddcuw
-+    ppc_altivec_vaddecuq,                      // llvm.ppc.altivec.vaddecuq
-+    ppc_altivec_vaddeuqm,                      // llvm.ppc.altivec.vaddeuqm
-+    ppc_altivec_vaddsbs,                       // llvm.ppc.altivec.vaddsbs
-+    ppc_altivec_vaddshs,                       // llvm.ppc.altivec.vaddshs
-+    ppc_altivec_vaddsws,                       // llvm.ppc.altivec.vaddsws
-+    ppc_altivec_vaddubs,                       // llvm.ppc.altivec.vaddubs
-+    ppc_altivec_vadduhs,                       // llvm.ppc.altivec.vadduhs
-+    ppc_altivec_vadduws,                       // llvm.ppc.altivec.vadduws
-+    ppc_altivec_vavgsb,                        // llvm.ppc.altivec.vavgsb
-+    ppc_altivec_vavgsh,                        // llvm.ppc.altivec.vavgsh
-+    ppc_altivec_vavgsw,                        // llvm.ppc.altivec.vavgsw
-+    ppc_altivec_vavgub,                        // llvm.ppc.altivec.vavgub
-+    ppc_altivec_vavguh,                        // llvm.ppc.altivec.vavguh
-+    ppc_altivec_vavguw,                        // llvm.ppc.altivec.vavguw
-+    ppc_altivec_vbpermq,                       // llvm.ppc.altivec.vbpermq
-+    ppc_altivec_vcfsx,                         // llvm.ppc.altivec.vcfsx
-+    ppc_altivec_vcfux,                         // llvm.ppc.altivec.vcfux
-+    ppc_altivec_vclzlsbb,                      // llvm.ppc.altivec.vclzlsbb
-+    ppc_altivec_vcmpbfp,                       // llvm.ppc.altivec.vcmpbfp
-+    ppc_altivec_vcmpbfp_p,                     // llvm.ppc.altivec.vcmpbfp.p
-+    ppc_altivec_vcmpeqfp,                      // llvm.ppc.altivec.vcmpeqfp
-+    ppc_altivec_vcmpeqfp_p,                    // llvm.ppc.altivec.vcmpeqfp.p
-+    ppc_altivec_vcmpequb,                      // llvm.ppc.altivec.vcmpequb
-+    ppc_altivec_vcmpequb_p,                    // llvm.ppc.altivec.vcmpequb.p
-+    ppc_altivec_vcmpequd,                      // llvm.ppc.altivec.vcmpequd
-+    ppc_altivec_vcmpequd_p,                    // llvm.ppc.altivec.vcmpequd.p
-+    ppc_altivec_vcmpequh,                      // llvm.ppc.altivec.vcmpequh
-+    ppc_altivec_vcmpequh_p,                    // llvm.ppc.altivec.vcmpequh.p
-+    ppc_altivec_vcmpequw,                      // llvm.ppc.altivec.vcmpequw
-+    ppc_altivec_vcmpequw_p,                    // llvm.ppc.altivec.vcmpequw.p
-+    ppc_altivec_vcmpgefp,                      // llvm.ppc.altivec.vcmpgefp
-+    ppc_altivec_vcmpgefp_p,                    // llvm.ppc.altivec.vcmpgefp.p
-+    ppc_altivec_vcmpgtfp,                      // llvm.ppc.altivec.vcmpgtfp
-+    ppc_altivec_vcmpgtfp_p,                    // llvm.ppc.altivec.vcmpgtfp.p
-+    ppc_altivec_vcmpgtsb,                      // llvm.ppc.altivec.vcmpgtsb
-+    ppc_altivec_vcmpgtsb_p,                    // llvm.ppc.altivec.vcmpgtsb.p
-+    ppc_altivec_vcmpgtsd,                      // llvm.ppc.altivec.vcmpgtsd
-+    ppc_altivec_vcmpgtsd_p,                    // llvm.ppc.altivec.vcmpgtsd.p
-+    ppc_altivec_vcmpgtsh,                      // llvm.ppc.altivec.vcmpgtsh
-+    ppc_altivec_vcmpgtsh_p,                    // llvm.ppc.altivec.vcmpgtsh.p
-+    ppc_altivec_vcmpgtsw,                      // llvm.ppc.altivec.vcmpgtsw
-+    ppc_altivec_vcmpgtsw_p,                    // llvm.ppc.altivec.vcmpgtsw.p
-+    ppc_altivec_vcmpgtub,                      // llvm.ppc.altivec.vcmpgtub
-+    ppc_altivec_vcmpgtub_p,                    // llvm.ppc.altivec.vcmpgtub.p
-+    ppc_altivec_vcmpgtud,                      // llvm.ppc.altivec.vcmpgtud
-+    ppc_altivec_vcmpgtud_p,                    // llvm.ppc.altivec.vcmpgtud.p
-+    ppc_altivec_vcmpgtuh,                      // llvm.ppc.altivec.vcmpgtuh
-+    ppc_altivec_vcmpgtuh_p,                    // llvm.ppc.altivec.vcmpgtuh.p
-+    ppc_altivec_vcmpgtuw,                      // llvm.ppc.altivec.vcmpgtuw
-+    ppc_altivec_vcmpgtuw_p,                    // llvm.ppc.altivec.vcmpgtuw.p
-+    ppc_altivec_vcmpneb,                       // llvm.ppc.altivec.vcmpneb
-+    ppc_altivec_vcmpneb_p,                     // llvm.ppc.altivec.vcmpneb.p
-+    ppc_altivec_vcmpneh,                       // llvm.ppc.altivec.vcmpneh
-+    ppc_altivec_vcmpneh_p,                     // llvm.ppc.altivec.vcmpneh.p
-+    ppc_altivec_vcmpnew,                       // llvm.ppc.altivec.vcmpnew
-+    ppc_altivec_vcmpnew_p,                     // llvm.ppc.altivec.vcmpnew.p
-+    ppc_altivec_vcmpnezb,                      // llvm.ppc.altivec.vcmpnezb
-+    ppc_altivec_vcmpnezb_p,                    // llvm.ppc.altivec.vcmpnezb.p
-+    ppc_altivec_vcmpnezh,                      // llvm.ppc.altivec.vcmpnezh
-+    ppc_altivec_vcmpnezh_p,                    // llvm.ppc.altivec.vcmpnezh.p
-+    ppc_altivec_vcmpnezw,                      // llvm.ppc.altivec.vcmpnezw
-+    ppc_altivec_vcmpnezw_p,                    // llvm.ppc.altivec.vcmpnezw.p
-+    ppc_altivec_vctsxs,                        // llvm.ppc.altivec.vctsxs
-+    ppc_altivec_vctuxs,                        // llvm.ppc.altivec.vctuxs
-+    ppc_altivec_vctzlsbb,                      // llvm.ppc.altivec.vctzlsbb
-+    ppc_altivec_vexptefp,                      // llvm.ppc.altivec.vexptefp
-+    ppc_altivec_vgbbd,                         // llvm.ppc.altivec.vgbbd
-+    ppc_altivec_vlogefp,                       // llvm.ppc.altivec.vlogefp
-+    ppc_altivec_vmaddfp,                       // llvm.ppc.altivec.vmaddfp
-+    ppc_altivec_vmaxfp,                        // llvm.ppc.altivec.vmaxfp
-+    ppc_altivec_vmaxsb,                        // llvm.ppc.altivec.vmaxsb
-+    ppc_altivec_vmaxsd,                        // llvm.ppc.altivec.vmaxsd
-+    ppc_altivec_vmaxsh,                        // llvm.ppc.altivec.vmaxsh
-+    ppc_altivec_vmaxsw,                        // llvm.ppc.altivec.vmaxsw
-+    ppc_altivec_vmaxub,                        // llvm.ppc.altivec.vmaxub
-+    ppc_altivec_vmaxud,                        // llvm.ppc.altivec.vmaxud
-+    ppc_altivec_vmaxuh,                        // llvm.ppc.altivec.vmaxuh
-+    ppc_altivec_vmaxuw,                        // llvm.ppc.altivec.vmaxuw
-+    ppc_altivec_vmhaddshs,                     // llvm.ppc.altivec.vmhaddshs
-+    ppc_altivec_vmhraddshs,                    // llvm.ppc.altivec.vmhraddshs
-+    ppc_altivec_vminfp,                        // llvm.ppc.altivec.vminfp
-+    ppc_altivec_vminsb,                        // llvm.ppc.altivec.vminsb
-+    ppc_altivec_vminsd,                        // llvm.ppc.altivec.vminsd
-+    ppc_altivec_vminsh,                        // llvm.ppc.altivec.vminsh
-+    ppc_altivec_vminsw,                        // llvm.ppc.altivec.vminsw
-+    ppc_altivec_vminub,                        // llvm.ppc.altivec.vminub
-+    ppc_altivec_vminud,                        // llvm.ppc.altivec.vminud
-+    ppc_altivec_vminuh,                        // llvm.ppc.altivec.vminuh
-+    ppc_altivec_vminuw,                        // llvm.ppc.altivec.vminuw
-+    ppc_altivec_vmladduhm,                     // llvm.ppc.altivec.vmladduhm
-+    ppc_altivec_vmsummbm,                      // llvm.ppc.altivec.vmsummbm
-+    ppc_altivec_vmsumshm,                      // llvm.ppc.altivec.vmsumshm
-+    ppc_altivec_vmsumshs,                      // llvm.ppc.altivec.vmsumshs
-+    ppc_altivec_vmsumubm,                      // llvm.ppc.altivec.vmsumubm
-+    ppc_altivec_vmsumuhm,                      // llvm.ppc.altivec.vmsumuhm
-+    ppc_altivec_vmsumuhs,                      // llvm.ppc.altivec.vmsumuhs
-+    ppc_altivec_vmulesb,                       // llvm.ppc.altivec.vmulesb
-+    ppc_altivec_vmulesh,                       // llvm.ppc.altivec.vmulesh
-+    ppc_altivec_vmulesw,                       // llvm.ppc.altivec.vmulesw
-+    ppc_altivec_vmuleub,                       // llvm.ppc.altivec.vmuleub
-+    ppc_altivec_vmuleuh,                       // llvm.ppc.altivec.vmuleuh
-+    ppc_altivec_vmuleuw,                       // llvm.ppc.altivec.vmuleuw
-+    ppc_altivec_vmulosb,                       // llvm.ppc.altivec.vmulosb
-+    ppc_altivec_vmulosh,                       // llvm.ppc.altivec.vmulosh
-+    ppc_altivec_vmulosw,                       // llvm.ppc.altivec.vmulosw
-+    ppc_altivec_vmuloub,                       // llvm.ppc.altivec.vmuloub
-+    ppc_altivec_vmulouh,                       // llvm.ppc.altivec.vmulouh
-+    ppc_altivec_vmulouw,                       // llvm.ppc.altivec.vmulouw
-+    ppc_altivec_vnmsubfp,                      // llvm.ppc.altivec.vnmsubfp
-+    ppc_altivec_vperm,                         // llvm.ppc.altivec.vperm
-+    ppc_altivec_vpkpx,                         // llvm.ppc.altivec.vpkpx
-+    ppc_altivec_vpksdss,                       // llvm.ppc.altivec.vpksdss
-+    ppc_altivec_vpksdus,                       // llvm.ppc.altivec.vpksdus
-+    ppc_altivec_vpkshss,                       // llvm.ppc.altivec.vpkshss
-+    ppc_altivec_vpkshus,                       // llvm.ppc.altivec.vpkshus
-+    ppc_altivec_vpkswss,                       // llvm.ppc.altivec.vpkswss
-+    ppc_altivec_vpkswus,                       // llvm.ppc.altivec.vpkswus
-+    ppc_altivec_vpkudus,                       // llvm.ppc.altivec.vpkudus
-+    ppc_altivec_vpkuhus,                       // llvm.ppc.altivec.vpkuhus
-+    ppc_altivec_vpkuwus,                       // llvm.ppc.altivec.vpkuwus
-+    ppc_altivec_vprtybd,                       // llvm.ppc.altivec.vprtybd
-+    ppc_altivec_vprtybq,                       // llvm.ppc.altivec.vprtybq
-+    ppc_altivec_vprtybw,                       // llvm.ppc.altivec.vprtybw
-+    ppc_altivec_vrefp,                         // llvm.ppc.altivec.vrefp
-+    ppc_altivec_vrfim,                         // llvm.ppc.altivec.vrfim
-+    ppc_altivec_vrfin,                         // llvm.ppc.altivec.vrfin
-+    ppc_altivec_vrfip,                         // llvm.ppc.altivec.vrfip
-+    ppc_altivec_vrfiz,                         // llvm.ppc.altivec.vrfiz
-+    ppc_altivec_vrlb,                          // llvm.ppc.altivec.vrlb
-+    ppc_altivec_vrld,                          // llvm.ppc.altivec.vrld
-+    ppc_altivec_vrldmi,                        // llvm.ppc.altivec.vrldmi
-+    ppc_altivec_vrldnm,                        // llvm.ppc.altivec.vrldnm
-+    ppc_altivec_vrlh,                          // llvm.ppc.altivec.vrlh
-+    ppc_altivec_vrlw,                          // llvm.ppc.altivec.vrlw
-+    ppc_altivec_vrlwmi,                        // llvm.ppc.altivec.vrlwmi
-+    ppc_altivec_vrlwnm,                        // llvm.ppc.altivec.vrlwnm
-+    ppc_altivec_vrsqrtefp,                     // llvm.ppc.altivec.vrsqrtefp
-+    ppc_altivec_vsel,                          // llvm.ppc.altivec.vsel
-+    ppc_altivec_vsl,                           // llvm.ppc.altivec.vsl
-+    ppc_altivec_vslb,                          // llvm.ppc.altivec.vslb
-+    ppc_altivec_vslh,                          // llvm.ppc.altivec.vslh
-+    ppc_altivec_vslo,                          // llvm.ppc.altivec.vslo
-+    ppc_altivec_vslv,                          // llvm.ppc.altivec.vslv
-+    ppc_altivec_vslw,                          // llvm.ppc.altivec.vslw
-+    ppc_altivec_vsr,                           // llvm.ppc.altivec.vsr
-+    ppc_altivec_vsrab,                         // llvm.ppc.altivec.vsrab
-+    ppc_altivec_vsrah,                         // llvm.ppc.altivec.vsrah
-+    ppc_altivec_vsraw,                         // llvm.ppc.altivec.vsraw
-+    ppc_altivec_vsrb,                          // llvm.ppc.altivec.vsrb
-+    ppc_altivec_vsrh,                          // llvm.ppc.altivec.vsrh
-+    ppc_altivec_vsro,                          // llvm.ppc.altivec.vsro
-+    ppc_altivec_vsrv,                          // llvm.ppc.altivec.vsrv
-+    ppc_altivec_vsrw,                          // llvm.ppc.altivec.vsrw
-+    ppc_altivec_vsubcuq,                       // llvm.ppc.altivec.vsubcuq
-+    ppc_altivec_vsubcuw,                       // llvm.ppc.altivec.vsubcuw
-+    ppc_altivec_vsubecuq,                      // llvm.ppc.altivec.vsubecuq
-+    ppc_altivec_vsubeuqm,                      // llvm.ppc.altivec.vsubeuqm
-+    ppc_altivec_vsubsbs,                       // llvm.ppc.altivec.vsubsbs
-+    ppc_altivec_vsubshs,                       // llvm.ppc.altivec.vsubshs
-+    ppc_altivec_vsubsws,                       // llvm.ppc.altivec.vsubsws
-+    ppc_altivec_vsububs,                       // llvm.ppc.altivec.vsububs
-+    ppc_altivec_vsubuhs,                       // llvm.ppc.altivec.vsubuhs
-+    ppc_altivec_vsubuws,                       // llvm.ppc.altivec.vsubuws
-+    ppc_altivec_vsum2sws,                      // llvm.ppc.altivec.vsum2sws
-+    ppc_altivec_vsum4sbs,                      // llvm.ppc.altivec.vsum4sbs
-+    ppc_altivec_vsum4shs,                      // llvm.ppc.altivec.vsum4shs
-+    ppc_altivec_vsum4ubs,                      // llvm.ppc.altivec.vsum4ubs
-+    ppc_altivec_vsumsws,                       // llvm.ppc.altivec.vsumsws
-+    ppc_altivec_vupkhpx,                       // llvm.ppc.altivec.vupkhpx
-+    ppc_altivec_vupkhsb,                       // llvm.ppc.altivec.vupkhsb
-+    ppc_altivec_vupkhsh,                       // llvm.ppc.altivec.vupkhsh
-+    ppc_altivec_vupkhsw,                       // llvm.ppc.altivec.vupkhsw
-+    ppc_altivec_vupklpx,                       // llvm.ppc.altivec.vupklpx
-+    ppc_altivec_vupklsb,                       // llvm.ppc.altivec.vupklsb
-+    ppc_altivec_vupklsh,                       // llvm.ppc.altivec.vupklsh
-+    ppc_altivec_vupklsw,                       // llvm.ppc.altivec.vupklsw
-+    ppc_bpermd,                                // llvm.ppc.bpermd
-+    ppc_dcba,                                  // llvm.ppc.dcba
-+    ppc_dcbf,                                  // llvm.ppc.dcbf
-+    ppc_dcbi,                                  // llvm.ppc.dcbi
-+    ppc_dcbst,                                 // llvm.ppc.dcbst
-+    ppc_dcbt,                                  // llvm.ppc.dcbt
-+    ppc_dcbtst,                                // llvm.ppc.dcbtst
-+    ppc_dcbz,                                  // llvm.ppc.dcbz
-+    ppc_dcbzl,                                 // llvm.ppc.dcbzl
-+    ppc_divde,                                 // llvm.ppc.divde
-+    ppc_divdeu,                                // llvm.ppc.divdeu
-+    ppc_divwe,                                 // llvm.ppc.divwe
-+    ppc_divweu,                                // llvm.ppc.divweu
-+    ppc_get_texasr,                            // llvm.ppc.get.texasr
-+    ppc_get_texasru,                           // llvm.ppc.get.texasru
-+    ppc_get_tfhar,                             // llvm.ppc.get.tfhar
-+    ppc_get_tfiar,                             // llvm.ppc.get.tfiar
-+    ppc_is_decremented_ctr_nonzero,            // llvm.ppc.is.decremented.ctr.nonzero
-+    ppc_lwsync,                                // llvm.ppc.lwsync
-+    ppc_mtctr,                                 // llvm.ppc.mtctr
-+    ppc_qpx_qvfabs,                            // llvm.ppc.qpx.qvfabs
-+    ppc_qpx_qvfadd,                            // llvm.ppc.qpx.qvfadd
-+    ppc_qpx_qvfadds,                           // llvm.ppc.qpx.qvfadds
-+    ppc_qpx_qvfcfid,                           // llvm.ppc.qpx.qvfcfid
-+    ppc_qpx_qvfcfids,                          // llvm.ppc.qpx.qvfcfids
-+    ppc_qpx_qvfcfidu,                          // llvm.ppc.qpx.qvfcfidu
-+    ppc_qpx_qvfcfidus,                         // llvm.ppc.qpx.qvfcfidus
-+    ppc_qpx_qvfcmpeq,                          // llvm.ppc.qpx.qvfcmpeq
-+    ppc_qpx_qvfcmpgt,                          // llvm.ppc.qpx.qvfcmpgt
-+    ppc_qpx_qvfcmplt,                          // llvm.ppc.qpx.qvfcmplt
-+    ppc_qpx_qvfcpsgn,                          // llvm.ppc.qpx.qvfcpsgn
-+    ppc_qpx_qvfctid,                           // llvm.ppc.qpx.qvfctid
-+    ppc_qpx_qvfctidu,                          // llvm.ppc.qpx.qvfctidu
-+    ppc_qpx_qvfctiduz,                         // llvm.ppc.qpx.qvfctiduz
-+    ppc_qpx_qvfctidz,                          // llvm.ppc.qpx.qvfctidz
-+    ppc_qpx_qvfctiw,                           // llvm.ppc.qpx.qvfctiw
-+    ppc_qpx_qvfctiwu,                          // llvm.ppc.qpx.qvfctiwu
-+    ppc_qpx_qvfctiwuz,                         // llvm.ppc.qpx.qvfctiwuz
-+    ppc_qpx_qvfctiwz,                          // llvm.ppc.qpx.qvfctiwz
-+    ppc_qpx_qvflogical,                        // llvm.ppc.qpx.qvflogical
-+    ppc_qpx_qvfmadd,                           // llvm.ppc.qpx.qvfmadd
-+    ppc_qpx_qvfmadds,                          // llvm.ppc.qpx.qvfmadds
-+    ppc_qpx_qvfmsub,                           // llvm.ppc.qpx.qvfmsub
-+    ppc_qpx_qvfmsubs,                          // llvm.ppc.qpx.qvfmsubs
-+    ppc_qpx_qvfmul,                            // llvm.ppc.qpx.qvfmul
-+    ppc_qpx_qvfmuls,                           // llvm.ppc.qpx.qvfmuls
-+    ppc_qpx_qvfnabs,                           // llvm.ppc.qpx.qvfnabs
-+    ppc_qpx_qvfneg,                            // llvm.ppc.qpx.qvfneg
-+    ppc_qpx_qvfnmadd,                          // llvm.ppc.qpx.qvfnmadd
-+    ppc_qpx_qvfnmadds,                         // llvm.ppc.qpx.qvfnmadds
-+    ppc_qpx_qvfnmsub,                          // llvm.ppc.qpx.qvfnmsub
-+    ppc_qpx_qvfnmsubs,                         // llvm.ppc.qpx.qvfnmsubs
-+    ppc_qpx_qvfperm,                           // llvm.ppc.qpx.qvfperm
-+    ppc_qpx_qvfre,                             // llvm.ppc.qpx.qvfre
-+    ppc_qpx_qvfres,                            // llvm.ppc.qpx.qvfres
-+    ppc_qpx_qvfrim,                            // llvm.ppc.qpx.qvfrim
-+    ppc_qpx_qvfrin,                            // llvm.ppc.qpx.qvfrin
-+    ppc_qpx_qvfrip,                            // llvm.ppc.qpx.qvfrip
-+    ppc_qpx_qvfriz,                            // llvm.ppc.qpx.qvfriz
-+    ppc_qpx_qvfrsp,                            // llvm.ppc.qpx.qvfrsp
-+    ppc_qpx_qvfrsqrte,                         // llvm.ppc.qpx.qvfrsqrte
-+    ppc_qpx_qvfrsqrtes,                        // llvm.ppc.qpx.qvfrsqrtes
-+    ppc_qpx_qvfsel,                            // llvm.ppc.qpx.qvfsel
-+    ppc_qpx_qvfsub,                            // llvm.ppc.qpx.qvfsub
-+    ppc_qpx_qvfsubs,                           // llvm.ppc.qpx.qvfsubs
-+    ppc_qpx_qvftstnan,                         // llvm.ppc.qpx.qvftstnan
-+    ppc_qpx_qvfxmadd,                          // llvm.ppc.qpx.qvfxmadd
-+    ppc_qpx_qvfxmadds,                         // llvm.ppc.qpx.qvfxmadds
-+    ppc_qpx_qvfxmul,                           // llvm.ppc.qpx.qvfxmul
-+    ppc_qpx_qvfxmuls,                          // llvm.ppc.qpx.qvfxmuls
-+    ppc_qpx_qvfxxcpnmadd,                      // llvm.ppc.qpx.qvfxxcpnmadd
-+    ppc_qpx_qvfxxcpnmadds,                     // llvm.ppc.qpx.qvfxxcpnmadds
-+    ppc_qpx_qvfxxmadd,                         // llvm.ppc.qpx.qvfxxmadd
-+    ppc_qpx_qvfxxmadds,                        // llvm.ppc.qpx.qvfxxmadds
-+    ppc_qpx_qvfxxnpmadd,                       // llvm.ppc.qpx.qvfxxnpmadd
-+    ppc_qpx_qvfxxnpmadds,                      // llvm.ppc.qpx.qvfxxnpmadds
-+    ppc_qpx_qvgpci,                            // llvm.ppc.qpx.qvgpci
-+    ppc_qpx_qvlfcd,                            // llvm.ppc.qpx.qvlfcd
-+    ppc_qpx_qvlfcda,                           // llvm.ppc.qpx.qvlfcda
-+    ppc_qpx_qvlfcs,                            // llvm.ppc.qpx.qvlfcs
-+    ppc_qpx_qvlfcsa,                           // llvm.ppc.qpx.qvlfcsa
-+    ppc_qpx_qvlfd,                             // llvm.ppc.qpx.qvlfd
-+    ppc_qpx_qvlfda,                            // llvm.ppc.qpx.qvlfda
-+    ppc_qpx_qvlfiwa,                           // llvm.ppc.qpx.qvlfiwa
-+    ppc_qpx_qvlfiwaa,                          // llvm.ppc.qpx.qvlfiwaa
-+    ppc_qpx_qvlfiwz,                           // llvm.ppc.qpx.qvlfiwz
-+    ppc_qpx_qvlfiwza,                          // llvm.ppc.qpx.qvlfiwza
-+    ppc_qpx_qvlfs,                             // llvm.ppc.qpx.qvlfs
-+    ppc_qpx_qvlfsa,                            // llvm.ppc.qpx.qvlfsa
-+    ppc_qpx_qvlpcld,                           // llvm.ppc.qpx.qvlpcld
-+    ppc_qpx_qvlpcls,                           // llvm.ppc.qpx.qvlpcls
-+    ppc_qpx_qvlpcrd,                           // llvm.ppc.qpx.qvlpcrd
-+    ppc_qpx_qvlpcrs,                           // llvm.ppc.qpx.qvlpcrs
-+    ppc_qpx_qvstfcd,                           // llvm.ppc.qpx.qvstfcd
-+    ppc_qpx_qvstfcda,                          // llvm.ppc.qpx.qvstfcda
-+    ppc_qpx_qvstfcs,                           // llvm.ppc.qpx.qvstfcs
-+    ppc_qpx_qvstfcsa,                          // llvm.ppc.qpx.qvstfcsa
-+    ppc_qpx_qvstfd,                            // llvm.ppc.qpx.qvstfd
-+    ppc_qpx_qvstfda,                           // llvm.ppc.qpx.qvstfda
-+    ppc_qpx_qvstfiw,                           // llvm.ppc.qpx.qvstfiw
-+    ppc_qpx_qvstfiwa,                          // llvm.ppc.qpx.qvstfiwa
-+    ppc_qpx_qvstfs,                            // llvm.ppc.qpx.qvstfs
-+    ppc_qpx_qvstfsa,                           // llvm.ppc.qpx.qvstfsa
-+    ppc_set_texasr,                            // llvm.ppc.set.texasr
-+    ppc_set_texasru,                           // llvm.ppc.set.texasru
-+    ppc_set_tfhar,                             // llvm.ppc.set.tfhar
-+    ppc_set_tfiar,                             // llvm.ppc.set.tfiar
-+    ppc_sync,                                  // llvm.ppc.sync
-+    ppc_tabort,                                // llvm.ppc.tabort
-+    ppc_tabortdc,                              // llvm.ppc.tabortdc
-+    ppc_tabortdci,                             // llvm.ppc.tabortdci
-+    ppc_tabortwc,                              // llvm.ppc.tabortwc
-+    ppc_tabortwci,                             // llvm.ppc.tabortwci
-+    ppc_tbegin,                                // llvm.ppc.tbegin
-+    ppc_tcheck,                                // llvm.ppc.tcheck
-+    ppc_tend,                                  // llvm.ppc.tend
-+    ppc_tendall,                               // llvm.ppc.tendall
-+    ppc_trechkpt,                              // llvm.ppc.trechkpt
-+    ppc_treclaim,                              // llvm.ppc.treclaim
-+    ppc_tresume,                               // llvm.ppc.tresume
-+    ppc_tsr,                                   // llvm.ppc.tsr
-+    ppc_tsuspend,                              // llvm.ppc.tsuspend
-+    ppc_ttest,                                 // llvm.ppc.ttest
-+    ppc_vsx_lxvd2x,                            // llvm.ppc.vsx.lxvd2x
-+    ppc_vsx_lxvd2x_be,                         // llvm.ppc.vsx.lxvd2x.be
-+    ppc_vsx_lxvl,                              // llvm.ppc.vsx.lxvl
-+    ppc_vsx_lxvll,                             // llvm.ppc.vsx.lxvll
-+    ppc_vsx_lxvw4x,                            // llvm.ppc.vsx.lxvw4x
-+    ppc_vsx_lxvw4x_be,                         // llvm.ppc.vsx.lxvw4x.be
-+    ppc_vsx_stxvd2x,                           // llvm.ppc.vsx.stxvd2x
-+    ppc_vsx_stxvd2x_be,                        // llvm.ppc.vsx.stxvd2x.be
-+    ppc_vsx_stxvl,                             // llvm.ppc.vsx.stxvl
-+    ppc_vsx_stxvll,                            // llvm.ppc.vsx.stxvll
-+    ppc_vsx_stxvw4x,                           // llvm.ppc.vsx.stxvw4x
-+    ppc_vsx_stxvw4x_be,                        // llvm.ppc.vsx.stxvw4x.be
-+    ppc_vsx_xsmaxdp,                           // llvm.ppc.vsx.xsmaxdp
-+    ppc_vsx_xsmindp,                           // llvm.ppc.vsx.xsmindp
-+    ppc_vsx_xvcmpeqdp,                         // llvm.ppc.vsx.xvcmpeqdp
-+    ppc_vsx_xvcmpeqdp_p,                       // llvm.ppc.vsx.xvcmpeqdp.p
-+    ppc_vsx_xvcmpeqsp,                         // llvm.ppc.vsx.xvcmpeqsp
-+    ppc_vsx_xvcmpeqsp_p,                       // llvm.ppc.vsx.xvcmpeqsp.p
-+    ppc_vsx_xvcmpgedp,                         // llvm.ppc.vsx.xvcmpgedp
-+    ppc_vsx_xvcmpgedp_p,                       // llvm.ppc.vsx.xvcmpgedp.p
-+    ppc_vsx_xvcmpgesp,                         // llvm.ppc.vsx.xvcmpgesp
-+    ppc_vsx_xvcmpgesp_p,                       // llvm.ppc.vsx.xvcmpgesp.p
-+    ppc_vsx_xvcmpgtdp,                         // llvm.ppc.vsx.xvcmpgtdp
-+    ppc_vsx_xvcmpgtdp_p,                       // llvm.ppc.vsx.xvcmpgtdp.p
-+    ppc_vsx_xvcmpgtsp,                         // llvm.ppc.vsx.xvcmpgtsp
-+    ppc_vsx_xvcmpgtsp_p,                       // llvm.ppc.vsx.xvcmpgtsp.p
-+    ppc_vsx_xvcvdpsp,                          // llvm.ppc.vsx.xvcvdpsp
-+    ppc_vsx_xvcvdpsxws,                        // llvm.ppc.vsx.xvcvdpsxws
-+    ppc_vsx_xvcvdpuxws,                        // llvm.ppc.vsx.xvcvdpuxws
-+    ppc_vsx_xvcvhpsp,                          // llvm.ppc.vsx.xvcvhpsp
-+    ppc_vsx_xvcvspdp,                          // llvm.ppc.vsx.xvcvspdp
-+    ppc_vsx_xvcvsphp,                          // llvm.ppc.vsx.xvcvsphp
-+    ppc_vsx_xvcvsxdsp,                         // llvm.ppc.vsx.xvcvsxdsp
-+    ppc_vsx_xvcvsxwdp,                         // llvm.ppc.vsx.xvcvsxwdp
-+    ppc_vsx_xvcvuxdsp,                         // llvm.ppc.vsx.xvcvuxdsp
-+    ppc_vsx_xvcvuxwdp,                         // llvm.ppc.vsx.xvcvuxwdp
-+    ppc_vsx_xvdivdp,                           // llvm.ppc.vsx.xvdivdp
-+    ppc_vsx_xvdivsp,                           // llvm.ppc.vsx.xvdivsp
-+    ppc_vsx_xviexpdp,                          // llvm.ppc.vsx.xviexpdp
-+    ppc_vsx_xviexpsp,                          // llvm.ppc.vsx.xviexpsp
-+    ppc_vsx_xvmaxdp,                           // llvm.ppc.vsx.xvmaxdp
-+    ppc_vsx_xvmaxsp,                           // llvm.ppc.vsx.xvmaxsp
-+    ppc_vsx_xvmindp,                           // llvm.ppc.vsx.xvmindp
-+    ppc_vsx_xvminsp,                           // llvm.ppc.vsx.xvminsp
-+    ppc_vsx_xvrdpip,                           // llvm.ppc.vsx.xvrdpip
-+    ppc_vsx_xvredp,                            // llvm.ppc.vsx.xvredp
-+    ppc_vsx_xvresp,                            // llvm.ppc.vsx.xvresp
-+    ppc_vsx_xvrspip,                           // llvm.ppc.vsx.xvrspip
-+    ppc_vsx_xvrsqrtedp,                        // llvm.ppc.vsx.xvrsqrtedp
-+    ppc_vsx_xvrsqrtesp,                        // llvm.ppc.vsx.xvrsqrtesp
-+    ppc_vsx_xvtstdcdp,                         // llvm.ppc.vsx.xvtstdcdp
-+    ppc_vsx_xvtstdcsp,                         // llvm.ppc.vsx.xvtstdcsp
-+    ppc_vsx_xvxexpdp,                          // llvm.ppc.vsx.xvxexpdp
-+    ppc_vsx_xvxexpsp,                          // llvm.ppc.vsx.xvxexpsp
-+    ppc_vsx_xvxsigdp,                          // llvm.ppc.vsx.xvxsigdp
-+    ppc_vsx_xvxsigsp,                          // llvm.ppc.vsx.xvxsigsp
-+    ppc_vsx_xxextractuw,                       // llvm.ppc.vsx.xxextractuw
-+    ppc_vsx_xxinsertw,                         // llvm.ppc.vsx.xxinsertw
-+    ppc_vsx_xxleqv,                            // llvm.ppc.vsx.xxleqv
-+    r600_group_barrier,                        // llvm.r600.group.barrier
-+    r600_implicitarg_ptr,                      // llvm.r600.implicitarg.ptr
-+    r600_rat_store_typed,                      // llvm.r600.rat.store.typed
-+    r600_read_global_size_x,                   // llvm.r600.read.global.size.x
-+    r600_read_global_size_y,                   // llvm.r600.read.global.size.y
-+    r600_read_global_size_z,                   // llvm.r600.read.global.size.z
-+    r600_read_local_size_x,                    // llvm.r600.read.local.size.x
-+    r600_read_local_size_y,                    // llvm.r600.read.local.size.y
-+    r600_read_local_size_z,                    // llvm.r600.read.local.size.z
-+    r600_read_ngroups_x,                       // llvm.r600.read.ngroups.x
-+    r600_read_ngroups_y,                       // llvm.r600.read.ngroups.y
-+    r600_read_ngroups_z,                       // llvm.r600.read.ngroups.z
-+    r600_read_tgid_x,                          // llvm.r600.read.tgid.x
-+    r600_read_tgid_y,                          // llvm.r600.read.tgid.y
-+    r600_read_tgid_z,                          // llvm.r600.read.tgid.z
-+    r600_read_tidig_x,                         // llvm.r600.read.tidig.x
-+    r600_read_tidig_y,                         // llvm.r600.read.tidig.y
-+    r600_read_tidig_z,                         // llvm.r600.read.tidig.z
-+    r600_recipsqrt_clamped,                    // llvm.r600.recipsqrt.clamped
-+    r600_recipsqrt_ieee,                       // llvm.r600.recipsqrt.ieee
-+    s390_efpc,                                 // llvm.s390.efpc
-+    s390_etnd,                                 // llvm.s390.etnd
-+    s390_lcbb,                                 // llvm.s390.lcbb
-+    s390_ntstg,                                // llvm.s390.ntstg
-+    s390_ppa_txassist,                         // llvm.s390.ppa.txassist
-+    s390_sfpc,                                 // llvm.s390.sfpc
-+    s390_tabort,                               // llvm.s390.tabort
-+    s390_tbegin,                               // llvm.s390.tbegin
-+    s390_tbegin_nofloat,                       // llvm.s390.tbegin.nofloat
-+    s390_tbeginc,                              // llvm.s390.tbeginc
-+    s390_tdc,                                  // llvm.s390.tdc
-+    s390_tend,                                 // llvm.s390.tend
-+    s390_vaccb,                                // llvm.s390.vaccb
-+    s390_vacccq,                               // llvm.s390.vacccq
-+    s390_vaccf,                                // llvm.s390.vaccf
-+    s390_vaccg,                                // llvm.s390.vaccg
-+    s390_vacch,                                // llvm.s390.vacch
-+    s390_vaccq,                                // llvm.s390.vaccq
-+    s390_vacq,                                 // llvm.s390.vacq
-+    s390_vaq,                                  // llvm.s390.vaq
-+    s390_vavgb,                                // llvm.s390.vavgb
-+    s390_vavgf,                                // llvm.s390.vavgf
-+    s390_vavgg,                                // llvm.s390.vavgg
-+    s390_vavgh,                                // llvm.s390.vavgh
-+    s390_vavglb,                               // llvm.s390.vavglb
-+    s390_vavglf,                               // llvm.s390.vavglf
-+    s390_vavglg,                               // llvm.s390.vavglg
-+    s390_vavglh,                               // llvm.s390.vavglh
-+    s390_vceqbs,                               // llvm.s390.vceqbs
-+    s390_vceqfs,                               // llvm.s390.vceqfs
-+    s390_vceqgs,                               // llvm.s390.vceqgs
-+    s390_vceqhs,                               // llvm.s390.vceqhs
-+    s390_vchbs,                                // llvm.s390.vchbs
-+    s390_vchfs,                                // llvm.s390.vchfs
-+    s390_vchgs,                                // llvm.s390.vchgs
-+    s390_vchhs,                                // llvm.s390.vchhs
-+    s390_vchlbs,                               // llvm.s390.vchlbs
-+    s390_vchlfs,                               // llvm.s390.vchlfs
-+    s390_vchlgs,                               // llvm.s390.vchlgs
-+    s390_vchlhs,                               // llvm.s390.vchlhs
-+    s390_vcksm,                                // llvm.s390.vcksm
-+    s390_verimb,                               // llvm.s390.verimb
-+    s390_verimf,                               // llvm.s390.verimf
-+    s390_verimg,                               // llvm.s390.verimg
-+    s390_verimh,                               // llvm.s390.verimh
-+    s390_verllb,                               // llvm.s390.verllb
-+    s390_verllf,                               // llvm.s390.verllf
-+    s390_verllg,                               // llvm.s390.verllg
-+    s390_verllh,                               // llvm.s390.verllh
-+    s390_verllvb,                              // llvm.s390.verllvb
-+    s390_verllvf,                              // llvm.s390.verllvf
-+    s390_verllvg,                              // llvm.s390.verllvg
-+    s390_verllvh,                              // llvm.s390.verllvh
-+    s390_vfaeb,                                // llvm.s390.vfaeb
-+    s390_vfaebs,                               // llvm.s390.vfaebs
-+    s390_vfaef,                                // llvm.s390.vfaef
-+    s390_vfaefs,                               // llvm.s390.vfaefs
-+    s390_vfaeh,                                // llvm.s390.vfaeh
-+    s390_vfaehs,                               // llvm.s390.vfaehs
-+    s390_vfaezb,                               // llvm.s390.vfaezb
-+    s390_vfaezbs,                              // llvm.s390.vfaezbs
-+    s390_vfaezf,                               // llvm.s390.vfaezf
-+    s390_vfaezfs,                              // llvm.s390.vfaezfs
-+    s390_vfaezh,                               // llvm.s390.vfaezh
-+    s390_vfaezhs,                              // llvm.s390.vfaezhs
-+    s390_vfcedbs,                              // llvm.s390.vfcedbs
-+    s390_vfchdbs,                              // llvm.s390.vfchdbs
-+    s390_vfchedbs,                             // llvm.s390.vfchedbs
-+    s390_vfeeb,                                // llvm.s390.vfeeb
-+    s390_vfeebs,                               // llvm.s390.vfeebs
-+    s390_vfeef,                                // llvm.s390.vfeef
-+    s390_vfeefs,                               // llvm.s390.vfeefs
-+    s390_vfeeh,                                // llvm.s390.vfeeh
-+    s390_vfeehs,                               // llvm.s390.vfeehs
-+    s390_vfeezb,                               // llvm.s390.vfeezb
-+    s390_vfeezbs,                              // llvm.s390.vfeezbs
-+    s390_vfeezf,                               // llvm.s390.vfeezf
-+    s390_vfeezfs,                              // llvm.s390.vfeezfs
-+    s390_vfeezh,                               // llvm.s390.vfeezh
-+    s390_vfeezhs,                              // llvm.s390.vfeezhs
-+    s390_vfeneb,                               // llvm.s390.vfeneb
-+    s390_vfenebs,                              // llvm.s390.vfenebs
-+    s390_vfenef,                               // llvm.s390.vfenef
-+    s390_vfenefs,                              // llvm.s390.vfenefs
-+    s390_vfeneh,                               // llvm.s390.vfeneh
-+    s390_vfenehs,                              // llvm.s390.vfenehs
-+    s390_vfenezb,                              // llvm.s390.vfenezb
-+    s390_vfenezbs,                             // llvm.s390.vfenezbs
-+    s390_vfenezf,                              // llvm.s390.vfenezf
-+    s390_vfenezfs,                             // llvm.s390.vfenezfs
-+    s390_vfenezh,                              // llvm.s390.vfenezh
-+    s390_vfenezhs,                             // llvm.s390.vfenezhs
-+    s390_vfidb,                                // llvm.s390.vfidb
-+    s390_vftcidb,                              // llvm.s390.vftcidb
-+    s390_vgfmab,                               // llvm.s390.vgfmab
-+    s390_vgfmaf,                               // llvm.s390.vgfmaf
-+    s390_vgfmag,                               // llvm.s390.vgfmag
-+    s390_vgfmah,                               // llvm.s390.vgfmah
-+    s390_vgfmb,                                // llvm.s390.vgfmb
-+    s390_vgfmf,                                // llvm.s390.vgfmf
-+    s390_vgfmg,                                // llvm.s390.vgfmg
-+    s390_vgfmh,                                // llvm.s390.vgfmh
-+    s390_vistrb,                               // llvm.s390.vistrb
-+    s390_vistrbs,                              // llvm.s390.vistrbs
-+    s390_vistrf,                               // llvm.s390.vistrf
-+    s390_vistrfs,                              // llvm.s390.vistrfs
-+    s390_vistrh,                               // llvm.s390.vistrh
-+    s390_vistrhs,                              // llvm.s390.vistrhs
-+    s390_vlbb,                                 // llvm.s390.vlbb
-+    s390_vll,                                  // llvm.s390.vll
-+    s390_vmaeb,                                // llvm.s390.vmaeb
-+    s390_vmaef,                                // llvm.s390.vmaef
-+    s390_vmaeh,                                // llvm.s390.vmaeh
-+    s390_vmahb,                                // llvm.s390.vmahb
-+    s390_vmahf,                                // llvm.s390.vmahf
-+    s390_vmahh,                                // llvm.s390.vmahh
-+    s390_vmaleb,                               // llvm.s390.vmaleb
-+    s390_vmalef,                               // llvm.s390.vmalef
-+    s390_vmaleh,                               // llvm.s390.vmaleh
-+    s390_vmalhb,                               // llvm.s390.vmalhb
-+    s390_vmalhf,                               // llvm.s390.vmalhf
-+    s390_vmalhh,                               // llvm.s390.vmalhh
-+    s390_vmalob,                               // llvm.s390.vmalob
-+    s390_vmalof,                               // llvm.s390.vmalof
-+    s390_vmaloh,                               // llvm.s390.vmaloh
-+    s390_vmaob,                                // llvm.s390.vmaob
-+    s390_vmaof,                                // llvm.s390.vmaof
-+    s390_vmaoh,                                // llvm.s390.vmaoh
-+    s390_vmeb,                                 // llvm.s390.vmeb
-+    s390_vmef,                                 // llvm.s390.vmef
-+    s390_vmeh,                                 // llvm.s390.vmeh
-+    s390_vmhb,                                 // llvm.s390.vmhb
-+    s390_vmhf,                                 // llvm.s390.vmhf
-+    s390_vmhh,                                 // llvm.s390.vmhh
-+    s390_vmleb,                                // llvm.s390.vmleb
-+    s390_vmlef,                                // llvm.s390.vmlef
-+    s390_vmleh,                                // llvm.s390.vmleh
-+    s390_vmlhb,                                // llvm.s390.vmlhb
-+    s390_vmlhf,                                // llvm.s390.vmlhf
-+    s390_vmlhh,                                // llvm.s390.vmlhh
-+    s390_vmlob,                                // llvm.s390.vmlob
-+    s390_vmlof,                                // llvm.s390.vmlof
-+    s390_vmloh,                                // llvm.s390.vmloh
-+    s390_vmob,                                 // llvm.s390.vmob
-+    s390_vmof,                                 // llvm.s390.vmof
-+    s390_vmoh,                                 // llvm.s390.vmoh
-+    s390_vpdi,                                 // llvm.s390.vpdi
-+    s390_vperm,                                // llvm.s390.vperm
-+    s390_vpklsf,                               // llvm.s390.vpklsf
-+    s390_vpklsfs,                              // llvm.s390.vpklsfs
-+    s390_vpklsg,                               // llvm.s390.vpklsg
-+    s390_vpklsgs,                              // llvm.s390.vpklsgs
-+    s390_vpklsh,                               // llvm.s390.vpklsh
-+    s390_vpklshs,                              // llvm.s390.vpklshs
-+    s390_vpksf,                                // llvm.s390.vpksf
-+    s390_vpksfs,                               // llvm.s390.vpksfs
-+    s390_vpksg,                                // llvm.s390.vpksg
-+    s390_vpksgs,                               // llvm.s390.vpksgs
-+    s390_vpksh,                                // llvm.s390.vpksh
-+    s390_vpkshs,                               // llvm.s390.vpkshs
-+    s390_vsbcbiq,                              // llvm.s390.vsbcbiq
-+    s390_vsbiq,                                // llvm.s390.vsbiq
-+    s390_vscbib,                               // llvm.s390.vscbib
-+    s390_vscbif,                               // llvm.s390.vscbif
-+    s390_vscbig,                               // llvm.s390.vscbig
-+    s390_vscbih,                               // llvm.s390.vscbih
-+    s390_vscbiq,                               // llvm.s390.vscbiq
-+    s390_vsl,                                  // llvm.s390.vsl
-+    s390_vslb,                                 // llvm.s390.vslb
-+    s390_vsldb,                                // llvm.s390.vsldb
-+    s390_vsq,                                  // llvm.s390.vsq
-+    s390_vsra,                                 // llvm.s390.vsra
-+    s390_vsrab,                                // llvm.s390.vsrab
-+    s390_vsrl,                                 // llvm.s390.vsrl
-+    s390_vsrlb,                                // llvm.s390.vsrlb
-+    s390_vstl,                                 // llvm.s390.vstl
-+    s390_vstrcb,                               // llvm.s390.vstrcb
-+    s390_vstrcbs,                              // llvm.s390.vstrcbs
-+    s390_vstrcf,                               // llvm.s390.vstrcf
-+    s390_vstrcfs,                              // llvm.s390.vstrcfs
-+    s390_vstrch,                               // llvm.s390.vstrch
-+    s390_vstrchs,                              // llvm.s390.vstrchs
-+    s390_vstrczb,                              // llvm.s390.vstrczb
-+    s390_vstrczbs,                             // llvm.s390.vstrczbs
-+    s390_vstrczf,                              // llvm.s390.vstrczf
-+    s390_vstrczfs,                             // llvm.s390.vstrczfs
-+    s390_vstrczh,                              // llvm.s390.vstrczh
-+    s390_vstrczhs,                             // llvm.s390.vstrczhs
-+    s390_vsumb,                                // llvm.s390.vsumb
-+    s390_vsumgf,                               // llvm.s390.vsumgf
-+    s390_vsumgh,                               // llvm.s390.vsumgh
-+    s390_vsumh,                                // llvm.s390.vsumh
-+    s390_vsumqf,                               // llvm.s390.vsumqf
-+    s390_vsumqg,                               // llvm.s390.vsumqg
-+    s390_vtm,                                  // llvm.s390.vtm
-+    s390_vuphb,                                // llvm.s390.vuphb
-+    s390_vuphf,                                // llvm.s390.vuphf
-+    s390_vuphh,                                // llvm.s390.vuphh
-+    s390_vuplb,                                // llvm.s390.vuplb
-+    s390_vuplf,                                // llvm.s390.vuplf
-+    s390_vuplhb,                               // llvm.s390.vuplhb
-+    s390_vuplhf,                               // llvm.s390.vuplhf
-+    s390_vuplhh,                               // llvm.s390.vuplhh
-+    s390_vuplhw,                               // llvm.s390.vuplhw
-+    s390_vupllb,                               // llvm.s390.vupllb
-+    s390_vupllf,                               // llvm.s390.vupllf
-+    s390_vupllh,                               // llvm.s390.vupllh
-+    wasm_current_memory,                       // llvm.wasm.current.memory
-+    wasm_grow_memory,                          // llvm.wasm.grow.memory
-+    x86_3dnow_pavgusb,                         // llvm.x86.3dnow.pavgusb
-+    x86_3dnow_pf2id,                           // llvm.x86.3dnow.pf2id
-+    x86_3dnow_pfacc,                           // llvm.x86.3dnow.pfacc
-+    x86_3dnow_pfadd,                           // llvm.x86.3dnow.pfadd
-+    x86_3dnow_pfcmpeq,                         // llvm.x86.3dnow.pfcmpeq
-+    x86_3dnow_pfcmpge,                         // llvm.x86.3dnow.pfcmpge
-+    x86_3dnow_pfcmpgt,                         // llvm.x86.3dnow.pfcmpgt
-+    x86_3dnow_pfmax,                           // llvm.x86.3dnow.pfmax
-+    x86_3dnow_pfmin,                           // llvm.x86.3dnow.pfmin
-+    x86_3dnow_pfmul,                           // llvm.x86.3dnow.pfmul
-+    x86_3dnow_pfrcp,                           // llvm.x86.3dnow.pfrcp
-+    x86_3dnow_pfrcpit1,                        // llvm.x86.3dnow.pfrcpit1
-+    x86_3dnow_pfrcpit2,                        // llvm.x86.3dnow.pfrcpit2
-+    x86_3dnow_pfrsqit1,                        // llvm.x86.3dnow.pfrsqit1
-+    x86_3dnow_pfrsqrt,                         // llvm.x86.3dnow.pfrsqrt
-+    x86_3dnow_pfsub,                           // llvm.x86.3dnow.pfsub
-+    x86_3dnow_pfsubr,                          // llvm.x86.3dnow.pfsubr
-+    x86_3dnow_pi2fd,                           // llvm.x86.3dnow.pi2fd
-+    x86_3dnow_pmulhrw,                         // llvm.x86.3dnow.pmulhrw
-+    x86_3dnowa_pf2iw,                          // llvm.x86.3dnowa.pf2iw
-+    x86_3dnowa_pfnacc,                         // llvm.x86.3dnowa.pfnacc
-+    x86_3dnowa_pfpnacc,                        // llvm.x86.3dnowa.pfpnacc
-+    x86_3dnowa_pi2fw,                          // llvm.x86.3dnowa.pi2fw
-+    x86_3dnowa_pswapd,                         // llvm.x86.3dnowa.pswapd
-+    x86_addcarry_u32,                          // llvm.x86.addcarry.u32
-+    x86_addcarry_u64,                          // llvm.x86.addcarry.u64
-+    x86_addcarryx_u32,                         // llvm.x86.addcarryx.u32
-+    x86_addcarryx_u64,                         // llvm.x86.addcarryx.u64
-+    x86_aesni_aesdec,                          // llvm.x86.aesni.aesdec
-+    x86_aesni_aesdeclast,                      // llvm.x86.aesni.aesdeclast
-+    x86_aesni_aesenc,                          // llvm.x86.aesni.aesenc
-+    x86_aesni_aesenclast,                      // llvm.x86.aesni.aesenclast
-+    x86_aesni_aesimc,                          // llvm.x86.aesni.aesimc
-+    x86_aesni_aeskeygenassist,                 // llvm.x86.aesni.aeskeygenassist
-+    x86_avx_addsub_pd_256,                     // llvm.x86.avx.addsub.pd.256
-+    x86_avx_addsub_ps_256,                     // llvm.x86.avx.addsub.ps.256
-+    x86_avx_blendv_pd_256,                     // llvm.x86.avx.blendv.pd.256
-+    x86_avx_blendv_ps_256,                     // llvm.x86.avx.blendv.ps.256
-+    x86_avx_cmp_pd_256,                        // llvm.x86.avx.cmp.pd.256
-+    x86_avx_cmp_ps_256,                        // llvm.x86.avx.cmp.ps.256
-+    x86_avx_cvt_pd2_ps_256,                    // llvm.x86.avx.cvt.pd2.ps.256
-+    x86_avx_cvt_pd2dq_256,                     // llvm.x86.avx.cvt.pd2dq.256
-+    x86_avx_cvt_ps2dq_256,                     // llvm.x86.avx.cvt.ps2dq.256
-+    x86_avx_cvtdq2_ps_256,                     // llvm.x86.avx.cvtdq2.ps.256
-+    x86_avx_cvtt_pd2dq_256,                    // llvm.x86.avx.cvtt.pd2dq.256
-+    x86_avx_cvtt_ps2dq_256,                    // llvm.x86.avx.cvtt.ps2dq.256
-+    x86_avx_dp_ps_256,                         // llvm.x86.avx.dp.ps.256
-+    x86_avx_hadd_pd_256,                       // llvm.x86.avx.hadd.pd.256
-+    x86_avx_hadd_ps_256,                       // llvm.x86.avx.hadd.ps.256
-+    x86_avx_hsub_pd_256,                       // llvm.x86.avx.hsub.pd.256
-+    x86_avx_hsub_ps_256,                       // llvm.x86.avx.hsub.ps.256
-+    x86_avx_ldu_dq_256,                        // llvm.x86.avx.ldu.dq.256
-+    x86_avx_maskload_pd,                       // llvm.x86.avx.maskload.pd
-+    x86_avx_maskload_pd_256,                   // llvm.x86.avx.maskload.pd.256
-+    x86_avx_maskload_ps,                       // llvm.x86.avx.maskload.ps
-+    x86_avx_maskload_ps_256,                   // llvm.x86.avx.maskload.ps.256
-+    x86_avx_maskstore_pd,                      // llvm.x86.avx.maskstore.pd
-+    x86_avx_maskstore_pd_256,                  // llvm.x86.avx.maskstore.pd.256
-+    x86_avx_maskstore_ps,                      // llvm.x86.avx.maskstore.ps
-+    x86_avx_maskstore_ps_256,                  // llvm.x86.avx.maskstore.ps.256
-+    x86_avx_max_pd_256,                        // llvm.x86.avx.max.pd.256
-+    x86_avx_max_ps_256,                        // llvm.x86.avx.max.ps.256
-+    x86_avx_min_pd_256,                        // llvm.x86.avx.min.pd.256
-+    x86_avx_min_ps_256,                        // llvm.x86.avx.min.ps.256
-+    x86_avx_movmsk_pd_256,                     // llvm.x86.avx.movmsk.pd.256
-+    x86_avx_movmsk_ps_256,                     // llvm.x86.avx.movmsk.ps.256
-+    x86_avx_ptestc_256,                        // llvm.x86.avx.ptestc.256
-+    x86_avx_ptestnzc_256,                      // llvm.x86.avx.ptestnzc.256
-+    x86_avx_ptestz_256,                        // llvm.x86.avx.ptestz.256
-+    x86_avx_rcp_ps_256,                        // llvm.x86.avx.rcp.ps.256
-+    x86_avx_round_pd_256,                      // llvm.x86.avx.round.pd.256
-+    x86_avx_round_ps_256,                      // llvm.x86.avx.round.ps.256
-+    x86_avx_rsqrt_ps_256,                      // llvm.x86.avx.rsqrt.ps.256
-+    x86_avx_sqrt_pd_256,                       // llvm.x86.avx.sqrt.pd.256
-+    x86_avx_sqrt_ps_256,                       // llvm.x86.avx.sqrt.ps.256
-+    x86_avx_vperm2f128_pd_256,                 // llvm.x86.avx.vperm2f128.pd.256
-+    x86_avx_vperm2f128_ps_256,                 // llvm.x86.avx.vperm2f128.ps.256
-+    x86_avx_vperm2f128_si_256,                 // llvm.x86.avx.vperm2f128.si.256
-+    x86_avx_vpermilvar_pd,                     // llvm.x86.avx.vpermilvar.pd
-+    x86_avx_vpermilvar_pd_256,                 // llvm.x86.avx.vpermilvar.pd.256
-+    x86_avx_vpermilvar_ps,                     // llvm.x86.avx.vpermilvar.ps
-+    x86_avx_vpermilvar_ps_256,                 // llvm.x86.avx.vpermilvar.ps.256
-+    x86_avx_vtestc_pd,                         // llvm.x86.avx.vtestc.pd
-+    x86_avx_vtestc_pd_256,                     // llvm.x86.avx.vtestc.pd.256
-+    x86_avx_vtestc_ps,                         // llvm.x86.avx.vtestc.ps
-+    x86_avx_vtestc_ps_256,                     // llvm.x86.avx.vtestc.ps.256
-+    x86_avx_vtestnzc_pd,                       // llvm.x86.avx.vtestnzc.pd
-+    x86_avx_vtestnzc_pd_256,                   // llvm.x86.avx.vtestnzc.pd.256
-+    x86_avx_vtestnzc_ps,                       // llvm.x86.avx.vtestnzc.ps
-+    x86_avx_vtestnzc_ps_256,                   // llvm.x86.avx.vtestnzc.ps.256
-+    x86_avx_vtestz_pd,                         // llvm.x86.avx.vtestz.pd
-+    x86_avx_vtestz_pd_256,                     // llvm.x86.avx.vtestz.pd.256
-+    x86_avx_vtestz_ps,                         // llvm.x86.avx.vtestz.ps
-+    x86_avx_vtestz_ps_256,                     // llvm.x86.avx.vtestz.ps.256
-+    x86_avx_vzeroall,                          // llvm.x86.avx.vzeroall
-+    x86_avx_vzeroupper,                        // llvm.x86.avx.vzeroupper
-+    x86_avx2_gather_d_d,                       // llvm.x86.avx2.gather.d.d
-+    x86_avx2_gather_d_d_256,                   // llvm.x86.avx2.gather.d.d.256
-+    x86_avx2_gather_d_pd,                      // llvm.x86.avx2.gather.d.pd
-+    x86_avx2_gather_d_pd_256,                  // llvm.x86.avx2.gather.d.pd.256
-+    x86_avx2_gather_d_ps,                      // llvm.x86.avx2.gather.d.ps
-+    x86_avx2_gather_d_ps_256,                  // llvm.x86.avx2.gather.d.ps.256
-+    x86_avx2_gather_d_q,                       // llvm.x86.avx2.gather.d.q
-+    x86_avx2_gather_d_q_256,                   // llvm.x86.avx2.gather.d.q.256
-+    x86_avx2_gather_q_d,                       // llvm.x86.avx2.gather.q.d
-+    x86_avx2_gather_q_d_256,                   // llvm.x86.avx2.gather.q.d.256
-+    x86_avx2_gather_q_pd,                      // llvm.x86.avx2.gather.q.pd
-+    x86_avx2_gather_q_pd_256,                  // llvm.x86.avx2.gather.q.pd.256
-+    x86_avx2_gather_q_ps,                      // llvm.x86.avx2.gather.q.ps
-+    x86_avx2_gather_q_ps_256,                  // llvm.x86.avx2.gather.q.ps.256
-+    x86_avx2_gather_q_q,                       // llvm.x86.avx2.gather.q.q
-+    x86_avx2_gather_q_q_256,                   // llvm.x86.avx2.gather.q.q.256
-+    x86_avx2_maskload_d,                       // llvm.x86.avx2.maskload.d
-+    x86_avx2_maskload_d_256,                   // llvm.x86.avx2.maskload.d.256
-+    x86_avx2_maskload_q,                       // llvm.x86.avx2.maskload.q
-+    x86_avx2_maskload_q_256,                   // llvm.x86.avx2.maskload.q.256
-+    x86_avx2_maskstore_d,                      // llvm.x86.avx2.maskstore.d
-+    x86_avx2_maskstore_d_256,                  // llvm.x86.avx2.maskstore.d.256
-+    x86_avx2_maskstore_q,                      // llvm.x86.avx2.maskstore.q
-+    x86_avx2_maskstore_q_256,                  // llvm.x86.avx2.maskstore.q.256
-+    x86_avx2_movntdqa,                         // llvm.x86.avx2.movntdqa
-+    x86_avx2_mpsadbw,                          // llvm.x86.avx2.mpsadbw
-+    x86_avx2_pabs_b,                           // llvm.x86.avx2.pabs.b
-+    x86_avx2_pabs_d,                           // llvm.x86.avx2.pabs.d
-+    x86_avx2_pabs_w,                           // llvm.x86.avx2.pabs.w
-+    x86_avx2_packssdw,                         // llvm.x86.avx2.packssdw
-+    x86_avx2_packsswb,                         // llvm.x86.avx2.packsswb
-+    x86_avx2_packusdw,                         // llvm.x86.avx2.packusdw
-+    x86_avx2_packuswb,                         // llvm.x86.avx2.packuswb
-+    x86_avx2_padds_b,                          // llvm.x86.avx2.padds.b
-+    x86_avx2_padds_w,                          // llvm.x86.avx2.padds.w
-+    x86_avx2_paddus_b,                         // llvm.x86.avx2.paddus.b
-+    x86_avx2_paddus_w,                         // llvm.x86.avx2.paddus.w
-+    x86_avx2_pavg_b,                           // llvm.x86.avx2.pavg.b
-+    x86_avx2_pavg_w,                           // llvm.x86.avx2.pavg.w
-+    x86_avx2_pblendvb,                         // llvm.x86.avx2.pblendvb
-+    x86_avx2_permd,                            // llvm.x86.avx2.permd
-+    x86_avx2_permps,                           // llvm.x86.avx2.permps
-+    x86_avx2_phadd_d,                          // llvm.x86.avx2.phadd.d
-+    x86_avx2_phadd_sw,                         // llvm.x86.avx2.phadd.sw
-+    x86_avx2_phadd_w,                          // llvm.x86.avx2.phadd.w
-+    x86_avx2_phsub_d,                          // llvm.x86.avx2.phsub.d
-+    x86_avx2_phsub_sw,                         // llvm.x86.avx2.phsub.sw
-+    x86_avx2_phsub_w,                          // llvm.x86.avx2.phsub.w
-+    x86_avx2_pmadd_ub_sw,                      // llvm.x86.avx2.pmadd.ub.sw
-+    x86_avx2_pmadd_wd,                         // llvm.x86.avx2.pmadd.wd
-+    x86_avx2_pmovmskb,                         // llvm.x86.avx2.pmovmskb
-+    x86_avx2_pmul_dq,                          // llvm.x86.avx2.pmul.dq
-+    x86_avx2_pmul_hr_sw,                       // llvm.x86.avx2.pmul.hr.sw
-+    x86_avx2_pmulh_w,                          // llvm.x86.avx2.pmulh.w
-+    x86_avx2_pmulhu_w,                         // llvm.x86.avx2.pmulhu.w
-+    x86_avx2_pmulu_dq,                         // llvm.x86.avx2.pmulu.dq
-+    x86_avx2_psad_bw,                          // llvm.x86.avx2.psad.bw
-+    x86_avx2_pshuf_b,                          // llvm.x86.avx2.pshuf.b
-+    x86_avx2_psign_b,                          // llvm.x86.avx2.psign.b
-+    x86_avx2_psign_d,                          // llvm.x86.avx2.psign.d
-+    x86_avx2_psign_w,                          // llvm.x86.avx2.psign.w
-+    x86_avx2_psll_d,                           // llvm.x86.avx2.psll.d
-+    x86_avx2_psll_q,                           // llvm.x86.avx2.psll.q
-+    x86_avx2_psll_w,                           // llvm.x86.avx2.psll.w
-+    x86_avx2_pslli_d,                          // llvm.x86.avx2.pslli.d
-+    x86_avx2_pslli_q,                          // llvm.x86.avx2.pslli.q
-+    x86_avx2_pslli_w,                          // llvm.x86.avx2.pslli.w
-+    x86_avx2_psllv_d,                          // llvm.x86.avx2.psllv.d
-+    x86_avx2_psllv_d_256,                      // llvm.x86.avx2.psllv.d.256
-+    x86_avx2_psllv_q,                          // llvm.x86.avx2.psllv.q
-+    x86_avx2_psllv_q_256,                      // llvm.x86.avx2.psllv.q.256
-+    x86_avx2_psra_d,                           // llvm.x86.avx2.psra.d
-+    x86_avx2_psra_w,                           // llvm.x86.avx2.psra.w
-+    x86_avx2_psrai_d,                          // llvm.x86.avx2.psrai.d
-+    x86_avx2_psrai_w,                          // llvm.x86.avx2.psrai.w
-+    x86_avx2_psrav_d,                          // llvm.x86.avx2.psrav.d
-+    x86_avx2_psrav_d_256,                      // llvm.x86.avx2.psrav.d.256
-+    x86_avx2_psrl_d,                           // llvm.x86.avx2.psrl.d
-+    x86_avx2_psrl_q,                           // llvm.x86.avx2.psrl.q
-+    x86_avx2_psrl_w,                           // llvm.x86.avx2.psrl.w
-+    x86_avx2_psrli_d,                          // llvm.x86.avx2.psrli.d
-+    x86_avx2_psrli_q,                          // llvm.x86.avx2.psrli.q
-+    x86_avx2_psrli_w,                          // llvm.x86.avx2.psrli.w
-+    x86_avx2_psrlv_d,                          // llvm.x86.avx2.psrlv.d
-+    x86_avx2_psrlv_d_256,                      // llvm.x86.avx2.psrlv.d.256
-+    x86_avx2_psrlv_q,                          // llvm.x86.avx2.psrlv.q
-+    x86_avx2_psrlv_q_256,                      // llvm.x86.avx2.psrlv.q.256
-+    x86_avx2_psubs_b,                          // llvm.x86.avx2.psubs.b
-+    x86_avx2_psubs_w,                          // llvm.x86.avx2.psubs.w
-+    x86_avx2_psubus_b,                         // llvm.x86.avx2.psubus.b
-+    x86_avx2_psubus_w,                         // llvm.x86.avx2.psubus.w
-+    x86_avx2_vperm2i128,                       // llvm.x86.avx2.vperm2i128
-+    x86_avx512_broadcastmb_128,                // llvm.x86.avx512.broadcastmb.128
-+    x86_avx512_broadcastmb_256,                // llvm.x86.avx512.broadcastmb.256
-+    x86_avx512_broadcastmb_512,                // llvm.x86.avx512.broadcastmb.512
-+    x86_avx512_broadcastmw_128,                // llvm.x86.avx512.broadcastmw.128
-+    x86_avx512_broadcastmw_256,                // llvm.x86.avx512.broadcastmw.256
-+    x86_avx512_broadcastmw_512,                // llvm.x86.avx512.broadcastmw.512
-+    x86_avx512_cvtb2mask_128,                  // llvm.x86.avx512.cvtb2mask.128
-+    x86_avx512_cvtb2mask_256,                  // llvm.x86.avx512.cvtb2mask.256
-+    x86_avx512_cvtb2mask_512,                  // llvm.x86.avx512.cvtb2mask.512
-+    x86_avx512_cvtd2mask_128,                  // llvm.x86.avx512.cvtd2mask.128
-+    x86_avx512_cvtd2mask_256,                  // llvm.x86.avx512.cvtd2mask.256
-+    x86_avx512_cvtd2mask_512,                  // llvm.x86.avx512.cvtd2mask.512
-+    x86_avx512_cvtmask2b_128,                  // llvm.x86.avx512.cvtmask2b.128
-+    x86_avx512_cvtmask2b_256,                  // llvm.x86.avx512.cvtmask2b.256
-+    x86_avx512_cvtmask2b_512,                  // llvm.x86.avx512.cvtmask2b.512
-+    x86_avx512_cvtmask2d_128,                  // llvm.x86.avx512.cvtmask2d.128
-+    x86_avx512_cvtmask2d_256,                  // llvm.x86.avx512.cvtmask2d.256
-+    x86_avx512_cvtmask2d_512,                  // llvm.x86.avx512.cvtmask2d.512
-+    x86_avx512_cvtmask2q_128,                  // llvm.x86.avx512.cvtmask2q.128
-+    x86_avx512_cvtmask2q_256,                  // llvm.x86.avx512.cvtmask2q.256
-+    x86_avx512_cvtmask2q_512,                  // llvm.x86.avx512.cvtmask2q.512
-+    x86_avx512_cvtmask2w_128,                  // llvm.x86.avx512.cvtmask2w.128
-+    x86_avx512_cvtmask2w_256,                  // llvm.x86.avx512.cvtmask2w.256
-+    x86_avx512_cvtmask2w_512,                  // llvm.x86.avx512.cvtmask2w.512
-+    x86_avx512_cvtq2mask_128,                  // llvm.x86.avx512.cvtq2mask.128
-+    x86_avx512_cvtq2mask_256,                  // llvm.x86.avx512.cvtq2mask.256
-+    x86_avx512_cvtq2mask_512,                  // llvm.x86.avx512.cvtq2mask.512
-+    x86_avx512_cvtsi2sd64,                     // llvm.x86.avx512.cvtsi2sd64
-+    x86_avx512_cvtsi2ss32,                     // llvm.x86.avx512.cvtsi2ss32
-+    x86_avx512_cvtsi2ss64,                     // llvm.x86.avx512.cvtsi2ss64
-+    x86_avx512_cvttsd2si,                      // llvm.x86.avx512.cvttsd2si
-+    x86_avx512_cvttsd2si64,                    // llvm.x86.avx512.cvttsd2si64
-+    x86_avx512_cvttsd2usi,                     // llvm.x86.avx512.cvttsd2usi
-+    x86_avx512_cvttsd2usi64,                   // llvm.x86.avx512.cvttsd2usi64
-+    x86_avx512_cvttss2si,                      // llvm.x86.avx512.cvttss2si
-+    x86_avx512_cvttss2si64,                    // llvm.x86.avx512.cvttss2si64
-+    x86_avx512_cvttss2usi,                     // llvm.x86.avx512.cvttss2usi
-+    x86_avx512_cvttss2usi64,                   // llvm.x86.avx512.cvttss2usi64
-+    x86_avx512_cvtusi2sd,                      // llvm.x86.avx512.cvtusi2sd
-+    x86_avx512_cvtusi2ss,                      // llvm.x86.avx512.cvtusi2ss
-+    x86_avx512_cvtusi642sd,                    // llvm.x86.avx512.cvtusi642sd
-+    x86_avx512_cvtusi642ss,                    // llvm.x86.avx512.cvtusi642ss
-+    x86_avx512_cvtw2mask_128,                  // llvm.x86.avx512.cvtw2mask.128
-+    x86_avx512_cvtw2mask_256,                  // llvm.x86.avx512.cvtw2mask.256
-+    x86_avx512_cvtw2mask_512,                  // llvm.x86.avx512.cvtw2mask.512
-+    x86_avx512_exp2_pd,                        // llvm.x86.avx512.exp2.pd
-+    x86_avx512_exp2_ps,                        // llvm.x86.avx512.exp2.ps
-+    x86_avx512_gather_dpd_512,                 // llvm.x86.avx512.gather.dpd.512
-+    x86_avx512_gather_dpi_512,                 // llvm.x86.avx512.gather.dpi.512
-+    x86_avx512_gather_dpq_512,                 // llvm.x86.avx512.gather.dpq.512
-+    x86_avx512_gather_dps_512,                 // llvm.x86.avx512.gather.dps.512
-+    x86_avx512_gather_qpd_512,                 // llvm.x86.avx512.gather.qpd.512
-+    x86_avx512_gather_qpi_512,                 // llvm.x86.avx512.gather.qpi.512
-+    x86_avx512_gather_qpq_512,                 // llvm.x86.avx512.gather.qpq.512
-+    x86_avx512_gather_qps_512,                 // llvm.x86.avx512.gather.qps.512
-+    x86_avx512_gather3div2_df,                 // llvm.x86.avx512.gather3div2.df
-+    x86_avx512_gather3div2_di,                 // llvm.x86.avx512.gather3div2.di
-+    x86_avx512_gather3div4_df,                 // llvm.x86.avx512.gather3div4.df
-+    x86_avx512_gather3div4_di,                 // llvm.x86.avx512.gather3div4.di
-+    x86_avx512_gather3div4_sf,                 // llvm.x86.avx512.gather3div4.sf
-+    x86_avx512_gather3div4_si,                 // llvm.x86.avx512.gather3div4.si
-+    x86_avx512_gather3div8_sf,                 // llvm.x86.avx512.gather3div8.sf
-+    x86_avx512_gather3div8_si,                 // llvm.x86.avx512.gather3div8.si
-+    x86_avx512_gather3siv2_df,                 // llvm.x86.avx512.gather3siv2.df
-+    x86_avx512_gather3siv2_di,                 // llvm.x86.avx512.gather3siv2.di
-+    x86_avx512_gather3siv4_df,                 // llvm.x86.avx512.gather3siv4.df
-+    x86_avx512_gather3siv4_di,                 // llvm.x86.avx512.gather3siv4.di
-+    x86_avx512_gather3siv4_sf,                 // llvm.x86.avx512.gather3siv4.sf
-+    x86_avx512_gather3siv4_si,                 // llvm.x86.avx512.gather3siv4.si
-+    x86_avx512_gather3siv8_sf,                 // llvm.x86.avx512.gather3siv8.sf
-+    x86_avx512_gather3siv8_si,                 // llvm.x86.avx512.gather3siv8.si
-+    x86_avx512_gatherpf_dpd_512,               // llvm.x86.avx512.gatherpf.dpd.512
-+    x86_avx512_gatherpf_dps_512,               // llvm.x86.avx512.gatherpf.dps.512
-+    x86_avx512_gatherpf_qpd_512,               // llvm.x86.avx512.gatherpf.qpd.512
-+    x86_avx512_gatherpf_qps_512,               // llvm.x86.avx512.gatherpf.qps.512
-+    x86_avx512_kand_w,                         // llvm.x86.avx512.kand.w
-+    x86_avx512_kandn_w,                        // llvm.x86.avx512.kandn.w
-+    x86_avx512_knot_w,                         // llvm.x86.avx512.knot.w
-+    x86_avx512_kor_w,                          // llvm.x86.avx512.kor.w
-+    x86_avx512_kortestc_w,                     // llvm.x86.avx512.kortestc.w
-+    x86_avx512_kortestz_w,                     // llvm.x86.avx512.kortestz.w
-+    x86_avx512_kunpck_bw,                      // llvm.x86.avx512.kunpck.bw
-+    x86_avx512_kunpck_dq,                      // llvm.x86.avx512.kunpck.dq
-+    x86_avx512_kunpck_wd,                      // llvm.x86.avx512.kunpck.wd
-+    x86_avx512_kxnor_w,                        // llvm.x86.avx512.kxnor.w
-+    x86_avx512_kxor_w,                         // llvm.x86.avx512.kxor.w
-+    x86_avx512_mask_add_pd_512,                // llvm.x86.avx512.mask.add.pd.512
-+    x86_avx512_mask_add_ps_512,                // llvm.x86.avx512.mask.add.ps.512
-+    x86_avx512_mask_add_sd_round,              // llvm.x86.avx512.mask.add.sd.round
-+    x86_avx512_mask_add_ss_round,              // llvm.x86.avx512.mask.add.ss.round
-+    x86_avx512_mask_broadcastf32x2_256,        // llvm.x86.avx512.mask.broadcastf32x2.256
-+    x86_avx512_mask_broadcastf32x2_512,        // llvm.x86.avx512.mask.broadcastf32x2.512
-+    x86_avx512_mask_broadcastf32x4_256,        // llvm.x86.avx512.mask.broadcastf32x4.256
-+    x86_avx512_mask_broadcastf32x4_512,        // llvm.x86.avx512.mask.broadcastf32x4.512
-+    x86_avx512_mask_broadcastf32x8_512,        // llvm.x86.avx512.mask.broadcastf32x8.512
-+    x86_avx512_mask_broadcastf64x2_256,        // llvm.x86.avx512.mask.broadcastf64x2.256
-+    x86_avx512_mask_broadcastf64x2_512,        // llvm.x86.avx512.mask.broadcastf64x2.512
-+    x86_avx512_mask_broadcastf64x4_512,        // llvm.x86.avx512.mask.broadcastf64x4.512
-+    x86_avx512_mask_broadcasti32x2_128,        // llvm.x86.avx512.mask.broadcasti32x2.128
-+    x86_avx512_mask_broadcasti32x2_256,        // llvm.x86.avx512.mask.broadcasti32x2.256
-+    x86_avx512_mask_broadcasti32x2_512,        // llvm.x86.avx512.mask.broadcasti32x2.512
-+    x86_avx512_mask_broadcasti32x4_256,        // llvm.x86.avx512.mask.broadcasti32x4.256
-+    x86_avx512_mask_broadcasti32x4_512,        // llvm.x86.avx512.mask.broadcasti32x4.512
-+    x86_avx512_mask_broadcasti32x8_512,        // llvm.x86.avx512.mask.broadcasti32x8.512
-+    x86_avx512_mask_broadcasti64x2_256,        // llvm.x86.avx512.mask.broadcasti64x2.256
-+    x86_avx512_mask_broadcasti64x2_512,        // llvm.x86.avx512.mask.broadcasti64x2.512
-+    x86_avx512_mask_broadcasti64x4_512,        // llvm.x86.avx512.mask.broadcasti64x4.512
-+    x86_avx512_mask_cmp_b_128,                 // llvm.x86.avx512.mask.cmp.b.128
-+    x86_avx512_mask_cmp_b_256,                 // llvm.x86.avx512.mask.cmp.b.256
-+    x86_avx512_mask_cmp_b_512,                 // llvm.x86.avx512.mask.cmp.b.512
-+    x86_avx512_mask_cmp_d_128,                 // llvm.x86.avx512.mask.cmp.d.128
-+    x86_avx512_mask_cmp_d_256,                 // llvm.x86.avx512.mask.cmp.d.256
-+    x86_avx512_mask_cmp_d_512,                 // llvm.x86.avx512.mask.cmp.d.512
-+    x86_avx512_mask_cmp_pd_128,                // llvm.x86.avx512.mask.cmp.pd.128
-+    x86_avx512_mask_cmp_pd_256,                // llvm.x86.avx512.mask.cmp.pd.256
-+    x86_avx512_mask_cmp_pd_512,                // llvm.x86.avx512.mask.cmp.pd.512
-+    x86_avx512_mask_cmp_ps_128,                // llvm.x86.avx512.mask.cmp.ps.128
-+    x86_avx512_mask_cmp_ps_256,                // llvm.x86.avx512.mask.cmp.ps.256
-+    x86_avx512_mask_cmp_ps_512,                // llvm.x86.avx512.mask.cmp.ps.512
-+    x86_avx512_mask_cmp_q_128,                 // llvm.x86.avx512.mask.cmp.q.128
-+    x86_avx512_mask_cmp_q_256,                 // llvm.x86.avx512.mask.cmp.q.256
-+    x86_avx512_mask_cmp_q_512,                 // llvm.x86.avx512.mask.cmp.q.512
-+    x86_avx512_mask_cmp_sd,                    // llvm.x86.avx512.mask.cmp.sd
-+    x86_avx512_mask_cmp_ss,                    // llvm.x86.avx512.mask.cmp.ss
-+    x86_avx512_mask_cmp_w_128,                 // llvm.x86.avx512.mask.cmp.w.128
-+    x86_avx512_mask_cmp_w_256,                 // llvm.x86.avx512.mask.cmp.w.256
-+    x86_avx512_mask_cmp_w_512,                 // llvm.x86.avx512.mask.cmp.w.512
-+    x86_avx512_mask_compress_d_128,            // llvm.x86.avx512.mask.compress.d.128
-+    x86_avx512_mask_compress_d_256,            // llvm.x86.avx512.mask.compress.d.256
-+    x86_avx512_mask_compress_d_512,            // llvm.x86.avx512.mask.compress.d.512
-+    x86_avx512_mask_compress_pd_128,           // llvm.x86.avx512.mask.compress.pd.128
-+    x86_avx512_mask_compress_pd_256,           // llvm.x86.avx512.mask.compress.pd.256
-+    x86_avx512_mask_compress_pd_512,           // llvm.x86.avx512.mask.compress.pd.512
-+    x86_avx512_mask_compress_ps_128,           // llvm.x86.avx512.mask.compress.ps.128
-+    x86_avx512_mask_compress_ps_256,           // llvm.x86.avx512.mask.compress.ps.256
-+    x86_avx512_mask_compress_ps_512,           // llvm.x86.avx512.mask.compress.ps.512
-+    x86_avx512_mask_compress_q_128,            // llvm.x86.avx512.mask.compress.q.128
-+    x86_avx512_mask_compress_q_256,            // llvm.x86.avx512.mask.compress.q.256
-+    x86_avx512_mask_compress_q_512,            // llvm.x86.avx512.mask.compress.q.512
-+    x86_avx512_mask_compress_store_d_128,      // llvm.x86.avx512.mask.compress.store.d.128
-+    x86_avx512_mask_compress_store_d_256,      // llvm.x86.avx512.mask.compress.store.d.256
-+    x86_avx512_mask_compress_store_d_512,      // llvm.x86.avx512.mask.compress.store.d.512
-+    x86_avx512_mask_compress_store_pd_128,     // llvm.x86.avx512.mask.compress.store.pd.128
-+    x86_avx512_mask_compress_store_pd_256,     // llvm.x86.avx512.mask.compress.store.pd.256
-+    x86_avx512_mask_compress_store_pd_512,     // llvm.x86.avx512.mask.compress.store.pd.512
-+    x86_avx512_mask_compress_store_ps_128,     // llvm.x86.avx512.mask.compress.store.ps.128
-+    x86_avx512_mask_compress_store_ps_256,     // llvm.x86.avx512.mask.compress.store.ps.256
-+    x86_avx512_mask_compress_store_ps_512,     // llvm.x86.avx512.mask.compress.store.ps.512
-+    x86_avx512_mask_compress_store_q_128,      // llvm.x86.avx512.mask.compress.store.q.128
-+    x86_avx512_mask_compress_store_q_256,      // llvm.x86.avx512.mask.compress.store.q.256
-+    x86_avx512_mask_compress_store_q_512,      // llvm.x86.avx512.mask.compress.store.q.512
-+    x86_avx512_mask_conflict_d_128,            // llvm.x86.avx512.mask.conflict.d.128
-+    x86_avx512_mask_conflict_d_256,            // llvm.x86.avx512.mask.conflict.d.256
-+    x86_avx512_mask_conflict_d_512,            // llvm.x86.avx512.mask.conflict.d.512
-+    x86_avx512_mask_conflict_q_128,            // llvm.x86.avx512.mask.conflict.q.128
-+    x86_avx512_mask_conflict_q_256,            // llvm.x86.avx512.mask.conflict.q.256
-+    x86_avx512_mask_conflict_q_512,            // llvm.x86.avx512.mask.conflict.q.512
-+    x86_avx512_mask_cvtdq2ps_128,              // llvm.x86.avx512.mask.cvtdq2ps.128
-+    x86_avx512_mask_cvtdq2ps_256,              // llvm.x86.avx512.mask.cvtdq2ps.256
-+    x86_avx512_mask_cvtdq2ps_512,              // llvm.x86.avx512.mask.cvtdq2ps.512
-+    x86_avx512_mask_cvtpd2dq_128,              // llvm.x86.avx512.mask.cvtpd2dq.128
-+    x86_avx512_mask_cvtpd2dq_256,              // llvm.x86.avx512.mask.cvtpd2dq.256
-+    x86_avx512_mask_cvtpd2dq_512,              // llvm.x86.avx512.mask.cvtpd2dq.512
-+    x86_avx512_mask_cvtpd2ps,                  // llvm.x86.avx512.mask.cvtpd2ps
-+    x86_avx512_mask_cvtpd2ps_256,              // llvm.x86.avx512.mask.cvtpd2ps.256
-+    x86_avx512_mask_cvtpd2ps_512,              // llvm.x86.avx512.mask.cvtpd2ps.512
-+    x86_avx512_mask_cvtpd2qq_128,              // llvm.x86.avx512.mask.cvtpd2qq.128
-+    x86_avx512_mask_cvtpd2qq_256,              // llvm.x86.avx512.mask.cvtpd2qq.256
-+    x86_avx512_mask_cvtpd2qq_512,              // llvm.x86.avx512.mask.cvtpd2qq.512
-+    x86_avx512_mask_cvtpd2udq_128,             // llvm.x86.avx512.mask.cvtpd2udq.128
-+    x86_avx512_mask_cvtpd2udq_256,             // llvm.x86.avx512.mask.cvtpd2udq.256
-+    x86_avx512_mask_cvtpd2udq_512,             // llvm.x86.avx512.mask.cvtpd2udq.512
-+    x86_avx512_mask_cvtpd2uqq_128,             // llvm.x86.avx512.mask.cvtpd2uqq.128
-+    x86_avx512_mask_cvtpd2uqq_256,             // llvm.x86.avx512.mask.cvtpd2uqq.256
-+    x86_avx512_mask_cvtpd2uqq_512,             // llvm.x86.avx512.mask.cvtpd2uqq.512
-+    x86_avx512_mask_cvtps2dq_128,              // llvm.x86.avx512.mask.cvtps2dq.128
-+    x86_avx512_mask_cvtps2dq_256,              // llvm.x86.avx512.mask.cvtps2dq.256
-+    x86_avx512_mask_cvtps2dq_512,              // llvm.x86.avx512.mask.cvtps2dq.512
-+    x86_avx512_mask_cvtps2pd_128,              // llvm.x86.avx512.mask.cvtps2pd.128
-+    x86_avx512_mask_cvtps2pd_256,              // llvm.x86.avx512.mask.cvtps2pd.256
-+    x86_avx512_mask_cvtps2pd_512,              // llvm.x86.avx512.mask.cvtps2pd.512
-+    x86_avx512_mask_cvtps2qq_128,              // llvm.x86.avx512.mask.cvtps2qq.128
-+    x86_avx512_mask_cvtps2qq_256,              // llvm.x86.avx512.mask.cvtps2qq.256
-+    x86_avx512_mask_cvtps2qq_512,              // llvm.x86.avx512.mask.cvtps2qq.512
-+    x86_avx512_mask_cvtps2udq_128,             // llvm.x86.avx512.mask.cvtps2udq.128
-+    x86_avx512_mask_cvtps2udq_256,             // llvm.x86.avx512.mask.cvtps2udq.256
-+    x86_avx512_mask_cvtps2udq_512,             // llvm.x86.avx512.mask.cvtps2udq.512
-+    x86_avx512_mask_cvtps2uqq_128,             // llvm.x86.avx512.mask.cvtps2uqq.128
-+    x86_avx512_mask_cvtps2uqq_256,             // llvm.x86.avx512.mask.cvtps2uqq.256
-+    x86_avx512_mask_cvtps2uqq_512,             // llvm.x86.avx512.mask.cvtps2uqq.512
-+    x86_avx512_mask_cvtqq2pd_128,              // llvm.x86.avx512.mask.cvtqq2pd.128
-+    x86_avx512_mask_cvtqq2pd_256,              // llvm.x86.avx512.mask.cvtqq2pd.256
-+    x86_avx512_mask_cvtqq2pd_512,              // llvm.x86.avx512.mask.cvtqq2pd.512
-+    x86_avx512_mask_cvtqq2ps_128,              // llvm.x86.avx512.mask.cvtqq2ps.128
-+    x86_avx512_mask_cvtqq2ps_256,              // llvm.x86.avx512.mask.cvtqq2ps.256
-+    x86_avx512_mask_cvtqq2ps_512,              // llvm.x86.avx512.mask.cvtqq2ps.512
-+    x86_avx512_mask_cvtsd2ss_round,            // llvm.x86.avx512.mask.cvtsd2ss.round
-+    x86_avx512_mask_cvtss2sd_round,            // llvm.x86.avx512.mask.cvtss2sd.round
-+    x86_avx512_mask_cvttpd2dq_128,             // llvm.x86.avx512.mask.cvttpd2dq.128
-+    x86_avx512_mask_cvttpd2dq_256,             // llvm.x86.avx512.mask.cvttpd2dq.256
-+    x86_avx512_mask_cvttpd2dq_512,             // llvm.x86.avx512.mask.cvttpd2dq.512
-+    x86_avx512_mask_cvttpd2qq_128,             // llvm.x86.avx512.mask.cvttpd2qq.128
-+    x86_avx512_mask_cvttpd2qq_256,             // llvm.x86.avx512.mask.cvttpd2qq.256
-+    x86_avx512_mask_cvttpd2qq_512,             // llvm.x86.avx512.mask.cvttpd2qq.512
-+    x86_avx512_mask_cvttpd2udq_128,            // llvm.x86.avx512.mask.cvttpd2udq.128
-+    x86_avx512_mask_cvttpd2udq_256,            // llvm.x86.avx512.mask.cvttpd2udq.256
-+    x86_avx512_mask_cvttpd2udq_512,            // llvm.x86.avx512.mask.cvttpd2udq.512
-+    x86_avx512_mask_cvttpd2uqq_128,            // llvm.x86.avx512.mask.cvttpd2uqq.128
-+    x86_avx512_mask_cvttpd2uqq_256,            // llvm.x86.avx512.mask.cvttpd2uqq.256
-+    x86_avx512_mask_cvttpd2uqq_512,            // llvm.x86.avx512.mask.cvttpd2uqq.512
-+    x86_avx512_mask_cvttps2dq_128,             // llvm.x86.avx512.mask.cvttps2dq.128
-+    x86_avx512_mask_cvttps2dq_256,             // llvm.x86.avx512.mask.cvttps2dq.256
-+    x86_avx512_mask_cvttps2dq_512,             // llvm.x86.avx512.mask.cvttps2dq.512
-+    x86_avx512_mask_cvttps2qq_128,             // llvm.x86.avx512.mask.cvttps2qq.128
-+    x86_avx512_mask_cvttps2qq_256,             // llvm.x86.avx512.mask.cvttps2qq.256
-+    x86_avx512_mask_cvttps2qq_512,             // llvm.x86.avx512.mask.cvttps2qq.512
-+    x86_avx512_mask_cvttps2udq_128,            // llvm.x86.avx512.mask.cvttps2udq.128
-+    x86_avx512_mask_cvttps2udq_256,            // llvm.x86.avx512.mask.cvttps2udq.256
-+    x86_avx512_mask_cvttps2udq_512,            // llvm.x86.avx512.mask.cvttps2udq.512
-+    x86_avx512_mask_cvttps2uqq_128,            // llvm.x86.avx512.mask.cvttps2uqq.128
-+    x86_avx512_mask_cvttps2uqq_256,            // llvm.x86.avx512.mask.cvttps2uqq.256
-+    x86_avx512_mask_cvttps2uqq_512,            // llvm.x86.avx512.mask.cvttps2uqq.512
-+    x86_avx512_mask_cvtudq2ps_128,             // llvm.x86.avx512.mask.cvtudq2ps.128
-+    x86_avx512_mask_cvtudq2ps_256,             // llvm.x86.avx512.mask.cvtudq2ps.256
-+    x86_avx512_mask_cvtudq2ps_512,             // llvm.x86.avx512.mask.cvtudq2ps.512
-+    x86_avx512_mask_cvtuqq2pd_128,             // llvm.x86.avx512.mask.cvtuqq2pd.128
-+    x86_avx512_mask_cvtuqq2pd_256,             // llvm.x86.avx512.mask.cvtuqq2pd.256
-+    x86_avx512_mask_cvtuqq2pd_512,             // llvm.x86.avx512.mask.cvtuqq2pd.512
-+    x86_avx512_mask_cvtuqq2ps_128,             // llvm.x86.avx512.mask.cvtuqq2ps.128
-+    x86_avx512_mask_cvtuqq2ps_256,             // llvm.x86.avx512.mask.cvtuqq2ps.256
-+    x86_avx512_mask_cvtuqq2ps_512,             // llvm.x86.avx512.mask.cvtuqq2ps.512
-+    x86_avx512_mask_dbpsadbw_128,              // llvm.x86.avx512.mask.dbpsadbw.128
-+    x86_avx512_mask_dbpsadbw_256,              // llvm.x86.avx512.mask.dbpsadbw.256
-+    x86_avx512_mask_dbpsadbw_512,              // llvm.x86.avx512.mask.dbpsadbw.512
-+    x86_avx512_mask_div_pd_512,                // llvm.x86.avx512.mask.div.pd.512
-+    x86_avx512_mask_div_ps_512,                // llvm.x86.avx512.mask.div.ps.512
-+    x86_avx512_mask_div_sd_round,              // llvm.x86.avx512.mask.div.sd.round
-+    x86_avx512_mask_div_ss_round,              // llvm.x86.avx512.mask.div.ss.round
-+    x86_avx512_mask_expand_d_128,              // llvm.x86.avx512.mask.expand.d.128
-+    x86_avx512_mask_expand_d_256,              // llvm.x86.avx512.mask.expand.d.256
-+    x86_avx512_mask_expand_d_512,              // llvm.x86.avx512.mask.expand.d.512
-+    x86_avx512_mask_expand_load_d_128,         // llvm.x86.avx512.mask.expand.load.d.128
-+    x86_avx512_mask_expand_load_d_256,         // llvm.x86.avx512.mask.expand.load.d.256
-+    x86_avx512_mask_expand_load_d_512,         // llvm.x86.avx512.mask.expand.load.d.512
-+    x86_avx512_mask_expand_load_pd_128,        // llvm.x86.avx512.mask.expand.load.pd.128
-+    x86_avx512_mask_expand_load_pd_256,        // llvm.x86.avx512.mask.expand.load.pd.256
-+    x86_avx512_mask_expand_load_pd_512,        // llvm.x86.avx512.mask.expand.load.pd.512
-+    x86_avx512_mask_expand_load_ps_128,        // llvm.x86.avx512.mask.expand.load.ps.128
-+    x86_avx512_mask_expand_load_ps_256,        // llvm.x86.avx512.mask.expand.load.ps.256
-+    x86_avx512_mask_expand_load_ps_512,        // llvm.x86.avx512.mask.expand.load.ps.512
-+    x86_avx512_mask_expand_load_q_128,         // llvm.x86.avx512.mask.expand.load.q.128
-+    x86_avx512_mask_expand_load_q_256,         // llvm.x86.avx512.mask.expand.load.q.256
-+    x86_avx512_mask_expand_load_q_512,         // llvm.x86.avx512.mask.expand.load.q.512
-+    x86_avx512_mask_expand_pd_128,             // llvm.x86.avx512.mask.expand.pd.128
-+    x86_avx512_mask_expand_pd_256,             // llvm.x86.avx512.mask.expand.pd.256
-+    x86_avx512_mask_expand_pd_512,             // llvm.x86.avx512.mask.expand.pd.512
-+    x86_avx512_mask_expand_ps_128,             // llvm.x86.avx512.mask.expand.ps.128
-+    x86_avx512_mask_expand_ps_256,             // llvm.x86.avx512.mask.expand.ps.256
-+    x86_avx512_mask_expand_ps_512,             // llvm.x86.avx512.mask.expand.ps.512
-+    x86_avx512_mask_expand_q_128,              // llvm.x86.avx512.mask.expand.q.128
-+    x86_avx512_mask_expand_q_256,              // llvm.x86.avx512.mask.expand.q.256
-+    x86_avx512_mask_expand_q_512,              // llvm.x86.avx512.mask.expand.q.512
-+    x86_avx512_mask_fixupimm_pd_128,           // llvm.x86.avx512.mask.fixupimm.pd.128
-+    x86_avx512_mask_fixupimm_pd_256,           // llvm.x86.avx512.mask.fixupimm.pd.256
-+    x86_avx512_mask_fixupimm_pd_512,           // llvm.x86.avx512.mask.fixupimm.pd.512
-+    x86_avx512_mask_fixupimm_ps_128,           // llvm.x86.avx512.mask.fixupimm.ps.128
-+    x86_avx512_mask_fixupimm_ps_256,           // llvm.x86.avx512.mask.fixupimm.ps.256
-+    x86_avx512_mask_fixupimm_ps_512,           // llvm.x86.avx512.mask.fixupimm.ps.512
-+    x86_avx512_mask_fixupimm_sd,               // llvm.x86.avx512.mask.fixupimm.sd
-+    x86_avx512_mask_fixupimm_ss,               // llvm.x86.avx512.mask.fixupimm.ss
-+    x86_avx512_mask_fpclass_pd_128,            // llvm.x86.avx512.mask.fpclass.pd.128
-+    x86_avx512_mask_fpclass_pd_256,            // llvm.x86.avx512.mask.fpclass.pd.256
-+    x86_avx512_mask_fpclass_pd_512,            // llvm.x86.avx512.mask.fpclass.pd.512
-+    x86_avx512_mask_fpclass_ps_128,            // llvm.x86.avx512.mask.fpclass.ps.128
-+    x86_avx512_mask_fpclass_ps_256,            // llvm.x86.avx512.mask.fpclass.ps.256
-+    x86_avx512_mask_fpclass_ps_512,            // llvm.x86.avx512.mask.fpclass.ps.512
-+    x86_avx512_mask_fpclass_sd,                // llvm.x86.avx512.mask.fpclass.sd
-+    x86_avx512_mask_fpclass_ss,                // llvm.x86.avx512.mask.fpclass.ss
-+    x86_avx512_mask_getexp_pd_128,             // llvm.x86.avx512.mask.getexp.pd.128
-+    x86_avx512_mask_getexp_pd_256,             // llvm.x86.avx512.mask.getexp.pd.256
-+    x86_avx512_mask_getexp_pd_512,             // llvm.x86.avx512.mask.getexp.pd.512
-+    x86_avx512_mask_getexp_ps_128,             // llvm.x86.avx512.mask.getexp.ps.128
-+    x86_avx512_mask_getexp_ps_256,             // llvm.x86.avx512.mask.getexp.ps.256
-+    x86_avx512_mask_getexp_ps_512,             // llvm.x86.avx512.mask.getexp.ps.512
-+    x86_avx512_mask_getexp_sd,                 // llvm.x86.avx512.mask.getexp.sd
-+    x86_avx512_mask_getexp_ss,                 // llvm.x86.avx512.mask.getexp.ss
-+    x86_avx512_mask_getmant_pd_128,            // llvm.x86.avx512.mask.getmant.pd.128
-+    x86_avx512_mask_getmant_pd_256,            // llvm.x86.avx512.mask.getmant.pd.256
-+    x86_avx512_mask_getmant_pd_512,            // llvm.x86.avx512.mask.getmant.pd.512
-+    x86_avx512_mask_getmant_ps_128,            // llvm.x86.avx512.mask.getmant.ps.128
-+    x86_avx512_mask_getmant_ps_256,            // llvm.x86.avx512.mask.getmant.ps.256
-+    x86_avx512_mask_getmant_ps_512,            // llvm.x86.avx512.mask.getmant.ps.512
-+    x86_avx512_mask_getmant_sd,                // llvm.x86.avx512.mask.getmant.sd
-+    x86_avx512_mask_getmant_ss,                // llvm.x86.avx512.mask.getmant.ss
-+    x86_avx512_mask_insertf32x4_256,           // llvm.x86.avx512.mask.insertf32x4.256
-+    x86_avx512_mask_insertf32x4_512,           // llvm.x86.avx512.mask.insertf32x4.512
-+    x86_avx512_mask_insertf32x8_512,           // llvm.x86.avx512.mask.insertf32x8.512
-+    x86_avx512_mask_insertf64x2_256,           // llvm.x86.avx512.mask.insertf64x2.256
-+    x86_avx512_mask_insertf64x2_512,           // llvm.x86.avx512.mask.insertf64x2.512
-+    x86_avx512_mask_insertf64x4_512,           // llvm.x86.avx512.mask.insertf64x4.512
-+    x86_avx512_mask_inserti32x4_256,           // llvm.x86.avx512.mask.inserti32x4.256
-+    x86_avx512_mask_inserti32x4_512,           // llvm.x86.avx512.mask.inserti32x4.512
-+    x86_avx512_mask_inserti32x8_512,           // llvm.x86.avx512.mask.inserti32x8.512
-+    x86_avx512_mask_inserti64x2_256,           // llvm.x86.avx512.mask.inserti64x2.256
-+    x86_avx512_mask_inserti64x2_512,           // llvm.x86.avx512.mask.inserti64x2.512
-+    x86_avx512_mask_inserti64x4_512,           // llvm.x86.avx512.mask.inserti64x4.512
-+    x86_avx512_mask_lzcnt_d_128,               // llvm.x86.avx512.mask.lzcnt.d.128
-+    x86_avx512_mask_lzcnt_d_256,               // llvm.x86.avx512.mask.lzcnt.d.256
-+    x86_avx512_mask_lzcnt_d_512,               // llvm.x86.avx512.mask.lzcnt.d.512
-+    x86_avx512_mask_lzcnt_q_128,               // llvm.x86.avx512.mask.lzcnt.q.128
-+    x86_avx512_mask_lzcnt_q_256,               // llvm.x86.avx512.mask.lzcnt.q.256
-+    x86_avx512_mask_lzcnt_q_512,               // llvm.x86.avx512.mask.lzcnt.q.512
-+    x86_avx512_mask_max_pd_128,                // llvm.x86.avx512.mask.max.pd.128
-+    x86_avx512_mask_max_pd_256,                // llvm.x86.avx512.mask.max.pd.256
-+    x86_avx512_mask_max_pd_512,                // llvm.x86.avx512.mask.max.pd.512
-+    x86_avx512_mask_max_ps_128,                // llvm.x86.avx512.mask.max.ps.128
-+    x86_avx512_mask_max_ps_256,                // llvm.x86.avx512.mask.max.ps.256
-+    x86_avx512_mask_max_ps_512,                // llvm.x86.avx512.mask.max.ps.512
-+    x86_avx512_mask_max_sd_round,              // llvm.x86.avx512.mask.max.sd.round
-+    x86_avx512_mask_max_ss_round,              // llvm.x86.avx512.mask.max.ss.round
-+    x86_avx512_mask_min_pd_128,                // llvm.x86.avx512.mask.min.pd.128
-+    x86_avx512_mask_min_pd_256,                // llvm.x86.avx512.mask.min.pd.256
-+    x86_avx512_mask_min_pd_512,                // llvm.x86.avx512.mask.min.pd.512
-+    x86_avx512_mask_min_ps_128,                // llvm.x86.avx512.mask.min.ps.128
-+    x86_avx512_mask_min_ps_256,                // llvm.x86.avx512.mask.min.ps.256
-+    x86_avx512_mask_min_ps_512,                // llvm.x86.avx512.mask.min.ps.512
-+    x86_avx512_mask_min_sd_round,              // llvm.x86.avx512.mask.min.sd.round
-+    x86_avx512_mask_min_ss_round,              // llvm.x86.avx512.mask.min.ss.round
-+    x86_avx512_mask_mul_pd_512,                // llvm.x86.avx512.mask.mul.pd.512
-+    x86_avx512_mask_mul_ps_512,                // llvm.x86.avx512.mask.mul.ps.512
-+    x86_avx512_mask_mul_sd_round,              // llvm.x86.avx512.mask.mul.sd.round
-+    x86_avx512_mask_mul_ss_round,              // llvm.x86.avx512.mask.mul.ss.round
-+    x86_avx512_mask_pabs_b_128,                // llvm.x86.avx512.mask.pabs.b.128
-+    x86_avx512_mask_pabs_b_256,                // llvm.x86.avx512.mask.pabs.b.256
-+    x86_avx512_mask_pabs_b_512,                // llvm.x86.avx512.mask.pabs.b.512
-+    x86_avx512_mask_pabs_d_128,                // llvm.x86.avx512.mask.pabs.d.128
-+    x86_avx512_mask_pabs_d_256,                // llvm.x86.avx512.mask.pabs.d.256
-+    x86_avx512_mask_pabs_d_512,                // llvm.x86.avx512.mask.pabs.d.512
-+    x86_avx512_mask_pabs_q_128,                // llvm.x86.avx512.mask.pabs.q.128
-+    x86_avx512_mask_pabs_q_256,                // llvm.x86.avx512.mask.pabs.q.256
-+    x86_avx512_mask_pabs_q_512,                // llvm.x86.avx512.mask.pabs.q.512
-+    x86_avx512_mask_pabs_w_128,                // llvm.x86.avx512.mask.pabs.w.128
-+    x86_avx512_mask_pabs_w_256,                // llvm.x86.avx512.mask.pabs.w.256
-+    x86_avx512_mask_pabs_w_512,                // llvm.x86.avx512.mask.pabs.w.512
-+    x86_avx512_mask_packssdw_128,              // llvm.x86.avx512.mask.packssdw.128
-+    x86_avx512_mask_packssdw_256,              // llvm.x86.avx512.mask.packssdw.256
-+    x86_avx512_mask_packssdw_512,              // llvm.x86.avx512.mask.packssdw.512
-+    x86_avx512_mask_packsswb_128,              // llvm.x86.avx512.mask.packsswb.128
-+    x86_avx512_mask_packsswb_256,              // llvm.x86.avx512.mask.packsswb.256
-+    x86_avx512_mask_packsswb_512,              // llvm.x86.avx512.mask.packsswb.512
-+    x86_avx512_mask_packusdw_128,              // llvm.x86.avx512.mask.packusdw.128
-+    x86_avx512_mask_packusdw_256,              // llvm.x86.avx512.mask.packusdw.256
-+    x86_avx512_mask_packusdw_512,              // llvm.x86.avx512.mask.packusdw.512
-+    x86_avx512_mask_packuswb_128,              // llvm.x86.avx512.mask.packuswb.128
-+    x86_avx512_mask_packuswb_256,              // llvm.x86.avx512.mask.packuswb.256
-+    x86_avx512_mask_packuswb_512,              // llvm.x86.avx512.mask.packuswb.512
-+    x86_avx512_mask_padds_b_128,               // llvm.x86.avx512.mask.padds.b.128
-+    x86_avx512_mask_padds_b_256,               // llvm.x86.avx512.mask.padds.b.256
-+    x86_avx512_mask_padds_b_512,               // llvm.x86.avx512.mask.padds.b.512
-+    x86_avx512_mask_padds_w_128,               // llvm.x86.avx512.mask.padds.w.128
-+    x86_avx512_mask_padds_w_256,               // llvm.x86.avx512.mask.padds.w.256
-+    x86_avx512_mask_padds_w_512,               // llvm.x86.avx512.mask.padds.w.512
-+    x86_avx512_mask_paddus_b_128,              // llvm.x86.avx512.mask.paddus.b.128
-+    x86_avx512_mask_paddus_b_256,              // llvm.x86.avx512.mask.paddus.b.256
-+    x86_avx512_mask_paddus_b_512,              // llvm.x86.avx512.mask.paddus.b.512
-+    x86_avx512_mask_paddus_w_128,              // llvm.x86.avx512.mask.paddus.w.128
-+    x86_avx512_mask_paddus_w_256,              // llvm.x86.avx512.mask.paddus.w.256
-+    x86_avx512_mask_paddus_w_512,              // llvm.x86.avx512.mask.paddus.w.512
-+    x86_avx512_mask_pavg_b_128,                // llvm.x86.avx512.mask.pavg.b.128
-+    x86_avx512_mask_pavg_b_256,                // llvm.x86.avx512.mask.pavg.b.256
-+    x86_avx512_mask_pavg_b_512,                // llvm.x86.avx512.mask.pavg.b.512
-+    x86_avx512_mask_pavg_w_128,                // llvm.x86.avx512.mask.pavg.w.128
-+    x86_avx512_mask_pavg_w_256,                // llvm.x86.avx512.mask.pavg.w.256
-+    x86_avx512_mask_pavg_w_512,                // llvm.x86.avx512.mask.pavg.w.512
-+    x86_avx512_mask_pbroadcast_b_gpr_128,      // llvm.x86.avx512.mask.pbroadcast.b.gpr.128
-+    x86_avx512_mask_pbroadcast_b_gpr_256,      // llvm.x86.avx512.mask.pbroadcast.b.gpr.256
-+    x86_avx512_mask_pbroadcast_b_gpr_512,      // llvm.x86.avx512.mask.pbroadcast.b.gpr.512
-+    x86_avx512_mask_pbroadcast_d_gpr_128,      // llvm.x86.avx512.mask.pbroadcast.d.gpr.128
-+    x86_avx512_mask_pbroadcast_d_gpr_256,      // llvm.x86.avx512.mask.pbroadcast.d.gpr.256
-+    x86_avx512_mask_pbroadcast_d_gpr_512,      // llvm.x86.avx512.mask.pbroadcast.d.gpr.512
-+    x86_avx512_mask_pbroadcast_q_gpr_128,      // llvm.x86.avx512.mask.pbroadcast.q.gpr.128
-+    x86_avx512_mask_pbroadcast_q_gpr_256,      // llvm.x86.avx512.mask.pbroadcast.q.gpr.256
-+    x86_avx512_mask_pbroadcast_q_gpr_512,      // llvm.x86.avx512.mask.pbroadcast.q.gpr.512
-+    x86_avx512_mask_pbroadcast_q_mem_512,      // llvm.x86.avx512.mask.pbroadcast.q.mem.512
-+    x86_avx512_mask_pbroadcast_w_gpr_128,      // llvm.x86.avx512.mask.pbroadcast.w.gpr.128
-+    x86_avx512_mask_pbroadcast_w_gpr_256,      // llvm.x86.avx512.mask.pbroadcast.w.gpr.256
-+    x86_avx512_mask_pbroadcast_w_gpr_512,      // llvm.x86.avx512.mask.pbroadcast.w.gpr.512
-+    x86_avx512_mask_permvar_df_256,            // llvm.x86.avx512.mask.permvar.df.256
-+    x86_avx512_mask_permvar_df_512,            // llvm.x86.avx512.mask.permvar.df.512
-+    x86_avx512_mask_permvar_di_256,            // llvm.x86.avx512.mask.permvar.di.256
-+    x86_avx512_mask_permvar_di_512,            // llvm.x86.avx512.mask.permvar.di.512
-+    x86_avx512_mask_permvar_hi_128,            // llvm.x86.avx512.mask.permvar.hi.128
-+    x86_avx512_mask_permvar_hi_256,            // llvm.x86.avx512.mask.permvar.hi.256
-+    x86_avx512_mask_permvar_hi_512,            // llvm.x86.avx512.mask.permvar.hi.512
-+    x86_avx512_mask_permvar_qi_128,            // llvm.x86.avx512.mask.permvar.qi.128
-+    x86_avx512_mask_permvar_qi_256,            // llvm.x86.avx512.mask.permvar.qi.256
-+    x86_avx512_mask_permvar_qi_512,            // llvm.x86.avx512.mask.permvar.qi.512
-+    x86_avx512_mask_permvar_sf_256,            // llvm.x86.avx512.mask.permvar.sf.256
-+    x86_avx512_mask_permvar_sf_512,            // llvm.x86.avx512.mask.permvar.sf.512
-+    x86_avx512_mask_permvar_si_256,            // llvm.x86.avx512.mask.permvar.si.256
-+    x86_avx512_mask_permvar_si_512,            // llvm.x86.avx512.mask.permvar.si.512
-+    x86_avx512_mask_pmaddubs_w_128,            // llvm.x86.avx512.mask.pmaddubs.w.128
-+    x86_avx512_mask_pmaddubs_w_256,            // llvm.x86.avx512.mask.pmaddubs.w.256
-+    x86_avx512_mask_pmaddubs_w_512,            // llvm.x86.avx512.mask.pmaddubs.w.512
-+    x86_avx512_mask_pmaddw_d_128,              // llvm.x86.avx512.mask.pmaddw.d.128
-+    x86_avx512_mask_pmaddw_d_256,              // llvm.x86.avx512.mask.pmaddw.d.256
-+    x86_avx512_mask_pmaddw_d_512,              // llvm.x86.avx512.mask.pmaddw.d.512
-+    x86_avx512_mask_pmov_db_128,               // llvm.x86.avx512.mask.pmov.db.128
-+    x86_avx512_mask_pmov_db_256,               // llvm.x86.avx512.mask.pmov.db.256
-+    x86_avx512_mask_pmov_db_512,               // llvm.x86.avx512.mask.pmov.db.512
-+    x86_avx512_mask_pmov_db_mem_128,           // llvm.x86.avx512.mask.pmov.db.mem.128
-+    x86_avx512_mask_pmov_db_mem_256,           // llvm.x86.avx512.mask.pmov.db.mem.256
-+    x86_avx512_mask_pmov_db_mem_512,           // llvm.x86.avx512.mask.pmov.db.mem.512
-+    x86_avx512_mask_pmov_dw_128,               // llvm.x86.avx512.mask.pmov.dw.128
-+    x86_avx512_mask_pmov_dw_256,               // llvm.x86.avx512.mask.pmov.dw.256
-+    x86_avx512_mask_pmov_dw_512,               // llvm.x86.avx512.mask.pmov.dw.512
-+    x86_avx512_mask_pmov_dw_mem_128,           // llvm.x86.avx512.mask.pmov.dw.mem.128
-+    x86_avx512_mask_pmov_dw_mem_256,           // llvm.x86.avx512.mask.pmov.dw.mem.256
-+    x86_avx512_mask_pmov_dw_mem_512,           // llvm.x86.avx512.mask.pmov.dw.mem.512
-+    x86_avx512_mask_pmov_qb_128,               // llvm.x86.avx512.mask.pmov.qb.128
-+    x86_avx512_mask_pmov_qb_256,               // llvm.x86.avx512.mask.pmov.qb.256
-+    x86_avx512_mask_pmov_qb_512,               // llvm.x86.avx512.mask.pmov.qb.512
-+    x86_avx512_mask_pmov_qb_mem_128,           // llvm.x86.avx512.mask.pmov.qb.mem.128
-+    x86_avx512_mask_pmov_qb_mem_256,           // llvm.x86.avx512.mask.pmov.qb.mem.256
-+    x86_avx512_mask_pmov_qb_mem_512,           // llvm.x86.avx512.mask.pmov.qb.mem.512
-+    x86_avx512_mask_pmov_qd_128,               // llvm.x86.avx512.mask.pmov.qd.128
-+    x86_avx512_mask_pmov_qd_256,               // llvm.x86.avx512.mask.pmov.qd.256
-+    x86_avx512_mask_pmov_qd_512,               // llvm.x86.avx512.mask.pmov.qd.512
-+    x86_avx512_mask_pmov_qd_mem_128,           // llvm.x86.avx512.mask.pmov.qd.mem.128
-+    x86_avx512_mask_pmov_qd_mem_256,           // llvm.x86.avx512.mask.pmov.qd.mem.256
-+    x86_avx512_mask_pmov_qd_mem_512,           // llvm.x86.avx512.mask.pmov.qd.mem.512
-+    x86_avx512_mask_pmov_qw_128,               // llvm.x86.avx512.mask.pmov.qw.128
-+    x86_avx512_mask_pmov_qw_256,               // llvm.x86.avx512.mask.pmov.qw.256
-+    x86_avx512_mask_pmov_qw_512,               // llvm.x86.avx512.mask.pmov.qw.512
-+    x86_avx512_mask_pmov_qw_mem_128,           // llvm.x86.avx512.mask.pmov.qw.mem.128
-+    x86_avx512_mask_pmov_qw_mem_256,           // llvm.x86.avx512.mask.pmov.qw.mem.256
-+    x86_avx512_mask_pmov_qw_mem_512,           // llvm.x86.avx512.mask.pmov.qw.mem.512
-+    x86_avx512_mask_pmov_wb_128,               // llvm.x86.avx512.mask.pmov.wb.128
-+    x86_avx512_mask_pmov_wb_256,               // llvm.x86.avx512.mask.pmov.wb.256
-+    x86_avx512_mask_pmov_wb_512,               // llvm.x86.avx512.mask.pmov.wb.512
-+    x86_avx512_mask_pmov_wb_mem_128,           // llvm.x86.avx512.mask.pmov.wb.mem.128
-+    x86_avx512_mask_pmov_wb_mem_256,           // llvm.x86.avx512.mask.pmov.wb.mem.256
-+    x86_avx512_mask_pmov_wb_mem_512,           // llvm.x86.avx512.mask.pmov.wb.mem.512
-+    x86_avx512_mask_pmovs_db_128,              // llvm.x86.avx512.mask.pmovs.db.128
-+    x86_avx512_mask_pmovs_db_256,              // llvm.x86.avx512.mask.pmovs.db.256
-+    x86_avx512_mask_pmovs_db_512,              // llvm.x86.avx512.mask.pmovs.db.512
-+    x86_avx512_mask_pmovs_db_mem_128,          // llvm.x86.avx512.mask.pmovs.db.mem.128
-+    x86_avx512_mask_pmovs_db_mem_256,          // llvm.x86.avx512.mask.pmovs.db.mem.256
-+    x86_avx512_mask_pmovs_db_mem_512,          // llvm.x86.avx512.mask.pmovs.db.mem.512
-+    x86_avx512_mask_pmovs_dw_128,              // llvm.x86.avx512.mask.pmovs.dw.128
-+    x86_avx512_mask_pmovs_dw_256,              // llvm.x86.avx512.mask.pmovs.dw.256
-+    x86_avx512_mask_pmovs_dw_512,              // llvm.x86.avx512.mask.pmovs.dw.512
-+    x86_avx512_mask_pmovs_dw_mem_128,          // llvm.x86.avx512.mask.pmovs.dw.mem.128
-+    x86_avx512_mask_pmovs_dw_mem_256,          // llvm.x86.avx512.mask.pmovs.dw.mem.256
-+    x86_avx512_mask_pmovs_dw_mem_512,          // llvm.x86.avx512.mask.pmovs.dw.mem.512
-+    x86_avx512_mask_pmovs_qb_128,              // llvm.x86.avx512.mask.pmovs.qb.128
-+    x86_avx512_mask_pmovs_qb_256,              // llvm.x86.avx512.mask.pmovs.qb.256
-+    x86_avx512_mask_pmovs_qb_512,              // llvm.x86.avx512.mask.pmovs.qb.512
-+    x86_avx512_mask_pmovs_qb_mem_128,          // llvm.x86.avx512.mask.pmovs.qb.mem.128
-+    x86_avx512_mask_pmovs_qb_mem_256,          // llvm.x86.avx512.mask.pmovs.qb.mem.256
-+    x86_avx512_mask_pmovs_qb_mem_512,          // llvm.x86.avx512.mask.pmovs.qb.mem.512
-+    x86_avx512_mask_pmovs_qd_128,              // llvm.x86.avx512.mask.pmovs.qd.128
-+    x86_avx512_mask_pmovs_qd_256,              // llvm.x86.avx512.mask.pmovs.qd.256
-+    x86_avx512_mask_pmovs_qd_512,              // llvm.x86.avx512.mask.pmovs.qd.512
-+    x86_avx512_mask_pmovs_qd_mem_128,          // llvm.x86.avx512.mask.pmovs.qd.mem.128
-+    x86_avx512_mask_pmovs_qd_mem_256,          // llvm.x86.avx512.mask.pmovs.qd.mem.256
-+    x86_avx512_mask_pmovs_qd_mem_512,          // llvm.x86.avx512.mask.pmovs.qd.mem.512
-+    x86_avx512_mask_pmovs_qw_128,              // llvm.x86.avx512.mask.pmovs.qw.128
-+    x86_avx512_mask_pmovs_qw_256,              // llvm.x86.avx512.mask.pmovs.qw.256
-+    x86_avx512_mask_pmovs_qw_512,              // llvm.x86.avx512.mask.pmovs.qw.512
-+    x86_avx512_mask_pmovs_qw_mem_128,          // llvm.x86.avx512.mask.pmovs.qw.mem.128
-+    x86_avx512_mask_pmovs_qw_mem_256,          // llvm.x86.avx512.mask.pmovs.qw.mem.256
-+    x86_avx512_mask_pmovs_qw_mem_512,          // llvm.x86.avx512.mask.pmovs.qw.mem.512
-+    x86_avx512_mask_pmovs_wb_128,              // llvm.x86.avx512.mask.pmovs.wb.128
-+    x86_avx512_mask_pmovs_wb_256,              // llvm.x86.avx512.mask.pmovs.wb.256
-+    x86_avx512_mask_pmovs_wb_512,              // llvm.x86.avx512.mask.pmovs.wb.512
-+    x86_avx512_mask_pmovs_wb_mem_128,          // llvm.x86.avx512.mask.pmovs.wb.mem.128
-+    x86_avx512_mask_pmovs_wb_mem_256,          // llvm.x86.avx512.mask.pmovs.wb.mem.256
-+    x86_avx512_mask_pmovs_wb_mem_512,          // llvm.x86.avx512.mask.pmovs.wb.mem.512
-+    x86_avx512_mask_pmovus_db_128,             // llvm.x86.avx512.mask.pmovus.db.128
-+    x86_avx512_mask_pmovus_db_256,             // llvm.x86.avx512.mask.pmovus.db.256
-+    x86_avx512_mask_pmovus_db_512,             // llvm.x86.avx512.mask.pmovus.db.512
-+    x86_avx512_mask_pmovus_db_mem_128,         // llvm.x86.avx512.mask.pmovus.db.mem.128
-+    x86_avx512_mask_pmovus_db_mem_256,         // llvm.x86.avx512.mask.pmovus.db.mem.256
-+    x86_avx512_mask_pmovus_db_mem_512,         // llvm.x86.avx512.mask.pmovus.db.mem.512
-+    x86_avx512_mask_pmovus_dw_128,             // llvm.x86.avx512.mask.pmovus.dw.128
-+    x86_avx512_mask_pmovus_dw_256,             // llvm.x86.avx512.mask.pmovus.dw.256
-+    x86_avx512_mask_pmovus_dw_512,             // llvm.x86.avx512.mask.pmovus.dw.512
-+    x86_avx512_mask_pmovus_dw_mem_128,         // llvm.x86.avx512.mask.pmovus.dw.mem.128
-+    x86_avx512_mask_pmovus_dw_mem_256,         // llvm.x86.avx512.mask.pmovus.dw.mem.256
-+    x86_avx512_mask_pmovus_dw_mem_512,         // llvm.x86.avx512.mask.pmovus.dw.mem.512
-+    x86_avx512_mask_pmovus_qb_128,             // llvm.x86.avx512.mask.pmovus.qb.128
-+    x86_avx512_mask_pmovus_qb_256,             // llvm.x86.avx512.mask.pmovus.qb.256
-+    x86_avx512_mask_pmovus_qb_512,             // llvm.x86.avx512.mask.pmovus.qb.512
-+    x86_avx512_mask_pmovus_qb_mem_128,         // llvm.x86.avx512.mask.pmovus.qb.mem.128
-+    x86_avx512_mask_pmovus_qb_mem_256,         // llvm.x86.avx512.mask.pmovus.qb.mem.256
-+    x86_avx512_mask_pmovus_qb_mem_512,         // llvm.x86.avx512.mask.pmovus.qb.mem.512
-+    x86_avx512_mask_pmovus_qd_128,             // llvm.x86.avx512.mask.pmovus.qd.128
-+    x86_avx512_mask_pmovus_qd_256,             // llvm.x86.avx512.mask.pmovus.qd.256
-+    x86_avx512_mask_pmovus_qd_512,             // llvm.x86.avx512.mask.pmovus.qd.512
-+    x86_avx512_mask_pmovus_qd_mem_128,         // llvm.x86.avx512.mask.pmovus.qd.mem.128
-+    x86_avx512_mask_pmovus_qd_mem_256,         // llvm.x86.avx512.mask.pmovus.qd.mem.256
-+    x86_avx512_mask_pmovus_qd_mem_512,         // llvm.x86.avx512.mask.pmovus.qd.mem.512
-+    x86_avx512_mask_pmovus_qw_128,             // llvm.x86.avx512.mask.pmovus.qw.128
-+    x86_avx512_mask_pmovus_qw_256,             // llvm.x86.avx512.mask.pmovus.qw.256
-+    x86_avx512_mask_pmovus_qw_512,             // llvm.x86.avx512.mask.pmovus.qw.512
-+    x86_avx512_mask_pmovus_qw_mem_128,         // llvm.x86.avx512.mask.pmovus.qw.mem.128
-+    x86_avx512_mask_pmovus_qw_mem_256,         // llvm.x86.avx512.mask.pmovus.qw.mem.256
-+    x86_avx512_mask_pmovus_qw_mem_512,         // llvm.x86.avx512.mask.pmovus.qw.mem.512
-+    x86_avx512_mask_pmovus_wb_128,             // llvm.x86.avx512.mask.pmovus.wb.128
-+    x86_avx512_mask_pmovus_wb_256,             // llvm.x86.avx512.mask.pmovus.wb.256
-+    x86_avx512_mask_pmovus_wb_512,             // llvm.x86.avx512.mask.pmovus.wb.512
-+    x86_avx512_mask_pmovus_wb_mem_128,         // llvm.x86.avx512.mask.pmovus.wb.mem.128
-+    x86_avx512_mask_pmovus_wb_mem_256,         // llvm.x86.avx512.mask.pmovus.wb.mem.256
-+    x86_avx512_mask_pmovus_wb_mem_512,         // llvm.x86.avx512.mask.pmovus.wb.mem.512
-+    x86_avx512_mask_pmul_dq_128,               // llvm.x86.avx512.mask.pmul.dq.128
-+    x86_avx512_mask_pmul_dq_256,               // llvm.x86.avx512.mask.pmul.dq.256
-+    x86_avx512_mask_pmul_dq_512,               // llvm.x86.avx512.mask.pmul.dq.512
-+    x86_avx512_mask_pmul_hr_sw_128,            // llvm.x86.avx512.mask.pmul.hr.sw.128
-+    x86_avx512_mask_pmul_hr_sw_256,            // llvm.x86.avx512.mask.pmul.hr.sw.256
-+    x86_avx512_mask_pmul_hr_sw_512,            // llvm.x86.avx512.mask.pmul.hr.sw.512
-+    x86_avx512_mask_pmulh_w_128,               // llvm.x86.avx512.mask.pmulh.w.128
-+    x86_avx512_mask_pmulh_w_256,               // llvm.x86.avx512.mask.pmulh.w.256
-+    x86_avx512_mask_pmulh_w_512,               // llvm.x86.avx512.mask.pmulh.w.512
-+    x86_avx512_mask_pmulhu_w_128,              // llvm.x86.avx512.mask.pmulhu.w.128
-+    x86_avx512_mask_pmulhu_w_256,              // llvm.x86.avx512.mask.pmulhu.w.256
-+    x86_avx512_mask_pmulhu_w_512,              // llvm.x86.avx512.mask.pmulhu.w.512
-+    x86_avx512_mask_pmultishift_qb_128,        // llvm.x86.avx512.mask.pmultishift.qb.128
-+    x86_avx512_mask_pmultishift_qb_256,        // llvm.x86.avx512.mask.pmultishift.qb.256
-+    x86_avx512_mask_pmultishift_qb_512,        // llvm.x86.avx512.mask.pmultishift.qb.512
-+    x86_avx512_mask_pmulu_dq_128,              // llvm.x86.avx512.mask.pmulu.dq.128
-+    x86_avx512_mask_pmulu_dq_256,              // llvm.x86.avx512.mask.pmulu.dq.256
-+    x86_avx512_mask_pmulu_dq_512,              // llvm.x86.avx512.mask.pmulu.dq.512
-+    x86_avx512_mask_prol_d_128,                // llvm.x86.avx512.mask.prol.d.128
-+    x86_avx512_mask_prol_d_256,                // llvm.x86.avx512.mask.prol.d.256
-+    x86_avx512_mask_prol_d_512,                // llvm.x86.avx512.mask.prol.d.512
-+    x86_avx512_mask_prol_q_128,                // llvm.x86.avx512.mask.prol.q.128
-+    x86_avx512_mask_prol_q_256,                // llvm.x86.avx512.mask.prol.q.256
-+    x86_avx512_mask_prol_q_512,                // llvm.x86.avx512.mask.prol.q.512
-+    x86_avx512_mask_prolv_d_128,               // llvm.x86.avx512.mask.prolv.d.128
-+    x86_avx512_mask_prolv_d_256,               // llvm.x86.avx512.mask.prolv.d.256
-+    x86_avx512_mask_prolv_d_512,               // llvm.x86.avx512.mask.prolv.d.512
-+    x86_avx512_mask_prolv_q_128,               // llvm.x86.avx512.mask.prolv.q.128
-+    x86_avx512_mask_prolv_q_256,               // llvm.x86.avx512.mask.prolv.q.256
-+    x86_avx512_mask_prolv_q_512,               // llvm.x86.avx512.mask.prolv.q.512
-+    x86_avx512_mask_pror_d_128,                // llvm.x86.avx512.mask.pror.d.128
-+    x86_avx512_mask_pror_d_256,                // llvm.x86.avx512.mask.pror.d.256
-+    x86_avx512_mask_pror_d_512,                // llvm.x86.avx512.mask.pror.d.512
-+    x86_avx512_mask_pror_q_128,                // llvm.x86.avx512.mask.pror.q.128
-+    x86_avx512_mask_pror_q_256,                // llvm.x86.avx512.mask.pror.q.256
-+    x86_avx512_mask_pror_q_512,                // llvm.x86.avx512.mask.pror.q.512
-+    x86_avx512_mask_prorv_d_128,               // llvm.x86.avx512.mask.prorv.d.128
-+    x86_avx512_mask_prorv_d_256,               // llvm.x86.avx512.mask.prorv.d.256
-+    x86_avx512_mask_prorv_d_512,               // llvm.x86.avx512.mask.prorv.d.512
-+    x86_avx512_mask_prorv_q_128,               // llvm.x86.avx512.mask.prorv.q.128
-+    x86_avx512_mask_prorv_q_256,               // llvm.x86.avx512.mask.prorv.q.256
-+    x86_avx512_mask_prorv_q_512,               // llvm.x86.avx512.mask.prorv.q.512
-+    x86_avx512_mask_psubs_b_128,               // llvm.x86.avx512.mask.psubs.b.128
-+    x86_avx512_mask_psubs_b_256,               // llvm.x86.avx512.mask.psubs.b.256
-+    x86_avx512_mask_psubs_b_512,               // llvm.x86.avx512.mask.psubs.b.512
-+    x86_avx512_mask_psubs_w_128,               // llvm.x86.avx512.mask.psubs.w.128
-+    x86_avx512_mask_psubs_w_256,               // llvm.x86.avx512.mask.psubs.w.256
-+    x86_avx512_mask_psubs_w_512,               // llvm.x86.avx512.mask.psubs.w.512
-+    x86_avx512_mask_psubus_b_128,              // llvm.x86.avx512.mask.psubus.b.128
-+    x86_avx512_mask_psubus_b_256,              // llvm.x86.avx512.mask.psubus.b.256
-+    x86_avx512_mask_psubus_b_512,              // llvm.x86.avx512.mask.psubus.b.512
-+    x86_avx512_mask_psubus_w_128,              // llvm.x86.avx512.mask.psubus.w.128
-+    x86_avx512_mask_psubus_w_256,              // llvm.x86.avx512.mask.psubus.w.256
-+    x86_avx512_mask_psubus_w_512,              // llvm.x86.avx512.mask.psubus.w.512
-+    x86_avx512_mask_pternlog_d_128,            // llvm.x86.avx512.mask.pternlog.d.128
-+    x86_avx512_mask_pternlog_d_256,            // llvm.x86.avx512.mask.pternlog.d.256
-+    x86_avx512_mask_pternlog_d_512,            // llvm.x86.avx512.mask.pternlog.d.512
-+    x86_avx512_mask_pternlog_q_128,            // llvm.x86.avx512.mask.pternlog.q.128
-+    x86_avx512_mask_pternlog_q_256,            // llvm.x86.avx512.mask.pternlog.q.256
-+    x86_avx512_mask_pternlog_q_512,            // llvm.x86.avx512.mask.pternlog.q.512
-+    x86_avx512_mask_range_pd_128,              // llvm.x86.avx512.mask.range.pd.128
-+    x86_avx512_mask_range_pd_256,              // llvm.x86.avx512.mask.range.pd.256
-+    x86_avx512_mask_range_pd_512,              // llvm.x86.avx512.mask.range.pd.512
-+    x86_avx512_mask_range_ps_128,              // llvm.x86.avx512.mask.range.ps.128
-+    x86_avx512_mask_range_ps_256,              // llvm.x86.avx512.mask.range.ps.256
-+    x86_avx512_mask_range_ps_512,              // llvm.x86.avx512.mask.range.ps.512
-+    x86_avx512_mask_range_sd,                  // llvm.x86.avx512.mask.range.sd
-+    x86_avx512_mask_range_ss,                  // llvm.x86.avx512.mask.range.ss
-+    x86_avx512_mask_reduce_pd_128,             // llvm.x86.avx512.mask.reduce.pd.128
-+    x86_avx512_mask_reduce_pd_256,             // llvm.x86.avx512.mask.reduce.pd.256
-+    x86_avx512_mask_reduce_pd_512,             // llvm.x86.avx512.mask.reduce.pd.512
-+    x86_avx512_mask_reduce_ps_128,             // llvm.x86.avx512.mask.reduce.ps.128
-+    x86_avx512_mask_reduce_ps_256,             // llvm.x86.avx512.mask.reduce.ps.256
-+    x86_avx512_mask_reduce_ps_512,             // llvm.x86.avx512.mask.reduce.ps.512
-+    x86_avx512_mask_reduce_sd,                 // llvm.x86.avx512.mask.reduce.sd
-+    x86_avx512_mask_reduce_ss,                 // llvm.x86.avx512.mask.reduce.ss
-+    x86_avx512_mask_rndscale_pd_128,           // llvm.x86.avx512.mask.rndscale.pd.128
-+    x86_avx512_mask_rndscale_pd_256,           // llvm.x86.avx512.mask.rndscale.pd.256
-+    x86_avx512_mask_rndscale_pd_512,           // llvm.x86.avx512.mask.rndscale.pd.512
-+    x86_avx512_mask_rndscale_ps_128,           // llvm.x86.avx512.mask.rndscale.ps.128
-+    x86_avx512_mask_rndscale_ps_256,           // llvm.x86.avx512.mask.rndscale.ps.256
-+    x86_avx512_mask_rndscale_ps_512,           // llvm.x86.avx512.mask.rndscale.ps.512
-+    x86_avx512_mask_rndscale_sd,               // llvm.x86.avx512.mask.rndscale.sd
-+    x86_avx512_mask_rndscale_ss,               // llvm.x86.avx512.mask.rndscale.ss
-+    x86_avx512_mask_scalef_pd_128,             // llvm.x86.avx512.mask.scalef.pd.128
-+    x86_avx512_mask_scalef_pd_256,             // llvm.x86.avx512.mask.scalef.pd.256
-+    x86_avx512_mask_scalef_pd_512,             // llvm.x86.avx512.mask.scalef.pd.512
-+    x86_avx512_mask_scalef_ps_128,             // llvm.x86.avx512.mask.scalef.ps.128
-+    x86_avx512_mask_scalef_ps_256,             // llvm.x86.avx512.mask.scalef.ps.256
-+    x86_avx512_mask_scalef_ps_512,             // llvm.x86.avx512.mask.scalef.ps.512
-+    x86_avx512_mask_scalef_sd,                 // llvm.x86.avx512.mask.scalef.sd
-+    x86_avx512_mask_scalef_ss,                 // llvm.x86.avx512.mask.scalef.ss
-+    x86_avx512_mask_shuf_f32x4,                // llvm.x86.avx512.mask.shuf.f32x4
-+    x86_avx512_mask_shuf_f32x4_256,            // llvm.x86.avx512.mask.shuf.f32x4.256
-+    x86_avx512_mask_shuf_f64x2,                // llvm.x86.avx512.mask.shuf.f64x2
-+    x86_avx512_mask_shuf_f64x2_256,            // llvm.x86.avx512.mask.shuf.f64x2.256
-+    x86_avx512_mask_shuf_i32x4,                // llvm.x86.avx512.mask.shuf.i32x4
-+    x86_avx512_mask_shuf_i32x4_256,            // llvm.x86.avx512.mask.shuf.i32x4.256
-+    x86_avx512_mask_shuf_i64x2,                // llvm.x86.avx512.mask.shuf.i64x2
-+    x86_avx512_mask_shuf_i64x2_256,            // llvm.x86.avx512.mask.shuf.i64x2.256
-+    x86_avx512_mask_sqrt_pd_128,               // llvm.x86.avx512.mask.sqrt.pd.128
-+    x86_avx512_mask_sqrt_pd_256,               // llvm.x86.avx512.mask.sqrt.pd.256
-+    x86_avx512_mask_sqrt_pd_512,               // llvm.x86.avx512.mask.sqrt.pd.512
-+    x86_avx512_mask_sqrt_ps_128,               // llvm.x86.avx512.mask.sqrt.ps.128
-+    x86_avx512_mask_sqrt_ps_256,               // llvm.x86.avx512.mask.sqrt.ps.256
-+    x86_avx512_mask_sqrt_ps_512,               // llvm.x86.avx512.mask.sqrt.ps.512
-+    x86_avx512_mask_sqrt_sd,                   // llvm.x86.avx512.mask.sqrt.sd
-+    x86_avx512_mask_sqrt_ss,                   // llvm.x86.avx512.mask.sqrt.ss
-+    x86_avx512_mask_store_ss,                  // llvm.x86.avx512.mask.store.ss
-+    x86_avx512_mask_sub_pd_512,                // llvm.x86.avx512.mask.sub.pd.512
-+    x86_avx512_mask_sub_ps_512,                // llvm.x86.avx512.mask.sub.ps.512
-+    x86_avx512_mask_sub_sd_round,              // llvm.x86.avx512.mask.sub.sd.round
-+    x86_avx512_mask_sub_ss_round,              // llvm.x86.avx512.mask.sub.ss.round
-+    x86_avx512_mask_ucmp_b_128,                // llvm.x86.avx512.mask.ucmp.b.128
-+    x86_avx512_mask_ucmp_b_256,                // llvm.x86.avx512.mask.ucmp.b.256
-+    x86_avx512_mask_ucmp_b_512,                // llvm.x86.avx512.mask.ucmp.b.512
-+    x86_avx512_mask_ucmp_d_128,                // llvm.x86.avx512.mask.ucmp.d.128
-+    x86_avx512_mask_ucmp_d_256,                // llvm.x86.avx512.mask.ucmp.d.256
-+    x86_avx512_mask_ucmp_d_512,                // llvm.x86.avx512.mask.ucmp.d.512
-+    x86_avx512_mask_ucmp_q_128,                // llvm.x86.avx512.mask.ucmp.q.128
-+    x86_avx512_mask_ucmp_q_256,                // llvm.x86.avx512.mask.ucmp.q.256
-+    x86_avx512_mask_ucmp_q_512,                // llvm.x86.avx512.mask.ucmp.q.512
-+    x86_avx512_mask_ucmp_w_128,                // llvm.x86.avx512.mask.ucmp.w.128
-+    x86_avx512_mask_ucmp_w_256,                // llvm.x86.avx512.mask.ucmp.w.256
-+    x86_avx512_mask_ucmp_w_512,                // llvm.x86.avx512.mask.ucmp.w.512
-+    x86_avx512_mask_vcvtph2ps_128,             // llvm.x86.avx512.mask.vcvtph2ps.128
-+    x86_avx512_mask_vcvtph2ps_256,             // llvm.x86.avx512.mask.vcvtph2ps.256
-+    x86_avx512_mask_vcvtph2ps_512,             // llvm.x86.avx512.mask.vcvtph2ps.512
-+    x86_avx512_mask_vcvtps2ph_128,             // llvm.x86.avx512.mask.vcvtps2ph.128
-+    x86_avx512_mask_vcvtps2ph_256,             // llvm.x86.avx512.mask.vcvtps2ph.256
-+    x86_avx512_mask_vcvtps2ph_512,             // llvm.x86.avx512.mask.vcvtps2ph.512
-+    x86_avx512_mask_vextractf32x4_256,         // llvm.x86.avx512.mask.vextractf32x4.256
-+    x86_avx512_mask_vextractf32x4_512,         // llvm.x86.avx512.mask.vextractf32x4.512
-+    x86_avx512_mask_vextractf32x8_512,         // llvm.x86.avx512.mask.vextractf32x8.512
-+    x86_avx512_mask_vextractf64x2_256,         // llvm.x86.avx512.mask.vextractf64x2.256
-+    x86_avx512_mask_vextractf64x2_512,         // llvm.x86.avx512.mask.vextractf64x2.512
-+    x86_avx512_mask_vextractf64x4_512,         // llvm.x86.avx512.mask.vextractf64x4.512
-+    x86_avx512_mask_vextracti32x4_256,         // llvm.x86.avx512.mask.vextracti32x4.256
-+    x86_avx512_mask_vextracti32x4_512,         // llvm.x86.avx512.mask.vextracti32x4.512
-+    x86_avx512_mask_vextracti32x8_512,         // llvm.x86.avx512.mask.vextracti32x8.512
-+    x86_avx512_mask_vextracti64x2_256,         // llvm.x86.avx512.mask.vextracti64x2.256
-+    x86_avx512_mask_vextracti64x2_512,         // llvm.x86.avx512.mask.vextracti64x2.512
-+    x86_avx512_mask_vextracti64x4_512,         // llvm.x86.avx512.mask.vextracti64x4.512
-+    x86_avx512_mask_vfmadd_pd_128,             // llvm.x86.avx512.mask.vfmadd.pd.128
-+    x86_avx512_mask_vfmadd_pd_256,             // llvm.x86.avx512.mask.vfmadd.pd.256
-+    x86_avx512_mask_vfmadd_pd_512,             // llvm.x86.avx512.mask.vfmadd.pd.512
-+    x86_avx512_mask_vfmadd_ps_128,             // llvm.x86.avx512.mask.vfmadd.ps.128
-+    x86_avx512_mask_vfmadd_ps_256,             // llvm.x86.avx512.mask.vfmadd.ps.256
-+    x86_avx512_mask_vfmadd_ps_512,             // llvm.x86.avx512.mask.vfmadd.ps.512
-+    x86_avx512_mask_vfmadd_sd,                 // llvm.x86.avx512.mask.vfmadd.sd
-+    x86_avx512_mask_vfmadd_ss,                 // llvm.x86.avx512.mask.vfmadd.ss
-+    x86_avx512_mask_vfmaddsub_pd_128,          // llvm.x86.avx512.mask.vfmaddsub.pd.128
-+    x86_avx512_mask_vfmaddsub_pd_256,          // llvm.x86.avx512.mask.vfmaddsub.pd.256
-+    x86_avx512_mask_vfmaddsub_pd_512,          // llvm.x86.avx512.mask.vfmaddsub.pd.512
-+    x86_avx512_mask_vfmaddsub_ps_128,          // llvm.x86.avx512.mask.vfmaddsub.ps.128
-+    x86_avx512_mask_vfmaddsub_ps_256,          // llvm.x86.avx512.mask.vfmaddsub.ps.256
-+    x86_avx512_mask_vfmaddsub_ps_512,          // llvm.x86.avx512.mask.vfmaddsub.ps.512
-+    x86_avx512_mask_vfnmadd_pd_128,            // llvm.x86.avx512.mask.vfnmadd.pd.128
-+    x86_avx512_mask_vfnmadd_pd_256,            // llvm.x86.avx512.mask.vfnmadd.pd.256
-+    x86_avx512_mask_vfnmadd_pd_512,            // llvm.x86.avx512.mask.vfnmadd.pd.512
-+    x86_avx512_mask_vfnmadd_ps_128,            // llvm.x86.avx512.mask.vfnmadd.ps.128
-+    x86_avx512_mask_vfnmadd_ps_256,            // llvm.x86.avx512.mask.vfnmadd.ps.256
-+    x86_avx512_mask_vfnmadd_ps_512,            // llvm.x86.avx512.mask.vfnmadd.ps.512
-+    x86_avx512_mask_vfnmsub_pd_128,            // llvm.x86.avx512.mask.vfnmsub.pd.128
-+    x86_avx512_mask_vfnmsub_pd_256,            // llvm.x86.avx512.mask.vfnmsub.pd.256
-+    x86_avx512_mask_vfnmsub_pd_512,            // llvm.x86.avx512.mask.vfnmsub.pd.512
-+    x86_avx512_mask_vfnmsub_ps_128,            // llvm.x86.avx512.mask.vfnmsub.ps.128
-+    x86_avx512_mask_vfnmsub_ps_256,            // llvm.x86.avx512.mask.vfnmsub.ps.256
-+    x86_avx512_mask_vfnmsub_ps_512,            // llvm.x86.avx512.mask.vfnmsub.ps.512
-+    x86_avx512_mask_vpermi2var_d_128,          // llvm.x86.avx512.mask.vpermi2var.d.128
-+    x86_avx512_mask_vpermi2var_d_256,          // llvm.x86.avx512.mask.vpermi2var.d.256
-+    x86_avx512_mask_vpermi2var_d_512,          // llvm.x86.avx512.mask.vpermi2var.d.512
-+    x86_avx512_mask_vpermi2var_hi_128,         // llvm.x86.avx512.mask.vpermi2var.hi.128
-+    x86_avx512_mask_vpermi2var_hi_256,         // llvm.x86.avx512.mask.vpermi2var.hi.256
-+    x86_avx512_mask_vpermi2var_hi_512,         // llvm.x86.avx512.mask.vpermi2var.hi.512
-+    x86_avx512_mask_vpermi2var_pd_128,         // llvm.x86.avx512.mask.vpermi2var.pd.128
-+    x86_avx512_mask_vpermi2var_pd_256,         // llvm.x86.avx512.mask.vpermi2var.pd.256
-+    x86_avx512_mask_vpermi2var_pd_512,         // llvm.x86.avx512.mask.vpermi2var.pd.512
-+    x86_avx512_mask_vpermi2var_ps_128,         // llvm.x86.avx512.mask.vpermi2var.ps.128
-+    x86_avx512_mask_vpermi2var_ps_256,         // llvm.x86.avx512.mask.vpermi2var.ps.256
-+    x86_avx512_mask_vpermi2var_ps_512,         // llvm.x86.avx512.mask.vpermi2var.ps.512
-+    x86_avx512_mask_vpermi2var_q_128,          // llvm.x86.avx512.mask.vpermi2var.q.128
-+    x86_avx512_mask_vpermi2var_q_256,          // llvm.x86.avx512.mask.vpermi2var.q.256
-+    x86_avx512_mask_vpermi2var_q_512,          // llvm.x86.avx512.mask.vpermi2var.q.512
-+    x86_avx512_mask_vpermi2var_qi_128,         // llvm.x86.avx512.mask.vpermi2var.qi.128
-+    x86_avx512_mask_vpermi2var_qi_256,         // llvm.x86.avx512.mask.vpermi2var.qi.256
-+    x86_avx512_mask_vpermi2var_qi_512,         // llvm.x86.avx512.mask.vpermi2var.qi.512
-+    x86_avx512_mask_vpermt2var_d_128,          // llvm.x86.avx512.mask.vpermt2var.d.128
-+    x86_avx512_mask_vpermt2var_d_256,          // llvm.x86.avx512.mask.vpermt2var.d.256
-+    x86_avx512_mask_vpermt2var_d_512,          // llvm.x86.avx512.mask.vpermt2var.d.512
-+    x86_avx512_mask_vpermt2var_hi_128,         // llvm.x86.avx512.mask.vpermt2var.hi.128
-+    x86_avx512_mask_vpermt2var_hi_256,         // llvm.x86.avx512.mask.vpermt2var.hi.256
-+    x86_avx512_mask_vpermt2var_hi_512,         // llvm.x86.avx512.mask.vpermt2var.hi.512
-+    x86_avx512_mask_vpermt2var_pd_128,         // llvm.x86.avx512.mask.vpermt2var.pd.128
-+    x86_avx512_mask_vpermt2var_pd_256,         // llvm.x86.avx512.mask.vpermt2var.pd.256
-+    x86_avx512_mask_vpermt2var_pd_512,         // llvm.x86.avx512.mask.vpermt2var.pd.512
-+    x86_avx512_mask_vpermt2var_ps_128,         // llvm.x86.avx512.mask.vpermt2var.ps.128
-+    x86_avx512_mask_vpermt2var_ps_256,         // llvm.x86.avx512.mask.vpermt2var.ps.256
-+    x86_avx512_mask_vpermt2var_ps_512,         // llvm.x86.avx512.mask.vpermt2var.ps.512
-+    x86_avx512_mask_vpermt2var_q_128,          // llvm.x86.avx512.mask.vpermt2var.q.128
-+    x86_avx512_mask_vpermt2var_q_256,          // llvm.x86.avx512.mask.vpermt2var.q.256
-+    x86_avx512_mask_vpermt2var_q_512,          // llvm.x86.avx512.mask.vpermt2var.q.512
-+    x86_avx512_mask_vpermt2var_qi_128,         // llvm.x86.avx512.mask.vpermt2var.qi.128
-+    x86_avx512_mask_vpermt2var_qi_256,         // llvm.x86.avx512.mask.vpermt2var.qi.256
-+    x86_avx512_mask_vpermt2var_qi_512,         // llvm.x86.avx512.mask.vpermt2var.qi.512
-+    x86_avx512_mask_vpmadd52h_uq_128,          // llvm.x86.avx512.mask.vpmadd52h.uq.128
-+    x86_avx512_mask_vpmadd52h_uq_256,          // llvm.x86.avx512.mask.vpmadd52h.uq.256
-+    x86_avx512_mask_vpmadd52h_uq_512,          // llvm.x86.avx512.mask.vpmadd52h.uq.512
-+    x86_avx512_mask_vpmadd52l_uq_128,          // llvm.x86.avx512.mask.vpmadd52l.uq.128
-+    x86_avx512_mask_vpmadd52l_uq_256,          // llvm.x86.avx512.mask.vpmadd52l.uq.256
-+    x86_avx512_mask_vpmadd52l_uq_512,          // llvm.x86.avx512.mask.vpmadd52l.uq.512
-+    x86_avx512_mask3_vfmadd_pd_128,            // llvm.x86.avx512.mask3.vfmadd.pd.128
-+    x86_avx512_mask3_vfmadd_pd_256,            // llvm.x86.avx512.mask3.vfmadd.pd.256
-+    x86_avx512_mask3_vfmadd_pd_512,            // llvm.x86.avx512.mask3.vfmadd.pd.512
-+    x86_avx512_mask3_vfmadd_ps_128,            // llvm.x86.avx512.mask3.vfmadd.ps.128
-+    x86_avx512_mask3_vfmadd_ps_256,            // llvm.x86.avx512.mask3.vfmadd.ps.256
-+    x86_avx512_mask3_vfmadd_ps_512,            // llvm.x86.avx512.mask3.vfmadd.ps.512
-+    x86_avx512_mask3_vfmadd_sd,                // llvm.x86.avx512.mask3.vfmadd.sd
-+    x86_avx512_mask3_vfmadd_ss,                // llvm.x86.avx512.mask3.vfmadd.ss
-+    x86_avx512_mask3_vfmaddsub_pd_128,         // llvm.x86.avx512.mask3.vfmaddsub.pd.128
-+    x86_avx512_mask3_vfmaddsub_pd_256,         // llvm.x86.avx512.mask3.vfmaddsub.pd.256
-+    x86_avx512_mask3_vfmaddsub_pd_512,         // llvm.x86.avx512.mask3.vfmaddsub.pd.512
-+    x86_avx512_mask3_vfmaddsub_ps_128,         // llvm.x86.avx512.mask3.vfmaddsub.ps.128
-+    x86_avx512_mask3_vfmaddsub_ps_256,         // llvm.x86.avx512.mask3.vfmaddsub.ps.256
-+    x86_avx512_mask3_vfmaddsub_ps_512,         // llvm.x86.avx512.mask3.vfmaddsub.ps.512
-+    x86_avx512_mask3_vfmsub_pd_128,            // llvm.x86.avx512.mask3.vfmsub.pd.128
-+    x86_avx512_mask3_vfmsub_pd_256,            // llvm.x86.avx512.mask3.vfmsub.pd.256
-+    x86_avx512_mask3_vfmsub_pd_512,            // llvm.x86.avx512.mask3.vfmsub.pd.512
-+    x86_avx512_mask3_vfmsub_ps_128,            // llvm.x86.avx512.mask3.vfmsub.ps.128
-+    x86_avx512_mask3_vfmsub_ps_256,            // llvm.x86.avx512.mask3.vfmsub.ps.256
-+    x86_avx512_mask3_vfmsub_ps_512,            // llvm.x86.avx512.mask3.vfmsub.ps.512
-+    x86_avx512_mask3_vfmsub_sd,                // llvm.x86.avx512.mask3.vfmsub.sd
-+    x86_avx512_mask3_vfmsub_ss,                // llvm.x86.avx512.mask3.vfmsub.ss
-+    x86_avx512_mask3_vfmsubadd_pd_128,         // llvm.x86.avx512.mask3.vfmsubadd.pd.128
-+    x86_avx512_mask3_vfmsubadd_pd_256,         // llvm.x86.avx512.mask3.vfmsubadd.pd.256
-+    x86_avx512_mask3_vfmsubadd_pd_512,         // llvm.x86.avx512.mask3.vfmsubadd.pd.512
-+    x86_avx512_mask3_vfmsubadd_ps_128,         // llvm.x86.avx512.mask3.vfmsubadd.ps.128
-+    x86_avx512_mask3_vfmsubadd_ps_256,         // llvm.x86.avx512.mask3.vfmsubadd.ps.256
-+    x86_avx512_mask3_vfmsubadd_ps_512,         // llvm.x86.avx512.mask3.vfmsubadd.ps.512
-+    x86_avx512_mask3_vfnmsub_pd_128,           // llvm.x86.avx512.mask3.vfnmsub.pd.128
-+    x86_avx512_mask3_vfnmsub_pd_256,           // llvm.x86.avx512.mask3.vfnmsub.pd.256
-+    x86_avx512_mask3_vfnmsub_pd_512,           // llvm.x86.avx512.mask3.vfnmsub.pd.512
-+    x86_avx512_mask3_vfnmsub_ps_128,           // llvm.x86.avx512.mask3.vfnmsub.ps.128
-+    x86_avx512_mask3_vfnmsub_ps_256,           // llvm.x86.avx512.mask3.vfnmsub.ps.256
-+    x86_avx512_mask3_vfnmsub_ps_512,           // llvm.x86.avx512.mask3.vfnmsub.ps.512
-+    x86_avx512_mask3_vfnmsub_sd,               // llvm.x86.avx512.mask3.vfnmsub.sd
-+    x86_avx512_mask3_vfnmsub_ss,               // llvm.x86.avx512.mask3.vfnmsub.ss
-+    x86_avx512_maskz_fixupimm_pd_128,          // llvm.x86.avx512.maskz.fixupimm.pd.128
-+    x86_avx512_maskz_fixupimm_pd_256,          // llvm.x86.avx512.maskz.fixupimm.pd.256
-+    x86_avx512_maskz_fixupimm_pd_512,          // llvm.x86.avx512.maskz.fixupimm.pd.512
-+    x86_avx512_maskz_fixupimm_ps_128,          // llvm.x86.avx512.maskz.fixupimm.ps.128
-+    x86_avx512_maskz_fixupimm_ps_256,          // llvm.x86.avx512.maskz.fixupimm.ps.256
-+    x86_avx512_maskz_fixupimm_ps_512,          // llvm.x86.avx512.maskz.fixupimm.ps.512
-+    x86_avx512_maskz_fixupimm_sd,              // llvm.x86.avx512.maskz.fixupimm.sd
-+    x86_avx512_maskz_fixupimm_ss,              // llvm.x86.avx512.maskz.fixupimm.ss
-+    x86_avx512_maskz_pternlog_d_128,           // llvm.x86.avx512.maskz.pternlog.d.128
-+    x86_avx512_maskz_pternlog_d_256,           // llvm.x86.avx512.maskz.pternlog.d.256
-+    x86_avx512_maskz_pternlog_d_512,           // llvm.x86.avx512.maskz.pternlog.d.512
-+    x86_avx512_maskz_pternlog_q_128,           // llvm.x86.avx512.maskz.pternlog.q.128
-+    x86_avx512_maskz_pternlog_q_256,           // llvm.x86.avx512.maskz.pternlog.q.256
-+    x86_avx512_maskz_pternlog_q_512,           // llvm.x86.avx512.maskz.pternlog.q.512
-+    x86_avx512_maskz_vfmadd_pd_128,            // llvm.x86.avx512.maskz.vfmadd.pd.128
-+    x86_avx512_maskz_vfmadd_pd_256,            // llvm.x86.avx512.maskz.vfmadd.pd.256
-+    x86_avx512_maskz_vfmadd_pd_512,            // llvm.x86.avx512.maskz.vfmadd.pd.512
-+    x86_avx512_maskz_vfmadd_ps_128,            // llvm.x86.avx512.maskz.vfmadd.ps.128
-+    x86_avx512_maskz_vfmadd_ps_256,            // llvm.x86.avx512.maskz.vfmadd.ps.256
-+    x86_avx512_maskz_vfmadd_ps_512,            // llvm.x86.avx512.maskz.vfmadd.ps.512
-+    x86_avx512_maskz_vfmadd_sd,                // llvm.x86.avx512.maskz.vfmadd.sd
-+    x86_avx512_maskz_vfmadd_ss,                // llvm.x86.avx512.maskz.vfmadd.ss
-+    x86_avx512_maskz_vfmaddsub_pd_128,         // llvm.x86.avx512.maskz.vfmaddsub.pd.128
-+    x86_avx512_maskz_vfmaddsub_pd_256,         // llvm.x86.avx512.maskz.vfmaddsub.pd.256
-+    x86_avx512_maskz_vfmaddsub_pd_512,         // llvm.x86.avx512.maskz.vfmaddsub.pd.512
-+    x86_avx512_maskz_vfmaddsub_ps_128,         // llvm.x86.avx512.maskz.vfmaddsub.ps.128
-+    x86_avx512_maskz_vfmaddsub_ps_256,         // llvm.x86.avx512.maskz.vfmaddsub.ps.256
-+    x86_avx512_maskz_vfmaddsub_ps_512,         // llvm.x86.avx512.maskz.vfmaddsub.ps.512
-+    x86_avx512_maskz_vpermt2var_d_128,         // llvm.x86.avx512.maskz.vpermt2var.d.128
-+    x86_avx512_maskz_vpermt2var_d_256,         // llvm.x86.avx512.maskz.vpermt2var.d.256
-+    x86_avx512_maskz_vpermt2var_d_512,         // llvm.x86.avx512.maskz.vpermt2var.d.512
-+    x86_avx512_maskz_vpermt2var_hi_128,        // llvm.x86.avx512.maskz.vpermt2var.hi.128
-+    x86_avx512_maskz_vpermt2var_hi_256,        // llvm.x86.avx512.maskz.vpermt2var.hi.256
-+    x86_avx512_maskz_vpermt2var_hi_512,        // llvm.x86.avx512.maskz.vpermt2var.hi.512
-+    x86_avx512_maskz_vpermt2var_pd_128,        // llvm.x86.avx512.maskz.vpermt2var.pd.128
-+    x86_avx512_maskz_vpermt2var_pd_256,        // llvm.x86.avx512.maskz.vpermt2var.pd.256
-+    x86_avx512_maskz_vpermt2var_pd_512,        // llvm.x86.avx512.maskz.vpermt2var.pd.512
-+    x86_avx512_maskz_vpermt2var_ps_128,        // llvm.x86.avx512.maskz.vpermt2var.ps.128
-+    x86_avx512_maskz_vpermt2var_ps_256,        // llvm.x86.avx512.maskz.vpermt2var.ps.256
-+    x86_avx512_maskz_vpermt2var_ps_512,        // llvm.x86.avx512.maskz.vpermt2var.ps.512
-+    x86_avx512_maskz_vpermt2var_q_128,         // llvm.x86.avx512.maskz.vpermt2var.q.128
-+    x86_avx512_maskz_vpermt2var_q_256,         // llvm.x86.avx512.maskz.vpermt2var.q.256
-+    x86_avx512_maskz_vpermt2var_q_512,         // llvm.x86.avx512.maskz.vpermt2var.q.512
-+    x86_avx512_maskz_vpermt2var_qi_128,        // llvm.x86.avx512.maskz.vpermt2var.qi.128
-+    x86_avx512_maskz_vpermt2var_qi_256,        // llvm.x86.avx512.maskz.vpermt2var.qi.256
-+    x86_avx512_maskz_vpermt2var_qi_512,        // llvm.x86.avx512.maskz.vpermt2var.qi.512
-+    x86_avx512_maskz_vpmadd52h_uq_128,         // llvm.x86.avx512.maskz.vpmadd52h.uq.128
-+    x86_avx512_maskz_vpmadd52h_uq_256,         // llvm.x86.avx512.maskz.vpmadd52h.uq.256
-+    x86_avx512_maskz_vpmadd52h_uq_512,         // llvm.x86.avx512.maskz.vpmadd52h.uq.512
-+    x86_avx512_maskz_vpmadd52l_uq_128,         // llvm.x86.avx512.maskz.vpmadd52l.uq.128
-+    x86_avx512_maskz_vpmadd52l_uq_256,         // llvm.x86.avx512.maskz.vpmadd52l.uq.256
-+    x86_avx512_maskz_vpmadd52l_uq_512,         // llvm.x86.avx512.maskz.vpmadd52l.uq.512
-+    x86_avx512_movntdqa,                       // llvm.x86.avx512.movntdqa
-+    x86_avx512_psad_bw_512,                    // llvm.x86.avx512.psad.bw.512
-+    x86_avx512_pshuf_b_512,                    // llvm.x86.avx512.pshuf.b.512
-+    x86_avx512_psll_d_512,                     // llvm.x86.avx512.psll.d.512
-+    x86_avx512_psll_q_512,                     // llvm.x86.avx512.psll.q.512
-+    x86_avx512_psll_w_512,                     // llvm.x86.avx512.psll.w.512
-+    x86_avx512_pslli_d_512,                    // llvm.x86.avx512.pslli.d.512
-+    x86_avx512_pslli_q_512,                    // llvm.x86.avx512.pslli.q.512
-+    x86_avx512_pslli_w_512,                    // llvm.x86.avx512.pslli.w.512
-+    x86_avx512_psllv_d_512,                    // llvm.x86.avx512.psllv.d.512
-+    x86_avx512_psllv_q_512,                    // llvm.x86.avx512.psllv.q.512
-+    x86_avx512_psllv_w_128,                    // llvm.x86.avx512.psllv.w.128
-+    x86_avx512_psllv_w_256,                    // llvm.x86.avx512.psllv.w.256
-+    x86_avx512_psllv_w_512,                    // llvm.x86.avx512.psllv.w.512
-+    x86_avx512_psra_d_512,                     // llvm.x86.avx512.psra.d.512
-+    x86_avx512_psra_q_128,                     // llvm.x86.avx512.psra.q.128
-+    x86_avx512_psra_q_256,                     // llvm.x86.avx512.psra.q.256
-+    x86_avx512_psra_q_512,                     // llvm.x86.avx512.psra.q.512
-+    x86_avx512_psra_w_512,                     // llvm.x86.avx512.psra.w.512
-+    x86_avx512_psrai_d_512,                    // llvm.x86.avx512.psrai.d.512
-+    x86_avx512_psrai_q_128,                    // llvm.x86.avx512.psrai.q.128
-+    x86_avx512_psrai_q_256,                    // llvm.x86.avx512.psrai.q.256
-+    x86_avx512_psrai_q_512,                    // llvm.x86.avx512.psrai.q.512
-+    x86_avx512_psrai_w_512,                    // llvm.x86.avx512.psrai.w.512
-+    x86_avx512_psrav_d_512,                    // llvm.x86.avx512.psrav.d.512
-+    x86_avx512_psrav_q_128,                    // llvm.x86.avx512.psrav.q.128
-+    x86_avx512_psrav_q_256,                    // llvm.x86.avx512.psrav.q.256
-+    x86_avx512_psrav_q_512,                    // llvm.x86.avx512.psrav.q.512
-+    x86_avx512_psrav_w_128,                    // llvm.x86.avx512.psrav.w.128
-+    x86_avx512_psrav_w_256,                    // llvm.x86.avx512.psrav.w.256
-+    x86_avx512_psrav_w_512,                    // llvm.x86.avx512.psrav.w.512
-+    x86_avx512_psrl_d_512,                     // llvm.x86.avx512.psrl.d.512
-+    x86_avx512_psrl_q_512,                     // llvm.x86.avx512.psrl.q.512
-+    x86_avx512_psrl_w_512,                     // llvm.x86.avx512.psrl.w.512
-+    x86_avx512_psrli_d_512,                    // llvm.x86.avx512.psrli.d.512
-+    x86_avx512_psrli_q_512,                    // llvm.x86.avx512.psrli.q.512
-+    x86_avx512_psrli_w_512,                    // llvm.x86.avx512.psrli.w.512
-+    x86_avx512_psrlv_d_512,                    // llvm.x86.avx512.psrlv.d.512
-+    x86_avx512_psrlv_q_512,                    // llvm.x86.avx512.psrlv.q.512
-+    x86_avx512_psrlv_w_128,                    // llvm.x86.avx512.psrlv.w.128
-+    x86_avx512_psrlv_w_256,                    // llvm.x86.avx512.psrlv.w.256
-+    x86_avx512_psrlv_w_512,                    // llvm.x86.avx512.psrlv.w.512
-+    x86_avx512_ptestm_b_128,                   // llvm.x86.avx512.ptestm.b.128
-+    x86_avx512_ptestm_b_256,                   // llvm.x86.avx512.ptestm.b.256
-+    x86_avx512_ptestm_b_512,                   // llvm.x86.avx512.ptestm.b.512
-+    x86_avx512_ptestm_d_128,                   // llvm.x86.avx512.ptestm.d.128
-+    x86_avx512_ptestm_d_256,                   // llvm.x86.avx512.ptestm.d.256
-+    x86_avx512_ptestm_d_512,                   // llvm.x86.avx512.ptestm.d.512
-+    x86_avx512_ptestm_q_128,                   // llvm.x86.avx512.ptestm.q.128
-+    x86_avx512_ptestm_q_256,                   // llvm.x86.avx512.ptestm.q.256
-+    x86_avx512_ptestm_q_512,                   // llvm.x86.avx512.ptestm.q.512
-+    x86_avx512_ptestm_w_128,                   // llvm.x86.avx512.ptestm.w.128
-+    x86_avx512_ptestm_w_256,                   // llvm.x86.avx512.ptestm.w.256
-+    x86_avx512_ptestm_w_512,                   // llvm.x86.avx512.ptestm.w.512
-+    x86_avx512_ptestnm_b_128,                  // llvm.x86.avx512.ptestnm.b.128
-+    x86_avx512_ptestnm_b_256,                  // llvm.x86.avx512.ptestnm.b.256
-+    x86_avx512_ptestnm_b_512,                  // llvm.x86.avx512.ptestnm.b.512
-+    x86_avx512_ptestnm_d_128,                  // llvm.x86.avx512.ptestnm.d.128
-+    x86_avx512_ptestnm_d_256,                  // llvm.x86.avx512.ptestnm.d.256
-+    x86_avx512_ptestnm_d_512,                  // llvm.x86.avx512.ptestnm.d.512
-+    x86_avx512_ptestnm_q_128,                  // llvm.x86.avx512.ptestnm.q.128
-+    x86_avx512_ptestnm_q_256,                  // llvm.x86.avx512.ptestnm.q.256
-+    x86_avx512_ptestnm_q_512,                  // llvm.x86.avx512.ptestnm.q.512
-+    x86_avx512_ptestnm_w_128,                  // llvm.x86.avx512.ptestnm.w.128
-+    x86_avx512_ptestnm_w_256,                  // llvm.x86.avx512.ptestnm.w.256
-+    x86_avx512_ptestnm_w_512,                  // llvm.x86.avx512.ptestnm.w.512
-+    x86_avx512_rcp14_pd_128,                   // llvm.x86.avx512.rcp14.pd.128
-+    x86_avx512_rcp14_pd_256,                   // llvm.x86.avx512.rcp14.pd.256
-+    x86_avx512_rcp14_pd_512,                   // llvm.x86.avx512.rcp14.pd.512
-+    x86_avx512_rcp14_ps_128,                   // llvm.x86.avx512.rcp14.ps.128
-+    x86_avx512_rcp14_ps_256,                   // llvm.x86.avx512.rcp14.ps.256
-+    x86_avx512_rcp14_ps_512,                   // llvm.x86.avx512.rcp14.ps.512
-+    x86_avx512_rcp14_sd,                       // llvm.x86.avx512.rcp14.sd
-+    x86_avx512_rcp14_ss,                       // llvm.x86.avx512.rcp14.ss
-+    x86_avx512_rcp28_pd,                       // llvm.x86.avx512.rcp28.pd
-+    x86_avx512_rcp28_ps,                       // llvm.x86.avx512.rcp28.ps
-+    x86_avx512_rcp28_sd,                       // llvm.x86.avx512.rcp28.sd
-+    x86_avx512_rcp28_ss,                       // llvm.x86.avx512.rcp28.ss
-+    x86_avx512_rsqrt14_pd_128,                 // llvm.x86.avx512.rsqrt14.pd.128
-+    x86_avx512_rsqrt14_pd_256,                 // llvm.x86.avx512.rsqrt14.pd.256
-+    x86_avx512_rsqrt14_pd_512,                 // llvm.x86.avx512.rsqrt14.pd.512
-+    x86_avx512_rsqrt14_ps_128,                 // llvm.x86.avx512.rsqrt14.ps.128
-+    x86_avx512_rsqrt14_ps_256,                 // llvm.x86.avx512.rsqrt14.ps.256
-+    x86_avx512_rsqrt14_ps_512,                 // llvm.x86.avx512.rsqrt14.ps.512
-+    x86_avx512_rsqrt14_sd,                     // llvm.x86.avx512.rsqrt14.sd
-+    x86_avx512_rsqrt14_ss,                     // llvm.x86.avx512.rsqrt14.ss
-+    x86_avx512_rsqrt28_pd,                     // llvm.x86.avx512.rsqrt28.pd
-+    x86_avx512_rsqrt28_ps,                     // llvm.x86.avx512.rsqrt28.ps
-+    x86_avx512_rsqrt28_sd,                     // llvm.x86.avx512.rsqrt28.sd
-+    x86_avx512_rsqrt28_ss,                     // llvm.x86.avx512.rsqrt28.ss
-+    x86_avx512_scatter_dpd_512,                // llvm.x86.avx512.scatter.dpd.512
-+    x86_avx512_scatter_dpi_512,                // llvm.x86.avx512.scatter.dpi.512
-+    x86_avx512_scatter_dpq_512,                // llvm.x86.avx512.scatter.dpq.512
-+    x86_avx512_scatter_dps_512,                // llvm.x86.avx512.scatter.dps.512
-+    x86_avx512_scatter_qpd_512,                // llvm.x86.avx512.scatter.qpd.512
-+    x86_avx512_scatter_qpi_512,                // llvm.x86.avx512.scatter.qpi.512
-+    x86_avx512_scatter_qpq_512,                // llvm.x86.avx512.scatter.qpq.512
-+    x86_avx512_scatter_qps_512,                // llvm.x86.avx512.scatter.qps.512
-+    x86_avx512_scatterdiv2_df,                 // llvm.x86.avx512.scatterdiv2.df
-+    x86_avx512_scatterdiv2_di,                 // llvm.x86.avx512.scatterdiv2.di
-+    x86_avx512_scatterdiv4_df,                 // llvm.x86.avx512.scatterdiv4.df
-+    x86_avx512_scatterdiv4_di,                 // llvm.x86.avx512.scatterdiv4.di
-+    x86_avx512_scatterdiv4_sf,                 // llvm.x86.avx512.scatterdiv4.sf
-+    x86_avx512_scatterdiv4_si,                 // llvm.x86.avx512.scatterdiv4.si
-+    x86_avx512_scatterdiv8_sf,                 // llvm.x86.avx512.scatterdiv8.sf
-+    x86_avx512_scatterdiv8_si,                 // llvm.x86.avx512.scatterdiv8.si
-+    x86_avx512_scatterpf_dpd_512,              // llvm.x86.avx512.scatterpf.dpd.512
-+    x86_avx512_scatterpf_dps_512,              // llvm.x86.avx512.scatterpf.dps.512
-+    x86_avx512_scatterpf_qpd_512,              // llvm.x86.avx512.scatterpf.qpd.512
-+    x86_avx512_scatterpf_qps_512,              // llvm.x86.avx512.scatterpf.qps.512
-+    x86_avx512_scattersiv2_df,                 // llvm.x86.avx512.scattersiv2.df
-+    x86_avx512_scattersiv2_di,                 // llvm.x86.avx512.scattersiv2.di
-+    x86_avx512_scattersiv4_df,                 // llvm.x86.avx512.scattersiv4.df
-+    x86_avx512_scattersiv4_di,                 // llvm.x86.avx512.scattersiv4.di
-+    x86_avx512_scattersiv4_sf,                 // llvm.x86.avx512.scattersiv4.sf
-+    x86_avx512_scattersiv4_si,                 // llvm.x86.avx512.scattersiv4.si
-+    x86_avx512_scattersiv8_sf,                 // llvm.x86.avx512.scattersiv8.sf
-+    x86_avx512_scattersiv8_si,                 // llvm.x86.avx512.scattersiv8.si
-+    x86_avx512_vbroadcast_sd_512,              // llvm.x86.avx512.vbroadcast.sd.512
-+    x86_avx512_vbroadcast_ss_512,              // llvm.x86.avx512.vbroadcast.ss.512
-+    x86_avx512_vcomi_sd,                       // llvm.x86.avx512.vcomi.sd
-+    x86_avx512_vcomi_ss,                       // llvm.x86.avx512.vcomi.ss
-+    x86_avx512_vcvtsd2si32,                    // llvm.x86.avx512.vcvtsd2si32
-+    x86_avx512_vcvtsd2si64,                    // llvm.x86.avx512.vcvtsd2si64
-+    x86_avx512_vcvtsd2usi32,                   // llvm.x86.avx512.vcvtsd2usi32
-+    x86_avx512_vcvtsd2usi64,                   // llvm.x86.avx512.vcvtsd2usi64
-+    x86_avx512_vcvtss2si32,                    // llvm.x86.avx512.vcvtss2si32
-+    x86_avx512_vcvtss2si64,                    // llvm.x86.avx512.vcvtss2si64
-+    x86_avx512_vcvtss2usi32,                   // llvm.x86.avx512.vcvtss2usi32
-+    x86_avx512_vcvtss2usi64,                   // llvm.x86.avx512.vcvtss2usi64
-+    x86_avx512_vpermilvar_pd_512,              // llvm.x86.avx512.vpermilvar.pd.512
-+    x86_avx512_vpermilvar_ps_512,              // llvm.x86.avx512.vpermilvar.ps.512
-+    x86_bmi_bextr_32,                          // llvm.x86.bmi.bextr.32
-+    x86_bmi_bextr_64,                          // llvm.x86.bmi.bextr.64
-+    x86_bmi_bzhi_32,                           // llvm.x86.bmi.bzhi.32
-+    x86_bmi_bzhi_64,                           // llvm.x86.bmi.bzhi.64
-+    x86_bmi_pdep_32,                           // llvm.x86.bmi.pdep.32
-+    x86_bmi_pdep_64,                           // llvm.x86.bmi.pdep.64
-+    x86_bmi_pext_32,                           // llvm.x86.bmi.pext.32
-+    x86_bmi_pext_64,                           // llvm.x86.bmi.pext.64
-+    x86_clflushopt,                            // llvm.x86.clflushopt
-+    x86_flags_read_u32,                        // llvm.x86.flags.read.u32
-+    x86_flags_read_u64,                        // llvm.x86.flags.read.u64
-+    x86_flags_write_u32,                       // llvm.x86.flags.write.u32
-+    x86_flags_write_u64,                       // llvm.x86.flags.write.u64
-+    x86_fma_vfmadd_pd,                         // llvm.x86.fma.vfmadd.pd
-+    x86_fma_vfmadd_pd_256,                     // llvm.x86.fma.vfmadd.pd.256
-+    x86_fma_vfmadd_ps,                         // llvm.x86.fma.vfmadd.ps
-+    x86_fma_vfmadd_ps_256,                     // llvm.x86.fma.vfmadd.ps.256
-+    x86_fma_vfmadd_sd,                         // llvm.x86.fma.vfmadd.sd
-+    x86_fma_vfmadd_ss,                         // llvm.x86.fma.vfmadd.ss
-+    x86_fma_vfmaddsub_pd,                      // llvm.x86.fma.vfmaddsub.pd
-+    x86_fma_vfmaddsub_pd_256,                  // llvm.x86.fma.vfmaddsub.pd.256
-+    x86_fma_vfmaddsub_ps,                      // llvm.x86.fma.vfmaddsub.ps
-+    x86_fma_vfmaddsub_ps_256,                  // llvm.x86.fma.vfmaddsub.ps.256
-+    x86_fma_vfmsub_pd,                         // llvm.x86.fma.vfmsub.pd
-+    x86_fma_vfmsub_pd_256,                     // llvm.x86.fma.vfmsub.pd.256
-+    x86_fma_vfmsub_ps,                         // llvm.x86.fma.vfmsub.ps
-+    x86_fma_vfmsub_ps_256,                     // llvm.x86.fma.vfmsub.ps.256
-+    x86_fma_vfmsub_sd,                         // llvm.x86.fma.vfmsub.sd
-+    x86_fma_vfmsub_ss,                         // llvm.x86.fma.vfmsub.ss
-+    x86_fma_vfmsubadd_pd,                      // llvm.x86.fma.vfmsubadd.pd
-+    x86_fma_vfmsubadd_pd_256,                  // llvm.x86.fma.vfmsubadd.pd.256
-+    x86_fma_vfmsubadd_ps,                      // llvm.x86.fma.vfmsubadd.ps
-+    x86_fma_vfmsubadd_ps_256,                  // llvm.x86.fma.vfmsubadd.ps.256
-+    x86_fma_vfnmadd_pd,                        // llvm.x86.fma.vfnmadd.pd
-+    x86_fma_vfnmadd_pd_256,                    // llvm.x86.fma.vfnmadd.pd.256
-+    x86_fma_vfnmadd_ps,                        // llvm.x86.fma.vfnmadd.ps
-+    x86_fma_vfnmadd_ps_256,                    // llvm.x86.fma.vfnmadd.ps.256
-+    x86_fma_vfnmadd_sd,                        // llvm.x86.fma.vfnmadd.sd
-+    x86_fma_vfnmadd_ss,                        // llvm.x86.fma.vfnmadd.ss
-+    x86_fma_vfnmsub_pd,                        // llvm.x86.fma.vfnmsub.pd
-+    x86_fma_vfnmsub_pd_256,                    // llvm.x86.fma.vfnmsub.pd.256
-+    x86_fma_vfnmsub_ps,                        // llvm.x86.fma.vfnmsub.ps
-+    x86_fma_vfnmsub_ps_256,                    // llvm.x86.fma.vfnmsub.ps.256
-+    x86_fma_vfnmsub_sd,                        // llvm.x86.fma.vfnmsub.sd
-+    x86_fma_vfnmsub_ss,                        // llvm.x86.fma.vfnmsub.ss
-+    x86_fxrstor,                               // llvm.x86.fxrstor
-+    x86_fxrstor64,                             // llvm.x86.fxrstor64
-+    x86_fxsave,                                // llvm.x86.fxsave
-+    x86_fxsave64,                              // llvm.x86.fxsave64
-+    x86_int,                                   // llvm.x86.int
-+    x86_mmx_emms,                              // llvm.x86.mmx.emms
-+    x86_mmx_femms,                             // llvm.x86.mmx.femms
-+    x86_mmx_maskmovq,                          // llvm.x86.mmx.maskmovq
-+    x86_mmx_movnt_dq,                          // llvm.x86.mmx.movnt.dq
-+    x86_mmx_packssdw,                          // llvm.x86.mmx.packssdw
-+    x86_mmx_packsswb,                          // llvm.x86.mmx.packsswb
-+    x86_mmx_packuswb,                          // llvm.x86.mmx.packuswb
-+    x86_mmx_padd_b,                            // llvm.x86.mmx.padd.b
-+    x86_mmx_padd_d,                            // llvm.x86.mmx.padd.d
-+    x86_mmx_padd_q,                            // llvm.x86.mmx.padd.q
-+    x86_mmx_padd_w,                            // llvm.x86.mmx.padd.w
-+    x86_mmx_padds_b,                           // llvm.x86.mmx.padds.b
-+    x86_mmx_padds_w,                           // llvm.x86.mmx.padds.w
-+    x86_mmx_paddus_b,                          // llvm.x86.mmx.paddus.b
-+    x86_mmx_paddus_w,                          // llvm.x86.mmx.paddus.w
-+    x86_mmx_palignr_b,                         // llvm.x86.mmx.palignr.b
-+    x86_mmx_pand,                              // llvm.x86.mmx.pand
-+    x86_mmx_pandn,                             // llvm.x86.mmx.pandn
-+    x86_mmx_pavg_b,                            // llvm.x86.mmx.pavg.b
-+    x86_mmx_pavg_w,                            // llvm.x86.mmx.pavg.w
-+    x86_mmx_pcmpeq_b,                          // llvm.x86.mmx.pcmpeq.b
-+    x86_mmx_pcmpeq_d,                          // llvm.x86.mmx.pcmpeq.d
-+    x86_mmx_pcmpeq_w,                          // llvm.x86.mmx.pcmpeq.w
-+    x86_mmx_pcmpgt_b,                          // llvm.x86.mmx.pcmpgt.b
-+    x86_mmx_pcmpgt_d,                          // llvm.x86.mmx.pcmpgt.d
-+    x86_mmx_pcmpgt_w,                          // llvm.x86.mmx.pcmpgt.w
-+    x86_mmx_pextr_w,                           // llvm.x86.mmx.pextr.w
-+    x86_mmx_pinsr_w,                           // llvm.x86.mmx.pinsr.w
-+    x86_mmx_pmadd_wd,                          // llvm.x86.mmx.pmadd.wd
-+    x86_mmx_pmaxs_w,                           // llvm.x86.mmx.pmaxs.w
-+    x86_mmx_pmaxu_b,                           // llvm.x86.mmx.pmaxu.b
-+    x86_mmx_pmins_w,                           // llvm.x86.mmx.pmins.w
-+    x86_mmx_pminu_b,                           // llvm.x86.mmx.pminu.b
-+    x86_mmx_pmovmskb,                          // llvm.x86.mmx.pmovmskb
-+    x86_mmx_pmulh_w,                           // llvm.x86.mmx.pmulh.w
-+    x86_mmx_pmulhu_w,                          // llvm.x86.mmx.pmulhu.w
-+    x86_mmx_pmull_w,                           // llvm.x86.mmx.pmull.w
-+    x86_mmx_pmulu_dq,                          // llvm.x86.mmx.pmulu.dq
-+    x86_mmx_por,                               // llvm.x86.mmx.por
-+    x86_mmx_psad_bw,                           // llvm.x86.mmx.psad.bw
-+    x86_mmx_psll_d,                            // llvm.x86.mmx.psll.d
-+    x86_mmx_psll_q,                            // llvm.x86.mmx.psll.q
-+    x86_mmx_psll_w,                            // llvm.x86.mmx.psll.w
-+    x86_mmx_pslli_d,                           // llvm.x86.mmx.pslli.d
-+    x86_mmx_pslli_q,                           // llvm.x86.mmx.pslli.q
-+    x86_mmx_pslli_w,                           // llvm.x86.mmx.pslli.w
-+    x86_mmx_psra_d,                            // llvm.x86.mmx.psra.d
-+    x86_mmx_psra_w,                            // llvm.x86.mmx.psra.w
-+    x86_mmx_psrai_d,                           // llvm.x86.mmx.psrai.d
-+    x86_mmx_psrai_w,                           // llvm.x86.mmx.psrai.w
-+    x86_mmx_psrl_d,                            // llvm.x86.mmx.psrl.d
-+    x86_mmx_psrl_q,                            // llvm.x86.mmx.psrl.q
-+    x86_mmx_psrl_w,                            // llvm.x86.mmx.psrl.w
-+    x86_mmx_psrli_d,                           // llvm.x86.mmx.psrli.d
-+    x86_mmx_psrli_q,                           // llvm.x86.mmx.psrli.q
-+    x86_mmx_psrli_w,                           // llvm.x86.mmx.psrli.w
-+    x86_mmx_psub_b,                            // llvm.x86.mmx.psub.b
-+    x86_mmx_psub_d,                            // llvm.x86.mmx.psub.d
-+    x86_mmx_psub_q,                            // llvm.x86.mmx.psub.q
-+    x86_mmx_psub_w,                            // llvm.x86.mmx.psub.w
-+    x86_mmx_psubs_b,                           // llvm.x86.mmx.psubs.b
-+    x86_mmx_psubs_w,                           // llvm.x86.mmx.psubs.w
-+    x86_mmx_psubus_b,                          // llvm.x86.mmx.psubus.b
-+    x86_mmx_psubus_w,                          // llvm.x86.mmx.psubus.w
-+    x86_mmx_punpckhbw,                         // llvm.x86.mmx.punpckhbw
-+    x86_mmx_punpckhdq,                         // llvm.x86.mmx.punpckhdq
-+    x86_mmx_punpckhwd,                         // llvm.x86.mmx.punpckhwd
-+    x86_mmx_punpcklbw,                         // llvm.x86.mmx.punpcklbw
-+    x86_mmx_punpckldq,                         // llvm.x86.mmx.punpckldq
-+    x86_mmx_punpcklwd,                         // llvm.x86.mmx.punpcklwd
-+    x86_mmx_pxor,                              // llvm.x86.mmx.pxor
-+    x86_monitorx,                              // llvm.x86.monitorx
-+    x86_mwaitx,                                // llvm.x86.mwaitx
-+    x86_pclmulqdq,                             // llvm.x86.pclmulqdq
-+    x86_rdfsbase_32,                           // llvm.x86.rdfsbase.32
-+    x86_rdfsbase_64,                           // llvm.x86.rdfsbase.64
-+    x86_rdgsbase_32,                           // llvm.x86.rdgsbase.32
-+    x86_rdgsbase_64,                           // llvm.x86.rdgsbase.64
-+    x86_rdpkru,                                // llvm.x86.rdpkru
-+    x86_rdpmc,                                 // llvm.x86.rdpmc
-+    x86_rdrand_16,                             // llvm.x86.rdrand.16
-+    x86_rdrand_32,                             // llvm.x86.rdrand.32
-+    x86_rdrand_64,                             // llvm.x86.rdrand.64
-+    x86_rdseed_16,                             // llvm.x86.rdseed.16
-+    x86_rdseed_32,                             // llvm.x86.rdseed.32
-+    x86_rdseed_64,                             // llvm.x86.rdseed.64
-+    x86_rdtsc,                                 // llvm.x86.rdtsc
-+    x86_rdtscp,                                // llvm.x86.rdtscp
-+    x86_seh_ehguard,                           // llvm.x86.seh.ehguard
-+    x86_seh_ehregnode,                         // llvm.x86.seh.ehregnode
-+    x86_seh_lsda,                              // llvm.x86.seh.lsda
-+    x86_seh_recoverfp,                         // llvm.x86.seh.recoverfp
-+    x86_sha1msg1,                              // llvm.x86.sha1msg1
-+    x86_sha1msg2,                              // llvm.x86.sha1msg2
-+    x86_sha1nexte,                             // llvm.x86.sha1nexte
-+    x86_sha1rnds4,                             // llvm.x86.sha1rnds4
-+    x86_sha256msg1,                            // llvm.x86.sha256msg1
-+    x86_sha256msg2,                            // llvm.x86.sha256msg2
-+    x86_sha256rnds2,                           // llvm.x86.sha256rnds2
-+    x86_sse_cmp_ps,                            // llvm.x86.sse.cmp.ps
-+    x86_sse_cmp_ss,                            // llvm.x86.sse.cmp.ss
-+    x86_sse_comieq_ss,                         // llvm.x86.sse.comieq.ss
-+    x86_sse_comige_ss,                         // llvm.x86.sse.comige.ss
-+    x86_sse_comigt_ss,                         // llvm.x86.sse.comigt.ss
-+    x86_sse_comile_ss,                         // llvm.x86.sse.comile.ss
-+    x86_sse_comilt_ss,                         // llvm.x86.sse.comilt.ss
-+    x86_sse_comineq_ss,                        // llvm.x86.sse.comineq.ss
-+    x86_sse_cvtpd2pi,                          // llvm.x86.sse.cvtpd2pi
-+    x86_sse_cvtpi2pd,                          // llvm.x86.sse.cvtpi2pd
-+    x86_sse_cvtpi2ps,                          // llvm.x86.sse.cvtpi2ps
-+    x86_sse_cvtps2pi,                          // llvm.x86.sse.cvtps2pi
-+    x86_sse_cvtsi2ss,                          // llvm.x86.sse.cvtsi2ss
-+    x86_sse_cvtsi642ss,                        // llvm.x86.sse.cvtsi642ss
-+    x86_sse_cvtss2si,                          // llvm.x86.sse.cvtss2si
-+    x86_sse_cvtss2si64,                        // llvm.x86.sse.cvtss2si64
-+    x86_sse_cvttpd2pi,                         // llvm.x86.sse.cvttpd2pi
-+    x86_sse_cvttps2pi,                         // llvm.x86.sse.cvttps2pi
-+    x86_sse_cvttss2si,                         // llvm.x86.sse.cvttss2si
-+    x86_sse_cvttss2si64,                       // llvm.x86.sse.cvttss2si64
-+    x86_sse_ldmxcsr,                           // llvm.x86.sse.ldmxcsr
-+    x86_sse_max_ps,                            // llvm.x86.sse.max.ps
-+    x86_sse_max_ss,                            // llvm.x86.sse.max.ss
-+    x86_sse_min_ps,                            // llvm.x86.sse.min.ps
-+    x86_sse_min_ss,                            // llvm.x86.sse.min.ss
-+    x86_sse_movmsk_ps,                         // llvm.x86.sse.movmsk.ps
-+    x86_sse_pshuf_w,                           // llvm.x86.sse.pshuf.w
-+    x86_sse_rcp_ps,                            // llvm.x86.sse.rcp.ps
-+    x86_sse_rcp_ss,                            // llvm.x86.sse.rcp.ss
-+    x86_sse_rsqrt_ps,                          // llvm.x86.sse.rsqrt.ps
-+    x86_sse_rsqrt_ss,                          // llvm.x86.sse.rsqrt.ss
-+    x86_sse_sfence,                            // llvm.x86.sse.sfence
-+    x86_sse_sqrt_ps,                           // llvm.x86.sse.sqrt.ps
-+    x86_sse_sqrt_ss,                           // llvm.x86.sse.sqrt.ss
-+    x86_sse_stmxcsr,                           // llvm.x86.sse.stmxcsr
-+    x86_sse_ucomieq_ss,                        // llvm.x86.sse.ucomieq.ss
-+    x86_sse_ucomige_ss,                        // llvm.x86.sse.ucomige.ss
-+    x86_sse_ucomigt_ss,                        // llvm.x86.sse.ucomigt.ss
-+    x86_sse_ucomile_ss,                        // llvm.x86.sse.ucomile.ss
-+    x86_sse_ucomilt_ss,                        // llvm.x86.sse.ucomilt.ss
-+    x86_sse_ucomineq_ss,                       // llvm.x86.sse.ucomineq.ss
-+    x86_sse2_clflush,                          // llvm.x86.sse2.clflush
-+    x86_sse2_cmp_pd,                           // llvm.x86.sse2.cmp.pd
-+    x86_sse2_cmp_sd,                           // llvm.x86.sse2.cmp.sd
-+    x86_sse2_comieq_sd,                        // llvm.x86.sse2.comieq.sd
-+    x86_sse2_comige_sd,                        // llvm.x86.sse2.comige.sd
-+    x86_sse2_comigt_sd,                        // llvm.x86.sse2.comigt.sd
-+    x86_sse2_comile_sd,                        // llvm.x86.sse2.comile.sd
-+    x86_sse2_comilt_sd,                        // llvm.x86.sse2.comilt.sd
-+    x86_sse2_comineq_sd,                       // llvm.x86.sse2.comineq.sd
-+    x86_sse2_cvtdq2ps,                         // llvm.x86.sse2.cvtdq2ps
-+    x86_sse2_cvtpd2dq,                         // llvm.x86.sse2.cvtpd2dq
-+    x86_sse2_cvtpd2ps,                         // llvm.x86.sse2.cvtpd2ps
-+    x86_sse2_cvtps2dq,                         // llvm.x86.sse2.cvtps2dq
-+    x86_sse2_cvtsd2si,                         // llvm.x86.sse2.cvtsd2si
-+    x86_sse2_cvtsd2si64,                       // llvm.x86.sse2.cvtsd2si64
-+    x86_sse2_cvtsd2ss,                         // llvm.x86.sse2.cvtsd2ss
-+    x86_sse2_cvtsi2sd,                         // llvm.x86.sse2.cvtsi2sd
-+    x86_sse2_cvtsi642sd,                       // llvm.x86.sse2.cvtsi642sd
-+    x86_sse2_cvtss2sd,                         // llvm.x86.sse2.cvtss2sd
-+    x86_sse2_cvttpd2dq,                        // llvm.x86.sse2.cvttpd2dq
-+    x86_sse2_cvttps2dq,                        // llvm.x86.sse2.cvttps2dq
-+    x86_sse2_cvttsd2si,                        // llvm.x86.sse2.cvttsd2si
-+    x86_sse2_cvttsd2si64,                      // llvm.x86.sse2.cvttsd2si64
-+    x86_sse2_lfence,                           // llvm.x86.sse2.lfence
-+    x86_sse2_maskmov_dqu,                      // llvm.x86.sse2.maskmov.dqu
-+    x86_sse2_max_pd,                           // llvm.x86.sse2.max.pd
-+    x86_sse2_max_sd,                           // llvm.x86.sse2.max.sd
-+    x86_sse2_mfence,                           // llvm.x86.sse2.mfence
-+    x86_sse2_min_pd,                           // llvm.x86.sse2.min.pd
-+    x86_sse2_min_sd,                           // llvm.x86.sse2.min.sd
-+    x86_sse2_movmsk_pd,                        // llvm.x86.sse2.movmsk.pd
-+    x86_sse2_packssdw_128,                     // llvm.x86.sse2.packssdw.128
-+    x86_sse2_packsswb_128,                     // llvm.x86.sse2.packsswb.128
-+    x86_sse2_packuswb_128,                     // llvm.x86.sse2.packuswb.128
-+    x86_sse2_padds_b,                          // llvm.x86.sse2.padds.b
-+    x86_sse2_padds_w,                          // llvm.x86.sse2.padds.w
-+    x86_sse2_paddus_b,                         // llvm.x86.sse2.paddus.b
-+    x86_sse2_paddus_w,                         // llvm.x86.sse2.paddus.w
-+    x86_sse2_pause,                            // llvm.x86.sse2.pause
-+    x86_sse2_pavg_b,                           // llvm.x86.sse2.pavg.b
-+    x86_sse2_pavg_w,                           // llvm.x86.sse2.pavg.w
-+    x86_sse2_pmadd_wd,                         // llvm.x86.sse2.pmadd.wd
-+    x86_sse2_pmovmskb_128,                     // llvm.x86.sse2.pmovmskb.128
-+    x86_sse2_pmulh_w,                          // llvm.x86.sse2.pmulh.w
-+    x86_sse2_pmulhu_w,                         // llvm.x86.sse2.pmulhu.w
-+    x86_sse2_pmulu_dq,                         // llvm.x86.sse2.pmulu.dq
-+    x86_sse2_psad_bw,                          // llvm.x86.sse2.psad.bw
-+    x86_sse2_psll_d,                           // llvm.x86.sse2.psll.d
-+    x86_sse2_psll_q,                           // llvm.x86.sse2.psll.q
-+    x86_sse2_psll_w,                           // llvm.x86.sse2.psll.w
-+    x86_sse2_pslli_d,                          // llvm.x86.sse2.pslli.d
-+    x86_sse2_pslli_q,                          // llvm.x86.sse2.pslli.q
-+    x86_sse2_pslli_w,                          // llvm.x86.sse2.pslli.w
-+    x86_sse2_psra_d,                           // llvm.x86.sse2.psra.d
-+    x86_sse2_psra_w,                           // llvm.x86.sse2.psra.w
-+    x86_sse2_psrai_d,                          // llvm.x86.sse2.psrai.d
-+    x86_sse2_psrai_w,                          // llvm.x86.sse2.psrai.w
-+    x86_sse2_psrl_d,                           // llvm.x86.sse2.psrl.d
-+    x86_sse2_psrl_q,                           // llvm.x86.sse2.psrl.q
-+    x86_sse2_psrl_w,                           // llvm.x86.sse2.psrl.w
-+    x86_sse2_psrli_d,                          // llvm.x86.sse2.psrli.d
-+    x86_sse2_psrli_q,                          // llvm.x86.sse2.psrli.q
-+    x86_sse2_psrli_w,                          // llvm.x86.sse2.psrli.w
-+    x86_sse2_psubs_b,                          // llvm.x86.sse2.psubs.b
-+    x86_sse2_psubs_w,                          // llvm.x86.sse2.psubs.w
-+    x86_sse2_psubus_b,                         // llvm.x86.sse2.psubus.b
-+    x86_sse2_psubus_w,                         // llvm.x86.sse2.psubus.w
-+    x86_sse2_sqrt_pd,                          // llvm.x86.sse2.sqrt.pd
-+    x86_sse2_sqrt_sd,                          // llvm.x86.sse2.sqrt.sd
-+    x86_sse2_ucomieq_sd,                       // llvm.x86.sse2.ucomieq.sd
-+    x86_sse2_ucomige_sd,                       // llvm.x86.sse2.ucomige.sd
-+    x86_sse2_ucomigt_sd,                       // llvm.x86.sse2.ucomigt.sd
-+    x86_sse2_ucomile_sd,                       // llvm.x86.sse2.ucomile.sd
-+    x86_sse2_ucomilt_sd,                       // llvm.x86.sse2.ucomilt.sd
-+    x86_sse2_ucomineq_sd,                      // llvm.x86.sse2.ucomineq.sd
-+    x86_sse3_addsub_pd,                        // llvm.x86.sse3.addsub.pd
-+    x86_sse3_addsub_ps,                        // llvm.x86.sse3.addsub.ps
-+    x86_sse3_hadd_pd,                          // llvm.x86.sse3.hadd.pd
-+    x86_sse3_hadd_ps,                          // llvm.x86.sse3.hadd.ps
-+    x86_sse3_hsub_pd,                          // llvm.x86.sse3.hsub.pd
-+    x86_sse3_hsub_ps,                          // llvm.x86.sse3.hsub.ps
-+    x86_sse3_ldu_dq,                           // llvm.x86.sse3.ldu.dq
-+    x86_sse3_monitor,                          // llvm.x86.sse3.monitor
-+    x86_sse3_mwait,                            // llvm.x86.sse3.mwait
-+    x86_sse41_blendvpd,                        // llvm.x86.sse41.blendvpd
-+    x86_sse41_blendvps,                        // llvm.x86.sse41.blendvps
-+    x86_sse41_dppd,                            // llvm.x86.sse41.dppd
-+    x86_sse41_dpps,                            // llvm.x86.sse41.dpps
-+    x86_sse41_insertps,                        // llvm.x86.sse41.insertps
-+    x86_sse41_movntdqa,                        // llvm.x86.sse41.movntdqa
-+    x86_sse41_mpsadbw,                         // llvm.x86.sse41.mpsadbw
-+    x86_sse41_packusdw,                        // llvm.x86.sse41.packusdw
-+    x86_sse41_pblendvb,                        // llvm.x86.sse41.pblendvb
-+    x86_sse41_phminposuw,                      // llvm.x86.sse41.phminposuw
-+    x86_sse41_pmuldq,                          // llvm.x86.sse41.pmuldq
-+    x86_sse41_ptestc,                          // llvm.x86.sse41.ptestc
-+    x86_sse41_ptestnzc,                        // llvm.x86.sse41.ptestnzc
-+    x86_sse41_ptestz,                          // llvm.x86.sse41.ptestz
-+    x86_sse41_round_pd,                        // llvm.x86.sse41.round.pd
-+    x86_sse41_round_ps,                        // llvm.x86.sse41.round.ps
-+    x86_sse41_round_sd,                        // llvm.x86.sse41.round.sd
-+    x86_sse41_round_ss,                        // llvm.x86.sse41.round.ss
-+    x86_sse42_crc32_32_16,                     // llvm.x86.sse42.crc32.32.16
-+    x86_sse42_crc32_32_32,                     // llvm.x86.sse42.crc32.32.32
-+    x86_sse42_crc32_32_8,                      // llvm.x86.sse42.crc32.32.8
-+    x86_sse42_crc32_64_64,                     // llvm.x86.sse42.crc32.64.64
-+    x86_sse42_pcmpestri128,                    // llvm.x86.sse42.pcmpestri128
-+    x86_sse42_pcmpestria128,                   // llvm.x86.sse42.pcmpestria128
-+    x86_sse42_pcmpestric128,                   // llvm.x86.sse42.pcmpestric128
-+    x86_sse42_pcmpestrio128,                   // llvm.x86.sse42.pcmpestrio128
-+    x86_sse42_pcmpestris128,                   // llvm.x86.sse42.pcmpestris128
-+    x86_sse42_pcmpestriz128,                   // llvm.x86.sse42.pcmpestriz128
-+    x86_sse42_pcmpestrm128,                    // llvm.x86.sse42.pcmpestrm128
-+    x86_sse42_pcmpistri128,                    // llvm.x86.sse42.pcmpistri128
-+    x86_sse42_pcmpistria128,                   // llvm.x86.sse42.pcmpistria128
-+    x86_sse42_pcmpistric128,                   // llvm.x86.sse42.pcmpistric128
-+    x86_sse42_pcmpistrio128,                   // llvm.x86.sse42.pcmpistrio128
-+    x86_sse42_pcmpistris128,                   // llvm.x86.sse42.pcmpistris128
-+    x86_sse42_pcmpistriz128,                   // llvm.x86.sse42.pcmpistriz128
-+    x86_sse42_pcmpistrm128,                    // llvm.x86.sse42.pcmpistrm128
-+    x86_sse4a_extrq,                           // llvm.x86.sse4a.extrq
-+    x86_sse4a_extrqi,                          // llvm.x86.sse4a.extrqi
-+    x86_sse4a_insertq,                         // llvm.x86.sse4a.insertq
-+    x86_sse4a_insertqi,                        // llvm.x86.sse4a.insertqi
-+    x86_ssse3_pabs_b,                          // llvm.x86.ssse3.pabs.b
-+    x86_ssse3_pabs_b_128,                      // llvm.x86.ssse3.pabs.b.128
-+    x86_ssse3_pabs_d,                          // llvm.x86.ssse3.pabs.d
-+    x86_ssse3_pabs_d_128,                      // llvm.x86.ssse3.pabs.d.128
-+    x86_ssse3_pabs_w,                          // llvm.x86.ssse3.pabs.w
-+    x86_ssse3_pabs_w_128,                      // llvm.x86.ssse3.pabs.w.128
-+    x86_ssse3_phadd_d,                         // llvm.x86.ssse3.phadd.d
-+    x86_ssse3_phadd_d_128,                     // llvm.x86.ssse3.phadd.d.128
-+    x86_ssse3_phadd_sw,                        // llvm.x86.ssse3.phadd.sw
-+    x86_ssse3_phadd_sw_128,                    // llvm.x86.ssse3.phadd.sw.128
-+    x86_ssse3_phadd_w,                         // llvm.x86.ssse3.phadd.w
-+    x86_ssse3_phadd_w_128,                     // llvm.x86.ssse3.phadd.w.128
-+    x86_ssse3_phsub_d,                         // llvm.x86.ssse3.phsub.d
-+    x86_ssse3_phsub_d_128,                     // llvm.x86.ssse3.phsub.d.128
-+    x86_ssse3_phsub_sw,                        // llvm.x86.ssse3.phsub.sw
-+    x86_ssse3_phsub_sw_128,                    // llvm.x86.ssse3.phsub.sw.128
-+    x86_ssse3_phsub_w,                         // llvm.x86.ssse3.phsub.w
-+    x86_ssse3_phsub_w_128,                     // llvm.x86.ssse3.phsub.w.128
-+    x86_ssse3_pmadd_ub_sw,                     // llvm.x86.ssse3.pmadd.ub.sw
-+    x86_ssse3_pmadd_ub_sw_128,                 // llvm.x86.ssse3.pmadd.ub.sw.128
-+    x86_ssse3_pmul_hr_sw,                      // llvm.x86.ssse3.pmul.hr.sw
-+    x86_ssse3_pmul_hr_sw_128,                  // llvm.x86.ssse3.pmul.hr.sw.128
-+    x86_ssse3_pshuf_b,                         // llvm.x86.ssse3.pshuf.b
-+    x86_ssse3_pshuf_b_128,                     // llvm.x86.ssse3.pshuf.b.128
-+    x86_ssse3_psign_b,                         // llvm.x86.ssse3.psign.b
-+    x86_ssse3_psign_b_128,                     // llvm.x86.ssse3.psign.b.128
-+    x86_ssse3_psign_d,                         // llvm.x86.ssse3.psign.d
-+    x86_ssse3_psign_d_128,                     // llvm.x86.ssse3.psign.d.128
-+    x86_ssse3_psign_w,                         // llvm.x86.ssse3.psign.w
-+    x86_ssse3_psign_w_128,                     // llvm.x86.ssse3.psign.w.128
-+    x86_subborrow_u32,                         // llvm.x86.subborrow.u32
-+    x86_subborrow_u64,                         // llvm.x86.subborrow.u64
-+    x86_tbm_bextri_u32,                        // llvm.x86.tbm.bextri.u32
-+    x86_tbm_bextri_u64,                        // llvm.x86.tbm.bextri.u64
-+    x86_vcvtph2ps_128,                         // llvm.x86.vcvtph2ps.128
-+    x86_vcvtph2ps_256,                         // llvm.x86.vcvtph2ps.256
-+    x86_vcvtps2ph_128,                         // llvm.x86.vcvtps2ph.128
-+    x86_vcvtps2ph_256,                         // llvm.x86.vcvtps2ph.256
-+    x86_wrfsbase_32,                           // llvm.x86.wrfsbase.32
-+    x86_wrfsbase_64,                           // llvm.x86.wrfsbase.64
-+    x86_wrgsbase_32,                           // llvm.x86.wrgsbase.32
-+    x86_wrgsbase_64,                           // llvm.x86.wrgsbase.64
-+    x86_wrpkru,                                // llvm.x86.wrpkru
-+    x86_xabort,                                // llvm.x86.xabort
-+    x86_xbegin,                                // llvm.x86.xbegin
-+    x86_xend,                                  // llvm.x86.xend
-+    x86_xgetbv,                                // llvm.x86.xgetbv
-+    x86_xop_vfrcz_pd,                          // llvm.x86.xop.vfrcz.pd
-+    x86_xop_vfrcz_pd_256,                      // llvm.x86.xop.vfrcz.pd.256
-+    x86_xop_vfrcz_ps,                          // llvm.x86.xop.vfrcz.ps
-+    x86_xop_vfrcz_ps_256,                      // llvm.x86.xop.vfrcz.ps.256
-+    x86_xop_vfrcz_sd,                          // llvm.x86.xop.vfrcz.sd
-+    x86_xop_vfrcz_ss,                          // llvm.x86.xop.vfrcz.ss
-+    x86_xop_vpcmov,                            // llvm.x86.xop.vpcmov
-+    x86_xop_vpcmov_256,                        // llvm.x86.xop.vpcmov.256
-+    x86_xop_vpcomb,                            // llvm.x86.xop.vpcomb
-+    x86_xop_vpcomd,                            // llvm.x86.xop.vpcomd
-+    x86_xop_vpcomq,                            // llvm.x86.xop.vpcomq
-+    x86_xop_vpcomub,                           // llvm.x86.xop.vpcomub
-+    x86_xop_vpcomud,                           // llvm.x86.xop.vpcomud
-+    x86_xop_vpcomuq,                           // llvm.x86.xop.vpcomuq
-+    x86_xop_vpcomuw,                           // llvm.x86.xop.vpcomuw
-+    x86_xop_vpcomw,                            // llvm.x86.xop.vpcomw
-+    x86_xop_vpermil2pd,                        // llvm.x86.xop.vpermil2pd
-+    x86_xop_vpermil2pd_256,                    // llvm.x86.xop.vpermil2pd.256
-+    x86_xop_vpermil2ps,                        // llvm.x86.xop.vpermil2ps
-+    x86_xop_vpermil2ps_256,                    // llvm.x86.xop.vpermil2ps.256
-+    x86_xop_vphaddbd,                          // llvm.x86.xop.vphaddbd
-+    x86_xop_vphaddbq,                          // llvm.x86.xop.vphaddbq
-+    x86_xop_vphaddbw,                          // llvm.x86.xop.vphaddbw
-+    x86_xop_vphadddq,                          // llvm.x86.xop.vphadddq
-+    x86_xop_vphaddubd,                         // llvm.x86.xop.vphaddubd
-+    x86_xop_vphaddubq,                         // llvm.x86.xop.vphaddubq
-+    x86_xop_vphaddubw,                         // llvm.x86.xop.vphaddubw
-+    x86_xop_vphaddudq,                         // llvm.x86.xop.vphaddudq
-+    x86_xop_vphadduwd,                         // llvm.x86.xop.vphadduwd
-+    x86_xop_vphadduwq,                         // llvm.x86.xop.vphadduwq
-+    x86_xop_vphaddwd,                          // llvm.x86.xop.vphaddwd
-+    x86_xop_vphaddwq,                          // llvm.x86.xop.vphaddwq
-+    x86_xop_vphsubbw,                          // llvm.x86.xop.vphsubbw
-+    x86_xop_vphsubdq,                          // llvm.x86.xop.vphsubdq
-+    x86_xop_vphsubwd,                          // llvm.x86.xop.vphsubwd
-+    x86_xop_vpmacsdd,                          // llvm.x86.xop.vpmacsdd
-+    x86_xop_vpmacsdqh,                         // llvm.x86.xop.vpmacsdqh
-+    x86_xop_vpmacsdql,                         // llvm.x86.xop.vpmacsdql
-+    x86_xop_vpmacssdd,                         // llvm.x86.xop.vpmacssdd
-+    x86_xop_vpmacssdqh,                        // llvm.x86.xop.vpmacssdqh
-+    x86_xop_vpmacssdql,                        // llvm.x86.xop.vpmacssdql
-+    x86_xop_vpmacsswd,                         // llvm.x86.xop.vpmacsswd
-+    x86_xop_vpmacssww,                         // llvm.x86.xop.vpmacssww
-+    x86_xop_vpmacswd,                          // llvm.x86.xop.vpmacswd
-+    x86_xop_vpmacsww,                          // llvm.x86.xop.vpmacsww
-+    x86_xop_vpmadcsswd,                        // llvm.x86.xop.vpmadcsswd
-+    x86_xop_vpmadcswd,                         // llvm.x86.xop.vpmadcswd
-+    x86_xop_vpperm,                            // llvm.x86.xop.vpperm
-+    x86_xop_vprotb,                            // llvm.x86.xop.vprotb
-+    x86_xop_vprotbi,                           // llvm.x86.xop.vprotbi
-+    x86_xop_vprotd,                            // llvm.x86.xop.vprotd
-+    x86_xop_vprotdi,                           // llvm.x86.xop.vprotdi
-+    x86_xop_vprotq,                            // llvm.x86.xop.vprotq
-+    x86_xop_vprotqi,                           // llvm.x86.xop.vprotqi
-+    x86_xop_vprotw,                            // llvm.x86.xop.vprotw
-+    x86_xop_vprotwi,                           // llvm.x86.xop.vprotwi
-+    x86_xop_vpshab,                            // llvm.x86.xop.vpshab
-+    x86_xop_vpshad,                            // llvm.x86.xop.vpshad
-+    x86_xop_vpshaq,                            // llvm.x86.xop.vpshaq
-+    x86_xop_vpshaw,                            // llvm.x86.xop.vpshaw
-+    x86_xop_vpshlb,                            // llvm.x86.xop.vpshlb
-+    x86_xop_vpshld,                            // llvm.x86.xop.vpshld
-+    x86_xop_vpshlq,                            // llvm.x86.xop.vpshlq
-+    x86_xop_vpshlw,                            // llvm.x86.xop.vpshlw
-+    x86_xrstor,                                // llvm.x86.xrstor
-+    x86_xrstor64,                              // llvm.x86.xrstor64
-+    x86_xrstors,                               // llvm.x86.xrstors
-+    x86_xrstors64,                             // llvm.x86.xrstors64
-+    x86_xsave,                                 // llvm.x86.xsave
-+    x86_xsave64,                               // llvm.x86.xsave64
-+    x86_xsavec,                                // llvm.x86.xsavec
-+    x86_xsavec64,                              // llvm.x86.xsavec64
-+    x86_xsaveopt,                              // llvm.x86.xsaveopt
-+    x86_xsaveopt64,                            // llvm.x86.xsaveopt64
-+    x86_xsaves,                                // llvm.x86.xsaves
-+    x86_xsaves64,                              // llvm.x86.xsaves64
-+    x86_xsetbv,                                // llvm.x86.xsetbv
-+    x86_xtest,                                 // llvm.x86.xtest
-+    xcore_bitrev,                              // llvm.xcore.bitrev
-+    xcore_checkevent,                          // llvm.xcore.checkevent
-+    xcore_chkct,                               // llvm.xcore.chkct
-+    xcore_clre,                                // llvm.xcore.clre
-+    xcore_clrpt,                               // llvm.xcore.clrpt
-+    xcore_clrsr,                               // llvm.xcore.clrsr
-+    xcore_crc32,                               // llvm.xcore.crc32
-+    xcore_crc8,                                // llvm.xcore.crc8
-+    xcore_edu,                                 // llvm.xcore.edu
-+    xcore_eeu,                                 // llvm.xcore.eeu
-+    xcore_endin,                               // llvm.xcore.endin
-+    xcore_freer,                               // llvm.xcore.freer
-+    xcore_geted,                               // llvm.xcore.geted
-+    xcore_getet,                               // llvm.xcore.getet
-+    xcore_getid,                               // llvm.xcore.getid
-+    xcore_getps,                               // llvm.xcore.getps
-+    xcore_getr,                                // llvm.xcore.getr
-+    xcore_getst,                               // llvm.xcore.getst
-+    xcore_getts,                               // llvm.xcore.getts
-+    xcore_in,                                  // llvm.xcore.in
-+    xcore_inct,                                // llvm.xcore.inct
-+    xcore_initcp,                              // llvm.xcore.initcp
-+    xcore_initdp,                              // llvm.xcore.initdp
-+    xcore_initlr,                              // llvm.xcore.initlr
-+    xcore_initpc,                              // llvm.xcore.initpc
-+    xcore_initsp,                              // llvm.xcore.initsp
-+    xcore_inshr,                               // llvm.xcore.inshr
-+    xcore_int,                                 // llvm.xcore.int
-+    xcore_mjoin,                               // llvm.xcore.mjoin
-+    xcore_msync,                               // llvm.xcore.msync
-+    xcore_out,                                 // llvm.xcore.out
-+    xcore_outct,                               // llvm.xcore.outct
-+    xcore_outshr,                              // llvm.xcore.outshr
-+    xcore_outt,                                // llvm.xcore.outt
-+    xcore_peek,                                // llvm.xcore.peek
-+    xcore_setc,                                // llvm.xcore.setc
-+    xcore_setclk,                              // llvm.xcore.setclk
-+    xcore_setd,                                // llvm.xcore.setd
-+    xcore_setev,                               // llvm.xcore.setev
-+    xcore_setps,                               // llvm.xcore.setps
-+    xcore_setpsc,                              // llvm.xcore.setpsc
-+    xcore_setpt,                               // llvm.xcore.setpt
-+    xcore_setrdy,                              // llvm.xcore.setrdy
-+    xcore_setsr,                               // llvm.xcore.setsr
-+    xcore_settw,                               // llvm.xcore.settw
-+    xcore_setv,                                // llvm.xcore.setv
-+    xcore_sext,                                // llvm.xcore.sext
-+    xcore_ssync,                               // llvm.xcore.ssync
-+    xcore_syncr,                               // llvm.xcore.syncr
-+    xcore_testct,                              // llvm.xcore.testct
-+    xcore_testwct,                             // llvm.xcore.testwct
-+    xcore_waitevent,                           // llvm.xcore.waitevent
-+    xcore_zext                                 // llvm.xcore.zext
-+#endif
-+
-+// Target mapping
-+#ifdef GET_INTRINSIC_TARGET_DATA
-+struct IntrinsicTargetInfo {
-+  StringRef Name;
-+  size_t Offset;
-+  size_t Count;
-+};
-+static const IntrinsicTargetInfo TargetInfos[] = {
-+  {"", 0, 143},
-+  {"aarch64", 143, 190},
-+  {"amdgcn", 333, 174},
-+  {"arm", 507, 172},
-+  {"bpf", 679, 4},
-+  {"hexagon", 683, 1489},
-+  {"mips", 2172, 667},
-+  {"nvvm", 2839, 939},
-+  {"ppc", 3778, 395},
-+  {"r600", 4173, 20},
-+  {"s390", 4193, 207},
-+  {"wasm", 4400, 2},
-+  {"x86", 4402, 1573},
-+  {"xcore", 5975, 53},
-+};
-+#endif
-+
-+// Intrinsic ID to name table
-+#ifdef GET_INTRINSIC_NAME_TABLE
-+  // Note that entry #0 is the invalid intrinsic!
-+  "llvm.addressofreturnaddress",
-+  "llvm.adjust.trampoline",
-+  "llvm.annotation",
-+  "llvm.assume",
-+  "llvm.bitreverse",
-+  "llvm.bswap",
-+  "llvm.canonicalize",
-+  "llvm.ceil",
-+  "llvm.clear_cache",
-+  "llvm.convert.from.fp16",
-+  "llvm.convert.to.fp16",
-+  "llvm.convertff",
-+  "llvm.convertfsi",
-+  "llvm.convertfui",
-+  "llvm.convertsif",
-+  "llvm.convertss",
-+  "llvm.convertsu",
-+  "llvm.convertuif",
-+  "llvm.convertus",
-+  "llvm.convertuu",
-+  "llvm.copysign",
-+  "llvm.coro.alloc",
-+  "llvm.coro.begin",
-+  "llvm.coro.destroy",
-+  "llvm.coro.done",
-+  "llvm.coro.end",
-+  "llvm.coro.frame",
-+  "llvm.coro.free",
-+  "llvm.coro.id",
-+  "llvm.coro.param",
-+  "llvm.coro.promise",
-+  "llvm.coro.resume",
-+  "llvm.coro.save",
-+  "llvm.coro.size",
-+  "llvm.coro.subfn.addr",
-+  "llvm.coro.suspend",
-+  "llvm.cos",
-+  "llvm.ctlz",
-+  "llvm.ctpop",
-+  "llvm.cttz",
-+  "llvm.dbg.declare",
-+  "llvm.dbg.value",
-+  "llvm.debugtrap",
-+  "llvm.donothing",
-+  "llvm.eh.dwarf.cfa",
-+  "llvm.eh.exceptioncode",
-+  "llvm.eh.exceptionpointer",
-+  "llvm.eh.return.i32",
-+  "llvm.eh.return.i64",
-+  "llvm.eh.sjlj.callsite",
-+  "llvm.eh.sjlj.functioncontext",
-+  "llvm.eh.sjlj.longjmp",
-+  "llvm.eh.sjlj.lsda",
-+  "llvm.eh.sjlj.setjmp",
-+  "llvm.eh.sjlj.setup.dispatch",
-+  "llvm.eh.typeid.for",
-+  "llvm.eh.unwind.init",
-+  "llvm.exp",
-+  "llvm.exp2",
-+  "llvm.expect",
-+  "llvm.experimental.deoptimize",
-+  "llvm.experimental.gc.relocate",
-+  "llvm.experimental.gc.result",
-+  "llvm.experimental.gc.statepoint",
-+  "llvm.experimental.guard",
-+  "llvm.experimental.patchpoint.i64",
-+  "llvm.experimental.patchpoint.void",
-+  "llvm.experimental.stackmap",
-+  "llvm.fabs",
-+  "llvm.floor",
-+  "llvm.flt.rounds",
-+  "llvm.fma",
-+  "llvm.fmuladd",
-+  "llvm.frameaddress",
-+  "llvm.gcread",
-+  "llvm.gcroot",
-+  "llvm.gcwrite",
-+  "llvm.get.dynamic.area.offset",
-+  "llvm.init.trampoline",
-+  "llvm.instrprof.increment",
-+  "llvm.instrprof.increment.step",
-+  "llvm.instrprof.value.profile",
-+  "llvm.invariant.end",
-+  "llvm.invariant.group.barrier",
-+  "llvm.invariant.start",
-+  "llvm.lifetime.end",
-+  "llvm.lifetime.start",
-+  "llvm.load.relative",
-+  "llvm.localaddress",
-+  "llvm.localescape",
-+  "llvm.localrecover",
-+  "llvm.log",
-+  "llvm.log10",
-+  "llvm.log2",
-+  "llvm.longjmp",
-+  "llvm.masked.compressstore",
-+  "llvm.masked.expandload",
-+  "llvm.masked.gather",
-+  "llvm.masked.load",
-+  "llvm.masked.scatter",
-+  "llvm.masked.store",
-+  "llvm.maxnum",
-+  "llvm.memcpy",
-+  "llvm.memmove",
-+  "llvm.memset",
-+  "llvm.minnum",
-+  "llvm.nearbyint",
-+  "llvm.objectsize",
-+  "llvm.pcmarker",
-+  "llvm.pow",
-+  "llvm.powi",
-+  "llvm.prefetch",
-+  "llvm.ptr.annotation",
-+  "llvm.read_register",
-+  "llvm.readcyclecounter",
-+  "llvm.returnaddress",
-+  "llvm.rint",
-+  "llvm.round",
-+  "llvm.sadd.with.overflow",
-+  "llvm.setjmp",
-+  "llvm.siglongjmp",
-+  "llvm.sigsetjmp",
-+  "llvm.sin",
-+  "llvm.smul.with.overflow",
-+  "llvm.sqrt",
-+  "llvm.ssub.with.overflow",
-+  "llvm.stackguard",
-+  "llvm.stackprotector",
-+  "llvm.stackrestore",
-+  "llvm.stacksave",
-+  "llvm.thread.pointer",
-+  "llvm.trap",
-+  "llvm.trunc",
-+  "llvm.type.checked.load",
-+  "llvm.type.test",
-+  "llvm.uadd.with.overflow",
-+  "llvm.umul.with.overflow",
-+  "llvm.usub.with.overflow",
-+  "llvm.va_copy",
-+  "llvm.va_end",
-+  "llvm.va_start",
-+  "llvm.var.annotation",
-+  "llvm.write_register",
-+  "llvm.aarch64.clrex",
-+  "llvm.aarch64.crc32b",
-+  "llvm.aarch64.crc32cb",
-+  "llvm.aarch64.crc32ch",
-+  "llvm.aarch64.crc32cw",
-+  "llvm.aarch64.crc32cx",
-+  "llvm.aarch64.crc32h",
-+  "llvm.aarch64.crc32w",
-+  "llvm.aarch64.crc32x",
-+  "llvm.aarch64.crypto.aesd",
-+  "llvm.aarch64.crypto.aese",
-+  "llvm.aarch64.crypto.aesimc",
-+  "llvm.aarch64.crypto.aesmc",
-+  "llvm.aarch64.crypto.sha1c",
-+  "llvm.aarch64.crypto.sha1h",
-+  "llvm.aarch64.crypto.sha1m",
-+  "llvm.aarch64.crypto.sha1p",
-+  "llvm.aarch64.crypto.sha1su0",
-+  "llvm.aarch64.crypto.sha1su1",
-+  "llvm.aarch64.crypto.sha256h",
-+  "llvm.aarch64.crypto.sha256h2",
-+  "llvm.aarch64.crypto.sha256su0",
-+  "llvm.aarch64.crypto.sha256su1",
-+  "llvm.aarch64.dmb",
-+  "llvm.aarch64.dsb",
-+  "llvm.aarch64.hint",
-+  "llvm.aarch64.isb",
-+  "llvm.aarch64.ldaxp",
-+  "llvm.aarch64.ldaxr",
-+  "llvm.aarch64.ldxp",
-+  "llvm.aarch64.ldxr",
-+  "llvm.aarch64.neon.abs",
-+  "llvm.aarch64.neon.addhn",
-+  "llvm.aarch64.neon.addp",
-+  "llvm.aarch64.neon.cls",
-+  "llvm.aarch64.neon.fabd",
-+  "llvm.aarch64.neon.facge",
-+  "llvm.aarch64.neon.facgt",
-+  "llvm.aarch64.neon.faddv",
-+  "llvm.aarch64.neon.fcvtas",
-+  "llvm.aarch64.neon.fcvtau",
-+  "llvm.aarch64.neon.fcvtms",
-+  "llvm.aarch64.neon.fcvtmu",
-+  "llvm.aarch64.neon.fcvtns",
-+  "llvm.aarch64.neon.fcvtnu",
-+  "llvm.aarch64.neon.fcvtps",
-+  "llvm.aarch64.neon.fcvtpu",
-+  "llvm.aarch64.neon.fcvtxn",
-+  "llvm.aarch64.neon.fcvtzs",
-+  "llvm.aarch64.neon.fcvtzu",
-+  "llvm.aarch64.neon.fmax",
-+  "llvm.aarch64.neon.fmaxnm",
-+  "llvm.aarch64.neon.fmaxnmp",
-+  "llvm.aarch64.neon.fmaxnmv",
-+  "llvm.aarch64.neon.fmaxp",
-+  "llvm.aarch64.neon.fmaxv",
-+  "llvm.aarch64.neon.fmin",
-+  "llvm.aarch64.neon.fminnm",
-+  "llvm.aarch64.neon.fminnmp",
-+  "llvm.aarch64.neon.fminnmv",
-+  "llvm.aarch64.neon.fminp",
-+  "llvm.aarch64.neon.fminv",
-+  "llvm.aarch64.neon.fmulx",
-+  "llvm.aarch64.neon.frecpe",
-+  "llvm.aarch64.neon.frecps",
-+  "llvm.aarch64.neon.frecpx",
-+  "llvm.aarch64.neon.frintn",
-+  "llvm.aarch64.neon.frsqrte",
-+  "llvm.aarch64.neon.frsqrts",
-+  "llvm.aarch64.neon.ld1x2",
-+  "llvm.aarch64.neon.ld1x3",
-+  "llvm.aarch64.neon.ld1x4",
-+  "llvm.aarch64.neon.ld2",
-+  "llvm.aarch64.neon.ld2lane",
-+  "llvm.aarch64.neon.ld2r",
-+  "llvm.aarch64.neon.ld3",
-+  "llvm.aarch64.neon.ld3lane",
-+  "llvm.aarch64.neon.ld3r",
-+  "llvm.aarch64.neon.ld4",
-+  "llvm.aarch64.neon.ld4lane",
-+  "llvm.aarch64.neon.ld4r",
-+  "llvm.aarch64.neon.pmul",
-+  "llvm.aarch64.neon.pmull",
-+  "llvm.aarch64.neon.pmull64",
-+  "llvm.aarch64.neon.raddhn",
-+  "llvm.aarch64.neon.rbit",
-+  "llvm.aarch64.neon.rshrn",
-+  "llvm.aarch64.neon.rsubhn",
-+  "llvm.aarch64.neon.sabd",
-+  "llvm.aarch64.neon.saddlp",
-+  "llvm.aarch64.neon.saddlv",
-+  "llvm.aarch64.neon.saddv",
-+  "llvm.aarch64.neon.scalar.sqxtn",
-+  "llvm.aarch64.neon.scalar.sqxtun",
-+  "llvm.aarch64.neon.scalar.uqxtn",
-+  "llvm.aarch64.neon.shadd",
-+  "llvm.aarch64.neon.shll",
-+  "llvm.aarch64.neon.shsub",
-+  "llvm.aarch64.neon.smax",
-+  "llvm.aarch64.neon.smaxp",
-+  "llvm.aarch64.neon.smaxv",
-+  "llvm.aarch64.neon.smin",
-+  "llvm.aarch64.neon.sminp",
-+  "llvm.aarch64.neon.sminv",
-+  "llvm.aarch64.neon.smull",
-+  "llvm.aarch64.neon.sqabs",
-+  "llvm.aarch64.neon.sqadd",
-+  "llvm.aarch64.neon.sqdmulh",
-+  "llvm.aarch64.neon.sqdmull",
-+  "llvm.aarch64.neon.sqdmulls.scalar",
-+  "llvm.aarch64.neon.sqneg",
-+  "llvm.aarch64.neon.sqrdmulh",
-+  "llvm.aarch64.neon.sqrshl",
-+  "llvm.aarch64.neon.sqrshrn",
-+  "llvm.aarch64.neon.sqrshrun",
-+  "llvm.aarch64.neon.sqshl",
-+  "llvm.aarch64.neon.sqshlu",
-+  "llvm.aarch64.neon.sqshrn",
-+  "llvm.aarch64.neon.sqshrun",
-+  "llvm.aarch64.neon.sqsub",
-+  "llvm.aarch64.neon.sqxtn",
-+  "llvm.aarch64.neon.sqxtun",
-+  "llvm.aarch64.neon.srhadd",
-+  "llvm.aarch64.neon.srshl",
-+  "llvm.aarch64.neon.sshl",
-+  "llvm.aarch64.neon.sshll",
-+  "llvm.aarch64.neon.st1x2",
-+  "llvm.aarch64.neon.st1x3",
-+  "llvm.aarch64.neon.st1x4",
-+  "llvm.aarch64.neon.st2",
-+  "llvm.aarch64.neon.st2lane",
-+  "llvm.aarch64.neon.st3",
-+  "llvm.aarch64.neon.st3lane",
-+  "llvm.aarch64.neon.st4",
-+  "llvm.aarch64.neon.st4lane",
-+  "llvm.aarch64.neon.subhn",
-+  "llvm.aarch64.neon.suqadd",
-+  "llvm.aarch64.neon.tbl1",
-+  "llvm.aarch64.neon.tbl2",
-+  "llvm.aarch64.neon.tbl3",
-+  "llvm.aarch64.neon.tbl4",
-+  "llvm.aarch64.neon.tbx1",
-+  "llvm.aarch64.neon.tbx2",
-+  "llvm.aarch64.neon.tbx3",
-+  "llvm.aarch64.neon.tbx4",
-+  "llvm.aarch64.neon.uabd",
-+  "llvm.aarch64.neon.uaddlp",
-+  "llvm.aarch64.neon.uaddlv",
-+  "llvm.aarch64.neon.uaddv",
-+  "llvm.aarch64.neon.uhadd",
-+  "llvm.aarch64.neon.uhsub",
-+  "llvm.aarch64.neon.umax",
-+  "llvm.aarch64.neon.umaxp",
-+  "llvm.aarch64.neon.umaxv",
-+  "llvm.aarch64.neon.umin",
-+  "llvm.aarch64.neon.uminp",
-+  "llvm.aarch64.neon.uminv",
-+  "llvm.aarch64.neon.umull",
-+  "llvm.aarch64.neon.uqadd",
-+  "llvm.aarch64.neon.uqrshl",
-+  "llvm.aarch64.neon.uqrshrn",
-+  "llvm.aarch64.neon.uqshl",
-+  "llvm.aarch64.neon.uqshrn",
-+  "llvm.aarch64.neon.uqsub",
-+  "llvm.aarch64.neon.uqxtn",
-+  "llvm.aarch64.neon.urecpe",
-+  "llvm.aarch64.neon.urhadd",
-+  "llvm.aarch64.neon.urshl",
-+  "llvm.aarch64.neon.ursqrte",
-+  "llvm.aarch64.neon.ushl",
-+  "llvm.aarch64.neon.ushll",
-+  "llvm.aarch64.neon.usqadd",
-+  "llvm.aarch64.neon.vcopy.lane",
-+  "llvm.aarch64.neon.vcvtfp2fxs",
-+  "llvm.aarch64.neon.vcvtfp2fxu",
-+  "llvm.aarch64.neon.vcvtfp2hf",
-+  "llvm.aarch64.neon.vcvtfxs2fp",
-+  "llvm.aarch64.neon.vcvtfxu2fp",
-+  "llvm.aarch64.neon.vcvthf2fp",
-+  "llvm.aarch64.neon.vsli",
-+  "llvm.aarch64.neon.vsri",
-+  "llvm.aarch64.rbit",
-+  "llvm.aarch64.sdiv",
-+  "llvm.aarch64.sisd.fabd",
-+  "llvm.aarch64.sisd.fcvtxn",
-+  "llvm.aarch64.stlxp",
-+  "llvm.aarch64.stlxr",
-+  "llvm.aarch64.stxp",
-+  "llvm.aarch64.stxr",
-+  "llvm.aarch64.udiv",
-+  "llvm.amdgcn.atomic.dec",
-+  "llvm.amdgcn.atomic.inc",
-+  "llvm.amdgcn.buffer.atomic.add",
-+  "llvm.amdgcn.buffer.atomic.and",
-+  "llvm.amdgcn.buffer.atomic.cmpswap",
-+  "llvm.amdgcn.buffer.atomic.or",
-+  "llvm.amdgcn.buffer.atomic.smax",
-+  "llvm.amdgcn.buffer.atomic.smin",
-+  "llvm.amdgcn.buffer.atomic.sub",
-+  "llvm.amdgcn.buffer.atomic.swap",
-+  "llvm.amdgcn.buffer.atomic.umax",
-+  "llvm.amdgcn.buffer.atomic.umin",
-+  "llvm.amdgcn.buffer.atomic.xor",
-+  "llvm.amdgcn.buffer.load",
-+  "llvm.amdgcn.buffer.load.format",
-+  "llvm.amdgcn.buffer.store",
-+  "llvm.amdgcn.buffer.store.format",
-+  "llvm.amdgcn.buffer.wbinvl1",
-+  "llvm.amdgcn.buffer.wbinvl1.sc",
-+  "llvm.amdgcn.buffer.wbinvl1.vol",
-+  "llvm.amdgcn.class",
-+  "llvm.amdgcn.cos",
-+  "llvm.amdgcn.cubeid",
-+  "llvm.amdgcn.cubema",
-+  "llvm.amdgcn.cubesc",
-+  "llvm.amdgcn.cubetc",
-+  "llvm.amdgcn.cvt.pk.u8.f32",
-+  "llvm.amdgcn.dispatch.id",
-+  "llvm.amdgcn.dispatch.ptr",
-+  "llvm.amdgcn.div.fixup",
-+  "llvm.amdgcn.div.fmas",
-+  "llvm.amdgcn.div.scale",
-+  "llvm.amdgcn.ds.bpermute",
-+  "llvm.amdgcn.ds.permute",
-+  "llvm.amdgcn.ds.swizzle",
-+  "llvm.amdgcn.fcmp",
-+  "llvm.amdgcn.fmul.legacy",
-+  "llvm.amdgcn.fract",
-+  "llvm.amdgcn.frexp.exp",
-+  "llvm.amdgcn.frexp.mant",
-+  "llvm.amdgcn.groupstaticsize",
-+  "llvm.amdgcn.icmp",
-+  "llvm.amdgcn.image.atomic.add",
-+  "llvm.amdgcn.image.atomic.and",
-+  "llvm.amdgcn.image.atomic.cmpswap",
-+  "llvm.amdgcn.image.atomic.dec",
-+  "llvm.amdgcn.image.atomic.inc",
-+  "llvm.amdgcn.image.atomic.or",
-+  "llvm.amdgcn.image.atomic.smax",
-+  "llvm.amdgcn.image.atomic.smin",
-+  "llvm.amdgcn.image.atomic.sub",
-+  "llvm.amdgcn.image.atomic.swap",
-+  "llvm.amdgcn.image.atomic.umax",
-+  "llvm.amdgcn.image.atomic.umin",
-+  "llvm.amdgcn.image.atomic.xor",
-+  "llvm.amdgcn.image.gather4",
-+  "llvm.amdgcn.image.gather4.b",
-+  "llvm.amdgcn.image.gather4.b.cl",
-+  "llvm.amdgcn.image.gather4.b.cl.o",
-+  "llvm.amdgcn.image.gather4.b.o",
-+  "llvm.amdgcn.image.gather4.c",
-+  "llvm.amdgcn.image.gather4.c.b",
-+  "llvm.amdgcn.image.gather4.c.b.cl",
-+  "llvm.amdgcn.image.gather4.c.b.cl.o",
-+  "llvm.amdgcn.image.gather4.c.b.o",
-+  "llvm.amdgcn.image.gather4.c.cl",
-+  "llvm.amdgcn.image.gather4.c.cl.o",
-+  "llvm.amdgcn.image.gather4.c.l",
-+  "llvm.amdgcn.image.gather4.c.l.o",
-+  "llvm.amdgcn.image.gather4.c.lz",
-+  "llvm.amdgcn.image.gather4.c.lz.o",
-+  "llvm.amdgcn.image.gather4.c.o",
-+  "llvm.amdgcn.image.gather4.cl",
-+  "llvm.amdgcn.image.gather4.cl.o",
-+  "llvm.amdgcn.image.gather4.l",
-+  "llvm.amdgcn.image.gather4.l.o",
-+  "llvm.amdgcn.image.gather4.lz",
-+  "llvm.amdgcn.image.gather4.lz.o",
-+  "llvm.amdgcn.image.gather4.o",
-+  "llvm.amdgcn.image.getlod",
-+  "llvm.amdgcn.image.getresinfo",
-+  "llvm.amdgcn.image.load",
-+  "llvm.amdgcn.image.load.mip",
-+  "llvm.amdgcn.image.sample",
-+  "llvm.amdgcn.image.sample.b",
-+  "llvm.amdgcn.image.sample.b.cl",
-+  "llvm.amdgcn.image.sample.b.cl.o",
-+  "llvm.amdgcn.image.sample.b.o",
-+  "llvm.amdgcn.image.sample.c",
-+  "llvm.amdgcn.image.sample.c.b",
-+  "llvm.amdgcn.image.sample.c.b.cl",
-+  "llvm.amdgcn.image.sample.c.b.cl.o",
-+  "llvm.amdgcn.image.sample.c.b.o",
-+  "llvm.amdgcn.image.sample.c.cd",
-+  "llvm.amdgcn.image.sample.c.cd.cl",
-+  "llvm.amdgcn.image.sample.c.cd.cl.o",
-+  "llvm.amdgcn.image.sample.c.cd.o",
-+  "llvm.amdgcn.image.sample.c.cl",
-+  "llvm.amdgcn.image.sample.c.cl.o",
-+  "llvm.amdgcn.image.sample.c.d",
-+  "llvm.amdgcn.image.sample.c.d.cl",
-+  "llvm.amdgcn.image.sample.c.d.cl.o",
-+  "llvm.amdgcn.image.sample.c.d.o",
-+  "llvm.amdgcn.image.sample.c.l",
-+  "llvm.amdgcn.image.sample.c.l.o",
-+  "llvm.amdgcn.image.sample.c.lz",
-+  "llvm.amdgcn.image.sample.c.lz.o",
-+  "llvm.amdgcn.image.sample.c.o",
-+  "llvm.amdgcn.image.sample.cd",
-+  "llvm.amdgcn.image.sample.cd.cl",
-+  "llvm.amdgcn.image.sample.cd.cl.o",
-+  "llvm.amdgcn.image.sample.cd.o",
-+  "llvm.amdgcn.image.sample.cl",
-+  "llvm.amdgcn.image.sample.cl.o",
-+  "llvm.amdgcn.image.sample.d",
-+  "llvm.amdgcn.image.sample.d.cl",
-+  "llvm.amdgcn.image.sample.d.cl.o",
-+  "llvm.amdgcn.image.sample.d.o",
-+  "llvm.amdgcn.image.sample.l",
-+  "llvm.amdgcn.image.sample.l.o",
-+  "llvm.amdgcn.image.sample.lz",
-+  "llvm.amdgcn.image.sample.lz.o",
-+  "llvm.amdgcn.image.sample.o",
-+  "llvm.amdgcn.image.store",
-+  "llvm.amdgcn.image.store.mip",
-+  "llvm.amdgcn.implicitarg.ptr",
-+  "llvm.amdgcn.interp.mov",
-+  "llvm.amdgcn.interp.p1",
-+  "llvm.amdgcn.interp.p2",
-+  "llvm.amdgcn.kernarg.segment.ptr",
-+  "llvm.amdgcn.ldexp",
-+  "llvm.amdgcn.lerp",
-+  "llvm.amdgcn.log.clamp",
-+  "llvm.amdgcn.mbcnt.hi",
-+  "llvm.amdgcn.mbcnt.lo",
-+  "llvm.amdgcn.mov.dpp",
-+  "llvm.amdgcn.mqsad.pk.u16.u8",
-+  "llvm.amdgcn.mqsad.u32.u8",
-+  "llvm.amdgcn.msad.u8",
-+  "llvm.amdgcn.ps.live",
-+  "llvm.amdgcn.qsad.pk.u16.u8",
-+  "llvm.amdgcn.queue.ptr",
-+  "llvm.amdgcn.rcp",
-+  "llvm.amdgcn.rcp.legacy",
-+  "llvm.amdgcn.readfirstlane",
-+  "llvm.amdgcn.readlane",
-+  "llvm.amdgcn.rsq",
-+  "llvm.amdgcn.rsq.clamp",
-+  "llvm.amdgcn.rsq.legacy",
-+  "llvm.amdgcn.s.barrier",
-+  "llvm.amdgcn.s.dcache.inv",
-+  "llvm.amdgcn.s.dcache.inv.vol",
-+  "llvm.amdgcn.s.dcache.wb",
-+  "llvm.amdgcn.s.dcache.wb.vol",
-+  "llvm.amdgcn.s.decperflevel",
-+  "llvm.amdgcn.s.getreg",
-+  "llvm.amdgcn.s.incperflevel",
-+  "llvm.amdgcn.s.memrealtime",
-+  "llvm.amdgcn.s.memtime",
-+  "llvm.amdgcn.s.sleep",
-+  "llvm.amdgcn.s.waitcnt",
-+  "llvm.amdgcn.sad.hi.u8",
-+  "llvm.amdgcn.sad.u16",
-+  "llvm.amdgcn.sad.u8",
-+  "llvm.amdgcn.sffbh",
-+  "llvm.amdgcn.sin",
-+  "llvm.amdgcn.trig.preop",
-+  "llvm.amdgcn.wave.barrier",
-+  "llvm.amdgcn.workgroup.id.x",
-+  "llvm.amdgcn.workgroup.id.y",
-+  "llvm.amdgcn.workgroup.id.z",
-+  "llvm.amdgcn.workitem.id.x",
-+  "llvm.amdgcn.workitem.id.y",
-+  "llvm.amdgcn.workitem.id.z",
-+  "llvm.arm.cdp",
-+  "llvm.arm.cdp2",
-+  "llvm.arm.clrex",
-+  "llvm.arm.crc32b",
-+  "llvm.arm.crc32cb",
-+  "llvm.arm.crc32ch",
-+  "llvm.arm.crc32cw",
-+  "llvm.arm.crc32h",
-+  "llvm.arm.crc32w",
-+  "llvm.arm.dbg",
-+  "llvm.arm.dmb",
-+  "llvm.arm.dsb",
-+  "llvm.arm.get.fpscr",
-+  "llvm.arm.hint",
-+  "llvm.arm.isb",
-+  "llvm.arm.ldaex",
-+  "llvm.arm.ldaexd",
-+  "llvm.arm.ldc",
-+  "llvm.arm.ldc2",
-+  "llvm.arm.ldc2l",
-+  "llvm.arm.ldcl",
-+  "llvm.arm.ldrex",
-+  "llvm.arm.ldrexd",
-+  "llvm.arm.mcr",
-+  "llvm.arm.mcr2",
-+  "llvm.arm.mcrr",
-+  "llvm.arm.mcrr2",
-+  "llvm.arm.mrc",
-+  "llvm.arm.mrc2",
-+  "llvm.arm.mrrc",
-+  "llvm.arm.mrrc2",
-+  "llvm.arm.neon.aesd",
-+  "llvm.arm.neon.aese",
-+  "llvm.arm.neon.aesimc",
-+  "llvm.arm.neon.aesmc",
-+  "llvm.arm.neon.sha1c",
-+  "llvm.arm.neon.sha1h",
-+  "llvm.arm.neon.sha1m",
-+  "llvm.arm.neon.sha1p",
-+  "llvm.arm.neon.sha1su0",
-+  "llvm.arm.neon.sha1su1",
-+  "llvm.arm.neon.sha256h",
-+  "llvm.arm.neon.sha256h2",
-+  "llvm.arm.neon.sha256su0",
-+  "llvm.arm.neon.sha256su1",
-+  "llvm.arm.neon.vabds",
-+  "llvm.arm.neon.vabdu",
-+  "llvm.arm.neon.vabs",
-+  "llvm.arm.neon.vacge",
-+  "llvm.arm.neon.vacgt",
-+  "llvm.arm.neon.vbsl",
-+  "llvm.arm.neon.vcls",
-+  "llvm.arm.neon.vcvtas",
-+  "llvm.arm.neon.vcvtau",
-+  "llvm.arm.neon.vcvtfp2fxs",
-+  "llvm.arm.neon.vcvtfp2fxu",
-+  "llvm.arm.neon.vcvtfp2hf",
-+  "llvm.arm.neon.vcvtfxs2fp",
-+  "llvm.arm.neon.vcvtfxu2fp",
-+  "llvm.arm.neon.vcvthf2fp",
-+  "llvm.arm.neon.vcvtms",
-+  "llvm.arm.neon.vcvtmu",
-+  "llvm.arm.neon.vcvtns",
-+  "llvm.arm.neon.vcvtnu",
-+  "llvm.arm.neon.vcvtps",
-+  "llvm.arm.neon.vcvtpu",
-+  "llvm.arm.neon.vhadds",
-+  "llvm.arm.neon.vhaddu",
-+  "llvm.arm.neon.vhsubs",
-+  "llvm.arm.neon.vhsubu",
-+  "llvm.arm.neon.vld1",
-+  "llvm.arm.neon.vld2",
-+  "llvm.arm.neon.vld2lane",
-+  "llvm.arm.neon.vld3",
-+  "llvm.arm.neon.vld3lane",
-+  "llvm.arm.neon.vld4",
-+  "llvm.arm.neon.vld4lane",
-+  "llvm.arm.neon.vmaxnm",
-+  "llvm.arm.neon.vmaxs",
-+  "llvm.arm.neon.vmaxu",
-+  "llvm.arm.neon.vminnm",
-+  "llvm.arm.neon.vmins",
-+  "llvm.arm.neon.vminu",
-+  "llvm.arm.neon.vmullp",
-+  "llvm.arm.neon.vmulls",
-+  "llvm.arm.neon.vmullu",
-+  "llvm.arm.neon.vmulp",
-+  "llvm.arm.neon.vpadals",
-+  "llvm.arm.neon.vpadalu",
-+  "llvm.arm.neon.vpadd",
-+  "llvm.arm.neon.vpaddls",
-+  "llvm.arm.neon.vpaddlu",
-+  "llvm.arm.neon.vpmaxs",
-+  "llvm.arm.neon.vpmaxu",
-+  "llvm.arm.neon.vpmins",
-+  "llvm.arm.neon.vpminu",
-+  "llvm.arm.neon.vqabs",
-+  "llvm.arm.neon.vqadds",
-+  "llvm.arm.neon.vqaddu",
-+  "llvm.arm.neon.vqdmulh",
-+  "llvm.arm.neon.vqdmull",
-+  "llvm.arm.neon.vqmovns",
-+  "llvm.arm.neon.vqmovnsu",
-+  "llvm.arm.neon.vqmovnu",
-+  "llvm.arm.neon.vqneg",
-+  "llvm.arm.neon.vqrdmulh",
-+  "llvm.arm.neon.vqrshiftns",
-+  "llvm.arm.neon.vqrshiftnsu",
-+  "llvm.arm.neon.vqrshiftnu",
-+  "llvm.arm.neon.vqrshifts",
-+  "llvm.arm.neon.vqrshiftu",
-+  "llvm.arm.neon.vqshiftns",
-+  "llvm.arm.neon.vqshiftnsu",
-+  "llvm.arm.neon.vqshiftnu",
-+  "llvm.arm.neon.vqshifts",
-+  "llvm.arm.neon.vqshiftsu",
-+  "llvm.arm.neon.vqshiftu",
-+  "llvm.arm.neon.vqsubs",
-+  "llvm.arm.neon.vqsubu",
-+  "llvm.arm.neon.vraddhn",
-+  "llvm.arm.neon.vrecpe",
-+  "llvm.arm.neon.vrecps",
-+  "llvm.arm.neon.vrhadds",
-+  "llvm.arm.neon.vrhaddu",
-+  "llvm.arm.neon.vrinta",
-+  "llvm.arm.neon.vrintm",
-+  "llvm.arm.neon.vrintn",
-+  "llvm.arm.neon.vrintp",
-+  "llvm.arm.neon.vrintx",
-+  "llvm.arm.neon.vrintz",
-+  "llvm.arm.neon.vrshiftn",
-+  "llvm.arm.neon.vrshifts",
-+  "llvm.arm.neon.vrshiftu",
-+  "llvm.arm.neon.vrsqrte",
-+  "llvm.arm.neon.vrsqrts",
-+  "llvm.arm.neon.vrsubhn",
-+  "llvm.arm.neon.vshiftins",
-+  "llvm.arm.neon.vshifts",
-+  "llvm.arm.neon.vshiftu",
-+  "llvm.arm.neon.vst1",
-+  "llvm.arm.neon.vst2",
-+  "llvm.arm.neon.vst2lane",
-+  "llvm.arm.neon.vst3",
-+  "llvm.arm.neon.vst3lane",
-+  "llvm.arm.neon.vst4",
-+  "llvm.arm.neon.vst4lane",
-+  "llvm.arm.neon.vtbl1",
-+  "llvm.arm.neon.vtbl2",
-+  "llvm.arm.neon.vtbl3",
-+  "llvm.arm.neon.vtbl4",
-+  "llvm.arm.neon.vtbx1",
-+  "llvm.arm.neon.vtbx2",
-+  "llvm.arm.neon.vtbx3",
-+  "llvm.arm.neon.vtbx4",
-+  "llvm.arm.qadd",
-+  "llvm.arm.qsub",
-+  "llvm.arm.rbit",
-+  "llvm.arm.set.fpscr",
-+  "llvm.arm.space",
-+  "llvm.arm.ssat",
-+  "llvm.arm.stc",
-+  "llvm.arm.stc2",
-+  "llvm.arm.stc2l",
-+  "llvm.arm.stcl",
-+  "llvm.arm.stlex",
-+  "llvm.arm.stlexd",
-+  "llvm.arm.strex",
-+  "llvm.arm.strexd",
-+  "llvm.arm.undefined",
-+  "llvm.arm.usat",
-+  "llvm.arm.vcvtr",
-+  "llvm.arm.vcvtru",
-+  "llvm.bpf.load.byte",
-+  "llvm.bpf.load.half",
-+  "llvm.bpf.load.word",
-+  "llvm.bpf.pseudo",
-+  "llvm.hexagon.A2.abs",
-+  "llvm.hexagon.A2.absp",
-+  "llvm.hexagon.A2.abssat",
-+  "llvm.hexagon.A2.add",
-+  "llvm.hexagon.A2.addh.h16.hh",
-+  "llvm.hexagon.A2.addh.h16.hl",
-+  "llvm.hexagon.A2.addh.h16.lh",
-+  "llvm.hexagon.A2.addh.h16.ll",
-+  "llvm.hexagon.A2.addh.h16.sat.hh",
-+  "llvm.hexagon.A2.addh.h16.sat.hl",
-+  "llvm.hexagon.A2.addh.h16.sat.lh",
-+  "llvm.hexagon.A2.addh.h16.sat.ll",
-+  "llvm.hexagon.A2.addh.l16.hl",
-+  "llvm.hexagon.A2.addh.l16.ll",
-+  "llvm.hexagon.A2.addh.l16.sat.hl",
-+  "llvm.hexagon.A2.addh.l16.sat.ll",
-+  "llvm.hexagon.A2.addi",
-+  "llvm.hexagon.A2.addp",
-+  "llvm.hexagon.A2.addpsat",
-+  "llvm.hexagon.A2.addsat",
-+  "llvm.hexagon.A2.addsp",
-+  "llvm.hexagon.A2.and",
-+  "llvm.hexagon.A2.andir",
-+  "llvm.hexagon.A2.andp",
-+  "llvm.hexagon.A2.aslh",
-+  "llvm.hexagon.A2.asrh",
-+  "llvm.hexagon.A2.combine.hh",
-+  "llvm.hexagon.A2.combine.hl",
-+  "llvm.hexagon.A2.combine.lh",
-+  "llvm.hexagon.A2.combine.ll",
-+  "llvm.hexagon.A2.combineii",
-+  "llvm.hexagon.A2.combinew",
-+  "llvm.hexagon.A2.max",
-+  "llvm.hexagon.A2.maxp",
-+  "llvm.hexagon.A2.maxu",
-+  "llvm.hexagon.A2.maxup",
-+  "llvm.hexagon.A2.min",
-+  "llvm.hexagon.A2.minp",
-+  "llvm.hexagon.A2.minu",
-+  "llvm.hexagon.A2.minup",
-+  "llvm.hexagon.A2.neg",
-+  "llvm.hexagon.A2.negp",
-+  "llvm.hexagon.A2.negsat",
-+  "llvm.hexagon.A2.not",
-+  "llvm.hexagon.A2.notp",
-+  "llvm.hexagon.A2.or",
-+  "llvm.hexagon.A2.orir",
-+  "llvm.hexagon.A2.orp",
-+  "llvm.hexagon.A2.roundsat",
-+  "llvm.hexagon.A2.sat",
-+  "llvm.hexagon.A2.satb",
-+  "llvm.hexagon.A2.sath",
-+  "llvm.hexagon.A2.satub",
-+  "llvm.hexagon.A2.satuh",
-+  "llvm.hexagon.A2.sub",
-+  "llvm.hexagon.A2.subh.h16.hh",
-+  "llvm.hexagon.A2.subh.h16.hl",
-+  "llvm.hexagon.A2.subh.h16.lh",
-+  "llvm.hexagon.A2.subh.h16.ll",
-+  "llvm.hexagon.A2.subh.h16.sat.hh",
-+  "llvm.hexagon.A2.subh.h16.sat.hl",
-+  "llvm.hexagon.A2.subh.h16.sat.lh",
-+  "llvm.hexagon.A2.subh.h16.sat.ll",
-+  "llvm.hexagon.A2.subh.l16.hl",
-+  "llvm.hexagon.A2.subh.l16.ll",
-+  "llvm.hexagon.A2.subh.l16.sat.hl",
-+  "llvm.hexagon.A2.subh.l16.sat.ll",
-+  "llvm.hexagon.A2.subp",
-+  "llvm.hexagon.A2.subri",
-+  "llvm.hexagon.A2.subsat",
-+  "llvm.hexagon.A2.svaddh",
-+  "llvm.hexagon.A2.svaddhs",
-+  "llvm.hexagon.A2.svadduhs",
-+  "llvm.hexagon.A2.svavgh",
-+  "llvm.hexagon.A2.svavghs",
-+  "llvm.hexagon.A2.svnavgh",
-+  "llvm.hexagon.A2.svsubh",
-+  "llvm.hexagon.A2.svsubhs",
-+  "llvm.hexagon.A2.svsubuhs",
-+  "llvm.hexagon.A2.swiz",
-+  "llvm.hexagon.A2.sxtb",
-+  "llvm.hexagon.A2.sxth",
-+  "llvm.hexagon.A2.sxtw",
-+  "llvm.hexagon.A2.tfr",
-+  "llvm.hexagon.A2.tfrih",
-+  "llvm.hexagon.A2.tfril",
-+  "llvm.hexagon.A2.tfrp",
-+  "llvm.hexagon.A2.tfrpi",
-+  "llvm.hexagon.A2.tfrsi",
-+  "llvm.hexagon.A2.vabsh",
-+  "llvm.hexagon.A2.vabshsat",
-+  "llvm.hexagon.A2.vabsw",
-+  "llvm.hexagon.A2.vabswsat",
-+  "llvm.hexagon.A2.vaddb.map",
-+  "llvm.hexagon.A2.vaddh",
-+  "llvm.hexagon.A2.vaddhs",
-+  "llvm.hexagon.A2.vaddub",
-+  "llvm.hexagon.A2.vaddubs",
-+  "llvm.hexagon.A2.vadduhs",
-+  "llvm.hexagon.A2.vaddw",
-+  "llvm.hexagon.A2.vaddws",
-+  "llvm.hexagon.A2.vavgh",
-+  "llvm.hexagon.A2.vavghcr",
-+  "llvm.hexagon.A2.vavghr",
-+  "llvm.hexagon.A2.vavgub",
-+  "llvm.hexagon.A2.vavgubr",
-+  "llvm.hexagon.A2.vavguh",
-+  "llvm.hexagon.A2.vavguhr",
-+  "llvm.hexagon.A2.vavguw",
-+  "llvm.hexagon.A2.vavguwr",
-+  "llvm.hexagon.A2.vavgw",
-+  "llvm.hexagon.A2.vavgwcr",
-+  "llvm.hexagon.A2.vavgwr",
-+  "llvm.hexagon.A2.vcmpbeq",
-+  "llvm.hexagon.A2.vcmpbgtu",
-+  "llvm.hexagon.A2.vcmpheq",
-+  "llvm.hexagon.A2.vcmphgt",
-+  "llvm.hexagon.A2.vcmphgtu",
-+  "llvm.hexagon.A2.vcmpweq",
-+  "llvm.hexagon.A2.vcmpwgt",
-+  "llvm.hexagon.A2.vcmpwgtu",
-+  "llvm.hexagon.A2.vconj",
-+  "llvm.hexagon.A2.vmaxb",
-+  "llvm.hexagon.A2.vmaxh",
-+  "llvm.hexagon.A2.vmaxub",
-+  "llvm.hexagon.A2.vmaxuh",
-+  "llvm.hexagon.A2.vmaxuw",
-+  "llvm.hexagon.A2.vmaxw",
-+  "llvm.hexagon.A2.vminb",
-+  "llvm.hexagon.A2.vminh",
-+  "llvm.hexagon.A2.vminub",
-+  "llvm.hexagon.A2.vminuh",
-+  "llvm.hexagon.A2.vminuw",
-+  "llvm.hexagon.A2.vminw",
-+  "llvm.hexagon.A2.vnavgh",
-+  "llvm.hexagon.A2.vnavghcr",
-+  "llvm.hexagon.A2.vnavghr",
-+  "llvm.hexagon.A2.vnavgw",
-+  "llvm.hexagon.A2.vnavgwcr",
-+  "llvm.hexagon.A2.vnavgwr",
-+  "llvm.hexagon.A2.vraddub",
-+  "llvm.hexagon.A2.vraddub.acc",
-+  "llvm.hexagon.A2.vrsadub",
-+  "llvm.hexagon.A2.vrsadub.acc",
-+  "llvm.hexagon.A2.vsubb.map",
-+  "llvm.hexagon.A2.vsubh",
-+  "llvm.hexagon.A2.vsubhs",
-+  "llvm.hexagon.A2.vsubub",
-+  "llvm.hexagon.A2.vsububs",
-+  "llvm.hexagon.A2.vsubuhs",
-+  "llvm.hexagon.A2.vsubw",
-+  "llvm.hexagon.A2.vsubws",
-+  "llvm.hexagon.A2.xor",
-+  "llvm.hexagon.A2.xorp",
-+  "llvm.hexagon.A2.zxtb",
-+  "llvm.hexagon.A2.zxth",
-+  "llvm.hexagon.A4.andn",
-+  "llvm.hexagon.A4.andnp",
-+  "llvm.hexagon.A4.bitsplit",
-+  "llvm.hexagon.A4.bitspliti",
-+  "llvm.hexagon.A4.boundscheck",
-+  "llvm.hexagon.A4.cmpbeq",
-+  "llvm.hexagon.A4.cmpbeqi",
-+  "llvm.hexagon.A4.cmpbgt",
-+  "llvm.hexagon.A4.cmpbgti",
-+  "llvm.hexagon.A4.cmpbgtu",
-+  "llvm.hexagon.A4.cmpbgtui",
-+  "llvm.hexagon.A4.cmpheq",
-+  "llvm.hexagon.A4.cmpheqi",
-+  "llvm.hexagon.A4.cmphgt",
-+  "llvm.hexagon.A4.cmphgti",
-+  "llvm.hexagon.A4.cmphgtu",
-+  "llvm.hexagon.A4.cmphgtui",
-+  "llvm.hexagon.A4.combineir",
-+  "llvm.hexagon.A4.combineri",
-+  "llvm.hexagon.A4.cround.ri",
-+  "llvm.hexagon.A4.cround.rr",
-+  "llvm.hexagon.A4.modwrapu",
-+  "llvm.hexagon.A4.orn",
-+  "llvm.hexagon.A4.ornp",
-+  "llvm.hexagon.A4.rcmpeq",
-+  "llvm.hexagon.A4.rcmpeqi",
-+  "llvm.hexagon.A4.rcmpneq",
-+  "llvm.hexagon.A4.rcmpneqi",
-+  "llvm.hexagon.A4.round.ri",
-+  "llvm.hexagon.A4.round.ri.sat",
-+  "llvm.hexagon.A4.round.rr",
-+  "llvm.hexagon.A4.round.rr.sat",
-+  "llvm.hexagon.A4.tlbmatch",
-+  "llvm.hexagon.A4.vcmpbeq.any",
-+  "llvm.hexagon.A4.vcmpbeqi",
-+  "llvm.hexagon.A4.vcmpbgt",
-+  "llvm.hexagon.A4.vcmpbgti",
-+  "llvm.hexagon.A4.vcmpbgtui",
-+  "llvm.hexagon.A4.vcmpheqi",
-+  "llvm.hexagon.A4.vcmphgti",
-+  "llvm.hexagon.A4.vcmphgtui",
-+  "llvm.hexagon.A4.vcmpweqi",
-+  "llvm.hexagon.A4.vcmpwgti",
-+  "llvm.hexagon.A4.vcmpwgtui",
-+  "llvm.hexagon.A4.vrmaxh",
-+  "llvm.hexagon.A4.vrmaxuh",
-+  "llvm.hexagon.A4.vrmaxuw",
-+  "llvm.hexagon.A4.vrmaxw",
-+  "llvm.hexagon.A4.vrminh",
-+  "llvm.hexagon.A4.vrminuh",
-+  "llvm.hexagon.A4.vrminuw",
-+  "llvm.hexagon.A4.vrminw",
-+  "llvm.hexagon.A5.vaddhubs",
-+  "llvm.hexagon.C2.all8",
-+  "llvm.hexagon.C2.and",
-+  "llvm.hexagon.C2.andn",
-+  "llvm.hexagon.C2.any8",
-+  "llvm.hexagon.C2.bitsclr",
-+  "llvm.hexagon.C2.bitsclri",
-+  "llvm.hexagon.C2.bitsset",
-+  "llvm.hexagon.C2.cmpeq",
-+  "llvm.hexagon.C2.cmpeqi",
-+  "llvm.hexagon.C2.cmpeqp",
-+  "llvm.hexagon.C2.cmpgei",
-+  "llvm.hexagon.C2.cmpgeui",
-+  "llvm.hexagon.C2.cmpgt",
-+  "llvm.hexagon.C2.cmpgti",
-+  "llvm.hexagon.C2.cmpgtp",
-+  "llvm.hexagon.C2.cmpgtu",
-+  "llvm.hexagon.C2.cmpgtui",
-+  "llvm.hexagon.C2.cmpgtup",
-+  "llvm.hexagon.C2.cmplt",
-+  "llvm.hexagon.C2.cmpltu",
-+  "llvm.hexagon.C2.mask",
-+  "llvm.hexagon.C2.mux",
-+  "llvm.hexagon.C2.muxii",
-+  "llvm.hexagon.C2.muxir",
-+  "llvm.hexagon.C2.muxri",
-+  "llvm.hexagon.C2.not",
-+  "llvm.hexagon.C2.or",
-+  "llvm.hexagon.C2.orn",
-+  "llvm.hexagon.C2.pxfer.map",
-+  "llvm.hexagon.C2.tfrpr",
-+  "llvm.hexagon.C2.tfrrp",
-+  "llvm.hexagon.C2.vitpack",
-+  "llvm.hexagon.C2.vmux",
-+  "llvm.hexagon.C2.xor",
-+  "llvm.hexagon.C4.and.and",
-+  "llvm.hexagon.C4.and.andn",
-+  "llvm.hexagon.C4.and.or",
-+  "llvm.hexagon.C4.and.orn",
-+  "llvm.hexagon.C4.cmplte",
-+  "llvm.hexagon.C4.cmpltei",
-+  "llvm.hexagon.C4.cmplteu",
-+  "llvm.hexagon.C4.cmplteui",
-+  "llvm.hexagon.C4.cmpneq",
-+  "llvm.hexagon.C4.cmpneqi",
-+  "llvm.hexagon.C4.fastcorner9",
-+  "llvm.hexagon.C4.fastcorner9.not",
-+  "llvm.hexagon.C4.nbitsclr",
-+  "llvm.hexagon.C4.nbitsclri",
-+  "llvm.hexagon.C4.nbitsset",
-+  "llvm.hexagon.C4.or.and",
-+  "llvm.hexagon.C4.or.andn",
-+  "llvm.hexagon.C4.or.or",
-+  "llvm.hexagon.C4.or.orn",
-+  "llvm.hexagon.F2.conv.d2df",
-+  "llvm.hexagon.F2.conv.d2sf",
-+  "llvm.hexagon.F2.conv.df2d",
-+  "llvm.hexagon.F2.conv.df2d.chop",
-+  "llvm.hexagon.F2.conv.df2sf",
-+  "llvm.hexagon.F2.conv.df2ud",
-+  "llvm.hexagon.F2.conv.df2ud.chop",
-+  "llvm.hexagon.F2.conv.df2uw",
-+  "llvm.hexagon.F2.conv.df2uw.chop",
-+  "llvm.hexagon.F2.conv.df2w",
-+  "llvm.hexagon.F2.conv.df2w.chop",
-+  "llvm.hexagon.F2.conv.sf2d",
-+  "llvm.hexagon.F2.conv.sf2d.chop",
-+  "llvm.hexagon.F2.conv.sf2df",
-+  "llvm.hexagon.F2.conv.sf2ud",
-+  "llvm.hexagon.F2.conv.sf2ud.chop",
-+  "llvm.hexagon.F2.conv.sf2uw",
-+  "llvm.hexagon.F2.conv.sf2uw.chop",
-+  "llvm.hexagon.F2.conv.sf2w",
-+  "llvm.hexagon.F2.conv.sf2w.chop",
-+  "llvm.hexagon.F2.conv.ud2df",
-+  "llvm.hexagon.F2.conv.ud2sf",
-+  "llvm.hexagon.F2.conv.uw2df",
-+  "llvm.hexagon.F2.conv.uw2sf",
-+  "llvm.hexagon.F2.conv.w2df",
-+  "llvm.hexagon.F2.conv.w2sf",
-+  "llvm.hexagon.F2.dfclass",
-+  "llvm.hexagon.F2.dfcmpeq",
-+  "llvm.hexagon.F2.dfcmpge",
-+  "llvm.hexagon.F2.dfcmpgt",
-+  "llvm.hexagon.F2.dfcmpuo",
-+  "llvm.hexagon.F2.dfimm.n",
-+  "llvm.hexagon.F2.dfimm.p",
-+  "llvm.hexagon.F2.sfadd",
-+  "llvm.hexagon.F2.sfclass",
-+  "llvm.hexagon.F2.sfcmpeq",
-+  "llvm.hexagon.F2.sfcmpge",
-+  "llvm.hexagon.F2.sfcmpgt",
-+  "llvm.hexagon.F2.sfcmpuo",
-+  "llvm.hexagon.F2.sffixupd",
-+  "llvm.hexagon.F2.sffixupn",
-+  "llvm.hexagon.F2.sffixupr",
-+  "llvm.hexagon.F2.sffma",
-+  "llvm.hexagon.F2.sffma.lib",
-+  "llvm.hexagon.F2.sffma.sc",
-+  "llvm.hexagon.F2.sffms",
-+  "llvm.hexagon.F2.sffms.lib",
-+  "llvm.hexagon.F2.sfimm.n",
-+  "llvm.hexagon.F2.sfimm.p",
-+  "llvm.hexagon.F2.sfmax",
-+  "llvm.hexagon.F2.sfmin",
-+  "llvm.hexagon.F2.sfmpy",
-+  "llvm.hexagon.F2.sfsub",
-+  "llvm.hexagon.L2.loadw.locked",
-+  "llvm.hexagon.L4.loadd.locked",
-+  "llvm.hexagon.M2.acci",
-+  "llvm.hexagon.M2.accii",
-+  "llvm.hexagon.M2.cmaci.s0",
-+  "llvm.hexagon.M2.cmacr.s0",
-+  "llvm.hexagon.M2.cmacs.s0",
-+  "llvm.hexagon.M2.cmacs.s1",
-+  "llvm.hexagon.M2.cmacsc.s0",
-+  "llvm.hexagon.M2.cmacsc.s1",
-+  "llvm.hexagon.M2.cmpyi.s0",
-+  "llvm.hexagon.M2.cmpyr.s0",
-+  "llvm.hexagon.M2.cmpyrs.s0",
-+  "llvm.hexagon.M2.cmpyrs.s1",
-+  "llvm.hexagon.M2.cmpyrsc.s0",
-+  "llvm.hexagon.M2.cmpyrsc.s1",
-+  "llvm.hexagon.M2.cmpys.s0",
-+  "llvm.hexagon.M2.cmpys.s1",
-+  "llvm.hexagon.M2.cmpysc.s0",
-+  "llvm.hexagon.M2.cmpysc.s1",
-+  "llvm.hexagon.M2.cnacs.s0",
-+  "llvm.hexagon.M2.cnacs.s1",
-+  "llvm.hexagon.M2.cnacsc.s0",
-+  "llvm.hexagon.M2.cnacsc.s1",
-+  "llvm.hexagon.M2.dpmpyss.acc.s0",
-+  "llvm.hexagon.M2.dpmpyss.nac.s0",
-+  "llvm.hexagon.M2.dpmpyss.rnd.s0",
-+  "llvm.hexagon.M2.dpmpyss.s0",
-+  "llvm.hexagon.M2.dpmpyuu.acc.s0",
-+  "llvm.hexagon.M2.dpmpyuu.nac.s0",
-+  "llvm.hexagon.M2.dpmpyuu.s0",
-+  "llvm.hexagon.M2.hmmpyh.rs1",
-+  "llvm.hexagon.M2.hmmpyh.s1",
-+  "llvm.hexagon.M2.hmmpyl.rs1",
-+  "llvm.hexagon.M2.hmmpyl.s1",
-+  "llvm.hexagon.M2.maci",
-+  "llvm.hexagon.M2.macsin",
-+  "llvm.hexagon.M2.macsip",
-+  "llvm.hexagon.M2.mmachs.rs0",
-+  "llvm.hexagon.M2.mmachs.rs1",
-+  "llvm.hexagon.M2.mmachs.s0",
-+  "llvm.hexagon.M2.mmachs.s1",
-+  "llvm.hexagon.M2.mmacls.rs0",
-+  "llvm.hexagon.M2.mmacls.rs1",
-+  "llvm.hexagon.M2.mmacls.s0",
-+  "llvm.hexagon.M2.mmacls.s1",
-+  "llvm.hexagon.M2.mmacuhs.rs0",
-+  "llvm.hexagon.M2.mmacuhs.rs1",
-+  "llvm.hexagon.M2.mmacuhs.s0",
-+  "llvm.hexagon.M2.mmacuhs.s1",
-+  "llvm.hexagon.M2.mmaculs.rs0",
-+  "llvm.hexagon.M2.mmaculs.rs1",
-+  "llvm.hexagon.M2.mmaculs.s0",
-+  "llvm.hexagon.M2.mmaculs.s1",
-+  "llvm.hexagon.M2.mmpyh.rs0",
-+  "llvm.hexagon.M2.mmpyh.rs1",
-+  "llvm.hexagon.M2.mmpyh.s0",
-+  "llvm.hexagon.M2.mmpyh.s1",
-+  "llvm.hexagon.M2.mmpyl.rs0",
-+  "llvm.hexagon.M2.mmpyl.rs1",
-+  "llvm.hexagon.M2.mmpyl.s0",
-+  "llvm.hexagon.M2.mmpyl.s1",
-+  "llvm.hexagon.M2.mmpyuh.rs0",
-+  "llvm.hexagon.M2.mmpyuh.rs1",
-+  "llvm.hexagon.M2.mmpyuh.s0",
-+  "llvm.hexagon.M2.mmpyuh.s1",
-+  "llvm.hexagon.M2.mmpyul.rs0",
-+  "llvm.hexagon.M2.mmpyul.rs1",
-+  "llvm.hexagon.M2.mmpyul.s0",
-+  "llvm.hexagon.M2.mmpyul.s1",
-+  "llvm.hexagon.M2.mpy.acc.hh.s0",
-+  "llvm.hexagon.M2.mpy.acc.hh.s1",
-+  "llvm.hexagon.M2.mpy.acc.hl.s0",
-+  "llvm.hexagon.M2.mpy.acc.hl.s1",
-+  "llvm.hexagon.M2.mpy.acc.lh.s0",
-+  "llvm.hexagon.M2.mpy.acc.lh.s1",
-+  "llvm.hexagon.M2.mpy.acc.ll.s0",
-+  "llvm.hexagon.M2.mpy.acc.ll.s1",
-+  "llvm.hexagon.M2.mpy.acc.sat.hh.s0",
-+  "llvm.hexagon.M2.mpy.acc.sat.hh.s1",
-+  "llvm.hexagon.M2.mpy.acc.sat.hl.s0",
-+  "llvm.hexagon.M2.mpy.acc.sat.hl.s1",
-+  "llvm.hexagon.M2.mpy.acc.sat.lh.s0",
-+  "llvm.hexagon.M2.mpy.acc.sat.lh.s1",
-+  "llvm.hexagon.M2.mpy.acc.sat.ll.s0",
-+  "llvm.hexagon.M2.mpy.acc.sat.ll.s1",
-+  "llvm.hexagon.M2.mpy.hh.s0",
-+  "llvm.hexagon.M2.mpy.hh.s1",
-+  "llvm.hexagon.M2.mpy.hl.s0",
-+  "llvm.hexagon.M2.mpy.hl.s1",
-+  "llvm.hexagon.M2.mpy.lh.s0",
-+  "llvm.hexagon.M2.mpy.lh.s1",
-+  "llvm.hexagon.M2.mpy.ll.s0",
-+  "llvm.hexagon.M2.mpy.ll.s1",
-+  "llvm.hexagon.M2.mpy.nac.hh.s0",
-+  "llvm.hexagon.M2.mpy.nac.hh.s1",
-+  "llvm.hexagon.M2.mpy.nac.hl.s0",
-+  "llvm.hexagon.M2.mpy.nac.hl.s1",
-+  "llvm.hexagon.M2.mpy.nac.lh.s0",
-+  "llvm.hexagon.M2.mpy.nac.lh.s1",
-+  "llvm.hexagon.M2.mpy.nac.ll.s0",
-+  "llvm.hexagon.M2.mpy.nac.ll.s1",
-+  "llvm.hexagon.M2.mpy.nac.sat.hh.s0",
-+  "llvm.hexagon.M2.mpy.nac.sat.hh.s1",
-+  "llvm.hexagon.M2.mpy.nac.sat.hl.s0",
-+  "llvm.hexagon.M2.mpy.nac.sat.hl.s1",
-+  "llvm.hexagon.M2.mpy.nac.sat.lh.s0",
-+  "llvm.hexagon.M2.mpy.nac.sat.lh.s1",
-+  "llvm.hexagon.M2.mpy.nac.sat.ll.s0",
-+  "llvm.hexagon.M2.mpy.nac.sat.ll.s1",
-+  "llvm.hexagon.M2.mpy.rnd.hh.s0",
-+  "llvm.hexagon.M2.mpy.rnd.hh.s1",
-+  "llvm.hexagon.M2.mpy.rnd.hl.s0",
-+  "llvm.hexagon.M2.mpy.rnd.hl.s1",
-+  "llvm.hexagon.M2.mpy.rnd.lh.s0",
-+  "llvm.hexagon.M2.mpy.rnd.lh.s1",
-+  "llvm.hexagon.M2.mpy.rnd.ll.s0",
-+  "llvm.hexagon.M2.mpy.rnd.ll.s1",
-+  "llvm.hexagon.M2.mpy.sat.hh.s0",
-+  "llvm.hexagon.M2.mpy.sat.hh.s1",
-+  "llvm.hexagon.M2.mpy.sat.hl.s0",
-+  "llvm.hexagon.M2.mpy.sat.hl.s1",
-+  "llvm.hexagon.M2.mpy.sat.lh.s0",
-+  "llvm.hexagon.M2.mpy.sat.lh.s1",
-+  "llvm.hexagon.M2.mpy.sat.ll.s0",
-+  "llvm.hexagon.M2.mpy.sat.ll.s1",
-+  "llvm.hexagon.M2.mpy.sat.rnd.hh.s0",
-+  "llvm.hexagon.M2.mpy.sat.rnd.hh.s1",
-+  "llvm.hexagon.M2.mpy.sat.rnd.hl.s0",
-+  "llvm.hexagon.M2.mpy.sat.rnd.hl.s1",
-+  "llvm.hexagon.M2.mpy.sat.rnd.lh.s0",
-+  "llvm.hexagon.M2.mpy.sat.rnd.lh.s1",
-+  "llvm.hexagon.M2.mpy.sat.rnd.ll.s0",
-+  "llvm.hexagon.M2.mpy.sat.rnd.ll.s1",
-+  "llvm.hexagon.M2.mpy.up",
-+  "llvm.hexagon.M2.mpy.up.s1",
-+  "llvm.hexagon.M2.mpy.up.s1.sat",
-+  "llvm.hexagon.M2.mpyd.acc.hh.s0",
-+  "llvm.hexagon.M2.mpyd.acc.hh.s1",
-+  "llvm.hexagon.M2.mpyd.acc.hl.s0",
-+  "llvm.hexagon.M2.mpyd.acc.hl.s1",
-+  "llvm.hexagon.M2.mpyd.acc.lh.s0",
-+  "llvm.hexagon.M2.mpyd.acc.lh.s1",
-+  "llvm.hexagon.M2.mpyd.acc.ll.s0",
-+  "llvm.hexagon.M2.mpyd.acc.ll.s1",
-+  "llvm.hexagon.M2.mpyd.hh.s0",
-+  "llvm.hexagon.M2.mpyd.hh.s1",
-+  "llvm.hexagon.M2.mpyd.hl.s0",
-+  "llvm.hexagon.M2.mpyd.hl.s1",
-+  "llvm.hexagon.M2.mpyd.lh.s0",
-+  "llvm.hexagon.M2.mpyd.lh.s1",
-+  "llvm.hexagon.M2.mpyd.ll.s0",
-+  "llvm.hexagon.M2.mpyd.ll.s1",
-+  "llvm.hexagon.M2.mpyd.nac.hh.s0",
-+  "llvm.hexagon.M2.mpyd.nac.hh.s1",
-+  "llvm.hexagon.M2.mpyd.nac.hl.s0",
-+  "llvm.hexagon.M2.mpyd.nac.hl.s1",
-+  "llvm.hexagon.M2.mpyd.nac.lh.s0",
-+  "llvm.hexagon.M2.mpyd.nac.lh.s1",
-+  "llvm.hexagon.M2.mpyd.nac.ll.s0",
-+  "llvm.hexagon.M2.mpyd.nac.ll.s1",
-+  "llvm.hexagon.M2.mpyd.rnd.hh.s0",
-+  "llvm.hexagon.M2.mpyd.rnd.hh.s1",
-+  "llvm.hexagon.M2.mpyd.rnd.hl.s0",
-+  "llvm.hexagon.M2.mpyd.rnd.hl.s1",
-+  "llvm.hexagon.M2.mpyd.rnd.lh.s0",
-+  "llvm.hexagon.M2.mpyd.rnd.lh.s1",
-+  "llvm.hexagon.M2.mpyd.rnd.ll.s0",
-+  "llvm.hexagon.M2.mpyd.rnd.ll.s1",
-+  "llvm.hexagon.M2.mpyi",
-+  "llvm.hexagon.M2.mpysmi",
-+  "llvm.hexagon.M2.mpysu.up",
-+  "llvm.hexagon.M2.mpyu.acc.hh.s0",
-+  "llvm.hexagon.M2.mpyu.acc.hh.s1",
-+  "llvm.hexagon.M2.mpyu.acc.hl.s0",
-+  "llvm.hexagon.M2.mpyu.acc.hl.s1",
-+  "llvm.hexagon.M2.mpyu.acc.lh.s0",
-+  "llvm.hexagon.M2.mpyu.acc.lh.s1",
-+  "llvm.hexagon.M2.mpyu.acc.ll.s0",
-+  "llvm.hexagon.M2.mpyu.acc.ll.s1",
-+  "llvm.hexagon.M2.mpyu.hh.s0",
-+  "llvm.hexagon.M2.mpyu.hh.s1",
-+  "llvm.hexagon.M2.mpyu.hl.s0",
-+  "llvm.hexagon.M2.mpyu.hl.s1",
-+  "llvm.hexagon.M2.mpyu.lh.s0",
-+  "llvm.hexagon.M2.mpyu.lh.s1",
-+  "llvm.hexagon.M2.mpyu.ll.s0",
-+  "llvm.hexagon.M2.mpyu.ll.s1",
-+  "llvm.hexagon.M2.mpyu.nac.hh.s0",
-+  "llvm.hexagon.M2.mpyu.nac.hh.s1",
-+  "llvm.hexagon.M2.mpyu.nac.hl.s0",
-+  "llvm.hexagon.M2.mpyu.nac.hl.s1",
-+  "llvm.hexagon.M2.mpyu.nac.lh.s0",
-+  "llvm.hexagon.M2.mpyu.nac.lh.s1",
-+  "llvm.hexagon.M2.mpyu.nac.ll.s0",
-+  "llvm.hexagon.M2.mpyu.nac.ll.s1",
-+  "llvm.hexagon.M2.mpyu.up",
-+  "llvm.hexagon.M2.mpyud.acc.hh.s0",
-+  "llvm.hexagon.M2.mpyud.acc.hh.s1",
-+  "llvm.hexagon.M2.mpyud.acc.hl.s0",
-+  "llvm.hexagon.M2.mpyud.acc.hl.s1",
-+  "llvm.hexagon.M2.mpyud.acc.lh.s0",
-+  "llvm.hexagon.M2.mpyud.acc.lh.s1",
-+  "llvm.hexagon.M2.mpyud.acc.ll.s0",
-+  "llvm.hexagon.M2.mpyud.acc.ll.s1",
-+  "llvm.hexagon.M2.mpyud.hh.s0",
-+  "llvm.hexagon.M2.mpyud.hh.s1",
-+  "llvm.hexagon.M2.mpyud.hl.s0",
-+  "llvm.hexagon.M2.mpyud.hl.s1",
-+  "llvm.hexagon.M2.mpyud.lh.s0",
-+  "llvm.hexagon.M2.mpyud.lh.s1",
-+  "llvm.hexagon.M2.mpyud.ll.s0",
-+  "llvm.hexagon.M2.mpyud.ll.s1",
-+  "llvm.hexagon.M2.mpyud.nac.hh.s0",
-+  "llvm.hexagon.M2.mpyud.nac.hh.s1",
-+  "llvm.hexagon.M2.mpyud.nac.hl.s0",
-+  "llvm.hexagon.M2.mpyud.nac.hl.s1",
-+  "llvm.hexagon.M2.mpyud.nac.lh.s0",
-+  "llvm.hexagon.M2.mpyud.nac.lh.s1",
-+  "llvm.hexagon.M2.mpyud.nac.ll.s0",
-+  "llvm.hexagon.M2.mpyud.nac.ll.s1",
-+  "llvm.hexagon.M2.mpyui",
-+  "llvm.hexagon.M2.nacci",
-+  "llvm.hexagon.M2.naccii",
-+  "llvm.hexagon.M2.subacc",
-+  "llvm.hexagon.M2.vabsdiffh",
-+  "llvm.hexagon.M2.vabsdiffw",
-+  "llvm.hexagon.M2.vcmac.s0.sat.i",
-+  "llvm.hexagon.M2.vcmac.s0.sat.r",
-+  "llvm.hexagon.M2.vcmpy.s0.sat.i",
-+  "llvm.hexagon.M2.vcmpy.s0.sat.r",
-+  "llvm.hexagon.M2.vcmpy.s1.sat.i",
-+  "llvm.hexagon.M2.vcmpy.s1.sat.r",
-+  "llvm.hexagon.M2.vdmacs.s0",
-+  "llvm.hexagon.M2.vdmacs.s1",
-+  "llvm.hexagon.M2.vdmpyrs.s0",
-+  "llvm.hexagon.M2.vdmpyrs.s1",
-+  "llvm.hexagon.M2.vdmpys.s0",
-+  "llvm.hexagon.M2.vdmpys.s1",
-+  "llvm.hexagon.M2.vmac2",
-+  "llvm.hexagon.M2.vmac2es",
-+  "llvm.hexagon.M2.vmac2es.s0",
-+  "llvm.hexagon.M2.vmac2es.s1",
-+  "llvm.hexagon.M2.vmac2s.s0",
-+  "llvm.hexagon.M2.vmac2s.s1",
-+  "llvm.hexagon.M2.vmac2su.s0",
-+  "llvm.hexagon.M2.vmac2su.s1",
-+  "llvm.hexagon.M2.vmpy2es.s0",
-+  "llvm.hexagon.M2.vmpy2es.s1",
-+  "llvm.hexagon.M2.vmpy2s.s0",
-+  "llvm.hexagon.M2.vmpy2s.s0pack",
-+  "llvm.hexagon.M2.vmpy2s.s1",
-+  "llvm.hexagon.M2.vmpy2s.s1pack",
-+  "llvm.hexagon.M2.vmpy2su.s0",
-+  "llvm.hexagon.M2.vmpy2su.s1",
-+  "llvm.hexagon.M2.vraddh",
-+  "llvm.hexagon.M2.vradduh",
-+  "llvm.hexagon.M2.vrcmaci.s0",
-+  "llvm.hexagon.M2.vrcmaci.s0c",
-+  "llvm.hexagon.M2.vrcmacr.s0",
-+  "llvm.hexagon.M2.vrcmacr.s0c",
-+  "llvm.hexagon.M2.vrcmpyi.s0",
-+  "llvm.hexagon.M2.vrcmpyi.s0c",
-+  "llvm.hexagon.M2.vrcmpyr.s0",
-+  "llvm.hexagon.M2.vrcmpyr.s0c",
-+  "llvm.hexagon.M2.vrcmpys.acc.s1",
-+  "llvm.hexagon.M2.vrcmpys.s1",
-+  "llvm.hexagon.M2.vrcmpys.s1rp",
-+  "llvm.hexagon.M2.vrmac.s0",
-+  "llvm.hexagon.M2.vrmpy.s0",
-+  "llvm.hexagon.M2.xor.xacc",
-+  "llvm.hexagon.M4.and.and",
-+  "llvm.hexagon.M4.and.andn",
-+  "llvm.hexagon.M4.and.or",
-+  "llvm.hexagon.M4.and.xor",
-+  "llvm.hexagon.M4.cmpyi.wh",
-+  "llvm.hexagon.M4.cmpyi.whc",
-+  "llvm.hexagon.M4.cmpyr.wh",
-+  "llvm.hexagon.M4.cmpyr.whc",
-+  "llvm.hexagon.M4.mac.up.s1.sat",
-+  "llvm.hexagon.M4.mpyri.addi",
-+  "llvm.hexagon.M4.mpyri.addr",
-+  "llvm.hexagon.M4.mpyri.addr.u2",
-+  "llvm.hexagon.M4.mpyrr.addi",
-+  "llvm.hexagon.M4.mpyrr.addr",
-+  "llvm.hexagon.M4.nac.up.s1.sat",
-+  "llvm.hexagon.M4.or.and",
-+  "llvm.hexagon.M4.or.andn",
-+  "llvm.hexagon.M4.or.or",
-+  "llvm.hexagon.M4.or.xor",
-+  "llvm.hexagon.M4.pmpyw",
-+  "llvm.hexagon.M4.pmpyw.acc",
-+  "llvm.hexagon.M4.vpmpyh",
-+  "llvm.hexagon.M4.vpmpyh.acc",
-+  "llvm.hexagon.M4.vrmpyeh.acc.s0",
-+  "llvm.hexagon.M4.vrmpyeh.acc.s1",
-+  "llvm.hexagon.M4.vrmpyeh.s0",
-+  "llvm.hexagon.M4.vrmpyeh.s1",
-+  "llvm.hexagon.M4.vrmpyoh.acc.s0",
-+  "llvm.hexagon.M4.vrmpyoh.acc.s1",
-+  "llvm.hexagon.M4.vrmpyoh.s0",
-+  "llvm.hexagon.M4.vrmpyoh.s1",
-+  "llvm.hexagon.M4.xor.and",
-+  "llvm.hexagon.M4.xor.andn",
-+  "llvm.hexagon.M4.xor.or",
-+  "llvm.hexagon.M4.xor.xacc",
-+  "llvm.hexagon.M5.vdmacbsu",
-+  "llvm.hexagon.M5.vdmpybsu",
-+  "llvm.hexagon.M5.vmacbsu",
-+  "llvm.hexagon.M5.vmacbuu",
-+  "llvm.hexagon.M5.vmpybsu",
-+  "llvm.hexagon.M5.vmpybuu",
-+  "llvm.hexagon.M5.vrmacbsu",
-+  "llvm.hexagon.M5.vrmacbuu",
-+  "llvm.hexagon.M5.vrmpybsu",
-+  "llvm.hexagon.M5.vrmpybuu",
-+  "llvm.hexagon.M6.vabsdiffb",
-+  "llvm.hexagon.M6.vabsdiffub",
-+  "llvm.hexagon.S2.addasl.rrri",
-+  "llvm.hexagon.S2.asl.i.p",
-+  "llvm.hexagon.S2.asl.i.p.acc",
-+  "llvm.hexagon.S2.asl.i.p.and",
-+  "llvm.hexagon.S2.asl.i.p.nac",
-+  "llvm.hexagon.S2.asl.i.p.or",
-+  "llvm.hexagon.S2.asl.i.p.xacc",
-+  "llvm.hexagon.S2.asl.i.r",
-+  "llvm.hexagon.S2.asl.i.r.acc",
-+  "llvm.hexagon.S2.asl.i.r.and",
-+  "llvm.hexagon.S2.asl.i.r.nac",
-+  "llvm.hexagon.S2.asl.i.r.or",
-+  "llvm.hexagon.S2.asl.i.r.sat",
-+  "llvm.hexagon.S2.asl.i.r.xacc",
-+  "llvm.hexagon.S2.asl.i.vh",
-+  "llvm.hexagon.S2.asl.i.vw",
-+  "llvm.hexagon.S2.asl.r.p",
-+  "llvm.hexagon.S2.asl.r.p.acc",
-+  "llvm.hexagon.S2.asl.r.p.and",
-+  "llvm.hexagon.S2.asl.r.p.nac",
-+  "llvm.hexagon.S2.asl.r.p.or",
-+  "llvm.hexagon.S2.asl.r.p.xor",
-+  "llvm.hexagon.S2.asl.r.r",
-+  "llvm.hexagon.S2.asl.r.r.acc",
-+  "llvm.hexagon.S2.asl.r.r.and",
-+  "llvm.hexagon.S2.asl.r.r.nac",
-+  "llvm.hexagon.S2.asl.r.r.or",
-+  "llvm.hexagon.S2.asl.r.r.sat",
-+  "llvm.hexagon.S2.asl.r.vh",
-+  "llvm.hexagon.S2.asl.r.vw",
-+  "llvm.hexagon.S2.asr.i.p",
-+  "llvm.hexagon.S2.asr.i.p.acc",
-+  "llvm.hexagon.S2.asr.i.p.and",
-+  "llvm.hexagon.S2.asr.i.p.nac",
-+  "llvm.hexagon.S2.asr.i.p.or",
-+  "llvm.hexagon.S2.asr.i.p.rnd",
-+  "llvm.hexagon.S2.asr.i.p.rnd.goodsyntax",
-+  "llvm.hexagon.S2.asr.i.r",
-+  "llvm.hexagon.S2.asr.i.r.acc",
-+  "llvm.hexagon.S2.asr.i.r.and",
-+  "llvm.hexagon.S2.asr.i.r.nac",
-+  "llvm.hexagon.S2.asr.i.r.or",
-+  "llvm.hexagon.S2.asr.i.r.rnd",
-+  "llvm.hexagon.S2.asr.i.r.rnd.goodsyntax",
-+  "llvm.hexagon.S2.asr.i.svw.trun",
-+  "llvm.hexagon.S2.asr.i.vh",
-+  "llvm.hexagon.S2.asr.i.vw",
-+  "llvm.hexagon.S2.asr.r.p",
-+  "llvm.hexagon.S2.asr.r.p.acc",
-+  "llvm.hexagon.S2.asr.r.p.and",
-+  "llvm.hexagon.S2.asr.r.p.nac",
-+  "llvm.hexagon.S2.asr.r.p.or",
-+  "llvm.hexagon.S2.asr.r.p.xor",
-+  "llvm.hexagon.S2.asr.r.r",
-+  "llvm.hexagon.S2.asr.r.r.acc",
-+  "llvm.hexagon.S2.asr.r.r.and",
-+  "llvm.hexagon.S2.asr.r.r.nac",
-+  "llvm.hexagon.S2.asr.r.r.or",
-+  "llvm.hexagon.S2.asr.r.r.sat",
-+  "llvm.hexagon.S2.asr.r.svw.trun",
-+  "llvm.hexagon.S2.asr.r.vh",
-+  "llvm.hexagon.S2.asr.r.vw",
-+  "llvm.hexagon.S2.brev",
-+  "llvm.hexagon.S2.brevp",
-+  "llvm.hexagon.S2.cabacencbin",
-+  "llvm.hexagon.S2.cl0",
-+  "llvm.hexagon.S2.cl0p",
-+  "llvm.hexagon.S2.cl1",
-+  "llvm.hexagon.S2.cl1p",
-+  "llvm.hexagon.S2.clb",
-+  "llvm.hexagon.S2.clbnorm",
-+  "llvm.hexagon.S2.clbp",
-+  "llvm.hexagon.S2.clrbit.i",
-+  "llvm.hexagon.S2.clrbit.r",
-+  "llvm.hexagon.S2.ct0",
-+  "llvm.hexagon.S2.ct0p",
-+  "llvm.hexagon.S2.ct1",
-+  "llvm.hexagon.S2.ct1p",
-+  "llvm.hexagon.S2.deinterleave",
-+  "llvm.hexagon.S2.extractu",
-+  "llvm.hexagon.S2.extractu.rp",
-+  "llvm.hexagon.S2.extractup",
-+  "llvm.hexagon.S2.extractup.rp",
-+  "llvm.hexagon.S2.insert",
-+  "llvm.hexagon.S2.insert.rp",
-+  "llvm.hexagon.S2.insertp",
-+  "llvm.hexagon.S2.insertp.rp",
-+  "llvm.hexagon.S2.interleave",
-+  "llvm.hexagon.S2.lfsp",
-+  "llvm.hexagon.S2.lsl.r.p",
-+  "llvm.hexagon.S2.lsl.r.p.acc",
-+  "llvm.hexagon.S2.lsl.r.p.and",
-+  "llvm.hexagon.S2.lsl.r.p.nac",
-+  "llvm.hexagon.S2.lsl.r.p.or",
-+  "llvm.hexagon.S2.lsl.r.p.xor",
-+  "llvm.hexagon.S2.lsl.r.r",
-+  "llvm.hexagon.S2.lsl.r.r.acc",
-+  "llvm.hexagon.S2.lsl.r.r.and",
-+  "llvm.hexagon.S2.lsl.r.r.nac",
-+  "llvm.hexagon.S2.lsl.r.r.or",
-+  "llvm.hexagon.S2.lsl.r.vh",
-+  "llvm.hexagon.S2.lsl.r.vw",
-+  "llvm.hexagon.S2.lsr.i.p",
-+  "llvm.hexagon.S2.lsr.i.p.acc",
-+  "llvm.hexagon.S2.lsr.i.p.and",
-+  "llvm.hexagon.S2.lsr.i.p.nac",
-+  "llvm.hexagon.S2.lsr.i.p.or",
-+  "llvm.hexagon.S2.lsr.i.p.xacc",
-+  "llvm.hexagon.S2.lsr.i.r",
-+  "llvm.hexagon.S2.lsr.i.r.acc",
-+  "llvm.hexagon.S2.lsr.i.r.and",
-+  "llvm.hexagon.S2.lsr.i.r.nac",
-+  "llvm.hexagon.S2.lsr.i.r.or",
-+  "llvm.hexagon.S2.lsr.i.r.xacc",
-+  "llvm.hexagon.S2.lsr.i.vh",
-+  "llvm.hexagon.S2.lsr.i.vw",
-+  "llvm.hexagon.S2.lsr.r.p",
-+  "llvm.hexagon.S2.lsr.r.p.acc",
-+  "llvm.hexagon.S2.lsr.r.p.and",
-+  "llvm.hexagon.S2.lsr.r.p.nac",
-+  "llvm.hexagon.S2.lsr.r.p.or",
-+  "llvm.hexagon.S2.lsr.r.p.xor",
-+  "llvm.hexagon.S2.lsr.r.r",
-+  "llvm.hexagon.S2.lsr.r.r.acc",
-+  "llvm.hexagon.S2.lsr.r.r.and",
-+  "llvm.hexagon.S2.lsr.r.r.nac",
-+  "llvm.hexagon.S2.lsr.r.r.or",
-+  "llvm.hexagon.S2.lsr.r.vh",
-+  "llvm.hexagon.S2.lsr.r.vw",
-+  "llvm.hexagon.S2.packhl",
-+  "llvm.hexagon.S2.parityp",
-+  "llvm.hexagon.S2.setbit.i",
-+  "llvm.hexagon.S2.setbit.r",
-+  "llvm.hexagon.S2.shuffeb",
-+  "llvm.hexagon.S2.shuffeh",
-+  "llvm.hexagon.S2.shuffob",
-+  "llvm.hexagon.S2.shuffoh",
-+  "llvm.hexagon.S2.storew.locked",
-+  "llvm.hexagon.S2.svsathb",
-+  "llvm.hexagon.S2.svsathub",
-+  "llvm.hexagon.S2.tableidxb.goodsyntax",
-+  "llvm.hexagon.S2.tableidxd.goodsyntax",
-+  "llvm.hexagon.S2.tableidxh.goodsyntax",
-+  "llvm.hexagon.S2.tableidxw.goodsyntax",
-+  "llvm.hexagon.S2.togglebit.i",
-+  "llvm.hexagon.S2.togglebit.r",
-+  "llvm.hexagon.S2.tstbit.i",
-+  "llvm.hexagon.S2.tstbit.r",
-+  "llvm.hexagon.S2.valignib",
-+  "llvm.hexagon.S2.valignrb",
-+  "llvm.hexagon.S2.vcnegh",
-+  "llvm.hexagon.S2.vcrotate",
-+  "llvm.hexagon.S2.vrcnegh",
-+  "llvm.hexagon.S2.vrndpackwh",
-+  "llvm.hexagon.S2.vrndpackwhs",
-+  "llvm.hexagon.S2.vsathb",
-+  "llvm.hexagon.S2.vsathb.nopack",
-+  "llvm.hexagon.S2.vsathub",
-+  "llvm.hexagon.S2.vsathub.nopack",
-+  "llvm.hexagon.S2.vsatwh",
-+  "llvm.hexagon.S2.vsatwh.nopack",
-+  "llvm.hexagon.S2.vsatwuh",
-+  "llvm.hexagon.S2.vsatwuh.nopack",
-+  "llvm.hexagon.S2.vsplatrb",
-+  "llvm.hexagon.S2.vsplatrh",
-+  "llvm.hexagon.S2.vspliceib",
-+  "llvm.hexagon.S2.vsplicerb",
-+  "llvm.hexagon.S2.vsxtbh",
-+  "llvm.hexagon.S2.vsxthw",
-+  "llvm.hexagon.S2.vtrunehb",
-+  "llvm.hexagon.S2.vtrunewh",
-+  "llvm.hexagon.S2.vtrunohb",
-+  "llvm.hexagon.S2.vtrunowh",
-+  "llvm.hexagon.S2.vzxtbh",
-+  "llvm.hexagon.S2.vzxthw",
-+  "llvm.hexagon.S4.addaddi",
-+  "llvm.hexagon.S4.addi.asl.ri",
-+  "llvm.hexagon.S4.addi.lsr.ri",
-+  "llvm.hexagon.S4.andi.asl.ri",
-+  "llvm.hexagon.S4.andi.lsr.ri",
-+  "llvm.hexagon.S4.clbaddi",
-+  "llvm.hexagon.S4.clbpaddi",
-+  "llvm.hexagon.S4.clbpnorm",
-+  "llvm.hexagon.S4.extract",
-+  "llvm.hexagon.S4.extract.rp",
-+  "llvm.hexagon.S4.extractp",
-+  "llvm.hexagon.S4.extractp.rp",
-+  "llvm.hexagon.S4.lsli",
-+  "llvm.hexagon.S4.ntstbit.i",
-+  "llvm.hexagon.S4.ntstbit.r",
-+  "llvm.hexagon.S4.or.andi",
-+  "llvm.hexagon.S4.or.andix",
-+  "llvm.hexagon.S4.or.ori",
-+  "llvm.hexagon.S4.ori.asl.ri",
-+  "llvm.hexagon.S4.ori.lsr.ri",
-+  "llvm.hexagon.S4.parity",
-+  "llvm.hexagon.S4.stored.locked",
-+  "llvm.hexagon.S4.subaddi",
-+  "llvm.hexagon.S4.subi.asl.ri",
-+  "llvm.hexagon.S4.subi.lsr.ri",
-+  "llvm.hexagon.S4.vrcrotate",
-+  "llvm.hexagon.S4.vrcrotate.acc",
-+  "llvm.hexagon.S4.vxaddsubh",
-+  "llvm.hexagon.S4.vxaddsubhr",
-+  "llvm.hexagon.S4.vxaddsubw",
-+  "llvm.hexagon.S4.vxsubaddh",
-+  "llvm.hexagon.S4.vxsubaddhr",
-+  "llvm.hexagon.S4.vxsubaddw",
-+  "llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax",
-+  "llvm.hexagon.S5.asrhub.sat",
-+  "llvm.hexagon.S5.popcountp",
-+  "llvm.hexagon.S5.vasrhrnd.goodsyntax",
-+  "llvm.hexagon.S6.rol.i.p",
-+  "llvm.hexagon.S6.rol.i.p.acc",
-+  "llvm.hexagon.S6.rol.i.p.and",
-+  "llvm.hexagon.S6.rol.i.p.nac",
-+  "llvm.hexagon.S6.rol.i.p.or",
-+  "llvm.hexagon.S6.rol.i.p.xacc",
-+  "llvm.hexagon.S6.rol.i.r",
-+  "llvm.hexagon.S6.rol.i.r.acc",
-+  "llvm.hexagon.S6.rol.i.r.and",
-+  "llvm.hexagon.S6.rol.i.r.nac",
-+  "llvm.hexagon.S6.rol.i.r.or",
-+  "llvm.hexagon.S6.rol.i.r.xacc",
-+  "llvm.hexagon.S6.vsplatrbp",
-+  "llvm.hexagon.S6.vtrunehb.ppp",
-+  "llvm.hexagon.S6.vtrunohb.ppp",
-+  "llvm.hexagon.SI.to.SXTHI.asrh",
-+  "llvm.hexagon.V6.extractw",
-+  "llvm.hexagon.V6.extractw.128B",
-+  "llvm.hexagon.V6.hi",
-+  "llvm.hexagon.V6.hi.128B",
-+  "llvm.hexagon.V6.lo",
-+  "llvm.hexagon.V6.lo.128B",
-+  "llvm.hexagon.V6.lvsplatw",
-+  "llvm.hexagon.V6.lvsplatw.128B",
-+  "llvm.hexagon.V6.pred.and",
-+  "llvm.hexagon.V6.pred.and.128B",
-+  "llvm.hexagon.V6.pred.and.n",
-+  "llvm.hexagon.V6.pred.and.n.128B",
-+  "llvm.hexagon.V6.pred.not",
-+  "llvm.hexagon.V6.pred.not.128B",
-+  "llvm.hexagon.V6.pred.or",
-+  "llvm.hexagon.V6.pred.or.128B",
-+  "llvm.hexagon.V6.pred.or.n",
-+  "llvm.hexagon.V6.pred.or.n.128B",
-+  "llvm.hexagon.V6.pred.scalar2",
-+  "llvm.hexagon.V6.pred.scalar2.128B",
-+  "llvm.hexagon.V6.pred.xor",
-+  "llvm.hexagon.V6.pred.xor.128B",
-+  "llvm.hexagon.V6.vabsdiffh",
-+  "llvm.hexagon.V6.vabsdiffh.128B",
-+  "llvm.hexagon.V6.vabsdiffub",
-+  "llvm.hexagon.V6.vabsdiffub.128B",
-+  "llvm.hexagon.V6.vabsdiffuh",
-+  "llvm.hexagon.V6.vabsdiffuh.128B",
-+  "llvm.hexagon.V6.vabsdiffw",
-+  "llvm.hexagon.V6.vabsdiffw.128B",
-+  "llvm.hexagon.V6.vabsh",
-+  "llvm.hexagon.V6.vabsh.128B",
-+  "llvm.hexagon.V6.vabsh.sat",
-+  "llvm.hexagon.V6.vabsh.sat.128B",
-+  "llvm.hexagon.V6.vabsw",
-+  "llvm.hexagon.V6.vabsw.128B",
-+  "llvm.hexagon.V6.vabsw.sat",
-+  "llvm.hexagon.V6.vabsw.sat.128B",
-+  "llvm.hexagon.V6.vaddb",
-+  "llvm.hexagon.V6.vaddb.128B",
-+  "llvm.hexagon.V6.vaddb.dv",
-+  "llvm.hexagon.V6.vaddb.dv.128B",
-+  "llvm.hexagon.V6.vaddbnq",
-+  "llvm.hexagon.V6.vaddbnq.128B",
-+  "llvm.hexagon.V6.vaddbq",
-+  "llvm.hexagon.V6.vaddbq.128B",
-+  "llvm.hexagon.V6.vaddh",
-+  "llvm.hexagon.V6.vaddh.128B",
-+  "llvm.hexagon.V6.vaddh.dv",
-+  "llvm.hexagon.V6.vaddh.dv.128B",
-+  "llvm.hexagon.V6.vaddhnq",
-+  "llvm.hexagon.V6.vaddhnq.128B",
-+  "llvm.hexagon.V6.vaddhq",
-+  "llvm.hexagon.V6.vaddhq.128B",
-+  "llvm.hexagon.V6.vaddhsat",
-+  "llvm.hexagon.V6.vaddhsat.128B",
-+  "llvm.hexagon.V6.vaddhsat.dv",
-+  "llvm.hexagon.V6.vaddhsat.dv.128B",
-+  "llvm.hexagon.V6.vaddhw",
-+  "llvm.hexagon.V6.vaddhw.128B",
-+  "llvm.hexagon.V6.vaddubh",
-+  "llvm.hexagon.V6.vaddubh.128B",
-+  "llvm.hexagon.V6.vaddubsat",
-+  "llvm.hexagon.V6.vaddubsat.128B",
-+  "llvm.hexagon.V6.vaddubsat.dv",
-+  "llvm.hexagon.V6.vaddubsat.dv.128B",
-+  "llvm.hexagon.V6.vadduhsat",
-+  "llvm.hexagon.V6.vadduhsat.128B",
-+  "llvm.hexagon.V6.vadduhsat.dv",
-+  "llvm.hexagon.V6.vadduhsat.dv.128B",
-+  "llvm.hexagon.V6.vadduhw",
-+  "llvm.hexagon.V6.vadduhw.128B",
-+  "llvm.hexagon.V6.vaddw",
-+  "llvm.hexagon.V6.vaddw.128B",
-+  "llvm.hexagon.V6.vaddw.dv",
-+  "llvm.hexagon.V6.vaddw.dv.128B",
-+  "llvm.hexagon.V6.vaddwnq",
-+  "llvm.hexagon.V6.vaddwnq.128B",
-+  "llvm.hexagon.V6.vaddwq",
-+  "llvm.hexagon.V6.vaddwq.128B",
-+  "llvm.hexagon.V6.vaddwsat",
-+  "llvm.hexagon.V6.vaddwsat.128B",
-+  "llvm.hexagon.V6.vaddwsat.dv",
-+  "llvm.hexagon.V6.vaddwsat.dv.128B",
-+  "llvm.hexagon.V6.valignb",
-+  "llvm.hexagon.V6.valignb.128B",
-+  "llvm.hexagon.V6.valignbi",
-+  "llvm.hexagon.V6.valignbi.128B",
-+  "llvm.hexagon.V6.vand",
-+  "llvm.hexagon.V6.vand.128B",
-+  "llvm.hexagon.V6.vandqrt",
-+  "llvm.hexagon.V6.vandqrt.128B",
-+  "llvm.hexagon.V6.vandqrt.acc",
-+  "llvm.hexagon.V6.vandqrt.acc.128B",
-+  "llvm.hexagon.V6.vandvrt",
-+  "llvm.hexagon.V6.vandvrt.128B",
-+  "llvm.hexagon.V6.vandvrt.acc",
-+  "llvm.hexagon.V6.vandvrt.acc.128B",
-+  "llvm.hexagon.V6.vaslh",
-+  "llvm.hexagon.V6.vaslh.128B",
-+  "llvm.hexagon.V6.vaslhv",
-+  "llvm.hexagon.V6.vaslhv.128B",
-+  "llvm.hexagon.V6.vaslw",
-+  "llvm.hexagon.V6.vaslw.128B",
-+  "llvm.hexagon.V6.vaslw.acc",
-+  "llvm.hexagon.V6.vaslw.acc.128B",
-+  "llvm.hexagon.V6.vaslwv",
-+  "llvm.hexagon.V6.vaslwv.128B",
-+  "llvm.hexagon.V6.vasrh",
-+  "llvm.hexagon.V6.vasrh.128B",
-+  "llvm.hexagon.V6.vasrhbrndsat",
-+  "llvm.hexagon.V6.vasrhbrndsat.128B",
-+  "llvm.hexagon.V6.vasrhubrndsat",
-+  "llvm.hexagon.V6.vasrhubrndsat.128B",
-+  "llvm.hexagon.V6.vasrhubsat",
-+  "llvm.hexagon.V6.vasrhubsat.128B",
-+  "llvm.hexagon.V6.vasrhv",
-+  "llvm.hexagon.V6.vasrhv.128B",
-+  "llvm.hexagon.V6.vasrw",
-+  "llvm.hexagon.V6.vasrw.128B",
-+  "llvm.hexagon.V6.vasrw.acc",
-+  "llvm.hexagon.V6.vasrw.acc.128B",
-+  "llvm.hexagon.V6.vasrwh",
-+  "llvm.hexagon.V6.vasrwh.128B",
-+  "llvm.hexagon.V6.vasrwhrndsat",
-+  "llvm.hexagon.V6.vasrwhrndsat.128B",
-+  "llvm.hexagon.V6.vasrwhsat",
-+  "llvm.hexagon.V6.vasrwhsat.128B",
-+  "llvm.hexagon.V6.vasrwuhsat",
-+  "llvm.hexagon.V6.vasrwuhsat.128B",
-+  "llvm.hexagon.V6.vasrwv",
-+  "llvm.hexagon.V6.vasrwv.128B",
-+  "llvm.hexagon.V6.vassign",
-+  "llvm.hexagon.V6.vassign.128B",
-+  "llvm.hexagon.V6.vassignp",
-+  "llvm.hexagon.V6.vassignp.128B",
-+  "llvm.hexagon.V6.vavgh",
-+  "llvm.hexagon.V6.vavgh.128B",
-+  "llvm.hexagon.V6.vavghrnd",
-+  "llvm.hexagon.V6.vavghrnd.128B",
-+  "llvm.hexagon.V6.vavgub",
-+  "llvm.hexagon.V6.vavgub.128B",
-+  "llvm.hexagon.V6.vavgubrnd",
-+  "llvm.hexagon.V6.vavgubrnd.128B",
-+  "llvm.hexagon.V6.vavguh",
-+  "llvm.hexagon.V6.vavguh.128B",
-+  "llvm.hexagon.V6.vavguhrnd",
-+  "llvm.hexagon.V6.vavguhrnd.128B",
-+  "llvm.hexagon.V6.vavgw",
-+  "llvm.hexagon.V6.vavgw.128B",
-+  "llvm.hexagon.V6.vavgwrnd",
-+  "llvm.hexagon.V6.vavgwrnd.128B",
-+  "llvm.hexagon.V6.vcl0h",
-+  "llvm.hexagon.V6.vcl0h.128B",
-+  "llvm.hexagon.V6.vcl0w",
-+  "llvm.hexagon.V6.vcl0w.128B",
-+  "llvm.hexagon.V6.vcombine",
-+  "llvm.hexagon.V6.vcombine.128B",
-+  "llvm.hexagon.V6.vd0",
-+  "llvm.hexagon.V6.vd0.128B",
-+  "llvm.hexagon.V6.vdealb",
-+  "llvm.hexagon.V6.vdealb.128B",
-+  "llvm.hexagon.V6.vdealb4w",
-+  "llvm.hexagon.V6.vdealb4w.128B",
-+  "llvm.hexagon.V6.vdealh",
-+  "llvm.hexagon.V6.vdealh.128B",
-+  "llvm.hexagon.V6.vdealvdd",
-+  "llvm.hexagon.V6.vdealvdd.128B",
-+  "llvm.hexagon.V6.vdelta",
-+  "llvm.hexagon.V6.vdelta.128B",
-+  "llvm.hexagon.V6.vdmpybus",
-+  "llvm.hexagon.V6.vdmpybus.128B",
-+  "llvm.hexagon.V6.vdmpybus.acc",
-+  "llvm.hexagon.V6.vdmpybus.acc.128B",
-+  "llvm.hexagon.V6.vdmpybus.dv",
-+  "llvm.hexagon.V6.vdmpybus.dv.128B",
-+  "llvm.hexagon.V6.vdmpybus.dv.acc",
-+  "llvm.hexagon.V6.vdmpybus.dv.acc.128B",
-+  "llvm.hexagon.V6.vdmpyhb",
-+  "llvm.hexagon.V6.vdmpyhb.128B",
-+  "llvm.hexagon.V6.vdmpyhb.acc",
-+  "llvm.hexagon.V6.vdmpyhb.acc.128B",
-+  "llvm.hexagon.V6.vdmpyhb.dv",
-+  "llvm.hexagon.V6.vdmpyhb.dv.128B",
-+  "llvm.hexagon.V6.vdmpyhb.dv.acc",
-+  "llvm.hexagon.V6.vdmpyhb.dv.acc.128B",
-+  "llvm.hexagon.V6.vdmpyhisat",
-+  "llvm.hexagon.V6.vdmpyhisat.128B",
-+  "llvm.hexagon.V6.vdmpyhisat.acc",
-+  "llvm.hexagon.V6.vdmpyhisat.acc.128B",
-+  "llvm.hexagon.V6.vdmpyhsat",
-+  "llvm.hexagon.V6.vdmpyhsat.128B",
-+  "llvm.hexagon.V6.vdmpyhsat.acc",
-+  "llvm.hexagon.V6.vdmpyhsat.acc.128B",
-+  "llvm.hexagon.V6.vdmpyhsuisat",
-+  "llvm.hexagon.V6.vdmpyhsuisat.128B",
-+  "llvm.hexagon.V6.vdmpyhsuisat.acc",
-+  "llvm.hexagon.V6.vdmpyhsuisat.acc.128B",
-+  "llvm.hexagon.V6.vdmpyhsusat",
-+  "llvm.hexagon.V6.vdmpyhsusat.128B",
-+  "llvm.hexagon.V6.vdmpyhsusat.acc",
-+  "llvm.hexagon.V6.vdmpyhsusat.acc.128B",
-+  "llvm.hexagon.V6.vdmpyhvsat",
-+  "llvm.hexagon.V6.vdmpyhvsat.128B",
-+  "llvm.hexagon.V6.vdmpyhvsat.acc",
-+  "llvm.hexagon.V6.vdmpyhvsat.acc.128B",
-+  "llvm.hexagon.V6.vdsaduh",
-+  "llvm.hexagon.V6.vdsaduh.128B",
-+  "llvm.hexagon.V6.vdsaduh.acc",
-+  "llvm.hexagon.V6.vdsaduh.acc.128B",
-+  "llvm.hexagon.V6.veqb",
-+  "llvm.hexagon.V6.veqb.128B",
-+  "llvm.hexagon.V6.veqb.and",
-+  "llvm.hexagon.V6.veqb.and.128B",
-+  "llvm.hexagon.V6.veqb.or",
-+  "llvm.hexagon.V6.veqb.or.128B",
-+  "llvm.hexagon.V6.veqb.xor",
-+  "llvm.hexagon.V6.veqb.xor.128B",
-+  "llvm.hexagon.V6.veqh",
-+  "llvm.hexagon.V6.veqh.128B",
-+  "llvm.hexagon.V6.veqh.and",
-+  "llvm.hexagon.V6.veqh.and.128B",
-+  "llvm.hexagon.V6.veqh.or",
-+  "llvm.hexagon.V6.veqh.or.128B",
-+  "llvm.hexagon.V6.veqh.xor",
-+  "llvm.hexagon.V6.veqh.xor.128B",
-+  "llvm.hexagon.V6.veqw",
-+  "llvm.hexagon.V6.veqw.128B",
-+  "llvm.hexagon.V6.veqw.and",
-+  "llvm.hexagon.V6.veqw.and.128B",
-+  "llvm.hexagon.V6.veqw.or",
-+  "llvm.hexagon.V6.veqw.or.128B",
-+  "llvm.hexagon.V6.veqw.xor",
-+  "llvm.hexagon.V6.veqw.xor.128B",
-+  "llvm.hexagon.V6.vgtb",
-+  "llvm.hexagon.V6.vgtb.128B",
-+  "llvm.hexagon.V6.vgtb.and",
-+  "llvm.hexagon.V6.vgtb.and.128B",
-+  "llvm.hexagon.V6.vgtb.or",
-+  "llvm.hexagon.V6.vgtb.or.128B",
-+  "llvm.hexagon.V6.vgtb.xor",
-+  "llvm.hexagon.V6.vgtb.xor.128B",
-+  "llvm.hexagon.V6.vgth",
-+  "llvm.hexagon.V6.vgth.128B",
-+  "llvm.hexagon.V6.vgth.and",
-+  "llvm.hexagon.V6.vgth.and.128B",
-+  "llvm.hexagon.V6.vgth.or",
-+  "llvm.hexagon.V6.vgth.or.128B",
-+  "llvm.hexagon.V6.vgth.xor",
-+  "llvm.hexagon.V6.vgth.xor.128B",
-+  "llvm.hexagon.V6.vgtub",
-+  "llvm.hexagon.V6.vgtub.128B",
-+  "llvm.hexagon.V6.vgtub.and",
-+  "llvm.hexagon.V6.vgtub.and.128B",
-+  "llvm.hexagon.V6.vgtub.or",
-+  "llvm.hexagon.V6.vgtub.or.128B",
-+  "llvm.hexagon.V6.vgtub.xor",
-+  "llvm.hexagon.V6.vgtub.xor.128B",
-+  "llvm.hexagon.V6.vgtuh",
-+  "llvm.hexagon.V6.vgtuh.128B",
-+  "llvm.hexagon.V6.vgtuh.and",
-+  "llvm.hexagon.V6.vgtuh.and.128B",
-+  "llvm.hexagon.V6.vgtuh.or",
-+  "llvm.hexagon.V6.vgtuh.or.128B",
-+  "llvm.hexagon.V6.vgtuh.xor",
-+  "llvm.hexagon.V6.vgtuh.xor.128B",
-+  "llvm.hexagon.V6.vgtuw",
-+  "llvm.hexagon.V6.vgtuw.128B",
-+  "llvm.hexagon.V6.vgtuw.and",
-+  "llvm.hexagon.V6.vgtuw.and.128B",
-+  "llvm.hexagon.V6.vgtuw.or",
-+  "llvm.hexagon.V6.vgtuw.or.128B",
-+  "llvm.hexagon.V6.vgtuw.xor",
-+  "llvm.hexagon.V6.vgtuw.xor.128B",
-+  "llvm.hexagon.V6.vgtw",
-+  "llvm.hexagon.V6.vgtw.128B",
-+  "llvm.hexagon.V6.vgtw.and",
-+  "llvm.hexagon.V6.vgtw.and.128B",
-+  "llvm.hexagon.V6.vgtw.or",
-+  "llvm.hexagon.V6.vgtw.or.128B",
-+  "llvm.hexagon.V6.vgtw.xor",
-+  "llvm.hexagon.V6.vgtw.xor.128B",
-+  "llvm.hexagon.V6.vinsertwr",
-+  "llvm.hexagon.V6.vinsertwr.128B",
-+  "llvm.hexagon.V6.vlalignb",
-+  "llvm.hexagon.V6.vlalignb.128B",
-+  "llvm.hexagon.V6.vlalignbi",
-+  "llvm.hexagon.V6.vlalignbi.128B",
-+  "llvm.hexagon.V6.vlsrh",
-+  "llvm.hexagon.V6.vlsrh.128B",
-+  "llvm.hexagon.V6.vlsrhv",
-+  "llvm.hexagon.V6.vlsrhv.128B",
-+  "llvm.hexagon.V6.vlsrw",
-+  "llvm.hexagon.V6.vlsrw.128B",
-+  "llvm.hexagon.V6.vlsrwv",
-+  "llvm.hexagon.V6.vlsrwv.128B",
-+  "llvm.hexagon.V6.vlutb",
-+  "llvm.hexagon.V6.vlutb.128B",
-+  "llvm.hexagon.V6.vlutb.acc",
-+  "llvm.hexagon.V6.vlutb.acc.128B",
-+  "llvm.hexagon.V6.vlutb.dv",
-+  "llvm.hexagon.V6.vlutb.dv.128B",
-+  "llvm.hexagon.V6.vlutb.dv.acc",
-+  "llvm.hexagon.V6.vlutb.dv.acc.128B",
-+  "llvm.hexagon.V6.vlutvvb",
-+  "llvm.hexagon.V6.vlutvvb.128B",
-+  "llvm.hexagon.V6.vlutvvb.oracc",
-+  "llvm.hexagon.V6.vlutvvb.oracc.128B",
-+  "llvm.hexagon.V6.vlutvwh",
-+  "llvm.hexagon.V6.vlutvwh.128B",
-+  "llvm.hexagon.V6.vlutvwh.oracc",
-+  "llvm.hexagon.V6.vlutvwh.oracc.128B",
-+  "llvm.hexagon.V6.vmaxh",
-+  "llvm.hexagon.V6.vmaxh.128B",
-+  "llvm.hexagon.V6.vmaxub",
-+  "llvm.hexagon.V6.vmaxub.128B",
-+  "llvm.hexagon.V6.vmaxuh",
-+  "llvm.hexagon.V6.vmaxuh.128B",
-+  "llvm.hexagon.V6.vmaxw",
-+  "llvm.hexagon.V6.vmaxw.128B",
-+  "llvm.hexagon.V6.vminh",
-+  "llvm.hexagon.V6.vminh.128B",
-+  "llvm.hexagon.V6.vminub",
-+  "llvm.hexagon.V6.vminub.128B",
-+  "llvm.hexagon.V6.vminuh",
-+  "llvm.hexagon.V6.vminuh.128B",
-+  "llvm.hexagon.V6.vminw",
-+  "llvm.hexagon.V6.vminw.128B",
-+  "llvm.hexagon.V6.vmpabus",
-+  "llvm.hexagon.V6.vmpabus.128B",
-+  "llvm.hexagon.V6.vmpabus.acc",
-+  "llvm.hexagon.V6.vmpabus.acc.128B",
-+  "llvm.hexagon.V6.vmpabusv",
-+  "llvm.hexagon.V6.vmpabusv.128B",
-+  "llvm.hexagon.V6.vmpabuuv",
-+  "llvm.hexagon.V6.vmpabuuv.128B",
-+  "llvm.hexagon.V6.vmpahb",
-+  "llvm.hexagon.V6.vmpahb.128B",
-+  "llvm.hexagon.V6.vmpahb.acc",
-+  "llvm.hexagon.V6.vmpahb.acc.128B",
-+  "llvm.hexagon.V6.vmpybus",
-+  "llvm.hexagon.V6.vmpybus.128B",
-+  "llvm.hexagon.V6.vmpybus.acc",
-+  "llvm.hexagon.V6.vmpybus.acc.128B",
-+  "llvm.hexagon.V6.vmpybusv",
-+  "llvm.hexagon.V6.vmpybusv.128B",
-+  "llvm.hexagon.V6.vmpybusv.acc",
-+  "llvm.hexagon.V6.vmpybusv.acc.128B",
-+  "llvm.hexagon.V6.vmpybv",
-+  "llvm.hexagon.V6.vmpybv.128B",
-+  "llvm.hexagon.V6.vmpybv.acc",
-+  "llvm.hexagon.V6.vmpybv.acc.128B",
-+  "llvm.hexagon.V6.vmpyewuh",
-+  "llvm.hexagon.V6.vmpyewuh.128B",
-+  "llvm.hexagon.V6.vmpyh",
-+  "llvm.hexagon.V6.vmpyh.128B",
-+  "llvm.hexagon.V6.vmpyhsat.acc",
-+  "llvm.hexagon.V6.vmpyhsat.acc.128B",
-+  "llvm.hexagon.V6.vmpyhsrs",
-+  "llvm.hexagon.V6.vmpyhsrs.128B",
-+  "llvm.hexagon.V6.vmpyhss",
-+  "llvm.hexagon.V6.vmpyhss.128B",
-+  "llvm.hexagon.V6.vmpyhus",
-+  "llvm.hexagon.V6.vmpyhus.128B",
-+  "llvm.hexagon.V6.vmpyhus.acc",
-+  "llvm.hexagon.V6.vmpyhus.acc.128B",
-+  "llvm.hexagon.V6.vmpyhv",
-+  "llvm.hexagon.V6.vmpyhv.128B",
-+  "llvm.hexagon.V6.vmpyhv.acc",
-+  "llvm.hexagon.V6.vmpyhv.acc.128B",
-+  "llvm.hexagon.V6.vmpyhvsrs",
-+  "llvm.hexagon.V6.vmpyhvsrs.128B",
-+  "llvm.hexagon.V6.vmpyieoh",
-+  "llvm.hexagon.V6.vmpyieoh.128B",
-+  "llvm.hexagon.V6.vmpyiewh.acc",
-+  "llvm.hexagon.V6.vmpyiewh.acc.128B",
-+  "llvm.hexagon.V6.vmpyiewuh",
-+  "llvm.hexagon.V6.vmpyiewuh.128B",
-+  "llvm.hexagon.V6.vmpyiewuh.acc",
-+  "llvm.hexagon.V6.vmpyiewuh.acc.128B",
-+  "llvm.hexagon.V6.vmpyih",
-+  "llvm.hexagon.V6.vmpyih.128B",
-+  "llvm.hexagon.V6.vmpyih.acc",
-+  "llvm.hexagon.V6.vmpyih.acc.128B",
-+  "llvm.hexagon.V6.vmpyihb",
-+  "llvm.hexagon.V6.vmpyihb.128B",
-+  "llvm.hexagon.V6.vmpyihb.acc",
-+  "llvm.hexagon.V6.vmpyihb.acc.128B",
-+  "llvm.hexagon.V6.vmpyiowh",
-+  "llvm.hexagon.V6.vmpyiowh.128B",
-+  "llvm.hexagon.V6.vmpyiwb",
-+  "llvm.hexagon.V6.vmpyiwb.128B",
-+  "llvm.hexagon.V6.vmpyiwb.acc",
-+  "llvm.hexagon.V6.vmpyiwb.acc.128B",
-+  "llvm.hexagon.V6.vmpyiwh",
-+  "llvm.hexagon.V6.vmpyiwh.128B",
-+  "llvm.hexagon.V6.vmpyiwh.acc",
-+  "llvm.hexagon.V6.vmpyiwh.acc.128B",
-+  "llvm.hexagon.V6.vmpyowh",
-+  "llvm.hexagon.V6.vmpyowh.128B",
-+  "llvm.hexagon.V6.vmpyowh.rnd",
-+  "llvm.hexagon.V6.vmpyowh.rnd.128B",
-+  "llvm.hexagon.V6.vmpyowh.rnd.sacc",
-+  "llvm.hexagon.V6.vmpyowh.rnd.sacc.128B",
-+  "llvm.hexagon.V6.vmpyowh.sacc",
-+  "llvm.hexagon.V6.vmpyowh.sacc.128B",
-+  "llvm.hexagon.V6.vmpyub",
-+  "llvm.hexagon.V6.vmpyub.128B",
-+  "llvm.hexagon.V6.vmpyub.acc",
-+  "llvm.hexagon.V6.vmpyub.acc.128B",
-+  "llvm.hexagon.V6.vmpyubv",
-+  "llvm.hexagon.V6.vmpyubv.128B",
-+  "llvm.hexagon.V6.vmpyubv.acc",
-+  "llvm.hexagon.V6.vmpyubv.acc.128B",
-+  "llvm.hexagon.V6.vmpyuh",
-+  "llvm.hexagon.V6.vmpyuh.128B",
-+  "llvm.hexagon.V6.vmpyuh.acc",
-+  "llvm.hexagon.V6.vmpyuh.acc.128B",
-+  "llvm.hexagon.V6.vmpyuhv",
-+  "llvm.hexagon.V6.vmpyuhv.128B",
-+  "llvm.hexagon.V6.vmpyuhv.acc",
-+  "llvm.hexagon.V6.vmpyuhv.acc.128B",
-+  "llvm.hexagon.V6.vmux",
-+  "llvm.hexagon.V6.vmux.128B",
-+  "llvm.hexagon.V6.vnavgh",
-+  "llvm.hexagon.V6.vnavgh.128B",
-+  "llvm.hexagon.V6.vnavgub",
-+  "llvm.hexagon.V6.vnavgub.128B",
-+  "llvm.hexagon.V6.vnavgw",
-+  "llvm.hexagon.V6.vnavgw.128B",
-+  "llvm.hexagon.V6.vnormamth",
-+  "llvm.hexagon.V6.vnormamth.128B",
-+  "llvm.hexagon.V6.vnormamtw",
-+  "llvm.hexagon.V6.vnormamtw.128B",
-+  "llvm.hexagon.V6.vnot",
-+  "llvm.hexagon.V6.vnot.128B",
-+  "llvm.hexagon.V6.vor",
-+  "llvm.hexagon.V6.vor.128B",
-+  "llvm.hexagon.V6.vpackeb",
-+  "llvm.hexagon.V6.vpackeb.128B",
-+  "llvm.hexagon.V6.vpackeh",
-+  "llvm.hexagon.V6.vpackeh.128B",
-+  "llvm.hexagon.V6.vpackhb.sat",
-+  "llvm.hexagon.V6.vpackhb.sat.128B",
-+  "llvm.hexagon.V6.vpackhub.sat",
-+  "llvm.hexagon.V6.vpackhub.sat.128B",
-+  "llvm.hexagon.V6.vpackob",
-+  "llvm.hexagon.V6.vpackob.128B",
-+  "llvm.hexagon.V6.vpackoh",
-+  "llvm.hexagon.V6.vpackoh.128B",
-+  "llvm.hexagon.V6.vpackwh.sat",
-+  "llvm.hexagon.V6.vpackwh.sat.128B",
-+  "llvm.hexagon.V6.vpackwuh.sat",
-+  "llvm.hexagon.V6.vpackwuh.sat.128B",
-+  "llvm.hexagon.V6.vpopcounth",
-+  "llvm.hexagon.V6.vpopcounth.128B",
-+  "llvm.hexagon.V6.vrdelta",
-+  "llvm.hexagon.V6.vrdelta.128B",
-+  "llvm.hexagon.V6.vrmpybus",
-+  "llvm.hexagon.V6.vrmpybus.128B",
-+  "llvm.hexagon.V6.vrmpybus.acc",
-+  "llvm.hexagon.V6.vrmpybus.acc.128B",
-+  "llvm.hexagon.V6.vrmpybusi",
-+  "llvm.hexagon.V6.vrmpybusi.128B",
-+  "llvm.hexagon.V6.vrmpybusi.acc",
-+  "llvm.hexagon.V6.vrmpybusi.acc.128B",
-+  "llvm.hexagon.V6.vrmpybusv",
-+  "llvm.hexagon.V6.vrmpybusv.128B",
-+  "llvm.hexagon.V6.vrmpybusv.acc",
-+  "llvm.hexagon.V6.vrmpybusv.acc.128B",
-+  "llvm.hexagon.V6.vrmpybv",
-+  "llvm.hexagon.V6.vrmpybv.128B",
-+  "llvm.hexagon.V6.vrmpybv.acc",
-+  "llvm.hexagon.V6.vrmpybv.acc.128B",
-+  "llvm.hexagon.V6.vrmpyub",
-+  "llvm.hexagon.V6.vrmpyub.128B",
-+  "llvm.hexagon.V6.vrmpyub.acc",
-+  "llvm.hexagon.V6.vrmpyub.acc.128B",
-+  "llvm.hexagon.V6.vrmpyubi",
-+  "llvm.hexagon.V6.vrmpyubi.128B",
-+  "llvm.hexagon.V6.vrmpyubi.acc",
-+  "llvm.hexagon.V6.vrmpyubi.acc.128B",
-+  "llvm.hexagon.V6.vrmpyubv",
-+  "llvm.hexagon.V6.vrmpyubv.128B",
-+  "llvm.hexagon.V6.vrmpyubv.acc",
-+  "llvm.hexagon.V6.vrmpyubv.acc.128B",
-+  "llvm.hexagon.V6.vror",
-+  "llvm.hexagon.V6.vror.128B",
-+  "llvm.hexagon.V6.vroundhb",
-+  "llvm.hexagon.V6.vroundhb.128B",
-+  "llvm.hexagon.V6.vroundhub",
-+  "llvm.hexagon.V6.vroundhub.128B",
-+  "llvm.hexagon.V6.vroundwh",
-+  "llvm.hexagon.V6.vroundwh.128B",
-+  "llvm.hexagon.V6.vroundwuh",
-+  "llvm.hexagon.V6.vroundwuh.128B",
-+  "llvm.hexagon.V6.vrsadubi",
-+  "llvm.hexagon.V6.vrsadubi.128B",
-+  "llvm.hexagon.V6.vrsadubi.acc",
-+  "llvm.hexagon.V6.vrsadubi.acc.128B",
-+  "llvm.hexagon.V6.vsathub",
-+  "llvm.hexagon.V6.vsathub.128B",
-+  "llvm.hexagon.V6.vsatwh",
-+  "llvm.hexagon.V6.vsatwh.128B",
-+  "llvm.hexagon.V6.vsb",
-+  "llvm.hexagon.V6.vsb.128B",
-+  "llvm.hexagon.V6.vsh",
-+  "llvm.hexagon.V6.vsh.128B",
-+  "llvm.hexagon.V6.vshufeh",
-+  "llvm.hexagon.V6.vshufeh.128B",
-+  "llvm.hexagon.V6.vshuffb",
-+  "llvm.hexagon.V6.vshuffb.128B",
-+  "llvm.hexagon.V6.vshuffeb",
-+  "llvm.hexagon.V6.vshuffeb.128B",
-+  "llvm.hexagon.V6.vshuffh",
-+  "llvm.hexagon.V6.vshuffh.128B",
-+  "llvm.hexagon.V6.vshuffob",
-+  "llvm.hexagon.V6.vshuffob.128B",
-+  "llvm.hexagon.V6.vshuffvdd",
-+  "llvm.hexagon.V6.vshuffvdd.128B",
-+  "llvm.hexagon.V6.vshufoeb",
-+  "llvm.hexagon.V6.vshufoeb.128B",
-+  "llvm.hexagon.V6.vshufoeh",
-+  "llvm.hexagon.V6.vshufoeh.128B",
-+  "llvm.hexagon.V6.vshufoh",
-+  "llvm.hexagon.V6.vshufoh.128B",
-+  "llvm.hexagon.V6.vsubb",
-+  "llvm.hexagon.V6.vsubb.128B",
-+  "llvm.hexagon.V6.vsubb.dv",
-+  "llvm.hexagon.V6.vsubb.dv.128B",
-+  "llvm.hexagon.V6.vsubbnq",
-+  "llvm.hexagon.V6.vsubbnq.128B",
-+  "llvm.hexagon.V6.vsubbq",
-+  "llvm.hexagon.V6.vsubbq.128B",
-+  "llvm.hexagon.V6.vsubh",
-+  "llvm.hexagon.V6.vsubh.128B",
-+  "llvm.hexagon.V6.vsubh.dv",
-+  "llvm.hexagon.V6.vsubh.dv.128B",
-+  "llvm.hexagon.V6.vsubhnq",
-+  "llvm.hexagon.V6.vsubhnq.128B",
-+  "llvm.hexagon.V6.vsubhq",
-+  "llvm.hexagon.V6.vsubhq.128B",
-+  "llvm.hexagon.V6.vsubhsat",
-+  "llvm.hexagon.V6.vsubhsat.128B",
-+  "llvm.hexagon.V6.vsubhsat.dv",
-+  "llvm.hexagon.V6.vsubhsat.dv.128B",
-+  "llvm.hexagon.V6.vsubhw",
-+  "llvm.hexagon.V6.vsubhw.128B",
-+  "llvm.hexagon.V6.vsububh",
-+  "llvm.hexagon.V6.vsububh.128B",
-+  "llvm.hexagon.V6.vsububsat",
-+  "llvm.hexagon.V6.vsububsat.128B",
-+  "llvm.hexagon.V6.vsububsat.dv",
-+  "llvm.hexagon.V6.vsububsat.dv.128B",
-+  "llvm.hexagon.V6.vsubuhsat",
-+  "llvm.hexagon.V6.vsubuhsat.128B",
-+  "llvm.hexagon.V6.vsubuhsat.dv",
-+  "llvm.hexagon.V6.vsubuhsat.dv.128B",
-+  "llvm.hexagon.V6.vsubuhw",
-+  "llvm.hexagon.V6.vsubuhw.128B",
-+  "llvm.hexagon.V6.vsubw",
-+  "llvm.hexagon.V6.vsubw.128B",
-+  "llvm.hexagon.V6.vsubw.dv",
-+  "llvm.hexagon.V6.vsubw.dv.128B",
-+  "llvm.hexagon.V6.vsubwnq",
-+  "llvm.hexagon.V6.vsubwnq.128B",
-+  "llvm.hexagon.V6.vsubwq",
-+  "llvm.hexagon.V6.vsubwq.128B",
-+  "llvm.hexagon.V6.vsubwsat",
-+  "llvm.hexagon.V6.vsubwsat.128B",
-+  "llvm.hexagon.V6.vsubwsat.dv",
-+  "llvm.hexagon.V6.vsubwsat.dv.128B",
-+  "llvm.hexagon.V6.vswap",
-+  "llvm.hexagon.V6.vswap.128B",
-+  "llvm.hexagon.V6.vtmpyb",
-+  "llvm.hexagon.V6.vtmpyb.128B",
-+  "llvm.hexagon.V6.vtmpyb.acc",
-+  "llvm.hexagon.V6.vtmpyb.acc.128B",
-+  "llvm.hexagon.V6.vtmpybus",
-+  "llvm.hexagon.V6.vtmpybus.128B",
-+  "llvm.hexagon.V6.vtmpybus.acc",
-+  "llvm.hexagon.V6.vtmpybus.acc.128B",
-+  "llvm.hexagon.V6.vtmpyhb",
-+  "llvm.hexagon.V6.vtmpyhb.128B",
-+  "llvm.hexagon.V6.vtmpyhb.acc",
-+  "llvm.hexagon.V6.vtmpyhb.acc.128B",
-+  "llvm.hexagon.V6.vunpackb",
-+  "llvm.hexagon.V6.vunpackb.128B",
-+  "llvm.hexagon.V6.vunpackh",
-+  "llvm.hexagon.V6.vunpackh.128B",
-+  "llvm.hexagon.V6.vunpackob",
-+  "llvm.hexagon.V6.vunpackob.128B",
-+  "llvm.hexagon.V6.vunpackoh",
-+  "llvm.hexagon.V6.vunpackoh.128B",
-+  "llvm.hexagon.V6.vunpackub",
-+  "llvm.hexagon.V6.vunpackub.128B",
-+  "llvm.hexagon.V6.vunpackuh",
-+  "llvm.hexagon.V6.vunpackuh.128B",
-+  "llvm.hexagon.V6.vxor",
-+  "llvm.hexagon.V6.vxor.128B",
-+  "llvm.hexagon.V6.vzb",
-+  "llvm.hexagon.V6.vzb.128B",
-+  "llvm.hexagon.V6.vzh",
-+  "llvm.hexagon.V6.vzh.128B",
-+  "llvm.hexagon.brev.ldb",
-+  "llvm.hexagon.brev.ldd",
-+  "llvm.hexagon.brev.ldh",
-+  "llvm.hexagon.brev.ldub",
-+  "llvm.hexagon.brev.lduh",
-+  "llvm.hexagon.brev.ldw",
-+  "llvm.hexagon.brev.stb",
-+  "llvm.hexagon.brev.std",
-+  "llvm.hexagon.brev.sth",
-+  "llvm.hexagon.brev.sthhi",
-+  "llvm.hexagon.brev.stw",
-+  "llvm.hexagon.circ.ldb",
-+  "llvm.hexagon.circ.ldd",
-+  "llvm.hexagon.circ.ldh",
-+  "llvm.hexagon.circ.ldub",
-+  "llvm.hexagon.circ.lduh",
-+  "llvm.hexagon.circ.ldw",
-+  "llvm.hexagon.circ.stb",
-+  "llvm.hexagon.circ.std",
-+  "llvm.hexagon.circ.sth",
-+  "llvm.hexagon.circ.sthhi",
-+  "llvm.hexagon.circ.stw",
-+  "llvm.hexagon.mm256i.vaddw",
-+  "llvm.hexagon.prefetch",
-+  "llvm.mips.absq.s.ph",
-+  "llvm.mips.absq.s.qb",
-+  "llvm.mips.absq.s.w",
-+  "llvm.mips.add.a.b",
-+  "llvm.mips.add.a.d",
-+  "llvm.mips.add.a.h",
-+  "llvm.mips.add.a.w",
-+  "llvm.mips.addq.ph",
-+  "llvm.mips.addq.s.ph",
-+  "llvm.mips.addq.s.w",
-+  "llvm.mips.addqh.ph",
-+  "llvm.mips.addqh.r.ph",
-+  "llvm.mips.addqh.r.w",
-+  "llvm.mips.addqh.w",
-+  "llvm.mips.adds.a.b",
-+  "llvm.mips.adds.a.d",
-+  "llvm.mips.adds.a.h",
-+  "llvm.mips.adds.a.w",
-+  "llvm.mips.adds.s.b",
-+  "llvm.mips.adds.s.d",
-+  "llvm.mips.adds.s.h",
-+  "llvm.mips.adds.s.w",
-+  "llvm.mips.adds.u.b",
-+  "llvm.mips.adds.u.d",
-+  "llvm.mips.adds.u.h",
-+  "llvm.mips.adds.u.w",
-+  "llvm.mips.addsc",
-+  "llvm.mips.addu.ph",
-+  "llvm.mips.addu.qb",
-+  "llvm.mips.addu.s.ph",
-+  "llvm.mips.addu.s.qb",
-+  "llvm.mips.adduh.qb",
-+  "llvm.mips.adduh.r.qb",
-+  "llvm.mips.addv.b",
-+  "llvm.mips.addv.d",
-+  "llvm.mips.addv.h",
-+  "llvm.mips.addv.w",
-+  "llvm.mips.addvi.b",
-+  "llvm.mips.addvi.d",
-+  "llvm.mips.addvi.h",
-+  "llvm.mips.addvi.w",
-+  "llvm.mips.addwc",
-+  "llvm.mips.and.v",
-+  "llvm.mips.andi.b",
-+  "llvm.mips.append",
-+  "llvm.mips.asub.s.b",
-+  "llvm.mips.asub.s.d",
-+  "llvm.mips.asub.s.h",
-+  "llvm.mips.asub.s.w",
-+  "llvm.mips.asub.u.b",
-+  "llvm.mips.asub.u.d",
-+  "llvm.mips.asub.u.h",
-+  "llvm.mips.asub.u.w",
-+  "llvm.mips.ave.s.b",
-+  "llvm.mips.ave.s.d",
-+  "llvm.mips.ave.s.h",
-+  "llvm.mips.ave.s.w",
-+  "llvm.mips.ave.u.b",
-+  "llvm.mips.ave.u.d",
-+  "llvm.mips.ave.u.h",
-+  "llvm.mips.ave.u.w",
-+  "llvm.mips.aver.s.b",
-+  "llvm.mips.aver.s.d",
-+  "llvm.mips.aver.s.h",
-+  "llvm.mips.aver.s.w",
-+  "llvm.mips.aver.u.b",
-+  "llvm.mips.aver.u.d",
-+  "llvm.mips.aver.u.h",
-+  "llvm.mips.aver.u.w",
-+  "llvm.mips.balign",
-+  "llvm.mips.bclr.b",
-+  "llvm.mips.bclr.d",
-+  "llvm.mips.bclr.h",
-+  "llvm.mips.bclr.w",
-+  "llvm.mips.bclri.b",
-+  "llvm.mips.bclri.d",
-+  "llvm.mips.bclri.h",
-+  "llvm.mips.bclri.w",
-+  "llvm.mips.binsl.b",
-+  "llvm.mips.binsl.d",
-+  "llvm.mips.binsl.h",
-+  "llvm.mips.binsl.w",
-+  "llvm.mips.binsli.b",
-+  "llvm.mips.binsli.d",
-+  "llvm.mips.binsli.h",
-+  "llvm.mips.binsli.w",
-+  "llvm.mips.binsr.b",
-+  "llvm.mips.binsr.d",
-+  "llvm.mips.binsr.h",
-+  "llvm.mips.binsr.w",
-+  "llvm.mips.binsri.b",
-+  "llvm.mips.binsri.d",
-+  "llvm.mips.binsri.h",
-+  "llvm.mips.binsri.w",
-+  "llvm.mips.bitrev",
-+  "llvm.mips.bmnz.v",
-+  "llvm.mips.bmnzi.b",
-+  "llvm.mips.bmz.v",
-+  "llvm.mips.bmzi.b",
-+  "llvm.mips.bneg.b",
-+  "llvm.mips.bneg.d",
-+  "llvm.mips.bneg.h",
-+  "llvm.mips.bneg.w",
-+  "llvm.mips.bnegi.b",
-+  "llvm.mips.bnegi.d",
-+  "llvm.mips.bnegi.h",
-+  "llvm.mips.bnegi.w",
-+  "llvm.mips.bnz.b",
-+  "llvm.mips.bnz.d",
-+  "llvm.mips.bnz.h",
-+  "llvm.mips.bnz.v",
-+  "llvm.mips.bnz.w",
-+  "llvm.mips.bposge32",
-+  "llvm.mips.bsel.v",
-+  "llvm.mips.bseli.b",
-+  "llvm.mips.bset.b",
-+  "llvm.mips.bset.d",
-+  "llvm.mips.bset.h",
-+  "llvm.mips.bset.w",
-+  "llvm.mips.bseti.b",
-+  "llvm.mips.bseti.d",
-+  "llvm.mips.bseti.h",
-+  "llvm.mips.bseti.w",
-+  "llvm.mips.bz.b",
-+  "llvm.mips.bz.d",
-+  "llvm.mips.bz.h",
-+  "llvm.mips.bz.v",
-+  "llvm.mips.bz.w",
-+  "llvm.mips.ceq.b",
-+  "llvm.mips.ceq.d",
-+  "llvm.mips.ceq.h",
-+  "llvm.mips.ceq.w",
-+  "llvm.mips.ceqi.b",
-+  "llvm.mips.ceqi.d",
-+  "llvm.mips.ceqi.h",
-+  "llvm.mips.ceqi.w",
-+  "llvm.mips.cfcmsa",
-+  "llvm.mips.cle.s.b",
-+  "llvm.mips.cle.s.d",
-+  "llvm.mips.cle.s.h",
-+  "llvm.mips.cle.s.w",
-+  "llvm.mips.cle.u.b",
-+  "llvm.mips.cle.u.d",
-+  "llvm.mips.cle.u.h",
-+  "llvm.mips.cle.u.w",
-+  "llvm.mips.clei.s.b",
-+  "llvm.mips.clei.s.d",
-+  "llvm.mips.clei.s.h",
-+  "llvm.mips.clei.s.w",
-+  "llvm.mips.clei.u.b",
-+  "llvm.mips.clei.u.d",
-+  "llvm.mips.clei.u.h",
-+  "llvm.mips.clei.u.w",
-+  "llvm.mips.clt.s.b",
-+  "llvm.mips.clt.s.d",
-+  "llvm.mips.clt.s.h",
-+  "llvm.mips.clt.s.w",
-+  "llvm.mips.clt.u.b",
-+  "llvm.mips.clt.u.d",
-+  "llvm.mips.clt.u.h",
-+  "llvm.mips.clt.u.w",
-+  "llvm.mips.clti.s.b",
-+  "llvm.mips.clti.s.d",
-+  "llvm.mips.clti.s.h",
-+  "llvm.mips.clti.s.w",
-+  "llvm.mips.clti.u.b",
-+  "llvm.mips.clti.u.d",
-+  "llvm.mips.clti.u.h",
-+  "llvm.mips.clti.u.w",
-+  "llvm.mips.cmp.eq.ph",
-+  "llvm.mips.cmp.le.ph",
-+  "llvm.mips.cmp.lt.ph",
-+  "llvm.mips.cmpgdu.eq.qb",
-+  "llvm.mips.cmpgdu.le.qb",
-+  "llvm.mips.cmpgdu.lt.qb",
-+  "llvm.mips.cmpgu.eq.qb",
-+  "llvm.mips.cmpgu.le.qb",
-+  "llvm.mips.cmpgu.lt.qb",
-+  "llvm.mips.cmpu.eq.qb",
-+  "llvm.mips.cmpu.le.qb",
-+  "llvm.mips.cmpu.lt.qb",
-+  "llvm.mips.copy.s.b",
-+  "llvm.mips.copy.s.d",
-+  "llvm.mips.copy.s.h",
-+  "llvm.mips.copy.s.w",
-+  "llvm.mips.copy.u.b",
-+  "llvm.mips.copy.u.d",
-+  "llvm.mips.copy.u.h",
-+  "llvm.mips.copy.u.w",
-+  "llvm.mips.ctcmsa",
-+  "llvm.mips.div.s.b",
-+  "llvm.mips.div.s.d",
-+  "llvm.mips.div.s.h",
-+  "llvm.mips.div.s.w",
-+  "llvm.mips.div.u.b",
-+  "llvm.mips.div.u.d",
-+  "llvm.mips.div.u.h",
-+  "llvm.mips.div.u.w",
-+  "llvm.mips.dlsa",
-+  "llvm.mips.dotp.s.d",
-+  "llvm.mips.dotp.s.h",
-+  "llvm.mips.dotp.s.w",
-+  "llvm.mips.dotp.u.d",
-+  "llvm.mips.dotp.u.h",
-+  "llvm.mips.dotp.u.w",
-+  "llvm.mips.dpa.w.ph",
-+  "llvm.mips.dpadd.s.d",
-+  "llvm.mips.dpadd.s.h",
-+  "llvm.mips.dpadd.s.w",
-+  "llvm.mips.dpadd.u.d",
-+  "llvm.mips.dpadd.u.h",
-+  "llvm.mips.dpadd.u.w",
-+  "llvm.mips.dpaq.s.w.ph",
-+  "llvm.mips.dpaq.sa.l.w",
-+  "llvm.mips.dpaqx.s.w.ph",
-+  "llvm.mips.dpaqx.sa.w.ph",
-+  "llvm.mips.dpau.h.qbl",
-+  "llvm.mips.dpau.h.qbr",
-+  "llvm.mips.dpax.w.ph",
-+  "llvm.mips.dps.w.ph",
-+  "llvm.mips.dpsq.s.w.ph",
-+  "llvm.mips.dpsq.sa.l.w",
-+  "llvm.mips.dpsqx.s.w.ph",
-+  "llvm.mips.dpsqx.sa.w.ph",
-+  "llvm.mips.dpsu.h.qbl",
-+  "llvm.mips.dpsu.h.qbr",
-+  "llvm.mips.dpsub.s.d",
-+  "llvm.mips.dpsub.s.h",
-+  "llvm.mips.dpsub.s.w",
-+  "llvm.mips.dpsub.u.d",
-+  "llvm.mips.dpsub.u.h",
-+  "llvm.mips.dpsub.u.w",
-+  "llvm.mips.dpsx.w.ph",
-+  "llvm.mips.extp",
-+  "llvm.mips.extpdp",
-+  "llvm.mips.extr.r.w",
-+  "llvm.mips.extr.rs.w",
-+  "llvm.mips.extr.s.h",
-+  "llvm.mips.extr.w",
-+  "llvm.mips.fadd.d",
-+  "llvm.mips.fadd.w",
-+  "llvm.mips.fcaf.d",
-+  "llvm.mips.fcaf.w",
-+  "llvm.mips.fceq.d",
-+  "llvm.mips.fceq.w",
-+  "llvm.mips.fclass.d",
-+  "llvm.mips.fclass.w",
-+  "llvm.mips.fcle.d",
-+  "llvm.mips.fcle.w",
-+  "llvm.mips.fclt.d",
-+  "llvm.mips.fclt.w",
-+  "llvm.mips.fcne.d",
-+  "llvm.mips.fcne.w",
-+  "llvm.mips.fcor.d",
-+  "llvm.mips.fcor.w",
-+  "llvm.mips.fcueq.d",
-+  "llvm.mips.fcueq.w",
-+  "llvm.mips.fcule.d",
-+  "llvm.mips.fcule.w",
-+  "llvm.mips.fcult.d",
-+  "llvm.mips.fcult.w",
-+  "llvm.mips.fcun.d",
-+  "llvm.mips.fcun.w",
-+  "llvm.mips.fcune.d",
-+  "llvm.mips.fcune.w",
-+  "llvm.mips.fdiv.d",
-+  "llvm.mips.fdiv.w",
-+  "llvm.mips.fexdo.h",
-+  "llvm.mips.fexdo.w",
-+  "llvm.mips.fexp2.d",
-+  "llvm.mips.fexp2.w",
-+  "llvm.mips.fexupl.d",
-+  "llvm.mips.fexupl.w",
-+  "llvm.mips.fexupr.d",
-+  "llvm.mips.fexupr.w",
-+  "llvm.mips.ffint.s.d",
-+  "llvm.mips.ffint.s.w",
-+  "llvm.mips.ffint.u.d",
-+  "llvm.mips.ffint.u.w",
-+  "llvm.mips.ffql.d",
-+  "llvm.mips.ffql.w",
-+  "llvm.mips.ffqr.d",
-+  "llvm.mips.ffqr.w",
-+  "llvm.mips.fill.b",
-+  "llvm.mips.fill.d",
-+  "llvm.mips.fill.h",
-+  "llvm.mips.fill.w",
-+  "llvm.mips.flog2.d",
-+  "llvm.mips.flog2.w",
-+  "llvm.mips.fmadd.d",
-+  "llvm.mips.fmadd.w",
-+  "llvm.mips.fmax.a.d",
-+  "llvm.mips.fmax.a.w",
-+  "llvm.mips.fmax.d",
-+  "llvm.mips.fmax.w",
-+  "llvm.mips.fmin.a.d",
-+  "llvm.mips.fmin.a.w",
-+  "llvm.mips.fmin.d",
-+  "llvm.mips.fmin.w",
-+  "llvm.mips.fmsub.d",
-+  "llvm.mips.fmsub.w",
-+  "llvm.mips.fmul.d",
-+  "llvm.mips.fmul.w",
-+  "llvm.mips.frcp.d",
-+  "llvm.mips.frcp.w",
-+  "llvm.mips.frint.d",
-+  "llvm.mips.frint.w",
-+  "llvm.mips.frsqrt.d",
-+  "llvm.mips.frsqrt.w",
-+  "llvm.mips.fsaf.d",
-+  "llvm.mips.fsaf.w",
-+  "llvm.mips.fseq.d",
-+  "llvm.mips.fseq.w",
-+  "llvm.mips.fsle.d",
-+  "llvm.mips.fsle.w",
-+  "llvm.mips.fslt.d",
-+  "llvm.mips.fslt.w",
-+  "llvm.mips.fsne.d",
-+  "llvm.mips.fsne.w",
-+  "llvm.mips.fsor.d",
-+  "llvm.mips.fsor.w",
-+  "llvm.mips.fsqrt.d",
-+  "llvm.mips.fsqrt.w",
-+  "llvm.mips.fsub.d",
-+  "llvm.mips.fsub.w",
-+  "llvm.mips.fsueq.d",
-+  "llvm.mips.fsueq.w",
-+  "llvm.mips.fsule.d",
-+  "llvm.mips.fsule.w",
-+  "llvm.mips.fsult.d",
-+  "llvm.mips.fsult.w",
-+  "llvm.mips.fsun.d",
-+  "llvm.mips.fsun.w",
-+  "llvm.mips.fsune.d",
-+  "llvm.mips.fsune.w",
-+  "llvm.mips.ftint.s.d",
-+  "llvm.mips.ftint.s.w",
-+  "llvm.mips.ftint.u.d",
-+  "llvm.mips.ftint.u.w",
-+  "llvm.mips.ftq.h",
-+  "llvm.mips.ftq.w",
-+  "llvm.mips.ftrunc.s.d",
-+  "llvm.mips.ftrunc.s.w",
-+  "llvm.mips.ftrunc.u.d",
-+  "llvm.mips.ftrunc.u.w",
-+  "llvm.mips.hadd.s.d",
-+  "llvm.mips.hadd.s.h",
-+  "llvm.mips.hadd.s.w",
-+  "llvm.mips.hadd.u.d",
-+  "llvm.mips.hadd.u.h",
-+  "llvm.mips.hadd.u.w",
-+  "llvm.mips.hsub.s.d",
-+  "llvm.mips.hsub.s.h",
-+  "llvm.mips.hsub.s.w",
-+  "llvm.mips.hsub.u.d",
-+  "llvm.mips.hsub.u.h",
-+  "llvm.mips.hsub.u.w",
-+  "llvm.mips.ilvev.b",
-+  "llvm.mips.ilvev.d",
-+  "llvm.mips.ilvev.h",
-+  "llvm.mips.ilvev.w",
-+  "llvm.mips.ilvl.b",
-+  "llvm.mips.ilvl.d",
-+  "llvm.mips.ilvl.h",
-+  "llvm.mips.ilvl.w",
-+  "llvm.mips.ilvod.b",
-+  "llvm.mips.ilvod.d",
-+  "llvm.mips.ilvod.h",
-+  "llvm.mips.ilvod.w",
-+  "llvm.mips.ilvr.b",
-+  "llvm.mips.ilvr.d",
-+  "llvm.mips.ilvr.h",
-+  "llvm.mips.ilvr.w",
-+  "llvm.mips.insert.b",
-+  "llvm.mips.insert.d",
-+  "llvm.mips.insert.h",
-+  "llvm.mips.insert.w",
-+  "llvm.mips.insv",
-+  "llvm.mips.insve.b",
-+  "llvm.mips.insve.d",
-+  "llvm.mips.insve.h",
-+  "llvm.mips.insve.w",
-+  "llvm.mips.lbux",
-+  "llvm.mips.ld.b",
-+  "llvm.mips.ld.d",
-+  "llvm.mips.ld.h",
-+  "llvm.mips.ld.w",
-+  "llvm.mips.ldi.b",
-+  "llvm.mips.ldi.d",
-+  "llvm.mips.ldi.h",
-+  "llvm.mips.ldi.w",
-+  "llvm.mips.lhx",
-+  "llvm.mips.lsa",
-+  "llvm.mips.lwx",
-+  "llvm.mips.madd",
-+  "llvm.mips.madd.q.h",
-+  "llvm.mips.madd.q.w",
-+  "llvm.mips.maddr.q.h",
-+  "llvm.mips.maddr.q.w",
-+  "llvm.mips.maddu",
-+  "llvm.mips.maddv.b",
-+  "llvm.mips.maddv.d",
-+  "llvm.mips.maddv.h",
-+  "llvm.mips.maddv.w",
-+  "llvm.mips.maq.s.w.phl",
-+  "llvm.mips.maq.s.w.phr",
-+  "llvm.mips.maq.sa.w.phl",
-+  "llvm.mips.maq.sa.w.phr",
-+  "llvm.mips.max.a.b",
-+  "llvm.mips.max.a.d",
-+  "llvm.mips.max.a.h",
-+  "llvm.mips.max.a.w",
-+  "llvm.mips.max.s.b",
-+  "llvm.mips.max.s.d",
-+  "llvm.mips.max.s.h",
-+  "llvm.mips.max.s.w",
-+  "llvm.mips.max.u.b",
-+  "llvm.mips.max.u.d",
-+  "llvm.mips.max.u.h",
-+  "llvm.mips.max.u.w",
-+  "llvm.mips.maxi.s.b",
-+  "llvm.mips.maxi.s.d",
-+  "llvm.mips.maxi.s.h",
-+  "llvm.mips.maxi.s.w",
-+  "llvm.mips.maxi.u.b",
-+  "llvm.mips.maxi.u.d",
-+  "llvm.mips.maxi.u.h",
-+  "llvm.mips.maxi.u.w",
-+  "llvm.mips.min.a.b",
-+  "llvm.mips.min.a.d",
-+  "llvm.mips.min.a.h",
-+  "llvm.mips.min.a.w",
-+  "llvm.mips.min.s.b",
-+  "llvm.mips.min.s.d",
-+  "llvm.mips.min.s.h",
-+  "llvm.mips.min.s.w",
-+  "llvm.mips.min.u.b",
-+  "llvm.mips.min.u.d",
-+  "llvm.mips.min.u.h",
-+  "llvm.mips.min.u.w",
-+  "llvm.mips.mini.s.b",
-+  "llvm.mips.mini.s.d",
-+  "llvm.mips.mini.s.h",
-+  "llvm.mips.mini.s.w",
-+  "llvm.mips.mini.u.b",
-+  "llvm.mips.mini.u.d",
-+  "llvm.mips.mini.u.h",
-+  "llvm.mips.mini.u.w",
-+  "llvm.mips.mod.s.b",
-+  "llvm.mips.mod.s.d",
-+  "llvm.mips.mod.s.h",
-+  "llvm.mips.mod.s.w",
-+  "llvm.mips.mod.u.b",
-+  "llvm.mips.mod.u.d",
-+  "llvm.mips.mod.u.h",
-+  "llvm.mips.mod.u.w",
-+  "llvm.mips.modsub",
-+  "llvm.mips.move.v",
-+  "llvm.mips.msub",
-+  "llvm.mips.msub.q.h",
-+  "llvm.mips.msub.q.w",
-+  "llvm.mips.msubr.q.h",
-+  "llvm.mips.msubr.q.w",
-+  "llvm.mips.msubu",
-+  "llvm.mips.msubv.b",
-+  "llvm.mips.msubv.d",
-+  "llvm.mips.msubv.h",
-+  "llvm.mips.msubv.w",
-+  "llvm.mips.mthlip",
-+  "llvm.mips.mul.ph",
-+  "llvm.mips.mul.q.h",
-+  "llvm.mips.mul.q.w",
-+  "llvm.mips.mul.s.ph",
-+  "llvm.mips.muleq.s.w.phl",
-+  "llvm.mips.muleq.s.w.phr",
-+  "llvm.mips.muleu.s.ph.qbl",
-+  "llvm.mips.muleu.s.ph.qbr",
-+  "llvm.mips.mulq.rs.ph",
-+  "llvm.mips.mulq.rs.w",
-+  "llvm.mips.mulq.s.ph",
-+  "llvm.mips.mulq.s.w",
-+  "llvm.mips.mulr.q.h",
-+  "llvm.mips.mulr.q.w",
-+  "llvm.mips.mulsa.w.ph",
-+  "llvm.mips.mulsaq.s.w.ph",
-+  "llvm.mips.mult",
-+  "llvm.mips.multu",
-+  "llvm.mips.mulv.b",
-+  "llvm.mips.mulv.d",
-+  "llvm.mips.mulv.h",
-+  "llvm.mips.mulv.w",
-+  "llvm.mips.nloc.b",
-+  "llvm.mips.nloc.d",
-+  "llvm.mips.nloc.h",
-+  "llvm.mips.nloc.w",
-+  "llvm.mips.nlzc.b",
-+  "llvm.mips.nlzc.d",
-+  "llvm.mips.nlzc.h",
-+  "llvm.mips.nlzc.w",
-+  "llvm.mips.nor.v",
-+  "llvm.mips.nori.b",
-+  "llvm.mips.or.v",
-+  "llvm.mips.ori.b",
-+  "llvm.mips.packrl.ph",
-+  "llvm.mips.pckev.b",
-+  "llvm.mips.pckev.d",
-+  "llvm.mips.pckev.h",
-+  "llvm.mips.pckev.w",
-+  "llvm.mips.pckod.b",
-+  "llvm.mips.pckod.d",
-+  "llvm.mips.pckod.h",
-+  "llvm.mips.pckod.w",
-+  "llvm.mips.pcnt.b",
-+  "llvm.mips.pcnt.d",
-+  "llvm.mips.pcnt.h",
-+  "llvm.mips.pcnt.w",
-+  "llvm.mips.pick.ph",
-+  "llvm.mips.pick.qb",
-+  "llvm.mips.preceq.w.phl",
-+  "llvm.mips.preceq.w.phr",
-+  "llvm.mips.precequ.ph.qbl",
-+  "llvm.mips.precequ.ph.qbla",
-+  "llvm.mips.precequ.ph.qbr",
-+  "llvm.mips.precequ.ph.qbra",
-+  "llvm.mips.preceu.ph.qbl",
-+  "llvm.mips.preceu.ph.qbla",
-+  "llvm.mips.preceu.ph.qbr",
-+  "llvm.mips.preceu.ph.qbra",
-+  "llvm.mips.precr.qb.ph",
-+  "llvm.mips.precr.sra.ph.w",
-+  "llvm.mips.precr.sra.r.ph.w",
-+  "llvm.mips.precrq.ph.w",
-+  "llvm.mips.precrq.qb.ph",
-+  "llvm.mips.precrq.rs.ph.w",
-+  "llvm.mips.precrqu.s.qb.ph",
-+  "llvm.mips.prepend",
-+  "llvm.mips.raddu.w.qb",
-+  "llvm.mips.rddsp",
-+  "llvm.mips.repl.ph",
-+  "llvm.mips.repl.qb",
-+  "llvm.mips.sat.s.b",
-+  "llvm.mips.sat.s.d",
-+  "llvm.mips.sat.s.h",
-+  "llvm.mips.sat.s.w",
-+  "llvm.mips.sat.u.b",
-+  "llvm.mips.sat.u.d",
-+  "llvm.mips.sat.u.h",
-+  "llvm.mips.sat.u.w",
-+  "llvm.mips.shf.b",
-+  "llvm.mips.shf.h",
-+  "llvm.mips.shf.w",
-+  "llvm.mips.shilo",
-+  "llvm.mips.shll.ph",
-+  "llvm.mips.shll.qb",
-+  "llvm.mips.shll.s.ph",
-+  "llvm.mips.shll.s.w",
-+  "llvm.mips.shra.ph",
-+  "llvm.mips.shra.qb",
-+  "llvm.mips.shra.r.ph",
-+  "llvm.mips.shra.r.qb",
-+  "llvm.mips.shra.r.w",
-+  "llvm.mips.shrl.ph",
-+  "llvm.mips.shrl.qb",
-+  "llvm.mips.sld.b",
-+  "llvm.mips.sld.d",
-+  "llvm.mips.sld.h",
-+  "llvm.mips.sld.w",
-+  "llvm.mips.sldi.b",
-+  "llvm.mips.sldi.d",
-+  "llvm.mips.sldi.h",
-+  "llvm.mips.sldi.w",
-+  "llvm.mips.sll.b",
-+  "llvm.mips.sll.d",
-+  "llvm.mips.sll.h",
-+  "llvm.mips.sll.w",
-+  "llvm.mips.slli.b",
-+  "llvm.mips.slli.d",
-+  "llvm.mips.slli.h",
-+  "llvm.mips.slli.w",
-+  "llvm.mips.splat.b",
-+  "llvm.mips.splat.d",
-+  "llvm.mips.splat.h",
-+  "llvm.mips.splat.w",
-+  "llvm.mips.splati.b",
-+  "llvm.mips.splati.d",
-+  "llvm.mips.splati.h",
-+  "llvm.mips.splati.w",
-+  "llvm.mips.sra.b",
-+  "llvm.mips.sra.d",
-+  "llvm.mips.sra.h",
-+  "llvm.mips.sra.w",
-+  "llvm.mips.srai.b",
-+  "llvm.mips.srai.d",
-+  "llvm.mips.srai.h",
-+  "llvm.mips.srai.w",
-+  "llvm.mips.srar.b",
-+  "llvm.mips.srar.d",
-+  "llvm.mips.srar.h",
-+  "llvm.mips.srar.w",
-+  "llvm.mips.srari.b",
-+  "llvm.mips.srari.d",
-+  "llvm.mips.srari.h",
-+  "llvm.mips.srari.w",
-+  "llvm.mips.srl.b",
-+  "llvm.mips.srl.d",
-+  "llvm.mips.srl.h",
-+  "llvm.mips.srl.w",
-+  "llvm.mips.srli.b",
-+  "llvm.mips.srli.d",
-+  "llvm.mips.srli.h",
-+  "llvm.mips.srli.w",
-+  "llvm.mips.srlr.b",
-+  "llvm.mips.srlr.d",
-+  "llvm.mips.srlr.h",
-+  "llvm.mips.srlr.w",
-+  "llvm.mips.srlri.b",
-+  "llvm.mips.srlri.d",
-+  "llvm.mips.srlri.h",
-+  "llvm.mips.srlri.w",
-+  "llvm.mips.st.b",
-+  "llvm.mips.st.d",
-+  "llvm.mips.st.h",
-+  "llvm.mips.st.w",
-+  "llvm.mips.subq.ph",
-+  "llvm.mips.subq.s.ph",
-+  "llvm.mips.subq.s.w",
-+  "llvm.mips.subqh.ph",
-+  "llvm.mips.subqh.r.ph",
-+  "llvm.mips.subqh.r.w",
-+  "llvm.mips.subqh.w",
-+  "llvm.mips.subs.s.b",
-+  "llvm.mips.subs.s.d",
-+  "llvm.mips.subs.s.h",
-+  "llvm.mips.subs.s.w",
-+  "llvm.mips.subs.u.b",
-+  "llvm.mips.subs.u.d",
-+  "llvm.mips.subs.u.h",
-+  "llvm.mips.subs.u.w",
-+  "llvm.mips.subsus.u.b",
-+  "llvm.mips.subsus.u.d",
-+  "llvm.mips.subsus.u.h",
-+  "llvm.mips.subsus.u.w",
-+  "llvm.mips.subsuu.s.b",
-+  "llvm.mips.subsuu.s.d",
-+  "llvm.mips.subsuu.s.h",
-+  "llvm.mips.subsuu.s.w",
-+  "llvm.mips.subu.ph",
-+  "llvm.mips.subu.qb",
-+  "llvm.mips.subu.s.ph",
-+  "llvm.mips.subu.s.qb",
-+  "llvm.mips.subuh.qb",
-+  "llvm.mips.subuh.r.qb",
-+  "llvm.mips.subv.b",
-+  "llvm.mips.subv.d",
-+  "llvm.mips.subv.h",
-+  "llvm.mips.subv.w",
-+  "llvm.mips.subvi.b",
-+  "llvm.mips.subvi.d",
-+  "llvm.mips.subvi.h",
-+  "llvm.mips.subvi.w",
-+  "llvm.mips.vshf.b",
-+  "llvm.mips.vshf.d",
-+  "llvm.mips.vshf.h",
-+  "llvm.mips.vshf.w",
-+  "llvm.mips.wrdsp",
-+  "llvm.mips.xor.v",
-+  "llvm.mips.xori.b",
-+  "llvm.nvvm.abs.i",
-+  "llvm.nvvm.abs.ll",
-+  "llvm.nvvm.add.rm.d",
-+  "llvm.nvvm.add.rm.f",
-+  "llvm.nvvm.add.rm.ftz.f",
-+  "llvm.nvvm.add.rn.d",
-+  "llvm.nvvm.add.rn.f",
-+  "llvm.nvvm.add.rn.ftz.f",
-+  "llvm.nvvm.add.rp.d",
-+  "llvm.nvvm.add.rp.f",
-+  "llvm.nvvm.add.rp.ftz.f",
-+  "llvm.nvvm.add.rz.d",
-+  "llvm.nvvm.add.rz.f",
-+  "llvm.nvvm.add.rz.ftz.f",
-+  "llvm.nvvm.atomic.add.gen.f.cta",
-+  "llvm.nvvm.atomic.add.gen.f.sys",
-+  "llvm.nvvm.atomic.add.gen.i.cta",
-+  "llvm.nvvm.atomic.add.gen.i.sys",
-+  "llvm.nvvm.atomic.and.gen.i.cta",
-+  "llvm.nvvm.atomic.and.gen.i.sys",
-+  "llvm.nvvm.atomic.cas.gen.i.cta",
-+  "llvm.nvvm.atomic.cas.gen.i.sys",
-+  "llvm.nvvm.atomic.dec.gen.i.cta",
-+  "llvm.nvvm.atomic.dec.gen.i.sys",
-+  "llvm.nvvm.atomic.exch.gen.i.cta",
-+  "llvm.nvvm.atomic.exch.gen.i.sys",
-+  "llvm.nvvm.atomic.inc.gen.i.cta",
-+  "llvm.nvvm.atomic.inc.gen.i.sys",
-+  "llvm.nvvm.atomic.load.add.f32",
-+  "llvm.nvvm.atomic.load.dec.32",
-+  "llvm.nvvm.atomic.load.inc.32",
-+  "llvm.nvvm.atomic.max.gen.i.cta",
-+  "llvm.nvvm.atomic.max.gen.i.sys",
-+  "llvm.nvvm.atomic.min.gen.i.cta",
-+  "llvm.nvvm.atomic.min.gen.i.sys",
-+  "llvm.nvvm.atomic.or.gen.i.cta",
-+  "llvm.nvvm.atomic.or.gen.i.sys",
-+  "llvm.nvvm.atomic.xor.gen.i.cta",
-+  "llvm.nvvm.atomic.xor.gen.i.sys",
-+  "llvm.nvvm.bar.sync",
-+  "llvm.nvvm.barrier0",
-+  "llvm.nvvm.barrier0.and",
-+  "llvm.nvvm.barrier0.or",
-+  "llvm.nvvm.barrier0.popc",
-+  "llvm.nvvm.bitcast.d2ll",
-+  "llvm.nvvm.bitcast.f2i",
-+  "llvm.nvvm.bitcast.i2f",
-+  "llvm.nvvm.bitcast.ll2d",
-+  "llvm.nvvm.brev32",
-+  "llvm.nvvm.brev64",
-+  "llvm.nvvm.ceil.d",
-+  "llvm.nvvm.ceil.f",
-+  "llvm.nvvm.ceil.ftz.f",
-+  "llvm.nvvm.clz.i",
-+  "llvm.nvvm.clz.ll",
-+  "llvm.nvvm.compiler.error",
-+  "llvm.nvvm.compiler.warn",
-+  "llvm.nvvm.cos.approx.f",
-+  "llvm.nvvm.cos.approx.ftz.f",
-+  "llvm.nvvm.d2f.rm",
-+  "llvm.nvvm.d2f.rm.ftz",
-+  "llvm.nvvm.d2f.rn",
-+  "llvm.nvvm.d2f.rn.ftz",
-+  "llvm.nvvm.d2f.rp",
-+  "llvm.nvvm.d2f.rp.ftz",
-+  "llvm.nvvm.d2f.rz",
-+  "llvm.nvvm.d2f.rz.ftz",
-+  "llvm.nvvm.d2i.hi",
-+  "llvm.nvvm.d2i.lo",
-+  "llvm.nvvm.d2i.rm",
-+  "llvm.nvvm.d2i.rn",
-+  "llvm.nvvm.d2i.rp",
-+  "llvm.nvvm.d2i.rz",
-+  "llvm.nvvm.d2ll.rm",
-+  "llvm.nvvm.d2ll.rn",
-+  "llvm.nvvm.d2ll.rp",
-+  "llvm.nvvm.d2ll.rz",
-+  "llvm.nvvm.d2ui.rm",
-+  "llvm.nvvm.d2ui.rn",
-+  "llvm.nvvm.d2ui.rp",
-+  "llvm.nvvm.d2ui.rz",
-+  "llvm.nvvm.d2ull.rm",
-+  "llvm.nvvm.d2ull.rn",
-+  "llvm.nvvm.d2ull.rp",
-+  "llvm.nvvm.d2ull.rz",
-+  "llvm.nvvm.div.approx.f",
-+  "llvm.nvvm.div.approx.ftz.f",
-+  "llvm.nvvm.div.rm.d",
-+  "llvm.nvvm.div.rm.f",
-+  "llvm.nvvm.div.rm.ftz.f",
-+  "llvm.nvvm.div.rn.d",
-+  "llvm.nvvm.div.rn.f",
-+  "llvm.nvvm.div.rn.ftz.f",
-+  "llvm.nvvm.div.rp.d",
-+  "llvm.nvvm.div.rp.f",
-+  "llvm.nvvm.div.rp.ftz.f",
-+  "llvm.nvvm.div.rz.d",
-+  "llvm.nvvm.div.rz.f",
-+  "llvm.nvvm.div.rz.ftz.f",
-+  "llvm.nvvm.ex2.approx.d",
-+  "llvm.nvvm.ex2.approx.f",
-+  "llvm.nvvm.ex2.approx.ftz.f",
-+  "llvm.nvvm.f2h.rn",
-+  "llvm.nvvm.f2h.rn.ftz",
-+  "llvm.nvvm.f2i.rm",
-+  "llvm.nvvm.f2i.rm.ftz",
-+  "llvm.nvvm.f2i.rn",
-+  "llvm.nvvm.f2i.rn.ftz",
-+  "llvm.nvvm.f2i.rp",
-+  "llvm.nvvm.f2i.rp.ftz",
-+  "llvm.nvvm.f2i.rz",
-+  "llvm.nvvm.f2i.rz.ftz",
-+  "llvm.nvvm.f2ll.rm",
-+  "llvm.nvvm.f2ll.rm.ftz",
-+  "llvm.nvvm.f2ll.rn",
-+  "llvm.nvvm.f2ll.rn.ftz",
-+  "llvm.nvvm.f2ll.rp",
-+  "llvm.nvvm.f2ll.rp.ftz",
-+  "llvm.nvvm.f2ll.rz",
-+  "llvm.nvvm.f2ll.rz.ftz",
-+  "llvm.nvvm.f2ui.rm",
-+  "llvm.nvvm.f2ui.rm.ftz",
-+  "llvm.nvvm.f2ui.rn",
-+  "llvm.nvvm.f2ui.rn.ftz",
-+  "llvm.nvvm.f2ui.rp",
-+  "llvm.nvvm.f2ui.rp.ftz",
-+  "llvm.nvvm.f2ui.rz",
-+  "llvm.nvvm.f2ui.rz.ftz",
-+  "llvm.nvvm.f2ull.rm",
-+  "llvm.nvvm.f2ull.rm.ftz",
-+  "llvm.nvvm.f2ull.rn",
-+  "llvm.nvvm.f2ull.rn.ftz",
-+  "llvm.nvvm.f2ull.rp",
-+  "llvm.nvvm.f2ull.rp.ftz",
-+  "llvm.nvvm.f2ull.rz",
-+  "llvm.nvvm.f2ull.rz.ftz",
-+  "llvm.nvvm.fabs.d",
-+  "llvm.nvvm.fabs.f",
-+  "llvm.nvvm.fabs.ftz.f",
-+  "llvm.nvvm.floor.d",
-+  "llvm.nvvm.floor.f",
-+  "llvm.nvvm.floor.ftz.f",
-+  "llvm.nvvm.fma.rm.d",
-+  "llvm.nvvm.fma.rm.f",
-+  "llvm.nvvm.fma.rm.ftz.f",
-+  "llvm.nvvm.fma.rn.d",
-+  "llvm.nvvm.fma.rn.f",
-+  "llvm.nvvm.fma.rn.ftz.f",
-+  "llvm.nvvm.fma.rp.d",
-+  "llvm.nvvm.fma.rp.f",
-+  "llvm.nvvm.fma.rp.ftz.f",
-+  "llvm.nvvm.fma.rz.d",
-+  "llvm.nvvm.fma.rz.f",
-+  "llvm.nvvm.fma.rz.ftz.f",
-+  "llvm.nvvm.fmax.d",
-+  "llvm.nvvm.fmax.f",
-+  "llvm.nvvm.fmax.ftz.f",
-+  "llvm.nvvm.fmin.d",
-+  "llvm.nvvm.fmin.f",
-+  "llvm.nvvm.fmin.ftz.f",
-+  "llvm.nvvm.h2f",
-+  "llvm.nvvm.i2d.rm",
-+  "llvm.nvvm.i2d.rn",
-+  "llvm.nvvm.i2d.rp",
-+  "llvm.nvvm.i2d.rz",
-+  "llvm.nvvm.i2f.rm",
-+  "llvm.nvvm.i2f.rn",
-+  "llvm.nvvm.i2f.rp",
-+  "llvm.nvvm.i2f.rz",
-+  "llvm.nvvm.isspacep.const",
-+  "llvm.nvvm.isspacep.global",
-+  "llvm.nvvm.isspacep.local",
-+  "llvm.nvvm.isspacep.shared",
-+  "llvm.nvvm.istypep.sampler",
-+  "llvm.nvvm.istypep.surface",
-+  "llvm.nvvm.istypep.texture",
-+  "llvm.nvvm.ldg.global.f",
-+  "llvm.nvvm.ldg.global.i",
-+  "llvm.nvvm.ldg.global.p",
-+  "llvm.nvvm.ldu.global.f",
-+  "llvm.nvvm.ldu.global.i",
-+  "llvm.nvvm.ldu.global.p",
-+  "llvm.nvvm.lg2.approx.d",
-+  "llvm.nvvm.lg2.approx.f",
-+  "llvm.nvvm.lg2.approx.ftz.f",
-+  "llvm.nvvm.ll2d.rm",
-+  "llvm.nvvm.ll2d.rn",
-+  "llvm.nvvm.ll2d.rp",
-+  "llvm.nvvm.ll2d.rz",
-+  "llvm.nvvm.ll2f.rm",
-+  "llvm.nvvm.ll2f.rn",
-+  "llvm.nvvm.ll2f.rp",
-+  "llvm.nvvm.ll2f.rz",
-+  "llvm.nvvm.lohi.i2d",
-+  "llvm.nvvm.max.i",
-+  "llvm.nvvm.max.ll",
-+  "llvm.nvvm.max.ui",
-+  "llvm.nvvm.max.ull",
-+  "llvm.nvvm.membar.cta",
-+  "llvm.nvvm.membar.gl",
-+  "llvm.nvvm.membar.sys",
-+  "llvm.nvvm.min.i",
-+  "llvm.nvvm.min.ll",
-+  "llvm.nvvm.min.ui",
-+  "llvm.nvvm.min.ull",
-+  "llvm.nvvm.move.double",
-+  "llvm.nvvm.move.float",
-+  "llvm.nvvm.move.i16",
-+  "llvm.nvvm.move.i32",
-+  "llvm.nvvm.move.i64",
-+  "llvm.nvvm.move.ptr",
-+  "llvm.nvvm.mul.rm.d",
-+  "llvm.nvvm.mul.rm.f",
-+  "llvm.nvvm.mul.rm.ftz.f",
-+  "llvm.nvvm.mul.rn.d",
-+  "llvm.nvvm.mul.rn.f",
-+  "llvm.nvvm.mul.rn.ftz.f",
-+  "llvm.nvvm.mul.rp.d",
-+  "llvm.nvvm.mul.rp.f",
-+  "llvm.nvvm.mul.rp.ftz.f",
-+  "llvm.nvvm.mul.rz.d",
-+  "llvm.nvvm.mul.rz.f",
-+  "llvm.nvvm.mul.rz.ftz.f",
-+  "llvm.nvvm.mul24.i",
-+  "llvm.nvvm.mul24.ui",
-+  "llvm.nvvm.mulhi.i",
-+  "llvm.nvvm.mulhi.ll",
-+  "llvm.nvvm.mulhi.ui",
-+  "llvm.nvvm.mulhi.ull",
-+  "llvm.nvvm.popc.i",
-+  "llvm.nvvm.popc.ll",
-+  "llvm.nvvm.prmt",
-+  "llvm.nvvm.ptr.constant.to.gen",
-+  "llvm.nvvm.ptr.gen.to.constant",
-+  "llvm.nvvm.ptr.gen.to.global",
-+  "llvm.nvvm.ptr.gen.to.local",
-+  "llvm.nvvm.ptr.gen.to.param",
-+  "llvm.nvvm.ptr.gen.to.shared",
-+  "llvm.nvvm.ptr.global.to.gen",
-+  "llvm.nvvm.ptr.local.to.gen",
-+  "llvm.nvvm.ptr.shared.to.gen",
-+  "llvm.nvvm.rcp.approx.ftz.d",
-+  "llvm.nvvm.rcp.rm.d",
-+  "llvm.nvvm.rcp.rm.f",
-+  "llvm.nvvm.rcp.rm.ftz.f",
-+  "llvm.nvvm.rcp.rn.d",
-+  "llvm.nvvm.rcp.rn.f",
-+  "llvm.nvvm.rcp.rn.ftz.f",
-+  "llvm.nvvm.rcp.rp.d",
-+  "llvm.nvvm.rcp.rp.f",
-+  "llvm.nvvm.rcp.rp.ftz.f",
-+  "llvm.nvvm.rcp.rz.d",
-+  "llvm.nvvm.rcp.rz.f",
-+  "llvm.nvvm.rcp.rz.ftz.f",
-+  "llvm.nvvm.read.ptx.sreg.clock",
-+  "llvm.nvvm.read.ptx.sreg.clock64",
-+  "llvm.nvvm.read.ptx.sreg.ctaid.w",
-+  "llvm.nvvm.read.ptx.sreg.ctaid.x",
-+  "llvm.nvvm.read.ptx.sreg.ctaid.y",
-+  "llvm.nvvm.read.ptx.sreg.ctaid.z",
-+  "llvm.nvvm.read.ptx.sreg.envreg0",
-+  "llvm.nvvm.read.ptx.sreg.envreg1",
-+  "llvm.nvvm.read.ptx.sreg.envreg10",
-+  "llvm.nvvm.read.ptx.sreg.envreg11",
-+  "llvm.nvvm.read.ptx.sreg.envreg12",
-+  "llvm.nvvm.read.ptx.sreg.envreg13",
-+  "llvm.nvvm.read.ptx.sreg.envreg14",
-+  "llvm.nvvm.read.ptx.sreg.envreg15",
-+  "llvm.nvvm.read.ptx.sreg.envreg16",
-+  "llvm.nvvm.read.ptx.sreg.envreg17",
-+  "llvm.nvvm.read.ptx.sreg.envreg18",
-+  "llvm.nvvm.read.ptx.sreg.envreg19",
-+  "llvm.nvvm.read.ptx.sreg.envreg2",
-+  "llvm.nvvm.read.ptx.sreg.envreg20",
-+  "llvm.nvvm.read.ptx.sreg.envreg21",
-+  "llvm.nvvm.read.ptx.sreg.envreg22",
-+  "llvm.nvvm.read.ptx.sreg.envreg23",
-+  "llvm.nvvm.read.ptx.sreg.envreg24",
-+  "llvm.nvvm.read.ptx.sreg.envreg25",
-+  "llvm.nvvm.read.ptx.sreg.envreg26",
-+  "llvm.nvvm.read.ptx.sreg.envreg27",
-+  "llvm.nvvm.read.ptx.sreg.envreg28",
-+  "llvm.nvvm.read.ptx.sreg.envreg29",
-+  "llvm.nvvm.read.ptx.sreg.envreg3",
-+  "llvm.nvvm.read.ptx.sreg.envreg30",
-+  "llvm.nvvm.read.ptx.sreg.envreg31",
-+  "llvm.nvvm.read.ptx.sreg.envreg4",
-+  "llvm.nvvm.read.ptx.sreg.envreg5",
-+  "llvm.nvvm.read.ptx.sreg.envreg6",
-+  "llvm.nvvm.read.ptx.sreg.envreg7",
-+  "llvm.nvvm.read.ptx.sreg.envreg8",
-+  "llvm.nvvm.read.ptx.sreg.envreg9",
-+  "llvm.nvvm.read.ptx.sreg.gridid",
-+  "llvm.nvvm.read.ptx.sreg.laneid",
-+  "llvm.nvvm.read.ptx.sreg.lanemask.eq",
-+  "llvm.nvvm.read.ptx.sreg.lanemask.ge",
-+  "llvm.nvvm.read.ptx.sreg.lanemask.gt",
-+  "llvm.nvvm.read.ptx.sreg.lanemask.le",
-+  "llvm.nvvm.read.ptx.sreg.lanemask.lt",
-+  "llvm.nvvm.read.ptx.sreg.nctaid.w",
-+  "llvm.nvvm.read.ptx.sreg.nctaid.x",
-+  "llvm.nvvm.read.ptx.sreg.nctaid.y",
-+  "llvm.nvvm.read.ptx.sreg.nctaid.z",
-+  "llvm.nvvm.read.ptx.sreg.nsmid",
-+  "llvm.nvvm.read.ptx.sreg.ntid.w",
-+  "llvm.nvvm.read.ptx.sreg.ntid.x",
-+  "llvm.nvvm.read.ptx.sreg.ntid.y",
-+  "llvm.nvvm.read.ptx.sreg.ntid.z",
-+  "llvm.nvvm.read.ptx.sreg.nwarpid",
-+  "llvm.nvvm.read.ptx.sreg.pm0",
-+  "llvm.nvvm.read.ptx.sreg.pm1",
-+  "llvm.nvvm.read.ptx.sreg.pm2",
-+  "llvm.nvvm.read.ptx.sreg.pm3",
-+  "llvm.nvvm.read.ptx.sreg.smid",
-+  "llvm.nvvm.read.ptx.sreg.tid.w",
-+  "llvm.nvvm.read.ptx.sreg.tid.x",
-+  "llvm.nvvm.read.ptx.sreg.tid.y",
-+  "llvm.nvvm.read.ptx.sreg.tid.z",
-+  "llvm.nvvm.read.ptx.sreg.warpid",
-+  "llvm.nvvm.read.ptx.sreg.warpsize",
-+  "llvm.nvvm.reflect",
-+  "llvm.nvvm.rotate.b32",
-+  "llvm.nvvm.rotate.b64",
-+  "llvm.nvvm.rotate.right.b64",
-+  "llvm.nvvm.round.d",
-+  "llvm.nvvm.round.f",
-+  "llvm.nvvm.round.ftz.f",
-+  "llvm.nvvm.rsqrt.approx.d",
-+  "llvm.nvvm.rsqrt.approx.f",
-+  "llvm.nvvm.rsqrt.approx.ftz.f",
-+  "llvm.nvvm.sad.i",
-+  "llvm.nvvm.sad.ui",
-+  "llvm.nvvm.saturate.d",
-+  "llvm.nvvm.saturate.f",
-+  "llvm.nvvm.saturate.ftz.f",
-+  "llvm.nvvm.shfl.bfly.f32",
-+  "llvm.nvvm.shfl.bfly.i32",
-+  "llvm.nvvm.shfl.down.f32",
-+  "llvm.nvvm.shfl.down.i32",
-+  "llvm.nvvm.shfl.idx.f32",
-+  "llvm.nvvm.shfl.idx.i32",
-+  "llvm.nvvm.shfl.up.f32",
-+  "llvm.nvvm.shfl.up.i32",
-+  "llvm.nvvm.sin.approx.f",
-+  "llvm.nvvm.sin.approx.ftz.f",
-+  "llvm.nvvm.sqrt.approx.f",
-+  "llvm.nvvm.sqrt.approx.ftz.f",
-+  "llvm.nvvm.sqrt.f",
-+  "llvm.nvvm.sqrt.rm.d",
-+  "llvm.nvvm.sqrt.rm.f",
-+  "llvm.nvvm.sqrt.rm.ftz.f",
-+  "llvm.nvvm.sqrt.rn.d",
-+  "llvm.nvvm.sqrt.rn.f",
-+  "llvm.nvvm.sqrt.rn.ftz.f",
-+  "llvm.nvvm.sqrt.rp.d",
-+  "llvm.nvvm.sqrt.rp.f",
-+  "llvm.nvvm.sqrt.rp.ftz.f",
-+  "llvm.nvvm.sqrt.rz.d",
-+  "llvm.nvvm.sqrt.rz.f",
-+  "llvm.nvvm.sqrt.rz.ftz.f",
-+  "llvm.nvvm.suld.1d.array.i16.clamp",
-+  "llvm.nvvm.suld.1d.array.i16.trap",
-+  "llvm.nvvm.suld.1d.array.i16.zero",
-+  "llvm.nvvm.suld.1d.array.i32.clamp",
-+  "llvm.nvvm.suld.1d.array.i32.trap",
-+  "llvm.nvvm.suld.1d.array.i32.zero",
-+  "llvm.nvvm.suld.1d.array.i64.clamp",
-+  "llvm.nvvm.suld.1d.array.i64.trap",
-+  "llvm.nvvm.suld.1d.array.i64.zero",
-+  "llvm.nvvm.suld.1d.array.i8.clamp",
-+  "llvm.nvvm.suld.1d.array.i8.trap",
-+  "llvm.nvvm.suld.1d.array.i8.zero",
-+  "llvm.nvvm.suld.1d.array.v2i16.clamp",
-+  "llvm.nvvm.suld.1d.array.v2i16.trap",
-+  "llvm.nvvm.suld.1d.array.v2i16.zero",
-+  "llvm.nvvm.suld.1d.array.v2i32.clamp",
-+  "llvm.nvvm.suld.1d.array.v2i32.trap",
-+  "llvm.nvvm.suld.1d.array.v2i32.zero",
-+  "llvm.nvvm.suld.1d.array.v2i64.clamp",
-+  "llvm.nvvm.suld.1d.array.v2i64.trap",
-+  "llvm.nvvm.suld.1d.array.v2i64.zero",
-+  "llvm.nvvm.suld.1d.array.v2i8.clamp",
-+  "llvm.nvvm.suld.1d.array.v2i8.trap",
-+  "llvm.nvvm.suld.1d.array.v2i8.zero",
-+  "llvm.nvvm.suld.1d.array.v4i16.clamp",
-+  "llvm.nvvm.suld.1d.array.v4i16.trap",
-+  "llvm.nvvm.suld.1d.array.v4i16.zero",
-+  "llvm.nvvm.suld.1d.array.v4i32.clamp",
-+  "llvm.nvvm.suld.1d.array.v4i32.trap",
-+  "llvm.nvvm.suld.1d.array.v4i32.zero",
-+  "llvm.nvvm.suld.1d.array.v4i8.clamp",
-+  "llvm.nvvm.suld.1d.array.v4i8.trap",
-+  "llvm.nvvm.suld.1d.array.v4i8.zero",
-+  "llvm.nvvm.suld.1d.i16.clamp",
-+  "llvm.nvvm.suld.1d.i16.trap",
-+  "llvm.nvvm.suld.1d.i16.zero",
-+  "llvm.nvvm.suld.1d.i32.clamp",
-+  "llvm.nvvm.suld.1d.i32.trap",
-+  "llvm.nvvm.suld.1d.i32.zero",
-+  "llvm.nvvm.suld.1d.i64.clamp",
-+  "llvm.nvvm.suld.1d.i64.trap",
-+  "llvm.nvvm.suld.1d.i64.zero",
-+  "llvm.nvvm.suld.1d.i8.clamp",
-+  "llvm.nvvm.suld.1d.i8.trap",
-+  "llvm.nvvm.suld.1d.i8.zero",
-+  "llvm.nvvm.suld.1d.v2i16.clamp",
-+  "llvm.nvvm.suld.1d.v2i16.trap",
-+  "llvm.nvvm.suld.1d.v2i16.zero",
-+  "llvm.nvvm.suld.1d.v2i32.clamp",
-+  "llvm.nvvm.suld.1d.v2i32.trap",
-+  "llvm.nvvm.suld.1d.v2i32.zero",
-+  "llvm.nvvm.suld.1d.v2i64.clamp",
-+  "llvm.nvvm.suld.1d.v2i64.trap",
-+  "llvm.nvvm.suld.1d.v2i64.zero",
-+  "llvm.nvvm.suld.1d.v2i8.clamp",
-+  "llvm.nvvm.suld.1d.v2i8.trap",
-+  "llvm.nvvm.suld.1d.v2i8.zero",
-+  "llvm.nvvm.suld.1d.v4i16.clamp",
-+  "llvm.nvvm.suld.1d.v4i16.trap",
-+  "llvm.nvvm.suld.1d.v4i16.zero",
-+  "llvm.nvvm.suld.1d.v4i32.clamp",
-+  "llvm.nvvm.suld.1d.v4i32.trap",
-+  "llvm.nvvm.suld.1d.v4i32.zero",
-+  "llvm.nvvm.suld.1d.v4i8.clamp",
-+  "llvm.nvvm.suld.1d.v4i8.trap",
-+  "llvm.nvvm.suld.1d.v4i8.zero",
-+  "llvm.nvvm.suld.2d.array.i16.clamp",
-+  "llvm.nvvm.suld.2d.array.i16.trap",
-+  "llvm.nvvm.suld.2d.array.i16.zero",
-+  "llvm.nvvm.suld.2d.array.i32.clamp",
-+  "llvm.nvvm.suld.2d.array.i32.trap",
-+  "llvm.nvvm.suld.2d.array.i32.zero",
-+  "llvm.nvvm.suld.2d.array.i64.clamp",
-+  "llvm.nvvm.suld.2d.array.i64.trap",
-+  "llvm.nvvm.suld.2d.array.i64.zero",
-+  "llvm.nvvm.suld.2d.array.i8.clamp",
-+  "llvm.nvvm.suld.2d.array.i8.trap",
-+  "llvm.nvvm.suld.2d.array.i8.zero",
-+  "llvm.nvvm.suld.2d.array.v2i16.clamp",
-+  "llvm.nvvm.suld.2d.array.v2i16.trap",
-+  "llvm.nvvm.suld.2d.array.v2i16.zero",
-+  "llvm.nvvm.suld.2d.array.v2i32.clamp",
-+  "llvm.nvvm.suld.2d.array.v2i32.trap",
-+  "llvm.nvvm.suld.2d.array.v2i32.zero",
-+  "llvm.nvvm.suld.2d.array.v2i64.clamp",
-+  "llvm.nvvm.suld.2d.array.v2i64.trap",
-+  "llvm.nvvm.suld.2d.array.v2i64.zero",
-+  "llvm.nvvm.suld.2d.array.v2i8.clamp",
-+  "llvm.nvvm.suld.2d.array.v2i8.trap",
-+  "llvm.nvvm.suld.2d.array.v2i8.zero",
-+  "llvm.nvvm.suld.2d.array.v4i16.clamp",
-+  "llvm.nvvm.suld.2d.array.v4i16.trap",
-+  "llvm.nvvm.suld.2d.array.v4i16.zero",
-+  "llvm.nvvm.suld.2d.array.v4i32.clamp",
-+  "llvm.nvvm.suld.2d.array.v4i32.trap",
-+  "llvm.nvvm.suld.2d.array.v4i32.zero",
-+  "llvm.nvvm.suld.2d.array.v4i8.clamp",
-+  "llvm.nvvm.suld.2d.array.v4i8.trap",
-+  "llvm.nvvm.suld.2d.array.v4i8.zero",
-+  "llvm.nvvm.suld.2d.i16.clamp",
-+  "llvm.nvvm.suld.2d.i16.trap",
-+  "llvm.nvvm.suld.2d.i16.zero",
-+  "llvm.nvvm.suld.2d.i32.clamp",
-+  "llvm.nvvm.suld.2d.i32.trap",
-+  "llvm.nvvm.suld.2d.i32.zero",
-+  "llvm.nvvm.suld.2d.i64.clamp",
-+  "llvm.nvvm.suld.2d.i64.trap",
-+  "llvm.nvvm.suld.2d.i64.zero",
-+  "llvm.nvvm.suld.2d.i8.clamp",
-+  "llvm.nvvm.suld.2d.i8.trap",
-+  "llvm.nvvm.suld.2d.i8.zero",
-+  "llvm.nvvm.suld.2d.v2i16.clamp",
-+  "llvm.nvvm.suld.2d.v2i16.trap",
-+  "llvm.nvvm.suld.2d.v2i16.zero",
-+  "llvm.nvvm.suld.2d.v2i32.clamp",
-+  "llvm.nvvm.suld.2d.v2i32.trap",
-+  "llvm.nvvm.suld.2d.v2i32.zero",
-+  "llvm.nvvm.suld.2d.v2i64.clamp",
-+  "llvm.nvvm.suld.2d.v2i64.trap",
-+  "llvm.nvvm.suld.2d.v2i64.zero",
-+  "llvm.nvvm.suld.2d.v2i8.clamp",
-+  "llvm.nvvm.suld.2d.v2i8.trap",
-+  "llvm.nvvm.suld.2d.v2i8.zero",
-+  "llvm.nvvm.suld.2d.v4i16.clamp",
-+  "llvm.nvvm.suld.2d.v4i16.trap",
-+  "llvm.nvvm.suld.2d.v4i16.zero",
-+  "llvm.nvvm.suld.2d.v4i32.clamp",
-+  "llvm.nvvm.suld.2d.v4i32.trap",
-+  "llvm.nvvm.suld.2d.v4i32.zero",
-+  "llvm.nvvm.suld.2d.v4i8.clamp",
-+  "llvm.nvvm.suld.2d.v4i8.trap",
-+  "llvm.nvvm.suld.2d.v4i8.zero",
-+  "llvm.nvvm.suld.3d.i16.clamp",
-+  "llvm.nvvm.suld.3d.i16.trap",
-+  "llvm.nvvm.suld.3d.i16.zero",
-+  "llvm.nvvm.suld.3d.i32.clamp",
-+  "llvm.nvvm.suld.3d.i32.trap",
-+  "llvm.nvvm.suld.3d.i32.zero",
-+  "llvm.nvvm.suld.3d.i64.clamp",
-+  "llvm.nvvm.suld.3d.i64.trap",
-+  "llvm.nvvm.suld.3d.i64.zero",
-+  "llvm.nvvm.suld.3d.i8.clamp",
-+  "llvm.nvvm.suld.3d.i8.trap",
-+  "llvm.nvvm.suld.3d.i8.zero",
-+  "llvm.nvvm.suld.3d.v2i16.clamp",
-+  "llvm.nvvm.suld.3d.v2i16.trap",
-+  "llvm.nvvm.suld.3d.v2i16.zero",
-+  "llvm.nvvm.suld.3d.v2i32.clamp",
-+  "llvm.nvvm.suld.3d.v2i32.trap",
-+  "llvm.nvvm.suld.3d.v2i32.zero",
-+  "llvm.nvvm.suld.3d.v2i64.clamp",
-+  "llvm.nvvm.suld.3d.v2i64.trap",
-+  "llvm.nvvm.suld.3d.v2i64.zero",
-+  "llvm.nvvm.suld.3d.v2i8.clamp",
-+  "llvm.nvvm.suld.3d.v2i8.trap",
-+  "llvm.nvvm.suld.3d.v2i8.zero",
-+  "llvm.nvvm.suld.3d.v4i16.clamp",
-+  "llvm.nvvm.suld.3d.v4i16.trap",
-+  "llvm.nvvm.suld.3d.v4i16.zero",
-+  "llvm.nvvm.suld.3d.v4i32.clamp",
-+  "llvm.nvvm.suld.3d.v4i32.trap",
-+  "llvm.nvvm.suld.3d.v4i32.zero",
-+  "llvm.nvvm.suld.3d.v4i8.clamp",
-+  "llvm.nvvm.suld.3d.v4i8.trap",
-+  "llvm.nvvm.suld.3d.v4i8.zero",
-+  "llvm.nvvm.suq.array.size",
-+  "llvm.nvvm.suq.channel.data.type",
-+  "llvm.nvvm.suq.channel.order",
-+  "llvm.nvvm.suq.depth",
-+  "llvm.nvvm.suq.height",
-+  "llvm.nvvm.suq.width",
-+  "llvm.nvvm.sust.b.1d.array.i16.clamp",
-+  "llvm.nvvm.sust.b.1d.array.i16.trap",
-+  "llvm.nvvm.sust.b.1d.array.i16.zero",
-+  "llvm.nvvm.sust.b.1d.array.i32.clamp",
-+  "llvm.nvvm.sust.b.1d.array.i32.trap",
-+  "llvm.nvvm.sust.b.1d.array.i32.zero",
-+  "llvm.nvvm.sust.b.1d.array.i64.clamp",
-+  "llvm.nvvm.sust.b.1d.array.i64.trap",
-+  "llvm.nvvm.sust.b.1d.array.i64.zero",
-+  "llvm.nvvm.sust.b.1d.array.i8.clamp",
-+  "llvm.nvvm.sust.b.1d.array.i8.trap",
-+  "llvm.nvvm.sust.b.1d.array.i8.zero",
-+  "llvm.nvvm.sust.b.1d.array.v2i16.clamp",
-+  "llvm.nvvm.sust.b.1d.array.v2i16.trap",
-+  "llvm.nvvm.sust.b.1d.array.v2i16.zero",
-+  "llvm.nvvm.sust.b.1d.array.v2i32.clamp",
-+  "llvm.nvvm.sust.b.1d.array.v2i32.trap",
-+  "llvm.nvvm.sust.b.1d.array.v2i32.zero",
-+  "llvm.nvvm.sust.b.1d.array.v2i64.clamp",
-+  "llvm.nvvm.sust.b.1d.array.v2i64.trap",
-+  "llvm.nvvm.sust.b.1d.array.v2i64.zero",
-+  "llvm.nvvm.sust.b.1d.array.v2i8.clamp",
-+  "llvm.nvvm.sust.b.1d.array.v2i8.trap",
-+  "llvm.nvvm.sust.b.1d.array.v2i8.zero",
-+  "llvm.nvvm.sust.b.1d.array.v4i16.clamp",
-+  "llvm.nvvm.sust.b.1d.array.v4i16.trap",
-+  "llvm.nvvm.sust.b.1d.array.v4i16.zero",
-+  "llvm.nvvm.sust.b.1d.array.v4i32.clamp",
-+  "llvm.nvvm.sust.b.1d.array.v4i32.trap",
-+  "llvm.nvvm.sust.b.1d.array.v4i32.zero",
-+  "llvm.nvvm.sust.b.1d.array.v4i8.clamp",
-+  "llvm.nvvm.sust.b.1d.array.v4i8.trap",
-+  "llvm.nvvm.sust.b.1d.array.v4i8.zero",
-+  "llvm.nvvm.sust.b.1d.i16.clamp",
-+  "llvm.nvvm.sust.b.1d.i16.trap",
-+  "llvm.nvvm.sust.b.1d.i16.zero",
-+  "llvm.nvvm.sust.b.1d.i32.clamp",
-+  "llvm.nvvm.sust.b.1d.i32.trap",
-+  "llvm.nvvm.sust.b.1d.i32.zero",
-+  "llvm.nvvm.sust.b.1d.i64.clamp",
-+  "llvm.nvvm.sust.b.1d.i64.trap",
-+  "llvm.nvvm.sust.b.1d.i64.zero",
-+  "llvm.nvvm.sust.b.1d.i8.clamp",
-+  "llvm.nvvm.sust.b.1d.i8.trap",
-+  "llvm.nvvm.sust.b.1d.i8.zero",
-+  "llvm.nvvm.sust.b.1d.v2i16.clamp",
-+  "llvm.nvvm.sust.b.1d.v2i16.trap",
-+  "llvm.nvvm.sust.b.1d.v2i16.zero",
-+  "llvm.nvvm.sust.b.1d.v2i32.clamp",
-+  "llvm.nvvm.sust.b.1d.v2i32.trap",
-+  "llvm.nvvm.sust.b.1d.v2i32.zero",
-+  "llvm.nvvm.sust.b.1d.v2i64.clamp",
-+  "llvm.nvvm.sust.b.1d.v2i64.trap",
-+  "llvm.nvvm.sust.b.1d.v2i64.zero",
-+  "llvm.nvvm.sust.b.1d.v2i8.clamp",
-+  "llvm.nvvm.sust.b.1d.v2i8.trap",
-+  "llvm.nvvm.sust.b.1d.v2i8.zero",
-+  "llvm.nvvm.sust.b.1d.v4i16.clamp",
-+  "llvm.nvvm.sust.b.1d.v4i16.trap",
-+  "llvm.nvvm.sust.b.1d.v4i16.zero",
-+  "llvm.nvvm.sust.b.1d.v4i32.clamp",
-+  "llvm.nvvm.sust.b.1d.v4i32.trap",
-+  "llvm.nvvm.sust.b.1d.v4i32.zero",
-+  "llvm.nvvm.sust.b.1d.v4i8.clamp",
-+  "llvm.nvvm.sust.b.1d.v4i8.trap",
-+  "llvm.nvvm.sust.b.1d.v4i8.zero",
-+  "llvm.nvvm.sust.b.2d.array.i16.clamp",
-+  "llvm.nvvm.sust.b.2d.array.i16.trap",
-+  "llvm.nvvm.sust.b.2d.array.i16.zero",
-+  "llvm.nvvm.sust.b.2d.array.i32.clamp",
-+  "llvm.nvvm.sust.b.2d.array.i32.trap",
-+  "llvm.nvvm.sust.b.2d.array.i32.zero",
-+  "llvm.nvvm.sust.b.2d.array.i64.clamp",
-+  "llvm.nvvm.sust.b.2d.array.i64.trap",
-+  "llvm.nvvm.sust.b.2d.array.i64.zero",
-+  "llvm.nvvm.sust.b.2d.array.i8.clamp",
-+  "llvm.nvvm.sust.b.2d.array.i8.trap",
-+  "llvm.nvvm.sust.b.2d.array.i8.zero",
-+  "llvm.nvvm.sust.b.2d.array.v2i16.clamp",
-+  "llvm.nvvm.sust.b.2d.array.v2i16.trap",
-+  "llvm.nvvm.sust.b.2d.array.v2i16.zero",
-+  "llvm.nvvm.sust.b.2d.array.v2i32.clamp",
-+  "llvm.nvvm.sust.b.2d.array.v2i32.trap",
-+  "llvm.nvvm.sust.b.2d.array.v2i32.zero",
-+  "llvm.nvvm.sust.b.2d.array.v2i64.clamp",
-+  "llvm.nvvm.sust.b.2d.array.v2i64.trap",
-+  "llvm.nvvm.sust.b.2d.array.v2i64.zero",
-+  "llvm.nvvm.sust.b.2d.array.v2i8.clamp",
-+  "llvm.nvvm.sust.b.2d.array.v2i8.trap",
-+  "llvm.nvvm.sust.b.2d.array.v2i8.zero",
-+  "llvm.nvvm.sust.b.2d.array.v4i16.clamp",
-+  "llvm.nvvm.sust.b.2d.array.v4i16.trap",
-+  "llvm.nvvm.sust.b.2d.array.v4i16.zero",
-+  "llvm.nvvm.sust.b.2d.array.v4i32.clamp",
-+  "llvm.nvvm.sust.b.2d.array.v4i32.trap",
-+  "llvm.nvvm.sust.b.2d.array.v4i32.zero",
-+  "llvm.nvvm.sust.b.2d.array.v4i8.clamp",
-+  "llvm.nvvm.sust.b.2d.array.v4i8.trap",
-+  "llvm.nvvm.sust.b.2d.array.v4i8.zero",
-+  "llvm.nvvm.sust.b.2d.i16.clamp",
-+  "llvm.nvvm.sust.b.2d.i16.trap",
-+  "llvm.nvvm.sust.b.2d.i16.zero",
-+  "llvm.nvvm.sust.b.2d.i32.clamp",
-+  "llvm.nvvm.sust.b.2d.i32.trap",
-+  "llvm.nvvm.sust.b.2d.i32.zero",
-+  "llvm.nvvm.sust.b.2d.i64.clamp",
-+  "llvm.nvvm.sust.b.2d.i64.trap",
-+  "llvm.nvvm.sust.b.2d.i64.zero",
-+  "llvm.nvvm.sust.b.2d.i8.clamp",
-+  "llvm.nvvm.sust.b.2d.i8.trap",
-+  "llvm.nvvm.sust.b.2d.i8.zero",
-+  "llvm.nvvm.sust.b.2d.v2i16.clamp",
-+  "llvm.nvvm.sust.b.2d.v2i16.trap",
-+  "llvm.nvvm.sust.b.2d.v2i16.zero",
-+  "llvm.nvvm.sust.b.2d.v2i32.clamp",
-+  "llvm.nvvm.sust.b.2d.v2i32.trap",
-+  "llvm.nvvm.sust.b.2d.v2i32.zero",
-+  "llvm.nvvm.sust.b.2d.v2i64.clamp",
-+  "llvm.nvvm.sust.b.2d.v2i64.trap",
-+  "llvm.nvvm.sust.b.2d.v2i64.zero",
-+  "llvm.nvvm.sust.b.2d.v2i8.clamp",
-+  "llvm.nvvm.sust.b.2d.v2i8.trap",
-+  "llvm.nvvm.sust.b.2d.v2i8.zero",
-+  "llvm.nvvm.sust.b.2d.v4i16.clamp",
-+  "llvm.nvvm.sust.b.2d.v4i16.trap",
-+  "llvm.nvvm.sust.b.2d.v4i16.zero",
-+  "llvm.nvvm.sust.b.2d.v4i32.clamp",
-+  "llvm.nvvm.sust.b.2d.v4i32.trap",
-+  "llvm.nvvm.sust.b.2d.v4i32.zero",
-+  "llvm.nvvm.sust.b.2d.v4i8.clamp",
-+  "llvm.nvvm.sust.b.2d.v4i8.trap",
-+  "llvm.nvvm.sust.b.2d.v4i8.zero",
-+  "llvm.nvvm.sust.b.3d.i16.clamp",
-+  "llvm.nvvm.sust.b.3d.i16.trap",
-+  "llvm.nvvm.sust.b.3d.i16.zero",
-+  "llvm.nvvm.sust.b.3d.i32.clamp",
-+  "llvm.nvvm.sust.b.3d.i32.trap",
-+  "llvm.nvvm.sust.b.3d.i32.zero",
-+  "llvm.nvvm.sust.b.3d.i64.clamp",
-+  "llvm.nvvm.sust.b.3d.i64.trap",
-+  "llvm.nvvm.sust.b.3d.i64.zero",
-+  "llvm.nvvm.sust.b.3d.i8.clamp",
-+  "llvm.nvvm.sust.b.3d.i8.trap",
-+  "llvm.nvvm.sust.b.3d.i8.zero",
-+  "llvm.nvvm.sust.b.3d.v2i16.clamp",
-+  "llvm.nvvm.sust.b.3d.v2i16.trap",
-+  "llvm.nvvm.sust.b.3d.v2i16.zero",
-+  "llvm.nvvm.sust.b.3d.v2i32.clamp",
-+  "llvm.nvvm.sust.b.3d.v2i32.trap",
-+  "llvm.nvvm.sust.b.3d.v2i32.zero",
-+  "llvm.nvvm.sust.b.3d.v2i64.clamp",
-+  "llvm.nvvm.sust.b.3d.v2i64.trap",
-+  "llvm.nvvm.sust.b.3d.v2i64.zero",
-+  "llvm.nvvm.sust.b.3d.v2i8.clamp",
-+  "llvm.nvvm.sust.b.3d.v2i8.trap",
-+  "llvm.nvvm.sust.b.3d.v2i8.zero",
-+  "llvm.nvvm.sust.b.3d.v4i16.clamp",
-+  "llvm.nvvm.sust.b.3d.v4i16.trap",
-+  "llvm.nvvm.sust.b.3d.v4i16.zero",
-+  "llvm.nvvm.sust.b.3d.v4i32.clamp",
-+  "llvm.nvvm.sust.b.3d.v4i32.trap",
-+  "llvm.nvvm.sust.b.3d.v4i32.zero",
-+  "llvm.nvvm.sust.b.3d.v4i8.clamp",
-+  "llvm.nvvm.sust.b.3d.v4i8.trap",
-+  "llvm.nvvm.sust.b.3d.v4i8.zero",
-+  "llvm.nvvm.sust.p.1d.array.i16.trap",
-+  "llvm.nvvm.sust.p.1d.array.i32.trap",
-+  "llvm.nvvm.sust.p.1d.array.i8.trap",
-+  "llvm.nvvm.sust.p.1d.array.v2i16.trap",
-+  "llvm.nvvm.sust.p.1d.array.v2i32.trap",
-+  "llvm.nvvm.sust.p.1d.array.v2i8.trap",
-+  "llvm.nvvm.sust.p.1d.array.v4i16.trap",
-+  "llvm.nvvm.sust.p.1d.array.v4i32.trap",
-+  "llvm.nvvm.sust.p.1d.array.v4i8.trap",
-+  "llvm.nvvm.sust.p.1d.i16.trap",
-+  "llvm.nvvm.sust.p.1d.i32.trap",
-+  "llvm.nvvm.sust.p.1d.i8.trap",
-+  "llvm.nvvm.sust.p.1d.v2i16.trap",
-+  "llvm.nvvm.sust.p.1d.v2i32.trap",
-+  "llvm.nvvm.sust.p.1d.v2i8.trap",
-+  "llvm.nvvm.sust.p.1d.v4i16.trap",
-+  "llvm.nvvm.sust.p.1d.v4i32.trap",
-+  "llvm.nvvm.sust.p.1d.v4i8.trap",
-+  "llvm.nvvm.sust.p.2d.array.i16.trap",
-+  "llvm.nvvm.sust.p.2d.array.i32.trap",
-+  "llvm.nvvm.sust.p.2d.array.i8.trap",
-+  "llvm.nvvm.sust.p.2d.array.v2i16.trap",
-+  "llvm.nvvm.sust.p.2d.array.v2i32.trap",
-+  "llvm.nvvm.sust.p.2d.array.v2i8.trap",
-+  "llvm.nvvm.sust.p.2d.array.v4i16.trap",
-+  "llvm.nvvm.sust.p.2d.array.v4i32.trap",
-+  "llvm.nvvm.sust.p.2d.array.v4i8.trap",
-+  "llvm.nvvm.sust.p.2d.i16.trap",
-+  "llvm.nvvm.sust.p.2d.i32.trap",
-+  "llvm.nvvm.sust.p.2d.i8.trap",
-+  "llvm.nvvm.sust.p.2d.v2i16.trap",
-+  "llvm.nvvm.sust.p.2d.v2i32.trap",
-+  "llvm.nvvm.sust.p.2d.v2i8.trap",
-+  "llvm.nvvm.sust.p.2d.v4i16.trap",
-+  "llvm.nvvm.sust.p.2d.v4i32.trap",
-+  "llvm.nvvm.sust.p.2d.v4i8.trap",
-+  "llvm.nvvm.sust.p.3d.i16.trap",
-+  "llvm.nvvm.sust.p.3d.i32.trap",
-+  "llvm.nvvm.sust.p.3d.i8.trap",
-+  "llvm.nvvm.sust.p.3d.v2i16.trap",
-+  "llvm.nvvm.sust.p.3d.v2i32.trap",
-+  "llvm.nvvm.sust.p.3d.v2i8.trap",
-+  "llvm.nvvm.sust.p.3d.v4i16.trap",
-+  "llvm.nvvm.sust.p.3d.v4i32.trap",
-+  "llvm.nvvm.sust.p.3d.v4i8.trap",
-+  "llvm.nvvm.swap.lo.hi.b64",
-+  "llvm.nvvm.tex.1d.array.grad.v4f32.f32",
-+  "llvm.nvvm.tex.1d.array.grad.v4s32.f32",
-+  "llvm.nvvm.tex.1d.array.grad.v4u32.f32",
-+  "llvm.nvvm.tex.1d.array.level.v4f32.f32",
-+  "llvm.nvvm.tex.1d.array.level.v4s32.f32",
-+  "llvm.nvvm.tex.1d.array.level.v4u32.f32",
-+  "llvm.nvvm.tex.1d.array.v4f32.f32",
-+  "llvm.nvvm.tex.1d.array.v4f32.s32",
-+  "llvm.nvvm.tex.1d.array.v4s32.f32",
-+  "llvm.nvvm.tex.1d.array.v4s32.s32",
-+  "llvm.nvvm.tex.1d.array.v4u32.f32",
-+  "llvm.nvvm.tex.1d.array.v4u32.s32",
-+  "llvm.nvvm.tex.1d.grad.v4f32.f32",
-+  "llvm.nvvm.tex.1d.grad.v4s32.f32",
-+  "llvm.nvvm.tex.1d.grad.v4u32.f32",
-+  "llvm.nvvm.tex.1d.level.v4f32.f32",
-+  "llvm.nvvm.tex.1d.level.v4s32.f32",
-+  "llvm.nvvm.tex.1d.level.v4u32.f32",
-+  "llvm.nvvm.tex.1d.v4f32.f32",
-+  "llvm.nvvm.tex.1d.v4f32.s32",
-+  "llvm.nvvm.tex.1d.v4s32.f32",
-+  "llvm.nvvm.tex.1d.v4s32.s32",
-+  "llvm.nvvm.tex.1d.v4u32.f32",
-+  "llvm.nvvm.tex.1d.v4u32.s32",
-+  "llvm.nvvm.tex.2d.array.grad.v4f32.f32",
-+  "llvm.nvvm.tex.2d.array.grad.v4s32.f32",
-+  "llvm.nvvm.tex.2d.array.grad.v4u32.f32",
-+  "llvm.nvvm.tex.2d.array.level.v4f32.f32",
-+  "llvm.nvvm.tex.2d.array.level.v4s32.f32",
-+  "llvm.nvvm.tex.2d.array.level.v4u32.f32",
-+  "llvm.nvvm.tex.2d.array.v4f32.f32",
-+  "llvm.nvvm.tex.2d.array.v4f32.s32",
-+  "llvm.nvvm.tex.2d.array.v4s32.f32",
-+  "llvm.nvvm.tex.2d.array.v4s32.s32",
-+  "llvm.nvvm.tex.2d.array.v4u32.f32",
-+  "llvm.nvvm.tex.2d.array.v4u32.s32",
-+  "llvm.nvvm.tex.2d.grad.v4f32.f32",
-+  "llvm.nvvm.tex.2d.grad.v4s32.f32",
-+  "llvm.nvvm.tex.2d.grad.v4u32.f32",
-+  "llvm.nvvm.tex.2d.level.v4f32.f32",
-+  "llvm.nvvm.tex.2d.level.v4s32.f32",
-+  "llvm.nvvm.tex.2d.level.v4u32.f32",
-+  "llvm.nvvm.tex.2d.v4f32.f32",
-+  "llvm.nvvm.tex.2d.v4f32.s32",
-+  "llvm.nvvm.tex.2d.v4s32.f32",
-+  "llvm.nvvm.tex.2d.v4s32.s32",
-+  "llvm.nvvm.tex.2d.v4u32.f32",
-+  "llvm.nvvm.tex.2d.v4u32.s32",
-+  "llvm.nvvm.tex.3d.grad.v4f32.f32",
-+  "llvm.nvvm.tex.3d.grad.v4s32.f32",
-+  "llvm.nvvm.tex.3d.grad.v4u32.f32",
-+  "llvm.nvvm.tex.3d.level.v4f32.f32",
-+  "llvm.nvvm.tex.3d.level.v4s32.f32",
-+  "llvm.nvvm.tex.3d.level.v4u32.f32",
-+  "llvm.nvvm.tex.3d.v4f32.f32",
-+  "llvm.nvvm.tex.3d.v4f32.s32",
-+  "llvm.nvvm.tex.3d.v4s32.f32",
-+  "llvm.nvvm.tex.3d.v4s32.s32",
-+  "llvm.nvvm.tex.3d.v4u32.f32",
-+  "llvm.nvvm.tex.3d.v4u32.s32",
-+  "llvm.nvvm.tex.cube.array.level.v4f32.f32",
-+  "llvm.nvvm.tex.cube.array.level.v4s32.f32",
-+  "llvm.nvvm.tex.cube.array.level.v4u32.f32",
-+  "llvm.nvvm.tex.cube.array.v4f32.f32",
-+  "llvm.nvvm.tex.cube.array.v4s32.f32",
-+  "llvm.nvvm.tex.cube.array.v4u32.f32",
-+  "llvm.nvvm.tex.cube.level.v4f32.f32",
-+  "llvm.nvvm.tex.cube.level.v4s32.f32",
-+  "llvm.nvvm.tex.cube.level.v4u32.f32",
-+  "llvm.nvvm.tex.cube.v4f32.f32",
-+  "llvm.nvvm.tex.cube.v4s32.f32",
-+  "llvm.nvvm.tex.cube.v4u32.f32",
-+  "llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32",
-+  "llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32",
-+  "llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32",
-+  "llvm.nvvm.tex.unified.1d.array.level.v4f32.f32",
-+  "llvm.nvvm.tex.unified.1d.array.level.v4s32.f32",
-+  "llvm.nvvm.tex.unified.1d.array.level.v4u32.f32",
-+  "llvm.nvvm.tex.unified.1d.array.v4f32.f32",
-+  "llvm.nvvm.tex.unified.1d.array.v4f32.s32",
-+  "llvm.nvvm.tex.unified.1d.array.v4s32.f32",
-+  "llvm.nvvm.tex.unified.1d.array.v4s32.s32",
-+  "llvm.nvvm.tex.unified.1d.array.v4u32.f32",
-+  "llvm.nvvm.tex.unified.1d.array.v4u32.s32",
-+  "llvm.nvvm.tex.unified.1d.grad.v4f32.f32",
-+  "llvm.nvvm.tex.unified.1d.grad.v4s32.f32",
-+  "llvm.nvvm.tex.unified.1d.grad.v4u32.f32",
-+  "llvm.nvvm.tex.unified.1d.level.v4f32.f32",
-+  "llvm.nvvm.tex.unified.1d.level.v4s32.f32",
-+  "llvm.nvvm.tex.unified.1d.level.v4u32.f32",
-+  "llvm.nvvm.tex.unified.1d.v4f32.f32",
-+  "llvm.nvvm.tex.unified.1d.v4f32.s32",
-+  "llvm.nvvm.tex.unified.1d.v4s32.f32",
-+  "llvm.nvvm.tex.unified.1d.v4s32.s32",
-+  "llvm.nvvm.tex.unified.1d.v4u32.f32",
-+  "llvm.nvvm.tex.unified.1d.v4u32.s32",
-+  "llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32",
-+  "llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32",
-+  "llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32",
-+  "llvm.nvvm.tex.unified.2d.array.level.v4f32.f32",
-+  "llvm.nvvm.tex.unified.2d.array.level.v4s32.f32",
-+  "llvm.nvvm.tex.unified.2d.array.level.v4u32.f32",
-+  "llvm.nvvm.tex.unified.2d.array.v4f32.f32",
-+  "llvm.nvvm.tex.unified.2d.array.v4f32.s32",
-+  "llvm.nvvm.tex.unified.2d.array.v4s32.f32",
-+  "llvm.nvvm.tex.unified.2d.array.v4s32.s32",
-+  "llvm.nvvm.tex.unified.2d.array.v4u32.f32",
-+  "llvm.nvvm.tex.unified.2d.array.v4u32.s32",
-+  "llvm.nvvm.tex.unified.2d.grad.v4f32.f32",
-+  "llvm.nvvm.tex.unified.2d.grad.v4s32.f32",
-+  "llvm.nvvm.tex.unified.2d.grad.v4u32.f32",
-+  "llvm.nvvm.tex.unified.2d.level.v4f32.f32",
-+  "llvm.nvvm.tex.unified.2d.level.v4s32.f32",
-+  "llvm.nvvm.tex.unified.2d.level.v4u32.f32",
-+  "llvm.nvvm.tex.unified.2d.v4f32.f32",
-+  "llvm.nvvm.tex.unified.2d.v4f32.s32",
-+  "llvm.nvvm.tex.unified.2d.v4s32.f32",
-+  "llvm.nvvm.tex.unified.2d.v4s32.s32",
-+  "llvm.nvvm.tex.unified.2d.v4u32.f32",
-+  "llvm.nvvm.tex.unified.2d.v4u32.s32",
-+  "llvm.nvvm.tex.unified.3d.grad.v4f32.f32",
-+  "llvm.nvvm.tex.unified.3d.grad.v4s32.f32",
-+  "llvm.nvvm.tex.unified.3d.grad.v4u32.f32",
-+  "llvm.nvvm.tex.unified.3d.level.v4f32.f32",
-+  "llvm.nvvm.tex.unified.3d.level.v4s32.f32",
-+  "llvm.nvvm.tex.unified.3d.level.v4u32.f32",
-+  "llvm.nvvm.tex.unified.3d.v4f32.f32",
-+  "llvm.nvvm.tex.unified.3d.v4f32.s32",
-+  "llvm.nvvm.tex.unified.3d.v4s32.f32",
-+  "llvm.nvvm.tex.unified.3d.v4s32.s32",
-+  "llvm.nvvm.tex.unified.3d.v4u32.f32",
-+  "llvm.nvvm.tex.unified.3d.v4u32.s32",
-+  "llvm.nvvm.tex.unified.cube.array.level.v4f32.f32",
-+  "llvm.nvvm.tex.unified.cube.array.level.v4s32.f32",
-+  "llvm.nvvm.tex.unified.cube.array.level.v4u32.f32",
-+  "llvm.nvvm.tex.unified.cube.array.v4f32.f32",
-+  "llvm.nvvm.tex.unified.cube.array.v4s32.f32",
-+  "llvm.nvvm.tex.unified.cube.array.v4u32.f32",
-+  "llvm.nvvm.tex.unified.cube.level.v4f32.f32",
-+  "llvm.nvvm.tex.unified.cube.level.v4s32.f32",
-+  "llvm.nvvm.tex.unified.cube.level.v4u32.f32",
-+  "llvm.nvvm.tex.unified.cube.v4f32.f32",
-+  "llvm.nvvm.tex.unified.cube.v4s32.f32",
-+  "llvm.nvvm.tex.unified.cube.v4u32.f32",
-+  "llvm.nvvm.texsurf.handle",
-+  "llvm.nvvm.texsurf.handle.internal",
-+  "llvm.nvvm.tld4.a.2d.v4f32.f32",
-+  "llvm.nvvm.tld4.a.2d.v4s32.f32",
-+  "llvm.nvvm.tld4.a.2d.v4u32.f32",
-+  "llvm.nvvm.tld4.b.2d.v4f32.f32",
-+  "llvm.nvvm.tld4.b.2d.v4s32.f32",
-+  "llvm.nvvm.tld4.b.2d.v4u32.f32",
-+  "llvm.nvvm.tld4.g.2d.v4f32.f32",
-+  "llvm.nvvm.tld4.g.2d.v4s32.f32",
-+  "llvm.nvvm.tld4.g.2d.v4u32.f32",
-+  "llvm.nvvm.tld4.r.2d.v4f32.f32",
-+  "llvm.nvvm.tld4.r.2d.v4s32.f32",
-+  "llvm.nvvm.tld4.r.2d.v4u32.f32",
-+  "llvm.nvvm.tld4.unified.a.2d.v4f32.f32",
-+  "llvm.nvvm.tld4.unified.a.2d.v4s32.f32",
-+  "llvm.nvvm.tld4.unified.a.2d.v4u32.f32",
-+  "llvm.nvvm.tld4.unified.b.2d.v4f32.f32",
-+  "llvm.nvvm.tld4.unified.b.2d.v4s32.f32",
-+  "llvm.nvvm.tld4.unified.b.2d.v4u32.f32",
-+  "llvm.nvvm.tld4.unified.g.2d.v4f32.f32",
-+  "llvm.nvvm.tld4.unified.g.2d.v4s32.f32",
-+  "llvm.nvvm.tld4.unified.g.2d.v4u32.f32",
-+  "llvm.nvvm.tld4.unified.r.2d.v4f32.f32",
-+  "llvm.nvvm.tld4.unified.r.2d.v4s32.f32",
-+  "llvm.nvvm.tld4.unified.r.2d.v4u32.f32",
-+  "llvm.nvvm.trunc.d",
-+  "llvm.nvvm.trunc.f",
-+  "llvm.nvvm.trunc.ftz.f",
-+  "llvm.nvvm.txq.array.size",
-+  "llvm.nvvm.txq.channel.data.type",
-+  "llvm.nvvm.txq.channel.order",
-+  "llvm.nvvm.txq.depth",
-+  "llvm.nvvm.txq.height",
-+  "llvm.nvvm.txq.num.mipmap.levels",
-+  "llvm.nvvm.txq.num.samples",
-+  "llvm.nvvm.txq.width",
-+  "llvm.nvvm.ui2d.rm",
-+  "llvm.nvvm.ui2d.rn",
-+  "llvm.nvvm.ui2d.rp",
-+  "llvm.nvvm.ui2d.rz",
-+  "llvm.nvvm.ui2f.rm",
-+  "llvm.nvvm.ui2f.rn",
-+  "llvm.nvvm.ui2f.rp",
-+  "llvm.nvvm.ui2f.rz",
-+  "llvm.nvvm.ull2d.rm",
-+  "llvm.nvvm.ull2d.rn",
-+  "llvm.nvvm.ull2d.rp",
-+  "llvm.nvvm.ull2d.rz",
-+  "llvm.nvvm.ull2f.rm",
-+  "llvm.nvvm.ull2f.rn",
-+  "llvm.nvvm.ull2f.rp",
-+  "llvm.nvvm.ull2f.rz",
-+  "llvm.ppc.altivec.crypto.vcipher",
-+  "llvm.ppc.altivec.crypto.vcipherlast",
-+  "llvm.ppc.altivec.crypto.vncipher",
-+  "llvm.ppc.altivec.crypto.vncipherlast",
-+  "llvm.ppc.altivec.crypto.vpermxor",
-+  "llvm.ppc.altivec.crypto.vpmsumb",
-+  "llvm.ppc.altivec.crypto.vpmsumd",
-+  "llvm.ppc.altivec.crypto.vpmsumh",
-+  "llvm.ppc.altivec.crypto.vpmsumw",
-+  "llvm.ppc.altivec.crypto.vsbox",
-+  "llvm.ppc.altivec.crypto.vshasigmad",
-+  "llvm.ppc.altivec.crypto.vshasigmaw",
-+  "llvm.ppc.altivec.dss",
-+  "llvm.ppc.altivec.dssall",
-+  "llvm.ppc.altivec.dst",
-+  "llvm.ppc.altivec.dstst",
-+  "llvm.ppc.altivec.dststt",
-+  "llvm.ppc.altivec.dstt",
-+  "llvm.ppc.altivec.lvebx",
-+  "llvm.ppc.altivec.lvehx",
-+  "llvm.ppc.altivec.lvewx",
-+  "llvm.ppc.altivec.lvsl",
-+  "llvm.ppc.altivec.lvsr",
-+  "llvm.ppc.altivec.lvx",
-+  "llvm.ppc.altivec.lvxl",
-+  "llvm.ppc.altivec.mfvscr",
-+  "llvm.ppc.altivec.mtvscr",
-+  "llvm.ppc.altivec.stvebx",
-+  "llvm.ppc.altivec.stvehx",
-+  "llvm.ppc.altivec.stvewx",
-+  "llvm.ppc.altivec.stvx",
-+  "llvm.ppc.altivec.stvxl",
-+  "llvm.ppc.altivec.vabsdub",
-+  "llvm.ppc.altivec.vabsduh",
-+  "llvm.ppc.altivec.vabsduw",
-+  "llvm.ppc.altivec.vaddcuq",
-+  "llvm.ppc.altivec.vaddcuw",
-+  "llvm.ppc.altivec.vaddecuq",
-+  "llvm.ppc.altivec.vaddeuqm",
-+  "llvm.ppc.altivec.vaddsbs",
-+  "llvm.ppc.altivec.vaddshs",
-+  "llvm.ppc.altivec.vaddsws",
-+  "llvm.ppc.altivec.vaddubs",
-+  "llvm.ppc.altivec.vadduhs",
-+  "llvm.ppc.altivec.vadduws",
-+  "llvm.ppc.altivec.vavgsb",
-+  "llvm.ppc.altivec.vavgsh",
-+  "llvm.ppc.altivec.vavgsw",
-+  "llvm.ppc.altivec.vavgub",
-+  "llvm.ppc.altivec.vavguh",
-+  "llvm.ppc.altivec.vavguw",
-+  "llvm.ppc.altivec.vbpermq",
-+  "llvm.ppc.altivec.vcfsx",
-+  "llvm.ppc.altivec.vcfux",
-+  "llvm.ppc.altivec.vclzlsbb",
-+  "llvm.ppc.altivec.vcmpbfp",
-+  "llvm.ppc.altivec.vcmpbfp.p",
-+  "llvm.ppc.altivec.vcmpeqfp",
-+  "llvm.ppc.altivec.vcmpeqfp.p",
-+  "llvm.ppc.altivec.vcmpequb",
-+  "llvm.ppc.altivec.vcmpequb.p",
-+  "llvm.ppc.altivec.vcmpequd",
-+  "llvm.ppc.altivec.vcmpequd.p",
-+  "llvm.ppc.altivec.vcmpequh",
-+  "llvm.ppc.altivec.vcmpequh.p",
-+  "llvm.ppc.altivec.vcmpequw",
-+  "llvm.ppc.altivec.vcmpequw.p",
-+  "llvm.ppc.altivec.vcmpgefp",
-+  "llvm.ppc.altivec.vcmpgefp.p",
-+  "llvm.ppc.altivec.vcmpgtfp",
-+  "llvm.ppc.altivec.vcmpgtfp.p",
-+  "llvm.ppc.altivec.vcmpgtsb",
-+  "llvm.ppc.altivec.vcmpgtsb.p",
-+  "llvm.ppc.altivec.vcmpgtsd",
-+  "llvm.ppc.altivec.vcmpgtsd.p",
-+  "llvm.ppc.altivec.vcmpgtsh",
-+  "llvm.ppc.altivec.vcmpgtsh.p",
-+  "llvm.ppc.altivec.vcmpgtsw",
-+  "llvm.ppc.altivec.vcmpgtsw.p",
-+  "llvm.ppc.altivec.vcmpgtub",
-+  "llvm.ppc.altivec.vcmpgtub.p",
-+  "llvm.ppc.altivec.vcmpgtud",
-+  "llvm.ppc.altivec.vcmpgtud.p",
-+  "llvm.ppc.altivec.vcmpgtuh",
-+  "llvm.ppc.altivec.vcmpgtuh.p",
-+  "llvm.ppc.altivec.vcmpgtuw",
-+  "llvm.ppc.altivec.vcmpgtuw.p",
-+  "llvm.ppc.altivec.vcmpneb",
-+  "llvm.ppc.altivec.vcmpneb.p",
-+  "llvm.ppc.altivec.vcmpneh",
-+  "llvm.ppc.altivec.vcmpneh.p",
-+  "llvm.ppc.altivec.vcmpnew",
-+  "llvm.ppc.altivec.vcmpnew.p",
-+  "llvm.ppc.altivec.vcmpnezb",
-+  "llvm.ppc.altivec.vcmpnezb.p",
-+  "llvm.ppc.altivec.vcmpnezh",
-+  "llvm.ppc.altivec.vcmpnezh.p",
-+  "llvm.ppc.altivec.vcmpnezw",
-+  "llvm.ppc.altivec.vcmpnezw.p",
-+  "llvm.ppc.altivec.vctsxs",
-+  "llvm.ppc.altivec.vctuxs",
-+  "llvm.ppc.altivec.vctzlsbb",
-+  "llvm.ppc.altivec.vexptefp",
-+  "llvm.ppc.altivec.vgbbd",
-+  "llvm.ppc.altivec.vlogefp",
-+  "llvm.ppc.altivec.vmaddfp",
-+  "llvm.ppc.altivec.vmaxfp",
-+  "llvm.ppc.altivec.vmaxsb",
-+  "llvm.ppc.altivec.vmaxsd",
-+  "llvm.ppc.altivec.vmaxsh",
-+  "llvm.ppc.altivec.vmaxsw",
-+  "llvm.ppc.altivec.vmaxub",
-+  "llvm.ppc.altivec.vmaxud",
-+  "llvm.ppc.altivec.vmaxuh",
-+  "llvm.ppc.altivec.vmaxuw",
-+  "llvm.ppc.altivec.vmhaddshs",
-+  "llvm.ppc.altivec.vmhraddshs",
-+  "llvm.ppc.altivec.vminfp",
-+  "llvm.ppc.altivec.vminsb",
-+  "llvm.ppc.altivec.vminsd",
-+  "llvm.ppc.altivec.vminsh",
-+  "llvm.ppc.altivec.vminsw",
-+  "llvm.ppc.altivec.vminub",
-+  "llvm.ppc.altivec.vminud",
-+  "llvm.ppc.altivec.vminuh",
-+  "llvm.ppc.altivec.vminuw",
-+  "llvm.ppc.altivec.vmladduhm",
-+  "llvm.ppc.altivec.vmsummbm",
-+  "llvm.ppc.altivec.vmsumshm",
-+  "llvm.ppc.altivec.vmsumshs",
-+  "llvm.ppc.altivec.vmsumubm",
-+  "llvm.ppc.altivec.vmsumuhm",
-+  "llvm.ppc.altivec.vmsumuhs",
-+  "llvm.ppc.altivec.vmulesb",
-+  "llvm.ppc.altivec.vmulesh",
-+  "llvm.ppc.altivec.vmulesw",
-+  "llvm.ppc.altivec.vmuleub",
-+  "llvm.ppc.altivec.vmuleuh",
-+  "llvm.ppc.altivec.vmuleuw",
-+  "llvm.ppc.altivec.vmulosb",
-+  "llvm.ppc.altivec.vmulosh",
-+  "llvm.ppc.altivec.vmulosw",
-+  "llvm.ppc.altivec.vmuloub",
-+  "llvm.ppc.altivec.vmulouh",
-+  "llvm.ppc.altivec.vmulouw",
-+  "llvm.ppc.altivec.vnmsubfp",
-+  "llvm.ppc.altivec.vperm",
-+  "llvm.ppc.altivec.vpkpx",
-+  "llvm.ppc.altivec.vpksdss",
-+  "llvm.ppc.altivec.vpksdus",
-+  "llvm.ppc.altivec.vpkshss",
-+  "llvm.ppc.altivec.vpkshus",
-+  "llvm.ppc.altivec.vpkswss",
-+  "llvm.ppc.altivec.vpkswus",
-+  "llvm.ppc.altivec.vpkudus",
-+  "llvm.ppc.altivec.vpkuhus",
-+  "llvm.ppc.altivec.vpkuwus",
-+  "llvm.ppc.altivec.vprtybd",
-+  "llvm.ppc.altivec.vprtybq",
-+  "llvm.ppc.altivec.vprtybw",
-+  "llvm.ppc.altivec.vrefp",
-+  "llvm.ppc.altivec.vrfim",
-+  "llvm.ppc.altivec.vrfin",
-+  "llvm.ppc.altivec.vrfip",
-+  "llvm.ppc.altivec.vrfiz",
-+  "llvm.ppc.altivec.vrlb",
-+  "llvm.ppc.altivec.vrld",
-+  "llvm.ppc.altivec.vrldmi",
-+  "llvm.ppc.altivec.vrldnm",
-+  "llvm.ppc.altivec.vrlh",
-+  "llvm.ppc.altivec.vrlw",
-+  "llvm.ppc.altivec.vrlwmi",
-+  "llvm.ppc.altivec.vrlwnm",
-+  "llvm.ppc.altivec.vrsqrtefp",
-+  "llvm.ppc.altivec.vsel",
-+  "llvm.ppc.altivec.vsl",
-+  "llvm.ppc.altivec.vslb",
-+  "llvm.ppc.altivec.vslh",
-+  "llvm.ppc.altivec.vslo",
-+  "llvm.ppc.altivec.vslv",
-+  "llvm.ppc.altivec.vslw",
-+  "llvm.ppc.altivec.vsr",
-+  "llvm.ppc.altivec.vsrab",
-+  "llvm.ppc.altivec.vsrah",
-+  "llvm.ppc.altivec.vsraw",
-+  "llvm.ppc.altivec.vsrb",
-+  "llvm.ppc.altivec.vsrh",
-+  "llvm.ppc.altivec.vsro",
-+  "llvm.ppc.altivec.vsrv",
-+  "llvm.ppc.altivec.vsrw",
-+  "llvm.ppc.altivec.vsubcuq",
-+  "llvm.ppc.altivec.vsubcuw",
-+  "llvm.ppc.altivec.vsubecuq",
-+  "llvm.ppc.altivec.vsubeuqm",
-+  "llvm.ppc.altivec.vsubsbs",
-+  "llvm.ppc.altivec.vsubshs",
-+  "llvm.ppc.altivec.vsubsws",
-+  "llvm.ppc.altivec.vsububs",
-+  "llvm.ppc.altivec.vsubuhs",
-+  "llvm.ppc.altivec.vsubuws",
-+  "llvm.ppc.altivec.vsum2sws",
-+  "llvm.ppc.altivec.vsum4sbs",
-+  "llvm.ppc.altivec.vsum4shs",
-+  "llvm.ppc.altivec.vsum4ubs",
-+  "llvm.ppc.altivec.vsumsws",
-+  "llvm.ppc.altivec.vupkhpx",
-+  "llvm.ppc.altivec.vupkhsb",
-+  "llvm.ppc.altivec.vupkhsh",
-+  "llvm.ppc.altivec.vupkhsw",
-+  "llvm.ppc.altivec.vupklpx",
-+  "llvm.ppc.altivec.vupklsb",
-+  "llvm.ppc.altivec.vupklsh",
-+  "llvm.ppc.altivec.vupklsw",
-+  "llvm.ppc.bpermd",
-+  "llvm.ppc.dcba",
-+  "llvm.ppc.dcbf",
-+  "llvm.ppc.dcbi",
-+  "llvm.ppc.dcbst",
-+  "llvm.ppc.dcbt",
-+  "llvm.ppc.dcbtst",
-+  "llvm.ppc.dcbz",
-+  "llvm.ppc.dcbzl",
-+  "llvm.ppc.divde",
-+  "llvm.ppc.divdeu",
-+  "llvm.ppc.divwe",
-+  "llvm.ppc.divweu",
-+  "llvm.ppc.get.texasr",
-+  "llvm.ppc.get.texasru",
-+  "llvm.ppc.get.tfhar",
-+  "llvm.ppc.get.tfiar",
-+  "llvm.ppc.is.decremented.ctr.nonzero",
-+  "llvm.ppc.lwsync",
-+  "llvm.ppc.mtctr",
-+  "llvm.ppc.qpx.qvfabs",
-+  "llvm.ppc.qpx.qvfadd",
-+  "llvm.ppc.qpx.qvfadds",
-+  "llvm.ppc.qpx.qvfcfid",
-+  "llvm.ppc.qpx.qvfcfids",
-+  "llvm.ppc.qpx.qvfcfidu",
-+  "llvm.ppc.qpx.qvfcfidus",
-+  "llvm.ppc.qpx.qvfcmpeq",
-+  "llvm.ppc.qpx.qvfcmpgt",
-+  "llvm.ppc.qpx.qvfcmplt",
-+  "llvm.ppc.qpx.qvfcpsgn",
-+  "llvm.ppc.qpx.qvfctid",
-+  "llvm.ppc.qpx.qvfctidu",
-+  "llvm.ppc.qpx.qvfctiduz",
-+  "llvm.ppc.qpx.qvfctidz",
-+  "llvm.ppc.qpx.qvfctiw",
-+  "llvm.ppc.qpx.qvfctiwu",
-+  "llvm.ppc.qpx.qvfctiwuz",
-+  "llvm.ppc.qpx.qvfctiwz",
-+  "llvm.ppc.qpx.qvflogical",
-+  "llvm.ppc.qpx.qvfmadd",
-+  "llvm.ppc.qpx.qvfmadds",
-+  "llvm.ppc.qpx.qvfmsub",
-+  "llvm.ppc.qpx.qvfmsubs",
-+  "llvm.ppc.qpx.qvfmul",
-+  "llvm.ppc.qpx.qvfmuls",
-+  "llvm.ppc.qpx.qvfnabs",
-+  "llvm.ppc.qpx.qvfneg",
-+  "llvm.ppc.qpx.qvfnmadd",
-+  "llvm.ppc.qpx.qvfnmadds",
-+  "llvm.ppc.qpx.qvfnmsub",
-+  "llvm.ppc.qpx.qvfnmsubs",
-+  "llvm.ppc.qpx.qvfperm",
-+  "llvm.ppc.qpx.qvfre",
-+  "llvm.ppc.qpx.qvfres",
-+  "llvm.ppc.qpx.qvfrim",
-+  "llvm.ppc.qpx.qvfrin",
-+  "llvm.ppc.qpx.qvfrip",
-+  "llvm.ppc.qpx.qvfriz",
-+  "llvm.ppc.qpx.qvfrsp",
-+  "llvm.ppc.qpx.qvfrsqrte",
-+  "llvm.ppc.qpx.qvfrsqrtes",
-+  "llvm.ppc.qpx.qvfsel",
-+  "llvm.ppc.qpx.qvfsub",
-+  "llvm.ppc.qpx.qvfsubs",
-+  "llvm.ppc.qpx.qvftstnan",
-+  "llvm.ppc.qpx.qvfxmadd",
-+  "llvm.ppc.qpx.qvfxmadds",
-+  "llvm.ppc.qpx.qvfxmul",
-+  "llvm.ppc.qpx.qvfxmuls",
-+  "llvm.ppc.qpx.qvfxxcpnmadd",
-+  "llvm.ppc.qpx.qvfxxcpnmadds",
-+  "llvm.ppc.qpx.qvfxxmadd",
-+  "llvm.ppc.qpx.qvfxxmadds",
-+  "llvm.ppc.qpx.qvfxxnpmadd",
-+  "llvm.ppc.qpx.qvfxxnpmadds",
-+  "llvm.ppc.qpx.qvgpci",
-+  "llvm.ppc.qpx.qvlfcd",
-+  "llvm.ppc.qpx.qvlfcda",
-+  "llvm.ppc.qpx.qvlfcs",
-+  "llvm.ppc.qpx.qvlfcsa",
-+  "llvm.ppc.qpx.qvlfd",
-+  "llvm.ppc.qpx.qvlfda",
-+  "llvm.ppc.qpx.qvlfiwa",
-+  "llvm.ppc.qpx.qvlfiwaa",
-+  "llvm.ppc.qpx.qvlfiwz",
-+  "llvm.ppc.qpx.qvlfiwza",
-+  "llvm.ppc.qpx.qvlfs",
-+  "llvm.ppc.qpx.qvlfsa",
-+  "llvm.ppc.qpx.qvlpcld",
-+  "llvm.ppc.qpx.qvlpcls",
-+  "llvm.ppc.qpx.qvlpcrd",
-+  "llvm.ppc.qpx.qvlpcrs",
-+  "llvm.ppc.qpx.qvstfcd",
-+  "llvm.ppc.qpx.qvstfcda",
-+  "llvm.ppc.qpx.qvstfcs",
-+  "llvm.ppc.qpx.qvstfcsa",
-+  "llvm.ppc.qpx.qvstfd",
-+  "llvm.ppc.qpx.qvstfda",
-+  "llvm.ppc.qpx.qvstfiw",
-+  "llvm.ppc.qpx.qvstfiwa",
-+  "llvm.ppc.qpx.qvstfs",
-+  "llvm.ppc.qpx.qvstfsa",
-+  "llvm.ppc.set.texasr",
-+  "llvm.ppc.set.texasru",
-+  "llvm.ppc.set.tfhar",
-+  "llvm.ppc.set.tfiar",
-+  "llvm.ppc.sync",
-+  "llvm.ppc.tabort",
-+  "llvm.ppc.tabortdc",
-+  "llvm.ppc.tabortdci",
-+  "llvm.ppc.tabortwc",
-+  "llvm.ppc.tabortwci",
-+  "llvm.ppc.tbegin",
-+  "llvm.ppc.tcheck",
-+  "llvm.ppc.tend",
-+  "llvm.ppc.tendall",
-+  "llvm.ppc.trechkpt",
-+  "llvm.ppc.treclaim",
-+  "llvm.ppc.tresume",
-+  "llvm.ppc.tsr",
-+  "llvm.ppc.tsuspend",
-+  "llvm.ppc.ttest",
-+  "llvm.ppc.vsx.lxvd2x",
-+  "llvm.ppc.vsx.lxvd2x.be",
-+  "llvm.ppc.vsx.lxvl",
-+  "llvm.ppc.vsx.lxvll",
-+  "llvm.ppc.vsx.lxvw4x",
-+  "llvm.ppc.vsx.lxvw4x.be",
-+  "llvm.ppc.vsx.stxvd2x",
-+  "llvm.ppc.vsx.stxvd2x.be",
-+  "llvm.ppc.vsx.stxvl",
-+  "llvm.ppc.vsx.stxvll",
-+  "llvm.ppc.vsx.stxvw4x",
-+  "llvm.ppc.vsx.stxvw4x.be",
-+  "llvm.ppc.vsx.xsmaxdp",
-+  "llvm.ppc.vsx.xsmindp",
-+  "llvm.ppc.vsx.xvcmpeqdp",
-+  "llvm.ppc.vsx.xvcmpeqdp.p",
-+  "llvm.ppc.vsx.xvcmpeqsp",
-+  "llvm.ppc.vsx.xvcmpeqsp.p",
-+  "llvm.ppc.vsx.xvcmpgedp",
-+  "llvm.ppc.vsx.xvcmpgedp.p",
-+  "llvm.ppc.vsx.xvcmpgesp",
-+  "llvm.ppc.vsx.xvcmpgesp.p",
-+  "llvm.ppc.vsx.xvcmpgtdp",
-+  "llvm.ppc.vsx.xvcmpgtdp.p",
-+  "llvm.ppc.vsx.xvcmpgtsp",
-+  "llvm.ppc.vsx.xvcmpgtsp.p",
-+  "llvm.ppc.vsx.xvcvdpsp",
-+  "llvm.ppc.vsx.xvcvdpsxws",
-+  "llvm.ppc.vsx.xvcvdpuxws",
-+  "llvm.ppc.vsx.xvcvhpsp",
-+  "llvm.ppc.vsx.xvcvspdp",
-+  "llvm.ppc.vsx.xvcvsphp",
-+  "llvm.ppc.vsx.xvcvsxdsp",
-+  "llvm.ppc.vsx.xvcvsxwdp",
-+  "llvm.ppc.vsx.xvcvuxdsp",
-+  "llvm.ppc.vsx.xvcvuxwdp",
-+  "llvm.ppc.vsx.xvdivdp",
-+  "llvm.ppc.vsx.xvdivsp",
-+  "llvm.ppc.vsx.xviexpdp",
-+  "llvm.ppc.vsx.xviexpsp",
-+  "llvm.ppc.vsx.xvmaxdp",
-+  "llvm.ppc.vsx.xvmaxsp",
-+  "llvm.ppc.vsx.xvmindp",
-+  "llvm.ppc.vsx.xvminsp",
-+  "llvm.ppc.vsx.xvrdpip",
-+  "llvm.ppc.vsx.xvredp",
-+  "llvm.ppc.vsx.xvresp",
-+  "llvm.ppc.vsx.xvrspip",
-+  "llvm.ppc.vsx.xvrsqrtedp",
-+  "llvm.ppc.vsx.xvrsqrtesp",
-+  "llvm.ppc.vsx.xvtstdcdp",
-+  "llvm.ppc.vsx.xvtstdcsp",
-+  "llvm.ppc.vsx.xvxexpdp",
-+  "llvm.ppc.vsx.xvxexpsp",
-+  "llvm.ppc.vsx.xvxsigdp",
-+  "llvm.ppc.vsx.xvxsigsp",
-+  "llvm.ppc.vsx.xxextractuw",
-+  "llvm.ppc.vsx.xxinsertw",
-+  "llvm.ppc.vsx.xxleqv",
-+  "llvm.r600.group.barrier",
-+  "llvm.r600.implicitarg.ptr",
-+  "llvm.r600.rat.store.typed",
-+  "llvm.r600.read.global.size.x",
-+  "llvm.r600.read.global.size.y",
-+  "llvm.r600.read.global.size.z",
-+  "llvm.r600.read.local.size.x",
-+  "llvm.r600.read.local.size.y",
-+  "llvm.r600.read.local.size.z",
-+  "llvm.r600.read.ngroups.x",
-+  "llvm.r600.read.ngroups.y",
-+  "llvm.r600.read.ngroups.z",
-+  "llvm.r600.read.tgid.x",
-+  "llvm.r600.read.tgid.y",
-+  "llvm.r600.read.tgid.z",
-+  "llvm.r600.read.tidig.x",
-+  "llvm.r600.read.tidig.y",
-+  "llvm.r600.read.tidig.z",
-+  "llvm.r600.recipsqrt.clamped",
-+  "llvm.r600.recipsqrt.ieee",
-+  "llvm.s390.efpc",
-+  "llvm.s390.etnd",
-+  "llvm.s390.lcbb",
-+  "llvm.s390.ntstg",
-+  "llvm.s390.ppa.txassist",
-+  "llvm.s390.sfpc",
-+  "llvm.s390.tabort",
-+  "llvm.s390.tbegin",
-+  "llvm.s390.tbegin.nofloat",
-+  "llvm.s390.tbeginc",
-+  "llvm.s390.tdc",
-+  "llvm.s390.tend",
-+  "llvm.s390.vaccb",
-+  "llvm.s390.vacccq",
-+  "llvm.s390.vaccf",
-+  "llvm.s390.vaccg",
-+  "llvm.s390.vacch",
-+  "llvm.s390.vaccq",
-+  "llvm.s390.vacq",
-+  "llvm.s390.vaq",
-+  "llvm.s390.vavgb",
-+  "llvm.s390.vavgf",
-+  "llvm.s390.vavgg",
-+  "llvm.s390.vavgh",
-+  "llvm.s390.vavglb",
-+  "llvm.s390.vavglf",
-+  "llvm.s390.vavglg",
-+  "llvm.s390.vavglh",
-+  "llvm.s390.vceqbs",
-+  "llvm.s390.vceqfs",
-+  "llvm.s390.vceqgs",
-+  "llvm.s390.vceqhs",
-+  "llvm.s390.vchbs",
-+  "llvm.s390.vchfs",
-+  "llvm.s390.vchgs",
-+  "llvm.s390.vchhs",
-+  "llvm.s390.vchlbs",
-+  "llvm.s390.vchlfs",
-+  "llvm.s390.vchlgs",
-+  "llvm.s390.vchlhs",
-+  "llvm.s390.vcksm",
-+  "llvm.s390.verimb",
-+  "llvm.s390.verimf",
-+  "llvm.s390.verimg",
-+  "llvm.s390.verimh",
-+  "llvm.s390.verllb",
-+  "llvm.s390.verllf",
-+  "llvm.s390.verllg",
-+  "llvm.s390.verllh",
-+  "llvm.s390.verllvb",
-+  "llvm.s390.verllvf",
-+  "llvm.s390.verllvg",
-+  "llvm.s390.verllvh",
-+  "llvm.s390.vfaeb",
-+  "llvm.s390.vfaebs",
-+  "llvm.s390.vfaef",
-+  "llvm.s390.vfaefs",
-+  "llvm.s390.vfaeh",
-+  "llvm.s390.vfaehs",
-+  "llvm.s390.vfaezb",
-+  "llvm.s390.vfaezbs",
-+  "llvm.s390.vfaezf",
-+  "llvm.s390.vfaezfs",
-+  "llvm.s390.vfaezh",
-+  "llvm.s390.vfaezhs",
-+  "llvm.s390.vfcedbs",
-+  "llvm.s390.vfchdbs",
-+  "llvm.s390.vfchedbs",
-+  "llvm.s390.vfeeb",
-+  "llvm.s390.vfeebs",
-+  "llvm.s390.vfeef",
-+  "llvm.s390.vfeefs",
-+  "llvm.s390.vfeeh",
-+  "llvm.s390.vfeehs",
-+  "llvm.s390.vfeezb",
-+  "llvm.s390.vfeezbs",
-+  "llvm.s390.vfeezf",
-+  "llvm.s390.vfeezfs",
-+  "llvm.s390.vfeezh",
-+  "llvm.s390.vfeezhs",
-+  "llvm.s390.vfeneb",
-+  "llvm.s390.vfenebs",
-+  "llvm.s390.vfenef",
-+  "llvm.s390.vfenefs",
-+  "llvm.s390.vfeneh",
-+  "llvm.s390.vfenehs",
-+  "llvm.s390.vfenezb",
-+  "llvm.s390.vfenezbs",
-+  "llvm.s390.vfenezf",
-+  "llvm.s390.vfenezfs",
-+  "llvm.s390.vfenezh",
-+  "llvm.s390.vfenezhs",
-+  "llvm.s390.vfidb",
-+  "llvm.s390.vftcidb",
-+  "llvm.s390.vgfmab",
-+  "llvm.s390.vgfmaf",
-+  "llvm.s390.vgfmag",
-+  "llvm.s390.vgfmah",
-+  "llvm.s390.vgfmb",
-+  "llvm.s390.vgfmf",
-+  "llvm.s390.vgfmg",
-+  "llvm.s390.vgfmh",
-+  "llvm.s390.vistrb",
-+  "llvm.s390.vistrbs",
-+  "llvm.s390.vistrf",
-+  "llvm.s390.vistrfs",
-+  "llvm.s390.vistrh",
-+  "llvm.s390.vistrhs",
-+  "llvm.s390.vlbb",
-+  "llvm.s390.vll",
-+  "llvm.s390.vmaeb",
-+  "llvm.s390.vmaef",
-+  "llvm.s390.vmaeh",
-+  "llvm.s390.vmahb",
-+  "llvm.s390.vmahf",
-+  "llvm.s390.vmahh",
-+  "llvm.s390.vmaleb",
-+  "llvm.s390.vmalef",
-+  "llvm.s390.vmaleh",
-+  "llvm.s390.vmalhb",
-+  "llvm.s390.vmalhf",
-+  "llvm.s390.vmalhh",
-+  "llvm.s390.vmalob",
-+  "llvm.s390.vmalof",
-+  "llvm.s390.vmaloh",
-+  "llvm.s390.vmaob",
-+  "llvm.s390.vmaof",
-+  "llvm.s390.vmaoh",
-+  "llvm.s390.vmeb",
-+  "llvm.s390.vmef",
-+  "llvm.s390.vmeh",
-+  "llvm.s390.vmhb",
-+  "llvm.s390.vmhf",
-+  "llvm.s390.vmhh",
-+  "llvm.s390.vmleb",
-+  "llvm.s390.vmlef",
-+  "llvm.s390.vmleh",
-+  "llvm.s390.vmlhb",
-+  "llvm.s390.vmlhf",
-+  "llvm.s390.vmlhh",
-+  "llvm.s390.vmlob",
-+  "llvm.s390.vmlof",
-+  "llvm.s390.vmloh",
-+  "llvm.s390.vmob",
-+  "llvm.s390.vmof",
-+  "llvm.s390.vmoh",
-+  "llvm.s390.vpdi",
-+  "llvm.s390.vperm",
-+  "llvm.s390.vpklsf",
-+  "llvm.s390.vpklsfs",
-+  "llvm.s390.vpklsg",
-+  "llvm.s390.vpklsgs",
-+  "llvm.s390.vpklsh",
-+  "llvm.s390.vpklshs",
-+  "llvm.s390.vpksf",
-+  "llvm.s390.vpksfs",
-+  "llvm.s390.vpksg",
-+  "llvm.s390.vpksgs",
-+  "llvm.s390.vpksh",
-+  "llvm.s390.vpkshs",
-+  "llvm.s390.vsbcbiq",
-+  "llvm.s390.vsbiq",
-+  "llvm.s390.vscbib",
-+  "llvm.s390.vscbif",
-+  "llvm.s390.vscbig",
-+  "llvm.s390.vscbih",
-+  "llvm.s390.vscbiq",
-+  "llvm.s390.vsl",
-+  "llvm.s390.vslb",
-+  "llvm.s390.vsldb",
-+  "llvm.s390.vsq",
-+  "llvm.s390.vsra",
-+  "llvm.s390.vsrab",
-+  "llvm.s390.vsrl",
-+  "llvm.s390.vsrlb",
-+  "llvm.s390.vstl",
-+  "llvm.s390.vstrcb",
-+  "llvm.s390.vstrcbs",
-+  "llvm.s390.vstrcf",
-+  "llvm.s390.vstrcfs",
-+  "llvm.s390.vstrch",
-+  "llvm.s390.vstrchs",
-+  "llvm.s390.vstrczb",
-+  "llvm.s390.vstrczbs",
-+  "llvm.s390.vstrczf",
-+  "llvm.s390.vstrczfs",
-+  "llvm.s390.vstrczh",
-+  "llvm.s390.vstrczhs",
-+  "llvm.s390.vsumb",
-+  "llvm.s390.vsumgf",
-+  "llvm.s390.vsumgh",
-+  "llvm.s390.vsumh",
-+  "llvm.s390.vsumqf",
-+  "llvm.s390.vsumqg",
-+  "llvm.s390.vtm",
-+  "llvm.s390.vuphb",
-+  "llvm.s390.vuphf",
-+  "llvm.s390.vuphh",
-+  "llvm.s390.vuplb",
-+  "llvm.s390.vuplf",
-+  "llvm.s390.vuplhb",
-+  "llvm.s390.vuplhf",
-+  "llvm.s390.vuplhh",
-+  "llvm.s390.vuplhw",
-+  "llvm.s390.vupllb",
-+  "llvm.s390.vupllf",
-+  "llvm.s390.vupllh",
-+  "llvm.wasm.current.memory",
-+  "llvm.wasm.grow.memory",
-+  "llvm.x86.3dnow.pavgusb",
-+  "llvm.x86.3dnow.pf2id",
-+  "llvm.x86.3dnow.pfacc",
-+  "llvm.x86.3dnow.pfadd",
-+  "llvm.x86.3dnow.pfcmpeq",
-+  "llvm.x86.3dnow.pfcmpge",
-+  "llvm.x86.3dnow.pfcmpgt",
-+  "llvm.x86.3dnow.pfmax",
-+  "llvm.x86.3dnow.pfmin",
-+  "llvm.x86.3dnow.pfmul",
-+  "llvm.x86.3dnow.pfrcp",
-+  "llvm.x86.3dnow.pfrcpit1",
-+  "llvm.x86.3dnow.pfrcpit2",
-+  "llvm.x86.3dnow.pfrsqit1",
-+  "llvm.x86.3dnow.pfrsqrt",
-+  "llvm.x86.3dnow.pfsub",
-+  "llvm.x86.3dnow.pfsubr",
-+  "llvm.x86.3dnow.pi2fd",
-+  "llvm.x86.3dnow.pmulhrw",
-+  "llvm.x86.3dnowa.pf2iw",
-+  "llvm.x86.3dnowa.pfnacc",
-+  "llvm.x86.3dnowa.pfpnacc",
-+  "llvm.x86.3dnowa.pi2fw",
-+  "llvm.x86.3dnowa.pswapd",
-+  "llvm.x86.addcarry.u32",
-+  "llvm.x86.addcarry.u64",
-+  "llvm.x86.addcarryx.u32",
-+  "llvm.x86.addcarryx.u64",
-+  "llvm.x86.aesni.aesdec",
-+  "llvm.x86.aesni.aesdeclast",
-+  "llvm.x86.aesni.aesenc",
-+  "llvm.x86.aesni.aesenclast",
-+  "llvm.x86.aesni.aesimc",
-+  "llvm.x86.aesni.aeskeygenassist",
-+  "llvm.x86.avx.addsub.pd.256",
-+  "llvm.x86.avx.addsub.ps.256",
-+  "llvm.x86.avx.blendv.pd.256",
-+  "llvm.x86.avx.blendv.ps.256",
-+  "llvm.x86.avx.cmp.pd.256",
-+  "llvm.x86.avx.cmp.ps.256",
-+  "llvm.x86.avx.cvt.pd2.ps.256",
-+  "llvm.x86.avx.cvt.pd2dq.256",
-+  "llvm.x86.avx.cvt.ps2dq.256",
-+  "llvm.x86.avx.cvtdq2.ps.256",
-+  "llvm.x86.avx.cvtt.pd2dq.256",
-+  "llvm.x86.avx.cvtt.ps2dq.256",
-+  "llvm.x86.avx.dp.ps.256",
-+  "llvm.x86.avx.hadd.pd.256",
-+  "llvm.x86.avx.hadd.ps.256",
-+  "llvm.x86.avx.hsub.pd.256",
-+  "llvm.x86.avx.hsub.ps.256",
-+  "llvm.x86.avx.ldu.dq.256",
-+  "llvm.x86.avx.maskload.pd",
-+  "llvm.x86.avx.maskload.pd.256",
-+  "llvm.x86.avx.maskload.ps",
-+  "llvm.x86.avx.maskload.ps.256",
-+  "llvm.x86.avx.maskstore.pd",
-+  "llvm.x86.avx.maskstore.pd.256",
-+  "llvm.x86.avx.maskstore.ps",
-+  "llvm.x86.avx.maskstore.ps.256",
-+  "llvm.x86.avx.max.pd.256",
-+  "llvm.x86.avx.max.ps.256",
-+  "llvm.x86.avx.min.pd.256",
-+  "llvm.x86.avx.min.ps.256",
-+  "llvm.x86.avx.movmsk.pd.256",
-+  "llvm.x86.avx.movmsk.ps.256",
-+  "llvm.x86.avx.ptestc.256",
-+  "llvm.x86.avx.ptestnzc.256",
-+  "llvm.x86.avx.ptestz.256",
-+  "llvm.x86.avx.rcp.ps.256",
-+  "llvm.x86.avx.round.pd.256",
-+  "llvm.x86.avx.round.ps.256",
-+  "llvm.x86.avx.rsqrt.ps.256",
-+  "llvm.x86.avx.sqrt.pd.256",
-+  "llvm.x86.avx.sqrt.ps.256",
-+  "llvm.x86.avx.vperm2f128.pd.256",
-+  "llvm.x86.avx.vperm2f128.ps.256",
-+  "llvm.x86.avx.vperm2f128.si.256",
-+  "llvm.x86.avx.vpermilvar.pd",
-+  "llvm.x86.avx.vpermilvar.pd.256",
-+  "llvm.x86.avx.vpermilvar.ps",
-+  "llvm.x86.avx.vpermilvar.ps.256",
-+  "llvm.x86.avx.vtestc.pd",
-+  "llvm.x86.avx.vtestc.pd.256",
-+  "llvm.x86.avx.vtestc.ps",
-+  "llvm.x86.avx.vtestc.ps.256",
-+  "llvm.x86.avx.vtestnzc.pd",
-+  "llvm.x86.avx.vtestnzc.pd.256",
-+  "llvm.x86.avx.vtestnzc.ps",
-+  "llvm.x86.avx.vtestnzc.ps.256",
-+  "llvm.x86.avx.vtestz.pd",
-+  "llvm.x86.avx.vtestz.pd.256",
-+  "llvm.x86.avx.vtestz.ps",
-+  "llvm.x86.avx.vtestz.ps.256",
-+  "llvm.x86.avx.vzeroall",
-+  "llvm.x86.avx.vzeroupper",
-+  "llvm.x86.avx2.gather.d.d",
-+  "llvm.x86.avx2.gather.d.d.256",
-+  "llvm.x86.avx2.gather.d.pd",
-+  "llvm.x86.avx2.gather.d.pd.256",
-+  "llvm.x86.avx2.gather.d.ps",
-+  "llvm.x86.avx2.gather.d.ps.256",
-+  "llvm.x86.avx2.gather.d.q",
-+  "llvm.x86.avx2.gather.d.q.256",
-+  "llvm.x86.avx2.gather.q.d",
-+  "llvm.x86.avx2.gather.q.d.256",
-+  "llvm.x86.avx2.gather.q.pd",
-+  "llvm.x86.avx2.gather.q.pd.256",
-+  "llvm.x86.avx2.gather.q.ps",
-+  "llvm.x86.avx2.gather.q.ps.256",
-+  "llvm.x86.avx2.gather.q.q",
-+  "llvm.x86.avx2.gather.q.q.256",
-+  "llvm.x86.avx2.maskload.d",
-+  "llvm.x86.avx2.maskload.d.256",
-+  "llvm.x86.avx2.maskload.q",
-+  "llvm.x86.avx2.maskload.q.256",
-+  "llvm.x86.avx2.maskstore.d",
-+  "llvm.x86.avx2.maskstore.d.256",
-+  "llvm.x86.avx2.maskstore.q",
-+  "llvm.x86.avx2.maskstore.q.256",
-+  "llvm.x86.avx2.movntdqa",
-+  "llvm.x86.avx2.mpsadbw",
-+  "llvm.x86.avx2.pabs.b",
-+  "llvm.x86.avx2.pabs.d",
-+  "llvm.x86.avx2.pabs.w",
-+  "llvm.x86.avx2.packssdw",
-+  "llvm.x86.avx2.packsswb",
-+  "llvm.x86.avx2.packusdw",
-+  "llvm.x86.avx2.packuswb",
-+  "llvm.x86.avx2.padds.b",
-+  "llvm.x86.avx2.padds.w",
-+  "llvm.x86.avx2.paddus.b",
-+  "llvm.x86.avx2.paddus.w",
-+  "llvm.x86.avx2.pavg.b",
-+  "llvm.x86.avx2.pavg.w",
-+  "llvm.x86.avx2.pblendvb",
-+  "llvm.x86.avx2.permd",
-+  "llvm.x86.avx2.permps",
-+  "llvm.x86.avx2.phadd.d",
-+  "llvm.x86.avx2.phadd.sw",
-+  "llvm.x86.avx2.phadd.w",
-+  "llvm.x86.avx2.phsub.d",
-+  "llvm.x86.avx2.phsub.sw",
-+  "llvm.x86.avx2.phsub.w",
-+  "llvm.x86.avx2.pmadd.ub.sw",
-+  "llvm.x86.avx2.pmadd.wd",
-+  "llvm.x86.avx2.pmovmskb",
-+  "llvm.x86.avx2.pmul.dq",
-+  "llvm.x86.avx2.pmul.hr.sw",
-+  "llvm.x86.avx2.pmulh.w",
-+  "llvm.x86.avx2.pmulhu.w",
-+  "llvm.x86.avx2.pmulu.dq",
-+  "llvm.x86.avx2.psad.bw",
-+  "llvm.x86.avx2.pshuf.b",
-+  "llvm.x86.avx2.psign.b",
-+  "llvm.x86.avx2.psign.d",
-+  "llvm.x86.avx2.psign.w",
-+  "llvm.x86.avx2.psll.d",
-+  "llvm.x86.avx2.psll.q",
-+  "llvm.x86.avx2.psll.w",
-+  "llvm.x86.avx2.pslli.d",
-+  "llvm.x86.avx2.pslli.q",
-+  "llvm.x86.avx2.pslli.w",
-+  "llvm.x86.avx2.psllv.d",
-+  "llvm.x86.avx2.psllv.d.256",
-+  "llvm.x86.avx2.psllv.q",
-+  "llvm.x86.avx2.psllv.q.256",
-+  "llvm.x86.avx2.psra.d",
-+  "llvm.x86.avx2.psra.w",
-+  "llvm.x86.avx2.psrai.d",
-+  "llvm.x86.avx2.psrai.w",
-+  "llvm.x86.avx2.psrav.d",
-+  "llvm.x86.avx2.psrav.d.256",
-+  "llvm.x86.avx2.psrl.d",
-+  "llvm.x86.avx2.psrl.q",
-+  "llvm.x86.avx2.psrl.w",
-+  "llvm.x86.avx2.psrli.d",
-+  "llvm.x86.avx2.psrli.q",
-+  "llvm.x86.avx2.psrli.w",
-+  "llvm.x86.avx2.psrlv.d",
-+  "llvm.x86.avx2.psrlv.d.256",
-+  "llvm.x86.avx2.psrlv.q",
-+  "llvm.x86.avx2.psrlv.q.256",
-+  "llvm.x86.avx2.psubs.b",
-+  "llvm.x86.avx2.psubs.w",
-+  "llvm.x86.avx2.psubus.b",
-+  "llvm.x86.avx2.psubus.w",
-+  "llvm.x86.avx2.vperm2i128",
-+  "llvm.x86.avx512.broadcastmb.128",
-+  "llvm.x86.avx512.broadcastmb.256",
-+  "llvm.x86.avx512.broadcastmb.512",
-+  "llvm.x86.avx512.broadcastmw.128",
-+  "llvm.x86.avx512.broadcastmw.256",
-+  "llvm.x86.avx512.broadcastmw.512",
-+  "llvm.x86.avx512.cvtb2mask.128",
-+  "llvm.x86.avx512.cvtb2mask.256",
-+  "llvm.x86.avx512.cvtb2mask.512",
-+  "llvm.x86.avx512.cvtd2mask.128",
-+  "llvm.x86.avx512.cvtd2mask.256",
-+  "llvm.x86.avx512.cvtd2mask.512",
-+  "llvm.x86.avx512.cvtmask2b.128",
-+  "llvm.x86.avx512.cvtmask2b.256",
-+  "llvm.x86.avx512.cvtmask2b.512",
-+  "llvm.x86.avx512.cvtmask2d.128",
-+  "llvm.x86.avx512.cvtmask2d.256",
-+  "llvm.x86.avx512.cvtmask2d.512",
-+  "llvm.x86.avx512.cvtmask2q.128",
-+  "llvm.x86.avx512.cvtmask2q.256",
-+  "llvm.x86.avx512.cvtmask2q.512",
-+  "llvm.x86.avx512.cvtmask2w.128",
-+  "llvm.x86.avx512.cvtmask2w.256",
-+  "llvm.x86.avx512.cvtmask2w.512",
-+  "llvm.x86.avx512.cvtq2mask.128",
-+  "llvm.x86.avx512.cvtq2mask.256",
-+  "llvm.x86.avx512.cvtq2mask.512",
-+  "llvm.x86.avx512.cvtsi2sd64",
-+  "llvm.x86.avx512.cvtsi2ss32",
-+  "llvm.x86.avx512.cvtsi2ss64",
-+  "llvm.x86.avx512.cvttsd2si",
-+  "llvm.x86.avx512.cvttsd2si64",
-+  "llvm.x86.avx512.cvttsd2usi",
-+  "llvm.x86.avx512.cvttsd2usi64",
-+  "llvm.x86.avx512.cvttss2si",
-+  "llvm.x86.avx512.cvttss2si64",
-+  "llvm.x86.avx512.cvttss2usi",
-+  "llvm.x86.avx512.cvttss2usi64",
-+  "llvm.x86.avx512.cvtusi2sd",
-+  "llvm.x86.avx512.cvtusi2ss",
-+  "llvm.x86.avx512.cvtusi642sd",
-+  "llvm.x86.avx512.cvtusi642ss",
-+  "llvm.x86.avx512.cvtw2mask.128",
-+  "llvm.x86.avx512.cvtw2mask.256",
-+  "llvm.x86.avx512.cvtw2mask.512",
-+  "llvm.x86.avx512.exp2.pd",
-+  "llvm.x86.avx512.exp2.ps",
-+  "llvm.x86.avx512.gather.dpd.512",
-+  "llvm.x86.avx512.gather.dpi.512",
-+  "llvm.x86.avx512.gather.dpq.512",
-+  "llvm.x86.avx512.gather.dps.512",
-+  "llvm.x86.avx512.gather.qpd.512",
-+  "llvm.x86.avx512.gather.qpi.512",
-+  "llvm.x86.avx512.gather.qpq.512",
-+  "llvm.x86.avx512.gather.qps.512",
-+  "llvm.x86.avx512.gather3div2.df",
-+  "llvm.x86.avx512.gather3div2.di",
-+  "llvm.x86.avx512.gather3div4.df",
-+  "llvm.x86.avx512.gather3div4.di",
-+  "llvm.x86.avx512.gather3div4.sf",
-+  "llvm.x86.avx512.gather3div4.si",
-+  "llvm.x86.avx512.gather3div8.sf",
-+  "llvm.x86.avx512.gather3div8.si",
-+  "llvm.x86.avx512.gather3siv2.df",
-+  "llvm.x86.avx512.gather3siv2.di",
-+  "llvm.x86.avx512.gather3siv4.df",
-+  "llvm.x86.avx512.gather3siv4.di",
-+  "llvm.x86.avx512.gather3siv4.sf",
-+  "llvm.x86.avx512.gather3siv4.si",
-+  "llvm.x86.avx512.gather3siv8.sf",
-+  "llvm.x86.avx512.gather3siv8.si",
-+  "llvm.x86.avx512.gatherpf.dpd.512",
-+  "llvm.x86.avx512.gatherpf.dps.512",
-+  "llvm.x86.avx512.gatherpf.qpd.512",
-+  "llvm.x86.avx512.gatherpf.qps.512",
-+  "llvm.x86.avx512.kand.w",
-+  "llvm.x86.avx512.kandn.w",
-+  "llvm.x86.avx512.knot.w",
-+  "llvm.x86.avx512.kor.w",
-+  "llvm.x86.avx512.kortestc.w",
-+  "llvm.x86.avx512.kortestz.w",
-+  "llvm.x86.avx512.kunpck.bw",
-+  "llvm.x86.avx512.kunpck.dq",
-+  "llvm.x86.avx512.kunpck.wd",
-+  "llvm.x86.avx512.kxnor.w",
-+  "llvm.x86.avx512.kxor.w",
-+  "llvm.x86.avx512.mask.add.pd.512",
-+  "llvm.x86.avx512.mask.add.ps.512",
-+  "llvm.x86.avx512.mask.add.sd.round",
-+  "llvm.x86.avx512.mask.add.ss.round",
-+  "llvm.x86.avx512.mask.broadcastf32x2.256",
-+  "llvm.x86.avx512.mask.broadcastf32x2.512",
-+  "llvm.x86.avx512.mask.broadcastf32x4.256",
-+  "llvm.x86.avx512.mask.broadcastf32x4.512",
-+  "llvm.x86.avx512.mask.broadcastf32x8.512",
-+  "llvm.x86.avx512.mask.broadcastf64x2.256",
-+  "llvm.x86.avx512.mask.broadcastf64x2.512",
-+  "llvm.x86.avx512.mask.broadcastf64x4.512",
-+  "llvm.x86.avx512.mask.broadcasti32x2.128",
-+  "llvm.x86.avx512.mask.broadcasti32x2.256",
-+  "llvm.x86.avx512.mask.broadcasti32x2.512",
-+  "llvm.x86.avx512.mask.broadcasti32x4.256",
-+  "llvm.x86.avx512.mask.broadcasti32x4.512",
-+  "llvm.x86.avx512.mask.broadcasti32x8.512",
-+  "llvm.x86.avx512.mask.broadcasti64x2.256",
-+  "llvm.x86.avx512.mask.broadcasti64x2.512",
-+  "llvm.x86.avx512.mask.broadcasti64x4.512",
-+  "llvm.x86.avx512.mask.cmp.b.128",
-+  "llvm.x86.avx512.mask.cmp.b.256",
-+  "llvm.x86.avx512.mask.cmp.b.512",
-+  "llvm.x86.avx512.mask.cmp.d.128",
-+  "llvm.x86.avx512.mask.cmp.d.256",
-+  "llvm.x86.avx512.mask.cmp.d.512",
-+  "llvm.x86.avx512.mask.cmp.pd.128",
-+  "llvm.x86.avx512.mask.cmp.pd.256",
-+  "llvm.x86.avx512.mask.cmp.pd.512",
-+  "llvm.x86.avx512.mask.cmp.ps.128",
-+  "llvm.x86.avx512.mask.cmp.ps.256",
-+  "llvm.x86.avx512.mask.cmp.ps.512",
-+  "llvm.x86.avx512.mask.cmp.q.128",
-+  "llvm.x86.avx512.mask.cmp.q.256",
-+  "llvm.x86.avx512.mask.cmp.q.512",
-+  "llvm.x86.avx512.mask.cmp.sd",
-+  "llvm.x86.avx512.mask.cmp.ss",
-+  "llvm.x86.avx512.mask.cmp.w.128",
-+  "llvm.x86.avx512.mask.cmp.w.256",
-+  "llvm.x86.avx512.mask.cmp.w.512",
-+  "llvm.x86.avx512.mask.compress.d.128",
-+  "llvm.x86.avx512.mask.compress.d.256",
-+  "llvm.x86.avx512.mask.compress.d.512",
-+  "llvm.x86.avx512.mask.compress.pd.128",
-+  "llvm.x86.avx512.mask.compress.pd.256",
-+  "llvm.x86.avx512.mask.compress.pd.512",
-+  "llvm.x86.avx512.mask.compress.ps.128",
-+  "llvm.x86.avx512.mask.compress.ps.256",
-+  "llvm.x86.avx512.mask.compress.ps.512",
-+  "llvm.x86.avx512.mask.compress.q.128",
-+  "llvm.x86.avx512.mask.compress.q.256",
-+  "llvm.x86.avx512.mask.compress.q.512",
-+  "llvm.x86.avx512.mask.compress.store.d.128",
-+  "llvm.x86.avx512.mask.compress.store.d.256",
-+  "llvm.x86.avx512.mask.compress.store.d.512",
-+  "llvm.x86.avx512.mask.compress.store.pd.128",
-+  "llvm.x86.avx512.mask.compress.store.pd.256",
-+  "llvm.x86.avx512.mask.compress.store.pd.512",
-+  "llvm.x86.avx512.mask.compress.store.ps.128",
-+  "llvm.x86.avx512.mask.compress.store.ps.256",
-+  "llvm.x86.avx512.mask.compress.store.ps.512",
-+  "llvm.x86.avx512.mask.compress.store.q.128",
-+  "llvm.x86.avx512.mask.compress.store.q.256",
-+  "llvm.x86.avx512.mask.compress.store.q.512",
-+  "llvm.x86.avx512.mask.conflict.d.128",
-+  "llvm.x86.avx512.mask.conflict.d.256",
-+  "llvm.x86.avx512.mask.conflict.d.512",
-+  "llvm.x86.avx512.mask.conflict.q.128",
-+  "llvm.x86.avx512.mask.conflict.q.256",
-+  "llvm.x86.avx512.mask.conflict.q.512",
-+  "llvm.x86.avx512.mask.cvtdq2ps.128",
-+  "llvm.x86.avx512.mask.cvtdq2ps.256",
-+  "llvm.x86.avx512.mask.cvtdq2ps.512",
-+  "llvm.x86.avx512.mask.cvtpd2dq.128",
-+  "llvm.x86.avx512.mask.cvtpd2dq.256",
-+  "llvm.x86.avx512.mask.cvtpd2dq.512",
-+  "llvm.x86.avx512.mask.cvtpd2ps",
-+  "llvm.x86.avx512.mask.cvtpd2ps.256",
-+  "llvm.x86.avx512.mask.cvtpd2ps.512",
-+  "llvm.x86.avx512.mask.cvtpd2qq.128",
-+  "llvm.x86.avx512.mask.cvtpd2qq.256",
-+  "llvm.x86.avx512.mask.cvtpd2qq.512",
-+  "llvm.x86.avx512.mask.cvtpd2udq.128",
-+  "llvm.x86.avx512.mask.cvtpd2udq.256",
-+  "llvm.x86.avx512.mask.cvtpd2udq.512",
-+  "llvm.x86.avx512.mask.cvtpd2uqq.128",
-+  "llvm.x86.avx512.mask.cvtpd2uqq.256",
-+  "llvm.x86.avx512.mask.cvtpd2uqq.512",
-+  "llvm.x86.avx512.mask.cvtps2dq.128",
-+  "llvm.x86.avx512.mask.cvtps2dq.256",
-+  "llvm.x86.avx512.mask.cvtps2dq.512",
-+  "llvm.x86.avx512.mask.cvtps2pd.128",
-+  "llvm.x86.avx512.mask.cvtps2pd.256",
-+  "llvm.x86.avx512.mask.cvtps2pd.512",
-+  "llvm.x86.avx512.mask.cvtps2qq.128",
-+  "llvm.x86.avx512.mask.cvtps2qq.256",
-+  "llvm.x86.avx512.mask.cvtps2qq.512",
-+  "llvm.x86.avx512.mask.cvtps2udq.128",
-+  "llvm.x86.avx512.mask.cvtps2udq.256",
-+  "llvm.x86.avx512.mask.cvtps2udq.512",
-+  "llvm.x86.avx512.mask.cvtps2uqq.128",
-+  "llvm.x86.avx512.mask.cvtps2uqq.256",
-+  "llvm.x86.avx512.mask.cvtps2uqq.512",
-+  "llvm.x86.avx512.mask.cvtqq2pd.128",
-+  "llvm.x86.avx512.mask.cvtqq2pd.256",
-+  "llvm.x86.avx512.mask.cvtqq2pd.512",
-+  "llvm.x86.avx512.mask.cvtqq2ps.128",
-+  "llvm.x86.avx512.mask.cvtqq2ps.256",
-+  "llvm.x86.avx512.mask.cvtqq2ps.512",
-+  "llvm.x86.avx512.mask.cvtsd2ss.round",
-+  "llvm.x86.avx512.mask.cvtss2sd.round",
-+  "llvm.x86.avx512.mask.cvttpd2dq.128",
-+  "llvm.x86.avx512.mask.cvttpd2dq.256",
-+  "llvm.x86.avx512.mask.cvttpd2dq.512",
-+  "llvm.x86.avx512.mask.cvttpd2qq.128",
-+  "llvm.x86.avx512.mask.cvttpd2qq.256",
-+  "llvm.x86.avx512.mask.cvttpd2qq.512",
-+  "llvm.x86.avx512.mask.cvttpd2udq.128",
-+  "llvm.x86.avx512.mask.cvttpd2udq.256",
-+  "llvm.x86.avx512.mask.cvttpd2udq.512",
-+  "llvm.x86.avx512.mask.cvttpd2uqq.128",
-+  "llvm.x86.avx512.mask.cvttpd2uqq.256",
-+  "llvm.x86.avx512.mask.cvttpd2uqq.512",
-+  "llvm.x86.avx512.mask.cvttps2dq.128",
-+  "llvm.x86.avx512.mask.cvttps2dq.256",
-+  "llvm.x86.avx512.mask.cvttps2dq.512",
-+  "llvm.x86.avx512.mask.cvttps2qq.128",
-+  "llvm.x86.avx512.mask.cvttps2qq.256",
-+  "llvm.x86.avx512.mask.cvttps2qq.512",
-+  "llvm.x86.avx512.mask.cvttps2udq.128",
-+  "llvm.x86.avx512.mask.cvttps2udq.256",
-+  "llvm.x86.avx512.mask.cvttps2udq.512",
-+  "llvm.x86.avx512.mask.cvttps2uqq.128",
-+  "llvm.x86.avx512.mask.cvttps2uqq.256",
-+  "llvm.x86.avx512.mask.cvttps2uqq.512",
-+  "llvm.x86.avx512.mask.cvtudq2ps.128",
-+  "llvm.x86.avx512.mask.cvtudq2ps.256",
-+  "llvm.x86.avx512.mask.cvtudq2ps.512",
-+  "llvm.x86.avx512.mask.cvtuqq2pd.128",
-+  "llvm.x86.avx512.mask.cvtuqq2pd.256",
-+  "llvm.x86.avx512.mask.cvtuqq2pd.512",
-+  "llvm.x86.avx512.mask.cvtuqq2ps.128",
-+  "llvm.x86.avx512.mask.cvtuqq2ps.256",
-+  "llvm.x86.avx512.mask.cvtuqq2ps.512",
-+  "llvm.x86.avx512.mask.dbpsadbw.128",
-+  "llvm.x86.avx512.mask.dbpsadbw.256",
-+  "llvm.x86.avx512.mask.dbpsadbw.512",
-+  "llvm.x86.avx512.mask.div.pd.512",
-+  "llvm.x86.avx512.mask.div.ps.512",
-+  "llvm.x86.avx512.mask.div.sd.round",
-+  "llvm.x86.avx512.mask.div.ss.round",
-+  "llvm.x86.avx512.mask.expand.d.128",
-+  "llvm.x86.avx512.mask.expand.d.256",
-+  "llvm.x86.avx512.mask.expand.d.512",
-+  "llvm.x86.avx512.mask.expand.load.d.128",
-+  "llvm.x86.avx512.mask.expand.load.d.256",
-+  "llvm.x86.avx512.mask.expand.load.d.512",
-+  "llvm.x86.avx512.mask.expand.load.pd.128",
-+  "llvm.x86.avx512.mask.expand.load.pd.256",
-+  "llvm.x86.avx512.mask.expand.load.pd.512",
-+  "llvm.x86.avx512.mask.expand.load.ps.128",
-+  "llvm.x86.avx512.mask.expand.load.ps.256",
-+  "llvm.x86.avx512.mask.expand.load.ps.512",
-+  "llvm.x86.avx512.mask.expand.load.q.128",
-+  "llvm.x86.avx512.mask.expand.load.q.256",
-+  "llvm.x86.avx512.mask.expand.load.q.512",
-+  "llvm.x86.avx512.mask.expand.pd.128",
-+  "llvm.x86.avx512.mask.expand.pd.256",
-+  "llvm.x86.avx512.mask.expand.pd.512",
-+  "llvm.x86.avx512.mask.expand.ps.128",
-+  "llvm.x86.avx512.mask.expand.ps.256",
-+  "llvm.x86.avx512.mask.expand.ps.512",
-+  "llvm.x86.avx512.mask.expand.q.128",
-+  "llvm.x86.avx512.mask.expand.q.256",
-+  "llvm.x86.avx512.mask.expand.q.512",
-+  "llvm.x86.avx512.mask.fixupimm.pd.128",
-+  "llvm.x86.avx512.mask.fixupimm.pd.256",
-+  "llvm.x86.avx512.mask.fixupimm.pd.512",
-+  "llvm.x86.avx512.mask.fixupimm.ps.128",
-+  "llvm.x86.avx512.mask.fixupimm.ps.256",
-+  "llvm.x86.avx512.mask.fixupimm.ps.512",
-+  "llvm.x86.avx512.mask.fixupimm.sd",
-+  "llvm.x86.avx512.mask.fixupimm.ss",
-+  "llvm.x86.avx512.mask.fpclass.pd.128",
-+  "llvm.x86.avx512.mask.fpclass.pd.256",
-+  "llvm.x86.avx512.mask.fpclass.pd.512",
-+  "llvm.x86.avx512.mask.fpclass.ps.128",
-+  "llvm.x86.avx512.mask.fpclass.ps.256",
-+  "llvm.x86.avx512.mask.fpclass.ps.512",
-+  "llvm.x86.avx512.mask.fpclass.sd",
-+  "llvm.x86.avx512.mask.fpclass.ss",
-+  "llvm.x86.avx512.mask.getexp.pd.128",
-+  "llvm.x86.avx512.mask.getexp.pd.256",
-+  "llvm.x86.avx512.mask.getexp.pd.512",
-+  "llvm.x86.avx512.mask.getexp.ps.128",
-+  "llvm.x86.avx512.mask.getexp.ps.256",
-+  "llvm.x86.avx512.mask.getexp.ps.512",
-+  "llvm.x86.avx512.mask.getexp.sd",
-+  "llvm.x86.avx512.mask.getexp.ss",
-+  "llvm.x86.avx512.mask.getmant.pd.128",
-+  "llvm.x86.avx512.mask.getmant.pd.256",
-+  "llvm.x86.avx512.mask.getmant.pd.512",
-+  "llvm.x86.avx512.mask.getmant.ps.128",
-+  "llvm.x86.avx512.mask.getmant.ps.256",
-+  "llvm.x86.avx512.mask.getmant.ps.512",
-+  "llvm.x86.avx512.mask.getmant.sd",
-+  "llvm.x86.avx512.mask.getmant.ss",
-+  "llvm.x86.avx512.mask.insertf32x4.256",
-+  "llvm.x86.avx512.mask.insertf32x4.512",
-+  "llvm.x86.avx512.mask.insertf32x8.512",
-+  "llvm.x86.avx512.mask.insertf64x2.256",
-+  "llvm.x86.avx512.mask.insertf64x2.512",
-+  "llvm.x86.avx512.mask.insertf64x4.512",
-+  "llvm.x86.avx512.mask.inserti32x4.256",
-+  "llvm.x86.avx512.mask.inserti32x4.512",
-+  "llvm.x86.avx512.mask.inserti32x8.512",
-+  "llvm.x86.avx512.mask.inserti64x2.256",
-+  "llvm.x86.avx512.mask.inserti64x2.512",
-+  "llvm.x86.avx512.mask.inserti64x4.512",
-+  "llvm.x86.avx512.mask.lzcnt.d.128",
-+  "llvm.x86.avx512.mask.lzcnt.d.256",
-+  "llvm.x86.avx512.mask.lzcnt.d.512",
-+  "llvm.x86.avx512.mask.lzcnt.q.128",
-+  "llvm.x86.avx512.mask.lzcnt.q.256",
-+  "llvm.x86.avx512.mask.lzcnt.q.512",
-+  "llvm.x86.avx512.mask.max.pd.128",
-+  "llvm.x86.avx512.mask.max.pd.256",
-+  "llvm.x86.avx512.mask.max.pd.512",
-+  "llvm.x86.avx512.mask.max.ps.128",
-+  "llvm.x86.avx512.mask.max.ps.256",
-+  "llvm.x86.avx512.mask.max.ps.512",
-+  "llvm.x86.avx512.mask.max.sd.round",
-+  "llvm.x86.avx512.mask.max.ss.round",
-+  "llvm.x86.avx512.mask.min.pd.128",
-+  "llvm.x86.avx512.mask.min.pd.256",
-+  "llvm.x86.avx512.mask.min.pd.512",
-+  "llvm.x86.avx512.mask.min.ps.128",
-+  "llvm.x86.avx512.mask.min.ps.256",
-+  "llvm.x86.avx512.mask.min.ps.512",
-+  "llvm.x86.avx512.mask.min.sd.round",
-+  "llvm.x86.avx512.mask.min.ss.round",
-+  "llvm.x86.avx512.mask.mul.pd.512",
-+  "llvm.x86.avx512.mask.mul.ps.512",
-+  "llvm.x86.avx512.mask.mul.sd.round",
-+  "llvm.x86.avx512.mask.mul.ss.round",
-+  "llvm.x86.avx512.mask.pabs.b.128",
-+  "llvm.x86.avx512.mask.pabs.b.256",
-+  "llvm.x86.avx512.mask.pabs.b.512",
-+  "llvm.x86.avx512.mask.pabs.d.128",
-+  "llvm.x86.avx512.mask.pabs.d.256",
-+  "llvm.x86.avx512.mask.pabs.d.512",
-+  "llvm.x86.avx512.mask.pabs.q.128",
-+  "llvm.x86.avx512.mask.pabs.q.256",
-+  "llvm.x86.avx512.mask.pabs.q.512",
-+  "llvm.x86.avx512.mask.pabs.w.128",
-+  "llvm.x86.avx512.mask.pabs.w.256",
-+  "llvm.x86.avx512.mask.pabs.w.512",
-+  "llvm.x86.avx512.mask.packssdw.128",
-+  "llvm.x86.avx512.mask.packssdw.256",
-+  "llvm.x86.avx512.mask.packssdw.512",
-+  "llvm.x86.avx512.mask.packsswb.128",
-+  "llvm.x86.avx512.mask.packsswb.256",
-+  "llvm.x86.avx512.mask.packsswb.512",
-+  "llvm.x86.avx512.mask.packusdw.128",
-+  "llvm.x86.avx512.mask.packusdw.256",
-+  "llvm.x86.avx512.mask.packusdw.512",
-+  "llvm.x86.avx512.mask.packuswb.128",
-+  "llvm.x86.avx512.mask.packuswb.256",
-+  "llvm.x86.avx512.mask.packuswb.512",
-+  "llvm.x86.avx512.mask.padds.b.128",
-+  "llvm.x86.avx512.mask.padds.b.256",
-+  "llvm.x86.avx512.mask.padds.b.512",
-+  "llvm.x86.avx512.mask.padds.w.128",
-+  "llvm.x86.avx512.mask.padds.w.256",
-+  "llvm.x86.avx512.mask.padds.w.512",
-+  "llvm.x86.avx512.mask.paddus.b.128",
-+  "llvm.x86.avx512.mask.paddus.b.256",
-+  "llvm.x86.avx512.mask.paddus.b.512",
-+  "llvm.x86.avx512.mask.paddus.w.128",
-+  "llvm.x86.avx512.mask.paddus.w.256",
-+  "llvm.x86.avx512.mask.paddus.w.512",
-+  "llvm.x86.avx512.mask.pavg.b.128",
-+  "llvm.x86.avx512.mask.pavg.b.256",
-+  "llvm.x86.avx512.mask.pavg.b.512",
-+  "llvm.x86.avx512.mask.pavg.w.128",
-+  "llvm.x86.avx512.mask.pavg.w.256",
-+  "llvm.x86.avx512.mask.pavg.w.512",
-+  "llvm.x86.avx512.mask.pbroadcast.b.gpr.128",
-+  "llvm.x86.avx512.mask.pbroadcast.b.gpr.256",
-+  "llvm.x86.avx512.mask.pbroadcast.b.gpr.512",
-+  "llvm.x86.avx512.mask.pbroadcast.d.gpr.128",
-+  "llvm.x86.avx512.mask.pbroadcast.d.gpr.256",
-+  "llvm.x86.avx512.mask.pbroadcast.d.gpr.512",
-+  "llvm.x86.avx512.mask.pbroadcast.q.gpr.128",
-+  "llvm.x86.avx512.mask.pbroadcast.q.gpr.256",
-+  "llvm.x86.avx512.mask.pbroadcast.q.gpr.512",
-+  "llvm.x86.avx512.mask.pbroadcast.q.mem.512",
-+  "llvm.x86.avx512.mask.pbroadcast.w.gpr.128",
-+  "llvm.x86.avx512.mask.pbroadcast.w.gpr.256",
-+  "llvm.x86.avx512.mask.pbroadcast.w.gpr.512",
-+  "llvm.x86.avx512.mask.permvar.df.256",
-+  "llvm.x86.avx512.mask.permvar.df.512",
-+  "llvm.x86.avx512.mask.permvar.di.256",
-+  "llvm.x86.avx512.mask.permvar.di.512",
-+  "llvm.x86.avx512.mask.permvar.hi.128",
-+  "llvm.x86.avx512.mask.permvar.hi.256",
-+  "llvm.x86.avx512.mask.permvar.hi.512",
-+  "llvm.x86.avx512.mask.permvar.qi.128",
-+  "llvm.x86.avx512.mask.permvar.qi.256",
-+  "llvm.x86.avx512.mask.permvar.qi.512",
-+  "llvm.x86.avx512.mask.permvar.sf.256",
-+  "llvm.x86.avx512.mask.permvar.sf.512",
-+  "llvm.x86.avx512.mask.permvar.si.256",
-+  "llvm.x86.avx512.mask.permvar.si.512",
-+  "llvm.x86.avx512.mask.pmaddubs.w.128",
-+  "llvm.x86.avx512.mask.pmaddubs.w.256",
-+  "llvm.x86.avx512.mask.pmaddubs.w.512",
-+  "llvm.x86.avx512.mask.pmaddw.d.128",
-+  "llvm.x86.avx512.mask.pmaddw.d.256",
-+  "llvm.x86.avx512.mask.pmaddw.d.512",
-+  "llvm.x86.avx512.mask.pmov.db.128",
-+  "llvm.x86.avx512.mask.pmov.db.256",
-+  "llvm.x86.avx512.mask.pmov.db.512",
-+  "llvm.x86.avx512.mask.pmov.db.mem.128",
-+  "llvm.x86.avx512.mask.pmov.db.mem.256",
-+  "llvm.x86.avx512.mask.pmov.db.mem.512",
-+  "llvm.x86.avx512.mask.pmov.dw.128",
-+  "llvm.x86.avx512.mask.pmov.dw.256",
-+  "llvm.x86.avx512.mask.pmov.dw.512",
-+  "llvm.x86.avx512.mask.pmov.dw.mem.128",
-+  "llvm.x86.avx512.mask.pmov.dw.mem.256",
-+  "llvm.x86.avx512.mask.pmov.dw.mem.512",
-+  "llvm.x86.avx512.mask.pmov.qb.128",
-+  "llvm.x86.avx512.mask.pmov.qb.256",
-+  "llvm.x86.avx512.mask.pmov.qb.512",
-+  "llvm.x86.avx512.mask.pmov.qb.mem.128",
-+  "llvm.x86.avx512.mask.pmov.qb.mem.256",
-+  "llvm.x86.avx512.mask.pmov.qb.mem.512",
-+  "llvm.x86.avx512.mask.pmov.qd.128",
-+  "llvm.x86.avx512.mask.pmov.qd.256",
-+  "llvm.x86.avx512.mask.pmov.qd.512",
-+  "llvm.x86.avx512.mask.pmov.qd.mem.128",
-+  "llvm.x86.avx512.mask.pmov.qd.mem.256",
-+  "llvm.x86.avx512.mask.pmov.qd.mem.512",
-+  "llvm.x86.avx512.mask.pmov.qw.128",
-+  "llvm.x86.avx512.mask.pmov.qw.256",
-+  "llvm.x86.avx512.mask.pmov.qw.512",
-+  "llvm.x86.avx512.mask.pmov.qw.mem.128",
-+  "llvm.x86.avx512.mask.pmov.qw.mem.256",
-+  "llvm.x86.avx512.mask.pmov.qw.mem.512",
-+  "llvm.x86.avx512.mask.pmov.wb.128",
-+  "llvm.x86.avx512.mask.pmov.wb.256",
-+  "llvm.x86.avx512.mask.pmov.wb.512",
-+  "llvm.x86.avx512.mask.pmov.wb.mem.128",
-+  "llvm.x86.avx512.mask.pmov.wb.mem.256",
-+  "llvm.x86.avx512.mask.pmov.wb.mem.512",
-+  "llvm.x86.avx512.mask.pmovs.db.128",
-+  "llvm.x86.avx512.mask.pmovs.db.256",
-+  "llvm.x86.avx512.mask.pmovs.db.512",
-+  "llvm.x86.avx512.mask.pmovs.db.mem.128",
-+  "llvm.x86.avx512.mask.pmovs.db.mem.256",
-+  "llvm.x86.avx512.mask.pmovs.db.mem.512",
-+  "llvm.x86.avx512.mask.pmovs.dw.128",
-+  "llvm.x86.avx512.mask.pmovs.dw.256",
-+  "llvm.x86.avx512.mask.pmovs.dw.512",
-+  "llvm.x86.avx512.mask.pmovs.dw.mem.128",
-+  "llvm.x86.avx512.mask.pmovs.dw.mem.256",
-+  "llvm.x86.avx512.mask.pmovs.dw.mem.512",
-+  "llvm.x86.avx512.mask.pmovs.qb.128",
-+  "llvm.x86.avx512.mask.pmovs.qb.256",
-+  "llvm.x86.avx512.mask.pmovs.qb.512",
-+  "llvm.x86.avx512.mask.pmovs.qb.mem.128",
-+  "llvm.x86.avx512.mask.pmovs.qb.mem.256",
-+  "llvm.x86.avx512.mask.pmovs.qb.mem.512",
-+  "llvm.x86.avx512.mask.pmovs.qd.128",
-+  "llvm.x86.avx512.mask.pmovs.qd.256",
-+  "llvm.x86.avx512.mask.pmovs.qd.512",
-+  "llvm.x86.avx512.mask.pmovs.qd.mem.128",
-+  "llvm.x86.avx512.mask.pmovs.qd.mem.256",
-+  "llvm.x86.avx512.mask.pmovs.qd.mem.512",
-+  "llvm.x86.avx512.mask.pmovs.qw.128",
-+  "llvm.x86.avx512.mask.pmovs.qw.256",
-+  "llvm.x86.avx512.mask.pmovs.qw.512",
-+  "llvm.x86.avx512.mask.pmovs.qw.mem.128",
-+  "llvm.x86.avx512.mask.pmovs.qw.mem.256",
-+  "llvm.x86.avx512.mask.pmovs.qw.mem.512",
-+  "llvm.x86.avx512.mask.pmovs.wb.128",
-+  "llvm.x86.avx512.mask.pmovs.wb.256",
-+  "llvm.x86.avx512.mask.pmovs.wb.512",
-+  "llvm.x86.avx512.mask.pmovs.wb.mem.128",
-+  "llvm.x86.avx512.mask.pmovs.wb.mem.256",
-+  "llvm.x86.avx512.mask.pmovs.wb.mem.512",
-+  "llvm.x86.avx512.mask.pmovus.db.128",
-+  "llvm.x86.avx512.mask.pmovus.db.256",
-+  "llvm.x86.avx512.mask.pmovus.db.512",
-+  "llvm.x86.avx512.mask.pmovus.db.mem.128",
-+  "llvm.x86.avx512.mask.pmovus.db.mem.256",
-+  "llvm.x86.avx512.mask.pmovus.db.mem.512",
-+  "llvm.x86.avx512.mask.pmovus.dw.128",
-+  "llvm.x86.avx512.mask.pmovus.dw.256",
-+  "llvm.x86.avx512.mask.pmovus.dw.512",
-+  "llvm.x86.avx512.mask.pmovus.dw.mem.128",
-+  "llvm.x86.avx512.mask.pmovus.dw.mem.256",
-+  "llvm.x86.avx512.mask.pmovus.dw.mem.512",
-+  "llvm.x86.avx512.mask.pmovus.qb.128",
-+  "llvm.x86.avx512.mask.pmovus.qb.256",
-+  "llvm.x86.avx512.mask.pmovus.qb.512",
-+  "llvm.x86.avx512.mask.pmovus.qb.mem.128",
-+  "llvm.x86.avx512.mask.pmovus.qb.mem.256",
-+  "llvm.x86.avx512.mask.pmovus.qb.mem.512",
-+  "llvm.x86.avx512.mask.pmovus.qd.128",
-+  "llvm.x86.avx512.mask.pmovus.qd.256",
-+  "llvm.x86.avx512.mask.pmovus.qd.512",
-+  "llvm.x86.avx512.mask.pmovus.qd.mem.128",
-+  "llvm.x86.avx512.mask.pmovus.qd.mem.256",
-+  "llvm.x86.avx512.mask.pmovus.qd.mem.512",
-+  "llvm.x86.avx512.mask.pmovus.qw.128",
-+  "llvm.x86.avx512.mask.pmovus.qw.256",
-+  "llvm.x86.avx512.mask.pmovus.qw.512",
-+  "llvm.x86.avx512.mask.pmovus.qw.mem.128",
-+  "llvm.x86.avx512.mask.pmovus.qw.mem.256",
-+  "llvm.x86.avx512.mask.pmovus.qw.mem.512",
-+  "llvm.x86.avx512.mask.pmovus.wb.128",
-+  "llvm.x86.avx512.mask.pmovus.wb.256",
-+  "llvm.x86.avx512.mask.pmovus.wb.512",
-+  "llvm.x86.avx512.mask.pmovus.wb.mem.128",
-+  "llvm.x86.avx512.mask.pmovus.wb.mem.256",
-+  "llvm.x86.avx512.mask.pmovus.wb.mem.512",
-+  "llvm.x86.avx512.mask.pmul.dq.128",
-+  "llvm.x86.avx512.mask.pmul.dq.256",
-+  "llvm.x86.avx512.mask.pmul.dq.512",
-+  "llvm.x86.avx512.mask.pmul.hr.sw.128",
-+  "llvm.x86.avx512.mask.pmul.hr.sw.256",
-+  "llvm.x86.avx512.mask.pmul.hr.sw.512",
-+  "llvm.x86.avx512.mask.pmulh.w.128",
-+  "llvm.x86.avx512.mask.pmulh.w.256",
-+  "llvm.x86.avx512.mask.pmulh.w.512",
-+  "llvm.x86.avx512.mask.pmulhu.w.128",
-+  "llvm.x86.avx512.mask.pmulhu.w.256",
-+  "llvm.x86.avx512.mask.pmulhu.w.512",
-+  "llvm.x86.avx512.mask.pmultishift.qb.128",
-+  "llvm.x86.avx512.mask.pmultishift.qb.256",
-+  "llvm.x86.avx512.mask.pmultishift.qb.512",
-+  "llvm.x86.avx512.mask.pmulu.dq.128",
-+  "llvm.x86.avx512.mask.pmulu.dq.256",
-+  "llvm.x86.avx512.mask.pmulu.dq.512",
-+  "llvm.x86.avx512.mask.prol.d.128",
-+  "llvm.x86.avx512.mask.prol.d.256",
-+  "llvm.x86.avx512.mask.prol.d.512",
-+  "llvm.x86.avx512.mask.prol.q.128",
-+  "llvm.x86.avx512.mask.prol.q.256",
-+  "llvm.x86.avx512.mask.prol.q.512",
-+  "llvm.x86.avx512.mask.prolv.d.128",
-+  "llvm.x86.avx512.mask.prolv.d.256",
-+  "llvm.x86.avx512.mask.prolv.d.512",
-+  "llvm.x86.avx512.mask.prolv.q.128",
-+  "llvm.x86.avx512.mask.prolv.q.256",
-+  "llvm.x86.avx512.mask.prolv.q.512",
-+  "llvm.x86.avx512.mask.pror.d.128",
-+  "llvm.x86.avx512.mask.pror.d.256",
-+  "llvm.x86.avx512.mask.pror.d.512",
-+  "llvm.x86.avx512.mask.pror.q.128",
-+  "llvm.x86.avx512.mask.pror.q.256",
-+  "llvm.x86.avx512.mask.pror.q.512",
-+  "llvm.x86.avx512.mask.prorv.d.128",
-+  "llvm.x86.avx512.mask.prorv.d.256",
-+  "llvm.x86.avx512.mask.prorv.d.512",
-+  "llvm.x86.avx512.mask.prorv.q.128",
-+  "llvm.x86.avx512.mask.prorv.q.256",
-+  "llvm.x86.avx512.mask.prorv.q.512",
-+  "llvm.x86.avx512.mask.psubs.b.128",
-+  "llvm.x86.avx512.mask.psubs.b.256",
-+  "llvm.x86.avx512.mask.psubs.b.512",
-+  "llvm.x86.avx512.mask.psubs.w.128",
-+  "llvm.x86.avx512.mask.psubs.w.256",
-+  "llvm.x86.avx512.mask.psubs.w.512",
-+  "llvm.x86.avx512.mask.psubus.b.128",
-+  "llvm.x86.avx512.mask.psubus.b.256",
-+  "llvm.x86.avx512.mask.psubus.b.512",
-+  "llvm.x86.avx512.mask.psubus.w.128",
-+  "llvm.x86.avx512.mask.psubus.w.256",
-+  "llvm.x86.avx512.mask.psubus.w.512",
-+  "llvm.x86.avx512.mask.pternlog.d.128",
-+  "llvm.x86.avx512.mask.pternlog.d.256",
-+  "llvm.x86.avx512.mask.pternlog.d.512",
-+  "llvm.x86.avx512.mask.pternlog.q.128",
-+  "llvm.x86.avx512.mask.pternlog.q.256",
-+  "llvm.x86.avx512.mask.pternlog.q.512",
-+  "llvm.x86.avx512.mask.range.pd.128",
-+  "llvm.x86.avx512.mask.range.pd.256",
-+  "llvm.x86.avx512.mask.range.pd.512",
-+  "llvm.x86.avx512.mask.range.ps.128",
-+  "llvm.x86.avx512.mask.range.ps.256",
-+  "llvm.x86.avx512.mask.range.ps.512",
-+  "llvm.x86.avx512.mask.range.sd",
-+  "llvm.x86.avx512.mask.range.ss",
-+  "llvm.x86.avx512.mask.reduce.pd.128",
-+  "llvm.x86.avx512.mask.reduce.pd.256",
-+  "llvm.x86.avx512.mask.reduce.pd.512",
-+  "llvm.x86.avx512.mask.reduce.ps.128",
-+  "llvm.x86.avx512.mask.reduce.ps.256",
-+  "llvm.x86.avx512.mask.reduce.ps.512",
-+  "llvm.x86.avx512.mask.reduce.sd",
-+  "llvm.x86.avx512.mask.reduce.ss",
-+  "llvm.x86.avx512.mask.rndscale.pd.128",
-+  "llvm.x86.avx512.mask.rndscale.pd.256",
-+  "llvm.x86.avx512.mask.rndscale.pd.512",
-+  "llvm.x86.avx512.mask.rndscale.ps.128",
-+  "llvm.x86.avx512.mask.rndscale.ps.256",
-+  "llvm.x86.avx512.mask.rndscale.ps.512",
-+  "llvm.x86.avx512.mask.rndscale.sd",
-+  "llvm.x86.avx512.mask.rndscale.ss",
-+  "llvm.x86.avx512.mask.scalef.pd.128",
-+  "llvm.x86.avx512.mask.scalef.pd.256",
-+  "llvm.x86.avx512.mask.scalef.pd.512",
-+  "llvm.x86.avx512.mask.scalef.ps.128",
-+  "llvm.x86.avx512.mask.scalef.ps.256",
-+  "llvm.x86.avx512.mask.scalef.ps.512",
-+  "llvm.x86.avx512.mask.scalef.sd",
-+  "llvm.x86.avx512.mask.scalef.ss",
-+  "llvm.x86.avx512.mask.shuf.f32x4",
-+  "llvm.x86.avx512.mask.shuf.f32x4.256",
-+  "llvm.x86.avx512.mask.shuf.f64x2",
-+  "llvm.x86.avx512.mask.shuf.f64x2.256",
-+  "llvm.x86.avx512.mask.shuf.i32x4",
-+  "llvm.x86.avx512.mask.shuf.i32x4.256",
-+  "llvm.x86.avx512.mask.shuf.i64x2",
-+  "llvm.x86.avx512.mask.shuf.i64x2.256",
-+  "llvm.x86.avx512.mask.sqrt.pd.128",
-+  "llvm.x86.avx512.mask.sqrt.pd.256",
-+  "llvm.x86.avx512.mask.sqrt.pd.512",
-+  "llvm.x86.avx512.mask.sqrt.ps.128",
-+  "llvm.x86.avx512.mask.sqrt.ps.256",
-+  "llvm.x86.avx512.mask.sqrt.ps.512",
-+  "llvm.x86.avx512.mask.sqrt.sd",
-+  "llvm.x86.avx512.mask.sqrt.ss",
-+  "llvm.x86.avx512.mask.store.ss",
-+  "llvm.x86.avx512.mask.sub.pd.512",
-+  "llvm.x86.avx512.mask.sub.ps.512",
-+  "llvm.x86.avx512.mask.sub.sd.round",
-+  "llvm.x86.avx512.mask.sub.ss.round",
-+  "llvm.x86.avx512.mask.ucmp.b.128",
-+  "llvm.x86.avx512.mask.ucmp.b.256",
-+  "llvm.x86.avx512.mask.ucmp.b.512",
-+  "llvm.x86.avx512.mask.ucmp.d.128",
-+  "llvm.x86.avx512.mask.ucmp.d.256",
-+  "llvm.x86.avx512.mask.ucmp.d.512",
-+  "llvm.x86.avx512.mask.ucmp.q.128",
-+  "llvm.x86.avx512.mask.ucmp.q.256",
-+  "llvm.x86.avx512.mask.ucmp.q.512",
-+  "llvm.x86.avx512.mask.ucmp.w.128",
-+  "llvm.x86.avx512.mask.ucmp.w.256",
-+  "llvm.x86.avx512.mask.ucmp.w.512",
-+  "llvm.x86.avx512.mask.vcvtph2ps.128",
-+  "llvm.x86.avx512.mask.vcvtph2ps.256",
-+  "llvm.x86.avx512.mask.vcvtph2ps.512",
-+  "llvm.x86.avx512.mask.vcvtps2ph.128",
-+  "llvm.x86.avx512.mask.vcvtps2ph.256",
-+  "llvm.x86.avx512.mask.vcvtps2ph.512",
-+  "llvm.x86.avx512.mask.vextractf32x4.256",
-+  "llvm.x86.avx512.mask.vextractf32x4.512",
-+  "llvm.x86.avx512.mask.vextractf32x8.512",
-+  "llvm.x86.avx512.mask.vextractf64x2.256",
-+  "llvm.x86.avx512.mask.vextractf64x2.512",
-+  "llvm.x86.avx512.mask.vextractf64x4.512",
-+  "llvm.x86.avx512.mask.vextracti32x4.256",
-+  "llvm.x86.avx512.mask.vextracti32x4.512",
-+  "llvm.x86.avx512.mask.vextracti32x8.512",
-+  "llvm.x86.avx512.mask.vextracti64x2.256",
-+  "llvm.x86.avx512.mask.vextracti64x2.512",
-+  "llvm.x86.avx512.mask.vextracti64x4.512",
-+  "llvm.x86.avx512.mask.vfmadd.pd.128",
-+  "llvm.x86.avx512.mask.vfmadd.pd.256",
-+  "llvm.x86.avx512.mask.vfmadd.pd.512",
-+  "llvm.x86.avx512.mask.vfmadd.ps.128",
-+  "llvm.x86.avx512.mask.vfmadd.ps.256",
-+  "llvm.x86.avx512.mask.vfmadd.ps.512",
-+  "llvm.x86.avx512.mask.vfmadd.sd",
-+  "llvm.x86.avx512.mask.vfmadd.ss",
-+  "llvm.x86.avx512.mask.vfmaddsub.pd.128",
-+  "llvm.x86.avx512.mask.vfmaddsub.pd.256",
-+  "llvm.x86.avx512.mask.vfmaddsub.pd.512",
-+  "llvm.x86.avx512.mask.vfmaddsub.ps.128",
-+  "llvm.x86.avx512.mask.vfmaddsub.ps.256",
-+  "llvm.x86.avx512.mask.vfmaddsub.ps.512",
-+  "llvm.x86.avx512.mask.vfnmadd.pd.128",
-+  "llvm.x86.avx512.mask.vfnmadd.pd.256",
-+  "llvm.x86.avx512.mask.vfnmadd.pd.512",
-+  "llvm.x86.avx512.mask.vfnmadd.ps.128",
-+  "llvm.x86.avx512.mask.vfnmadd.ps.256",
-+  "llvm.x86.avx512.mask.vfnmadd.ps.512",
-+  "llvm.x86.avx512.mask.vfnmsub.pd.128",
-+  "llvm.x86.avx512.mask.vfnmsub.pd.256",
-+  "llvm.x86.avx512.mask.vfnmsub.pd.512",
-+  "llvm.x86.avx512.mask.vfnmsub.ps.128",
-+  "llvm.x86.avx512.mask.vfnmsub.ps.256",
-+  "llvm.x86.avx512.mask.vfnmsub.ps.512",
-+  "llvm.x86.avx512.mask.vpermi2var.d.128",
-+  "llvm.x86.avx512.mask.vpermi2var.d.256",
-+  "llvm.x86.avx512.mask.vpermi2var.d.512",
-+  "llvm.x86.avx512.mask.vpermi2var.hi.128",
-+  "llvm.x86.avx512.mask.vpermi2var.hi.256",
-+  "llvm.x86.avx512.mask.vpermi2var.hi.512",
-+  "llvm.x86.avx512.mask.vpermi2var.pd.128",
-+  "llvm.x86.avx512.mask.vpermi2var.pd.256",
-+  "llvm.x86.avx512.mask.vpermi2var.pd.512",
-+  "llvm.x86.avx512.mask.vpermi2var.ps.128",
-+  "llvm.x86.avx512.mask.vpermi2var.ps.256",
-+  "llvm.x86.avx512.mask.vpermi2var.ps.512",
-+  "llvm.x86.avx512.mask.vpermi2var.q.128",
-+  "llvm.x86.avx512.mask.vpermi2var.q.256",
-+  "llvm.x86.avx512.mask.vpermi2var.q.512",
-+  "llvm.x86.avx512.mask.vpermi2var.qi.128",
-+  "llvm.x86.avx512.mask.vpermi2var.qi.256",
-+  "llvm.x86.avx512.mask.vpermi2var.qi.512",
-+  "llvm.x86.avx512.mask.vpermt2var.d.128",
-+  "llvm.x86.avx512.mask.vpermt2var.d.256",
-+  "llvm.x86.avx512.mask.vpermt2var.d.512",
-+  "llvm.x86.avx512.mask.vpermt2var.hi.128",
-+  "llvm.x86.avx512.mask.vpermt2var.hi.256",
-+  "llvm.x86.avx512.mask.vpermt2var.hi.512",
-+  "llvm.x86.avx512.mask.vpermt2var.pd.128",
-+  "llvm.x86.avx512.mask.vpermt2var.pd.256",
-+  "llvm.x86.avx512.mask.vpermt2var.pd.512",
-+  "llvm.x86.avx512.mask.vpermt2var.ps.128",
-+  "llvm.x86.avx512.mask.vpermt2var.ps.256",
-+  "llvm.x86.avx512.mask.vpermt2var.ps.512",
-+  "llvm.x86.avx512.mask.vpermt2var.q.128",
-+  "llvm.x86.avx512.mask.vpermt2var.q.256",
-+  "llvm.x86.avx512.mask.vpermt2var.q.512",
-+  "llvm.x86.avx512.mask.vpermt2var.qi.128",
-+  "llvm.x86.avx512.mask.vpermt2var.qi.256",
-+  "llvm.x86.avx512.mask.vpermt2var.qi.512",
-+  "llvm.x86.avx512.mask.vpmadd52h.uq.128",
-+  "llvm.x86.avx512.mask.vpmadd52h.uq.256",
-+  "llvm.x86.avx512.mask.vpmadd52h.uq.512",
-+  "llvm.x86.avx512.mask.vpmadd52l.uq.128",
-+  "llvm.x86.avx512.mask.vpmadd52l.uq.256",
-+  "llvm.x86.avx512.mask.vpmadd52l.uq.512",
-+  "llvm.x86.avx512.mask3.vfmadd.pd.128",
-+  "llvm.x86.avx512.mask3.vfmadd.pd.256",
-+  "llvm.x86.avx512.mask3.vfmadd.pd.512",
-+  "llvm.x86.avx512.mask3.vfmadd.ps.128",
-+  "llvm.x86.avx512.mask3.vfmadd.ps.256",
-+  "llvm.x86.avx512.mask3.vfmadd.ps.512",
-+  "llvm.x86.avx512.mask3.vfmadd.sd",
-+  "llvm.x86.avx512.mask3.vfmadd.ss",
-+  "llvm.x86.avx512.mask3.vfmaddsub.pd.128",
-+  "llvm.x86.avx512.mask3.vfmaddsub.pd.256",
-+  "llvm.x86.avx512.mask3.vfmaddsub.pd.512",
-+  "llvm.x86.avx512.mask3.vfmaddsub.ps.128",
-+  "llvm.x86.avx512.mask3.vfmaddsub.ps.256",
-+  "llvm.x86.avx512.mask3.vfmaddsub.ps.512",
-+  "llvm.x86.avx512.mask3.vfmsub.pd.128",
-+  "llvm.x86.avx512.mask3.vfmsub.pd.256",
-+  "llvm.x86.avx512.mask3.vfmsub.pd.512",
-+  "llvm.x86.avx512.mask3.vfmsub.ps.128",
-+  "llvm.x86.avx512.mask3.vfmsub.ps.256",
-+  "llvm.x86.avx512.mask3.vfmsub.ps.512",
-+  "llvm.x86.avx512.mask3.vfmsub.sd",
-+  "llvm.x86.avx512.mask3.vfmsub.ss",
-+  "llvm.x86.avx512.mask3.vfmsubadd.pd.128",
-+  "llvm.x86.avx512.mask3.vfmsubadd.pd.256",
-+  "llvm.x86.avx512.mask3.vfmsubadd.pd.512",
-+  "llvm.x86.avx512.mask3.vfmsubadd.ps.128",
-+  "llvm.x86.avx512.mask3.vfmsubadd.ps.256",
-+  "llvm.x86.avx512.mask3.vfmsubadd.ps.512",
-+  "llvm.x86.avx512.mask3.vfnmsub.pd.128",
-+  "llvm.x86.avx512.mask3.vfnmsub.pd.256",
-+  "llvm.x86.avx512.mask3.vfnmsub.pd.512",
-+  "llvm.x86.avx512.mask3.vfnmsub.ps.128",
-+  "llvm.x86.avx512.mask3.vfnmsub.ps.256",
-+  "llvm.x86.avx512.mask3.vfnmsub.ps.512",
-+  "llvm.x86.avx512.mask3.vfnmsub.sd",
-+  "llvm.x86.avx512.mask3.vfnmsub.ss",
-+  "llvm.x86.avx512.maskz.fixupimm.pd.128",
-+  "llvm.x86.avx512.maskz.fixupimm.pd.256",
-+  "llvm.x86.avx512.maskz.fixupimm.pd.512",
-+  "llvm.x86.avx512.maskz.fixupimm.ps.128",
-+  "llvm.x86.avx512.maskz.fixupimm.ps.256",
-+  "llvm.x86.avx512.maskz.fixupimm.ps.512",
-+  "llvm.x86.avx512.maskz.fixupimm.sd",
-+  "llvm.x86.avx512.maskz.fixupimm.ss",
-+  "llvm.x86.avx512.maskz.pternlog.d.128",
-+  "llvm.x86.avx512.maskz.pternlog.d.256",
-+  "llvm.x86.avx512.maskz.pternlog.d.512",
-+  "llvm.x86.avx512.maskz.pternlog.q.128",
-+  "llvm.x86.avx512.maskz.pternlog.q.256",
-+  "llvm.x86.avx512.maskz.pternlog.q.512",
-+  "llvm.x86.avx512.maskz.vfmadd.pd.128",
-+  "llvm.x86.avx512.maskz.vfmadd.pd.256",
-+  "llvm.x86.avx512.maskz.vfmadd.pd.512",
-+  "llvm.x86.avx512.maskz.vfmadd.ps.128",
-+  "llvm.x86.avx512.maskz.vfmadd.ps.256",
-+  "llvm.x86.avx512.maskz.vfmadd.ps.512",
-+  "llvm.x86.avx512.maskz.vfmadd.sd",
-+  "llvm.x86.avx512.maskz.vfmadd.ss",
-+  "llvm.x86.avx512.maskz.vfmaddsub.pd.128",
-+  "llvm.x86.avx512.maskz.vfmaddsub.pd.256",
-+  "llvm.x86.avx512.maskz.vfmaddsub.pd.512",
-+  "llvm.x86.avx512.maskz.vfmaddsub.ps.128",
-+  "llvm.x86.avx512.maskz.vfmaddsub.ps.256",
-+  "llvm.x86.avx512.maskz.vfmaddsub.ps.512",
-+  "llvm.x86.avx512.maskz.vpermt2var.d.128",
-+  "llvm.x86.avx512.maskz.vpermt2var.d.256",
-+  "llvm.x86.avx512.maskz.vpermt2var.d.512",
-+  "llvm.x86.avx512.maskz.vpermt2var.hi.128",
-+  "llvm.x86.avx512.maskz.vpermt2var.hi.256",
-+  "llvm.x86.avx512.maskz.vpermt2var.hi.512",
-+  "llvm.x86.avx512.maskz.vpermt2var.pd.128",
-+  "llvm.x86.avx512.maskz.vpermt2var.pd.256",
-+  "llvm.x86.avx512.maskz.vpermt2var.pd.512",
-+  "llvm.x86.avx512.maskz.vpermt2var.ps.128",
-+  "llvm.x86.avx512.maskz.vpermt2var.ps.256",
-+  "llvm.x86.avx512.maskz.vpermt2var.ps.512",
-+  "llvm.x86.avx512.maskz.vpermt2var.q.128",
-+  "llvm.x86.avx512.maskz.vpermt2var.q.256",
-+  "llvm.x86.avx512.maskz.vpermt2var.q.512",
-+  "llvm.x86.avx512.maskz.vpermt2var.qi.128",
-+  "llvm.x86.avx512.maskz.vpermt2var.qi.256",
-+  "llvm.x86.avx512.maskz.vpermt2var.qi.512",
-+  "llvm.x86.avx512.maskz.vpmadd52h.uq.128",
-+  "llvm.x86.avx512.maskz.vpmadd52h.uq.256",
-+  "llvm.x86.avx512.maskz.vpmadd52h.uq.512",
-+  "llvm.x86.avx512.maskz.vpmadd52l.uq.128",
-+  "llvm.x86.avx512.maskz.vpmadd52l.uq.256",
-+  "llvm.x86.avx512.maskz.vpmadd52l.uq.512",
-+  "llvm.x86.avx512.movntdqa",
-+  "llvm.x86.avx512.psad.bw.512",
-+  "llvm.x86.avx512.pshuf.b.512",
-+  "llvm.x86.avx512.psll.d.512",
-+  "llvm.x86.avx512.psll.q.512",
-+  "llvm.x86.avx512.psll.w.512",
-+  "llvm.x86.avx512.pslli.d.512",
-+  "llvm.x86.avx512.pslli.q.512",
-+  "llvm.x86.avx512.pslli.w.512",
-+  "llvm.x86.avx512.psllv.d.512",
-+  "llvm.x86.avx512.psllv.q.512",
-+  "llvm.x86.avx512.psllv.w.128",
-+  "llvm.x86.avx512.psllv.w.256",
-+  "llvm.x86.avx512.psllv.w.512",
-+  "llvm.x86.avx512.psra.d.512",
-+  "llvm.x86.avx512.psra.q.128",
-+  "llvm.x86.avx512.psra.q.256",
-+  "llvm.x86.avx512.psra.q.512",
-+  "llvm.x86.avx512.psra.w.512",
-+  "llvm.x86.avx512.psrai.d.512",
-+  "llvm.x86.avx512.psrai.q.128",
-+  "llvm.x86.avx512.psrai.q.256",
-+  "llvm.x86.avx512.psrai.q.512",
-+  "llvm.x86.avx512.psrai.w.512",
-+  "llvm.x86.avx512.psrav.d.512",
-+  "llvm.x86.avx512.psrav.q.128",
-+  "llvm.x86.avx512.psrav.q.256",
-+  "llvm.x86.avx512.psrav.q.512",
-+  "llvm.x86.avx512.psrav.w.128",
-+  "llvm.x86.avx512.psrav.w.256",
-+  "llvm.x86.avx512.psrav.w.512",
-+  "llvm.x86.avx512.psrl.d.512",
-+  "llvm.x86.avx512.psrl.q.512",
-+  "llvm.x86.avx512.psrl.w.512",
-+  "llvm.x86.avx512.psrli.d.512",
-+  "llvm.x86.avx512.psrli.q.512",
-+  "llvm.x86.avx512.psrli.w.512",
-+  "llvm.x86.avx512.psrlv.d.512",
-+  "llvm.x86.avx512.psrlv.q.512",
-+  "llvm.x86.avx512.psrlv.w.128",
-+  "llvm.x86.avx512.psrlv.w.256",
-+  "llvm.x86.avx512.psrlv.w.512",
-+  "llvm.x86.avx512.ptestm.b.128",
-+  "llvm.x86.avx512.ptestm.b.256",
-+  "llvm.x86.avx512.ptestm.b.512",
-+  "llvm.x86.avx512.ptestm.d.128",
-+  "llvm.x86.avx512.ptestm.d.256",
-+  "llvm.x86.avx512.ptestm.d.512",
-+  "llvm.x86.avx512.ptestm.q.128",
-+  "llvm.x86.avx512.ptestm.q.256",
-+  "llvm.x86.avx512.ptestm.q.512",
-+  "llvm.x86.avx512.ptestm.w.128",
-+  "llvm.x86.avx512.ptestm.w.256",
-+  "llvm.x86.avx512.ptestm.w.512",
-+  "llvm.x86.avx512.ptestnm.b.128",
-+  "llvm.x86.avx512.ptestnm.b.256",
-+  "llvm.x86.avx512.ptestnm.b.512",
-+  "llvm.x86.avx512.ptestnm.d.128",
-+  "llvm.x86.avx512.ptestnm.d.256",
-+  "llvm.x86.avx512.ptestnm.d.512",
-+  "llvm.x86.avx512.ptestnm.q.128",
-+  "llvm.x86.avx512.ptestnm.q.256",
-+  "llvm.x86.avx512.ptestnm.q.512",
-+  "llvm.x86.avx512.ptestnm.w.128",
-+  "llvm.x86.avx512.ptestnm.w.256",
-+  "llvm.x86.avx512.ptestnm.w.512",
-+  "llvm.x86.avx512.rcp14.pd.128",
-+  "llvm.x86.avx512.rcp14.pd.256",
-+  "llvm.x86.avx512.rcp14.pd.512",
-+  "llvm.x86.avx512.rcp14.ps.128",
-+  "llvm.x86.avx512.rcp14.ps.256",
-+  "llvm.x86.avx512.rcp14.ps.512",
-+  "llvm.x86.avx512.rcp14.sd",
-+  "llvm.x86.avx512.rcp14.ss",
-+  "llvm.x86.avx512.rcp28.pd",
-+  "llvm.x86.avx512.rcp28.ps",
-+  "llvm.x86.avx512.rcp28.sd",
-+  "llvm.x86.avx512.rcp28.ss",
-+  "llvm.x86.avx512.rsqrt14.pd.128",
-+  "llvm.x86.avx512.rsqrt14.pd.256",
-+  "llvm.x86.avx512.rsqrt14.pd.512",
-+  "llvm.x86.avx512.rsqrt14.ps.128",
-+  "llvm.x86.avx512.rsqrt14.ps.256",
-+  "llvm.x86.avx512.rsqrt14.ps.512",
-+  "llvm.x86.avx512.rsqrt14.sd",
-+  "llvm.x86.avx512.rsqrt14.ss",
-+  "llvm.x86.avx512.rsqrt28.pd",
-+  "llvm.x86.avx512.rsqrt28.ps",
-+  "llvm.x86.avx512.rsqrt28.sd",
-+  "llvm.x86.avx512.rsqrt28.ss",
-+  "llvm.x86.avx512.scatter.dpd.512",
-+  "llvm.x86.avx512.scatter.dpi.512",
-+  "llvm.x86.avx512.scatter.dpq.512",
-+  "llvm.x86.avx512.scatter.dps.512",
-+  "llvm.x86.avx512.scatter.qpd.512",
-+  "llvm.x86.avx512.scatter.qpi.512",
-+  "llvm.x86.avx512.scatter.qpq.512",
-+  "llvm.x86.avx512.scatter.qps.512",
-+  "llvm.x86.avx512.scatterdiv2.df",
-+  "llvm.x86.avx512.scatterdiv2.di",
-+  "llvm.x86.avx512.scatterdiv4.df",
-+  "llvm.x86.avx512.scatterdiv4.di",
-+  "llvm.x86.avx512.scatterdiv4.sf",
-+  "llvm.x86.avx512.scatterdiv4.si",
-+  "llvm.x86.avx512.scatterdiv8.sf",
-+  "llvm.x86.avx512.scatterdiv8.si",
-+  "llvm.x86.avx512.scatterpf.dpd.512",
-+  "llvm.x86.avx512.scatterpf.dps.512",
-+  "llvm.x86.avx512.scatterpf.qpd.512",
-+  "llvm.x86.avx512.scatterpf.qps.512",
-+  "llvm.x86.avx512.scattersiv2.df",
-+  "llvm.x86.avx512.scattersiv2.di",
-+  "llvm.x86.avx512.scattersiv4.df",
-+  "llvm.x86.avx512.scattersiv4.di",
-+  "llvm.x86.avx512.scattersiv4.sf",
-+  "llvm.x86.avx512.scattersiv4.si",
-+  "llvm.x86.avx512.scattersiv8.sf",
-+  "llvm.x86.avx512.scattersiv8.si",
-+  "llvm.x86.avx512.vbroadcast.sd.512",
-+  "llvm.x86.avx512.vbroadcast.ss.512",
-+  "llvm.x86.avx512.vcomi.sd",
-+  "llvm.x86.avx512.vcomi.ss",
-+  "llvm.x86.avx512.vcvtsd2si32",
-+  "llvm.x86.avx512.vcvtsd2si64",
-+  "llvm.x86.avx512.vcvtsd2usi32",
-+  "llvm.x86.avx512.vcvtsd2usi64",
-+  "llvm.x86.avx512.vcvtss2si32",
-+  "llvm.x86.avx512.vcvtss2si64",
-+  "llvm.x86.avx512.vcvtss2usi32",
-+  "llvm.x86.avx512.vcvtss2usi64",
-+  "llvm.x86.avx512.vpermilvar.pd.512",
-+  "llvm.x86.avx512.vpermilvar.ps.512",
-+  "llvm.x86.bmi.bextr.32",
-+  "llvm.x86.bmi.bextr.64",
-+  "llvm.x86.bmi.bzhi.32",
-+  "llvm.x86.bmi.bzhi.64",
-+  "llvm.x86.bmi.pdep.32",
-+  "llvm.x86.bmi.pdep.64",
-+  "llvm.x86.bmi.pext.32",
-+  "llvm.x86.bmi.pext.64",
-+  "llvm.x86.clflushopt",
-+  "llvm.x86.flags.read.u32",
-+  "llvm.x86.flags.read.u64",
-+  "llvm.x86.flags.write.u32",
-+  "llvm.x86.flags.write.u64",
-+  "llvm.x86.fma.vfmadd.pd",
-+  "llvm.x86.fma.vfmadd.pd.256",
-+  "llvm.x86.fma.vfmadd.ps",
-+  "llvm.x86.fma.vfmadd.ps.256",
-+  "llvm.x86.fma.vfmadd.sd",
-+  "llvm.x86.fma.vfmadd.ss",
-+  "llvm.x86.fma.vfmaddsub.pd",
-+  "llvm.x86.fma.vfmaddsub.pd.256",
-+  "llvm.x86.fma.vfmaddsub.ps",
-+  "llvm.x86.fma.vfmaddsub.ps.256",
-+  "llvm.x86.fma.vfmsub.pd",
-+  "llvm.x86.fma.vfmsub.pd.256",
-+  "llvm.x86.fma.vfmsub.ps",
-+  "llvm.x86.fma.vfmsub.ps.256",
-+  "llvm.x86.fma.vfmsub.sd",
-+  "llvm.x86.fma.vfmsub.ss",
-+  "llvm.x86.fma.vfmsubadd.pd",
-+  "llvm.x86.fma.vfmsubadd.pd.256",
-+  "llvm.x86.fma.vfmsubadd.ps",
-+  "llvm.x86.fma.vfmsubadd.ps.256",
-+  "llvm.x86.fma.vfnmadd.pd",
-+  "llvm.x86.fma.vfnmadd.pd.256",
-+  "llvm.x86.fma.vfnmadd.ps",
-+  "llvm.x86.fma.vfnmadd.ps.256",
-+  "llvm.x86.fma.vfnmadd.sd",
-+  "llvm.x86.fma.vfnmadd.ss",
-+  "llvm.x86.fma.vfnmsub.pd",
-+  "llvm.x86.fma.vfnmsub.pd.256",
-+  "llvm.x86.fma.vfnmsub.ps",
-+  "llvm.x86.fma.vfnmsub.ps.256",
-+  "llvm.x86.fma.vfnmsub.sd",
-+  "llvm.x86.fma.vfnmsub.ss",
-+  "llvm.x86.fxrstor",
-+  "llvm.x86.fxrstor64",
-+  "llvm.x86.fxsave",
-+  "llvm.x86.fxsave64",
-+  "llvm.x86.int",
-+  "llvm.x86.mmx.emms",
-+  "llvm.x86.mmx.femms",
-+  "llvm.x86.mmx.maskmovq",
-+  "llvm.x86.mmx.movnt.dq",
-+  "llvm.x86.mmx.packssdw",
-+  "llvm.x86.mmx.packsswb",
-+  "llvm.x86.mmx.packuswb",
-+  "llvm.x86.mmx.padd.b",
-+  "llvm.x86.mmx.padd.d",
-+  "llvm.x86.mmx.padd.q",
-+  "llvm.x86.mmx.padd.w",
-+  "llvm.x86.mmx.padds.b",
-+  "llvm.x86.mmx.padds.w",
-+  "llvm.x86.mmx.paddus.b",
-+  "llvm.x86.mmx.paddus.w",
-+  "llvm.x86.mmx.palignr.b",
-+  "llvm.x86.mmx.pand",
-+  "llvm.x86.mmx.pandn",
-+  "llvm.x86.mmx.pavg.b",
-+  "llvm.x86.mmx.pavg.w",
-+  "llvm.x86.mmx.pcmpeq.b",
-+  "llvm.x86.mmx.pcmpeq.d",
-+  "llvm.x86.mmx.pcmpeq.w",
-+  "llvm.x86.mmx.pcmpgt.b",
-+  "llvm.x86.mmx.pcmpgt.d",
-+  "llvm.x86.mmx.pcmpgt.w",
-+  "llvm.x86.mmx.pextr.w",
-+  "llvm.x86.mmx.pinsr.w",
-+  "llvm.x86.mmx.pmadd.wd",
-+  "llvm.x86.mmx.pmaxs.w",
-+  "llvm.x86.mmx.pmaxu.b",
-+  "llvm.x86.mmx.pmins.w",
-+  "llvm.x86.mmx.pminu.b",
-+  "llvm.x86.mmx.pmovmskb",
-+  "llvm.x86.mmx.pmulh.w",
-+  "llvm.x86.mmx.pmulhu.w",
-+  "llvm.x86.mmx.pmull.w",
-+  "llvm.x86.mmx.pmulu.dq",
-+  "llvm.x86.mmx.por",
-+  "llvm.x86.mmx.psad.bw",
-+  "llvm.x86.mmx.psll.d",
-+  "llvm.x86.mmx.psll.q",
-+  "llvm.x86.mmx.psll.w",
-+  "llvm.x86.mmx.pslli.d",
-+  "llvm.x86.mmx.pslli.q",
-+  "llvm.x86.mmx.pslli.w",
-+  "llvm.x86.mmx.psra.d",
-+  "llvm.x86.mmx.psra.w",
-+  "llvm.x86.mmx.psrai.d",
-+  "llvm.x86.mmx.psrai.w",
-+  "llvm.x86.mmx.psrl.d",
-+  "llvm.x86.mmx.psrl.q",
-+  "llvm.x86.mmx.psrl.w",
-+  "llvm.x86.mmx.psrli.d",
-+  "llvm.x86.mmx.psrli.q",
-+  "llvm.x86.mmx.psrli.w",
-+  "llvm.x86.mmx.psub.b",
-+  "llvm.x86.mmx.psub.d",
-+  "llvm.x86.mmx.psub.q",
-+  "llvm.x86.mmx.psub.w",
-+  "llvm.x86.mmx.psubs.b",
-+  "llvm.x86.mmx.psubs.w",
-+  "llvm.x86.mmx.psubus.b",
-+  "llvm.x86.mmx.psubus.w",
-+  "llvm.x86.mmx.punpckhbw",
-+  "llvm.x86.mmx.punpckhdq",
-+  "llvm.x86.mmx.punpckhwd",
-+  "llvm.x86.mmx.punpcklbw",
-+  "llvm.x86.mmx.punpckldq",
-+  "llvm.x86.mmx.punpcklwd",
-+  "llvm.x86.mmx.pxor",
-+  "llvm.x86.monitorx",
-+  "llvm.x86.mwaitx",
-+  "llvm.x86.pclmulqdq",
-+  "llvm.x86.rdfsbase.32",
-+  "llvm.x86.rdfsbase.64",
-+  "llvm.x86.rdgsbase.32",
-+  "llvm.x86.rdgsbase.64",
-+  "llvm.x86.rdpkru",
-+  "llvm.x86.rdpmc",
-+  "llvm.x86.rdrand.16",
-+  "llvm.x86.rdrand.32",
-+  "llvm.x86.rdrand.64",
-+  "llvm.x86.rdseed.16",
-+  "llvm.x86.rdseed.32",
-+  "llvm.x86.rdseed.64",
-+  "llvm.x86.rdtsc",
-+  "llvm.x86.rdtscp",
-+  "llvm.x86.seh.ehguard",
-+  "llvm.x86.seh.ehregnode",
-+  "llvm.x86.seh.lsda",
-+  "llvm.x86.seh.recoverfp",
-+  "llvm.x86.sha1msg1",
-+  "llvm.x86.sha1msg2",
-+  "llvm.x86.sha1nexte",
-+  "llvm.x86.sha1rnds4",
-+  "llvm.x86.sha256msg1",
-+  "llvm.x86.sha256msg2",
-+  "llvm.x86.sha256rnds2",
-+  "llvm.x86.sse.cmp.ps",
-+  "llvm.x86.sse.cmp.ss",
-+  "llvm.x86.sse.comieq.ss",
-+  "llvm.x86.sse.comige.ss",
-+  "llvm.x86.sse.comigt.ss",
-+  "llvm.x86.sse.comile.ss",
-+  "llvm.x86.sse.comilt.ss",
-+  "llvm.x86.sse.comineq.ss",
-+  "llvm.x86.sse.cvtpd2pi",
-+  "llvm.x86.sse.cvtpi2pd",
-+  "llvm.x86.sse.cvtpi2ps",
-+  "llvm.x86.sse.cvtps2pi",
-+  "llvm.x86.sse.cvtsi2ss",
-+  "llvm.x86.sse.cvtsi642ss",
-+  "llvm.x86.sse.cvtss2si",
-+  "llvm.x86.sse.cvtss2si64",
-+  "llvm.x86.sse.cvttpd2pi",
-+  "llvm.x86.sse.cvttps2pi",
-+  "llvm.x86.sse.cvttss2si",
-+  "llvm.x86.sse.cvttss2si64",
-+  "llvm.x86.sse.ldmxcsr",
-+  "llvm.x86.sse.max.ps",
-+  "llvm.x86.sse.max.ss",
-+  "llvm.x86.sse.min.ps",
-+  "llvm.x86.sse.min.ss",
-+  "llvm.x86.sse.movmsk.ps",
-+  "llvm.x86.sse.pshuf.w",
-+  "llvm.x86.sse.rcp.ps",
-+  "llvm.x86.sse.rcp.ss",
-+  "llvm.x86.sse.rsqrt.ps",
-+  "llvm.x86.sse.rsqrt.ss",
-+  "llvm.x86.sse.sfence",
-+  "llvm.x86.sse.sqrt.ps",
-+  "llvm.x86.sse.sqrt.ss",
-+  "llvm.x86.sse.stmxcsr",
-+  "llvm.x86.sse.ucomieq.ss",
-+  "llvm.x86.sse.ucomige.ss",
-+  "llvm.x86.sse.ucomigt.ss",
-+  "llvm.x86.sse.ucomile.ss",
-+  "llvm.x86.sse.ucomilt.ss",
-+  "llvm.x86.sse.ucomineq.ss",
-+  "llvm.x86.sse2.clflush",
-+  "llvm.x86.sse2.cmp.pd",
-+  "llvm.x86.sse2.cmp.sd",
-+  "llvm.x86.sse2.comieq.sd",
-+  "llvm.x86.sse2.comige.sd",
-+  "llvm.x86.sse2.comigt.sd",
-+  "llvm.x86.sse2.comile.sd",
-+  "llvm.x86.sse2.comilt.sd",
-+  "llvm.x86.sse2.comineq.sd",
-+  "llvm.x86.sse2.cvtdq2ps",
-+  "llvm.x86.sse2.cvtpd2dq",
-+  "llvm.x86.sse2.cvtpd2ps",
-+  "llvm.x86.sse2.cvtps2dq",
-+  "llvm.x86.sse2.cvtsd2si",
-+  "llvm.x86.sse2.cvtsd2si64",
-+  "llvm.x86.sse2.cvtsd2ss",
-+  "llvm.x86.sse2.cvtsi2sd",
-+  "llvm.x86.sse2.cvtsi642sd",
-+  "llvm.x86.sse2.cvtss2sd",
-+  "llvm.x86.sse2.cvttpd2dq",
-+  "llvm.x86.sse2.cvttps2dq",
-+  "llvm.x86.sse2.cvttsd2si",
-+  "llvm.x86.sse2.cvttsd2si64",
-+  "llvm.x86.sse2.lfence",
-+  "llvm.x86.sse2.maskmov.dqu",
-+  "llvm.x86.sse2.max.pd",
-+  "llvm.x86.sse2.max.sd",
-+  "llvm.x86.sse2.mfence",
-+  "llvm.x86.sse2.min.pd",
-+  "llvm.x86.sse2.min.sd",
-+  "llvm.x86.sse2.movmsk.pd",
-+  "llvm.x86.sse2.packssdw.128",
-+  "llvm.x86.sse2.packsswb.128",
-+  "llvm.x86.sse2.packuswb.128",
-+  "llvm.x86.sse2.padds.b",
-+  "llvm.x86.sse2.padds.w",
-+  "llvm.x86.sse2.paddus.b",
-+  "llvm.x86.sse2.paddus.w",
-+  "llvm.x86.sse2.pause",
-+  "llvm.x86.sse2.pavg.b",
-+  "llvm.x86.sse2.pavg.w",
-+  "llvm.x86.sse2.pmadd.wd",
-+  "llvm.x86.sse2.pmovmskb.128",
-+  "llvm.x86.sse2.pmulh.w",
-+  "llvm.x86.sse2.pmulhu.w",
-+  "llvm.x86.sse2.pmulu.dq",
-+  "llvm.x86.sse2.psad.bw",
-+  "llvm.x86.sse2.psll.d",
-+  "llvm.x86.sse2.psll.q",
-+  "llvm.x86.sse2.psll.w",
-+  "llvm.x86.sse2.pslli.d",
-+  "llvm.x86.sse2.pslli.q",
-+  "llvm.x86.sse2.pslli.w",
-+  "llvm.x86.sse2.psra.d",
-+  "llvm.x86.sse2.psra.w",
-+  "llvm.x86.sse2.psrai.d",
-+  "llvm.x86.sse2.psrai.w",
-+  "llvm.x86.sse2.psrl.d",
-+  "llvm.x86.sse2.psrl.q",
-+  "llvm.x86.sse2.psrl.w",
-+  "llvm.x86.sse2.psrli.d",
-+  "llvm.x86.sse2.psrli.q",
-+  "llvm.x86.sse2.psrli.w",
-+  "llvm.x86.sse2.psubs.b",
-+  "llvm.x86.sse2.psubs.w",
-+  "llvm.x86.sse2.psubus.b",
-+  "llvm.x86.sse2.psubus.w",
-+  "llvm.x86.sse2.sqrt.pd",
-+  "llvm.x86.sse2.sqrt.sd",
-+  "llvm.x86.sse2.ucomieq.sd",
-+  "llvm.x86.sse2.ucomige.sd",
-+  "llvm.x86.sse2.ucomigt.sd",
-+  "llvm.x86.sse2.ucomile.sd",
-+  "llvm.x86.sse2.ucomilt.sd",
-+  "llvm.x86.sse2.ucomineq.sd",
-+  "llvm.x86.sse3.addsub.pd",
-+  "llvm.x86.sse3.addsub.ps",
-+  "llvm.x86.sse3.hadd.pd",
-+  "llvm.x86.sse3.hadd.ps",
-+  "llvm.x86.sse3.hsub.pd",
-+  "llvm.x86.sse3.hsub.ps",
-+  "llvm.x86.sse3.ldu.dq",
-+  "llvm.x86.sse3.monitor",
-+  "llvm.x86.sse3.mwait",
-+  "llvm.x86.sse41.blendvpd",
-+  "llvm.x86.sse41.blendvps",
-+  "llvm.x86.sse41.dppd",
-+  "llvm.x86.sse41.dpps",
-+  "llvm.x86.sse41.insertps",
-+  "llvm.x86.sse41.movntdqa",
-+  "llvm.x86.sse41.mpsadbw",
-+  "llvm.x86.sse41.packusdw",
-+  "llvm.x86.sse41.pblendvb",
-+  "llvm.x86.sse41.phminposuw",
-+  "llvm.x86.sse41.pmuldq",
-+  "llvm.x86.sse41.ptestc",
-+  "llvm.x86.sse41.ptestnzc",
-+  "llvm.x86.sse41.ptestz",
-+  "llvm.x86.sse41.round.pd",
-+  "llvm.x86.sse41.round.ps",
-+  "llvm.x86.sse41.round.sd",
-+  "llvm.x86.sse41.round.ss",
-+  "llvm.x86.sse42.crc32.32.16",
-+  "llvm.x86.sse42.crc32.32.32",
-+  "llvm.x86.sse42.crc32.32.8",
-+  "llvm.x86.sse42.crc32.64.64",
-+  "llvm.x86.sse42.pcmpestri128",
-+  "llvm.x86.sse42.pcmpestria128",
-+  "llvm.x86.sse42.pcmpestric128",
-+  "llvm.x86.sse42.pcmpestrio128",
-+  "llvm.x86.sse42.pcmpestris128",
-+  "llvm.x86.sse42.pcmpestriz128",
-+  "llvm.x86.sse42.pcmpestrm128",
-+  "llvm.x86.sse42.pcmpistri128",
-+  "llvm.x86.sse42.pcmpistria128",
-+  "llvm.x86.sse42.pcmpistric128",
-+  "llvm.x86.sse42.pcmpistrio128",
-+  "llvm.x86.sse42.pcmpistris128",
-+  "llvm.x86.sse42.pcmpistriz128",
-+  "llvm.x86.sse42.pcmpistrm128",
-+  "llvm.x86.sse4a.extrq",
-+  "llvm.x86.sse4a.extrqi",
-+  "llvm.x86.sse4a.insertq",
-+  "llvm.x86.sse4a.insertqi",
-+  "llvm.x86.ssse3.pabs.b",
-+  "llvm.x86.ssse3.pabs.b.128",
-+  "llvm.x86.ssse3.pabs.d",
-+  "llvm.x86.ssse3.pabs.d.128",
-+  "llvm.x86.ssse3.pabs.w",
-+  "llvm.x86.ssse3.pabs.w.128",
-+  "llvm.x86.ssse3.phadd.d",
-+  "llvm.x86.ssse3.phadd.d.128",
-+  "llvm.x86.ssse3.phadd.sw",
-+  "llvm.x86.ssse3.phadd.sw.128",
-+  "llvm.x86.ssse3.phadd.w",
-+  "llvm.x86.ssse3.phadd.w.128",
-+  "llvm.x86.ssse3.phsub.d",
-+  "llvm.x86.ssse3.phsub.d.128",
-+  "llvm.x86.ssse3.phsub.sw",
-+  "llvm.x86.ssse3.phsub.sw.128",
-+  "llvm.x86.ssse3.phsub.w",
-+  "llvm.x86.ssse3.phsub.w.128",
-+  "llvm.x86.ssse3.pmadd.ub.sw",
-+  "llvm.x86.ssse3.pmadd.ub.sw.128",
-+  "llvm.x86.ssse3.pmul.hr.sw",
-+  "llvm.x86.ssse3.pmul.hr.sw.128",
-+  "llvm.x86.ssse3.pshuf.b",
-+  "llvm.x86.ssse3.pshuf.b.128",
-+  "llvm.x86.ssse3.psign.b",
-+  "llvm.x86.ssse3.psign.b.128",
-+  "llvm.x86.ssse3.psign.d",
-+  "llvm.x86.ssse3.psign.d.128",
-+  "llvm.x86.ssse3.psign.w",
-+  "llvm.x86.ssse3.psign.w.128",
-+  "llvm.x86.subborrow.u32",
-+  "llvm.x86.subborrow.u64",
-+  "llvm.x86.tbm.bextri.u32",
-+  "llvm.x86.tbm.bextri.u64",
-+  "llvm.x86.vcvtph2ps.128",
-+  "llvm.x86.vcvtph2ps.256",
-+  "llvm.x86.vcvtps2ph.128",
-+  "llvm.x86.vcvtps2ph.256",
-+  "llvm.x86.wrfsbase.32",
-+  "llvm.x86.wrfsbase.64",
-+  "llvm.x86.wrgsbase.32",
-+  "llvm.x86.wrgsbase.64",
-+  "llvm.x86.wrpkru",
-+  "llvm.x86.xabort",
-+  "llvm.x86.xbegin",
-+  "llvm.x86.xend",
-+  "llvm.x86.xgetbv",
-+  "llvm.x86.xop.vfrcz.pd",
-+  "llvm.x86.xop.vfrcz.pd.256",
-+  "llvm.x86.xop.vfrcz.ps",
-+  "llvm.x86.xop.vfrcz.ps.256",
-+  "llvm.x86.xop.vfrcz.sd",
-+  "llvm.x86.xop.vfrcz.ss",
-+  "llvm.x86.xop.vpcmov",
-+  "llvm.x86.xop.vpcmov.256",
-+  "llvm.x86.xop.vpcomb",
-+  "llvm.x86.xop.vpcomd",
-+  "llvm.x86.xop.vpcomq",
-+  "llvm.x86.xop.vpcomub",
-+  "llvm.x86.xop.vpcomud",
-+  "llvm.x86.xop.vpcomuq",
-+  "llvm.x86.xop.vpcomuw",
-+  "llvm.x86.xop.vpcomw",
-+  "llvm.x86.xop.vpermil2pd",
-+  "llvm.x86.xop.vpermil2pd.256",
-+  "llvm.x86.xop.vpermil2ps",
-+  "llvm.x86.xop.vpermil2ps.256",
-+  "llvm.x86.xop.vphaddbd",
-+  "llvm.x86.xop.vphaddbq",
-+  "llvm.x86.xop.vphaddbw",
-+  "llvm.x86.xop.vphadddq",
-+  "llvm.x86.xop.vphaddubd",
-+  "llvm.x86.xop.vphaddubq",
-+  "llvm.x86.xop.vphaddubw",
-+  "llvm.x86.xop.vphaddudq",
-+  "llvm.x86.xop.vphadduwd",
-+  "llvm.x86.xop.vphadduwq",
-+  "llvm.x86.xop.vphaddwd",
-+  "llvm.x86.xop.vphaddwq",
-+  "llvm.x86.xop.vphsubbw",
-+  "llvm.x86.xop.vphsubdq",
-+  "llvm.x86.xop.vphsubwd",
-+  "llvm.x86.xop.vpmacsdd",
-+  "llvm.x86.xop.vpmacsdqh",
-+  "llvm.x86.xop.vpmacsdql",
-+  "llvm.x86.xop.vpmacssdd",
-+  "llvm.x86.xop.vpmacssdqh",
-+  "llvm.x86.xop.vpmacssdql",
-+  "llvm.x86.xop.vpmacsswd",
-+  "llvm.x86.xop.vpmacssww",
-+  "llvm.x86.xop.vpmacswd",
-+  "llvm.x86.xop.vpmacsww",
-+  "llvm.x86.xop.vpmadcsswd",
-+  "llvm.x86.xop.vpmadcswd",
-+  "llvm.x86.xop.vpperm",
-+  "llvm.x86.xop.vprotb",
-+  "llvm.x86.xop.vprotbi",
-+  "llvm.x86.xop.vprotd",
-+  "llvm.x86.xop.vprotdi",
-+  "llvm.x86.xop.vprotq",
-+  "llvm.x86.xop.vprotqi",
-+  "llvm.x86.xop.vprotw",
-+  "llvm.x86.xop.vprotwi",
-+  "llvm.x86.xop.vpshab",
-+  "llvm.x86.xop.vpshad",
-+  "llvm.x86.xop.vpshaq",
-+  "llvm.x86.xop.vpshaw",
-+  "llvm.x86.xop.vpshlb",
-+  "llvm.x86.xop.vpshld",
-+  "llvm.x86.xop.vpshlq",
-+  "llvm.x86.xop.vpshlw",
-+  "llvm.x86.xrstor",
-+  "llvm.x86.xrstor64",
-+  "llvm.x86.xrstors",
-+  "llvm.x86.xrstors64",
-+  "llvm.x86.xsave",
-+  "llvm.x86.xsave64",
-+  "llvm.x86.xsavec",
-+  "llvm.x86.xsavec64",
-+  "llvm.x86.xsaveopt",
-+  "llvm.x86.xsaveopt64",
-+  "llvm.x86.xsaves",
-+  "llvm.x86.xsaves64",
-+  "llvm.x86.xsetbv",
-+  "llvm.x86.xtest",
-+  "llvm.xcore.bitrev",
-+  "llvm.xcore.checkevent",
-+  "llvm.xcore.chkct",
-+  "llvm.xcore.clre",
-+  "llvm.xcore.clrpt",
-+  "llvm.xcore.clrsr",
-+  "llvm.xcore.crc32",
-+  "llvm.xcore.crc8",
-+  "llvm.xcore.edu",
-+  "llvm.xcore.eeu",
-+  "llvm.xcore.endin",
-+  "llvm.xcore.freer",
-+  "llvm.xcore.geted",
-+  "llvm.xcore.getet",
-+  "llvm.xcore.getid",
-+  "llvm.xcore.getps",
-+  "llvm.xcore.getr",
-+  "llvm.xcore.getst",
-+  "llvm.xcore.getts",
-+  "llvm.xcore.in",
-+  "llvm.xcore.inct",
-+  "llvm.xcore.initcp",
-+  "llvm.xcore.initdp",
-+  "llvm.xcore.initlr",
-+  "llvm.xcore.initpc",
-+  "llvm.xcore.initsp",
-+  "llvm.xcore.inshr",
-+  "llvm.xcore.int",
-+  "llvm.xcore.mjoin",
-+  "llvm.xcore.msync",
-+  "llvm.xcore.out",
-+  "llvm.xcore.outct",
-+  "llvm.xcore.outshr",
-+  "llvm.xcore.outt",
-+  "llvm.xcore.peek",
-+  "llvm.xcore.setc",
-+  "llvm.xcore.setclk",
-+  "llvm.xcore.setd",
-+  "llvm.xcore.setev",
-+  "llvm.xcore.setps",
-+  "llvm.xcore.setpsc",
-+  "llvm.xcore.setpt",
-+  "llvm.xcore.setrdy",
-+  "llvm.xcore.setsr",
-+  "llvm.xcore.settw",
-+  "llvm.xcore.setv",
-+  "llvm.xcore.sext",
-+  "llvm.xcore.ssync",
-+  "llvm.xcore.syncr",
-+  "llvm.xcore.testct",
-+  "llvm.xcore.testwct",
-+  "llvm.xcore.waitevent",
-+  "llvm.xcore.zext",
-+#endif
-+
-+// Intrinsic ID to overload bitset
-+#ifdef GET_INTRINSIC_OVERLOAD_TABLE
-+static const uint8_t OTable[] = {
-+  0 | (1<<3) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5),
-+  0,
-+  0 | (1<<2) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<7),
-+  0,
-+  0 | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<5) | (1<<6),
-+  0 | (1<<0) | (1<<1) | (1<<6),
-+  0 | (1<<3) | (1<<5),
-+  0 | (1<<0) | (1<<4) | (1<<5) | (1<<6),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<6) | (1<<7),
-+  0 | (1<<1) | (1<<2) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-+  0 | (1<<5),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<7),
-+  0,
-+  0,
-+  0,
-+  0 | (1<<4) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-+  0 | (1<<0) | (1<<1) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<2) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0,
-+  0 | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-+  0 | (1<<2) | (1<<3),
-+  0 | (1<<3) | (1<<4) | (1<<5),
-+  0 | (1<<1) | (1<<3) | (1<<4) | (1<<5) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2),
-+  0 | (1<<0) | (1<<2) | (1<<5),
-+  0 | (1<<4),
-+  0 | (1<<0) | (1<<1),
-+  0,
-+  0 | (1<<2) | (1<<3) | (1<<4),
-+  0,
-+  0,
-+  0 | (1<<3),
-+  0 | (1<<1),
-+  0,
-+  0,
-+  0 | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<5) | (1<<6),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5),
-+  0,
-+  0,
-+  0 | (1<<0) | (1<<2) | (1<<6) | (1<<7),
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0 | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-+  0,
-+  0 | (1<<7),
-+  0 | (1<<0),
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5),
-+  0,
-+  0,
-+  0,
-+  0 | (1<<2),
-+  0,
-+  0,
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0),
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0 | (1<<0),
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0 | (1<<6) | (1<<7),
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0 | (1<<3),
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0 | (1<<0) | (1<<1),
-+  0 | (1<<4),
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0 | (1<<1) | (1<<2),
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0,
-+  0 | (1<<2) | (1<<4),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
-+  0 | (1<<0) | (1<<1) | (1<<2) | (1<<4) | (1<<5),
-+  0 | (1<<0) | (1<<1) | (1<<2)
-+};
-+
-+return (OTable[id/8] & (1 << (id%8))) != 0;
-+#endif
-+
-+// Global intrinsic function declaration type table.
-+#ifdef GET_INTRINSIC_GENERATOR_GLOBAL
-+static const unsigned IIT_Table[] = {
-+  0x2E, 0x2E2E, (1U<<31) | 1789, 0x10, 0x1F1F, 0x1F1F, 0x2F2F, 
-+  0x2F2F, 0x2E2E0, 0x32F, 0x2F3, 0x44AF2F, 0x449F2F, 0x449F2F, 0x44AF1F, 
-+  0x449F1F, 0x449F1F, 0x44AF1F, 0x449F1F, 0x449F1F, 0x2F2F2F, (1U<<31) | 3646, (1U<<31) | 1009, 
-+  0x2E0, 0x2E1, 0x12E0, 0x2E, (1U<<31) | 1009, (1U<<31) | 982, 0x2E2E1, 0x142E2E, 
-+  0x2E0, (1U<<31) | 1011, 0x1F, 0x22E2E, (1U<<31) | 122, 0x2F2F, 0x11F1F, 0x1F1F, 
-+  0x11F1F, (1U<<31) | 3677, (1U<<31) | 3671, 0x0, 0x0, 0x42E, (1U<<31) | 3650, (1U<<31) | 3649, 
-+  0x2E40, 0x2E50, 0x40, 0x2E0, 0x2E0, 0x2E, 0x2E4, 0x0, 
-+  0x2E4, 0x0, 0x2F2F, 0x2F2F, 0x1F1F1F, (1U<<31) | 3682, (1U<<31) | 2410, (1U<<31) | 3642, 
-+  (1U<<31) | 3706, (1U<<31) | 3686, (1U<<31) | 3698, (1U<<31) | 3690, (1U<<31) | 3715, 0x2F2F, 0x2F2F, 0x4, 
-+  0x2F2F2F2F, 0x2F2F2F2F, 0x42E, 0x2EE2E2E, 0x2E2EE0, 0x2EE2E2E0, 0x1F, 0x2E2E2E0, 
-+  0x4452E0, 0x54452E0, 0x44552E0, (1U<<31) | 2843, 0x2E2E, (1U<<31) | 2844, 0x2E50, 0x2E50, 
-+  0x1F2E2E, 0x2E, (1U<<31) | 3683, 0x42E2E2E, 0x2F2F, 0x2F2F, 0x2F2F, 0x42E0, 
-+  (1U<<31) | 69, (1U<<31) | 1251, (1U<<31) | 1261, (1U<<31) | 1272, (1U<<31) | 78, (1U<<31) | 88, 0x2F2F2F, (1U<<31) | 98, 
-+  (1U<<31) | 98, 0x149F24F0, 0x2F2F2F, 0x2F2F, 0x1CF1F, 0x40, 0x2F2F2F, 0x42F2F, 
-+  0x4442E0, (1U<<31) | 1799, (1U<<31) | 3653, 0x5, 0x42E, 0x2F2F, 0x2F2F, (1U<<31) | 108, 
-+  0x2E4, 0x42E0, 0x42E4, 0x2F2F, (1U<<31) | 108, 0x2F2F, (1U<<31) | 108, 0x2E, 
-+  0x2EE2E0, 0x2E0, 0x2E, 0x2E, 0x0, 0x2F2F, (1U<<31) | 3662, (1U<<31) | 3657, 
-+  (1U<<31) | 108, (1U<<31) | 108, (1U<<31) | 108, 0x2E2E0, 0x2E0, 0x2E0, 0x42E2E2E0, (1U<<31) | 117, 
-+  0x0, 0x444, 0x444, 0x444, 0x444, 0x544, 0x444, 0x444, 
-+  0x544, 0x2C2C2C, 0x2C2C2C, 0x2C2C, 0x2C2C, 0x4A44A4A, 0x44, 0x4A44A4A, 
-+  0x4A44A4A, 0x4A4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x4A4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x40, 
-+  0x40, 0x40, 0x40, (1U<<31) | 997, 0x4F5, (1U<<31) | 997, 0x4F5, 0x1F1F, 
-+  (1U<<31) | 1327, 0x3F3F3F, 0x3F3F, 0x3F3F3F, 0xAFAF1F, 0xAFAF1F, 0xBF2F, 0xAF1F, 
-+  0xAF1F, 0xAF1F, 0xAF1F, 0xAF1F, 0xAF1F, 0xAF1F, 0xAF1F, 0xBF3F, 
-+  0xAF1F, 0xAF1F, 0x3F3F3F, 0x2F2F2F, 0x3F3F3F, 0xBF2F, 0x3F3F3F, 0xBF2F, 
-+  0x3F3F3F, 0x2F2F2F, 0x3F3F3F, 0xBF2F, 0x3F3F3F, 0xBF2F, 0x2F2F2F, 0x2F2F, 
-+  0x2F2F2F, 0x2F2F, 0x2F2F, 0x2F2F, 0x2F2F2F, (1U<<31) | 3528, (1U<<31) | 3518, (1U<<31) | 3506, 
-+  (1U<<31) | 3528, (1U<<31) | 3607, (1U<<31) | 3528, (1U<<31) | 3518, (1U<<31) | 3590, (1U<<31) | 3518, (1U<<31) | 3506, (1U<<31) | 3569, 
-+  (1U<<31) | 3506, 0x3F3F3F, (1U<<31) | 1339, 0x552C, (1U<<31) | 1327, 0x3F3F, (1U<<31) | 1346, (1U<<31) | 1327, 
-+  0x3F3F3F, 0xBF3F, 0xBF1F, 0xBF1F, 0x9F1F, 0x9F1F, 0x9F1F, 0x3F3F3F, 
-+  (1U<<31) | 1334, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0xBF1F, 0x3F3F3F, 0x3F3F3F, 0xBF1F, 
-+  (1U<<31) | 1339, 0x1F1F, 0x1F1F1F, 0x1F1F1F, (1U<<31) | 1339, 0x445, 0x1F1F, 0x1F1F1F, 
-+  0x1F1F1F, (1U<<31) | 1346, (1U<<31) | 1346, 0x1F1F1F, 0x1F1F1F, (1U<<31) | 1346, (1U<<31) | 1346, 0x1F1F1F, 
-+  (1U<<31) | 126, (1U<<31) | 126, 0x3F3F3F, 0x1F1F1F, 0x1F1F1F, (1U<<31) | 1943, 0xCF3F3F0, (1U<<31) | 3484, 
-+  (1U<<31) | 3494, 0xCF3F3F0, (1U<<31) | 3536, (1U<<31) | 3484, (1U<<31) | 3545, (1U<<31) | 3494, (1U<<31) | 3556, (1U<<31) | 1327, 
-+  0x1F1F1F, 0x3F2C3F, 0x3F2C2C3F, (1U<<31) | 1300, (1U<<31) | 1285, 0x3F2C3F3F, (1U<<31) | 1311, (1U<<31) | 1298, 
-+  (1U<<31) | 1283, 0x3F3F3F, 0xBF3F, 0xBF1F, 0xBF1F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 
-+  0x3F3F3F, 0xBF1F, 0x3F3F3F, 0x3F3F3F, 0xBF1F, (1U<<31) | 1339, 0x1F1F1F, 0x1F1F1F, 
-+  (1U<<31) | 1346, 0x1F1F1F, (1U<<31) | 1346, 0x1F1F1F, (1U<<31) | 126, 0x3F3F, 0x3F3F3F, 0x1F1F1F, 
-+  0x3F3F, 0x1F1F1F, (1U<<31) | 1943, 0x1F1F1F, 0x53F5BF3F, 0x4AF1F, 0x4AF1F, 0x7A3A, 
-+  0x49F2F, 0x49F2F, 0x3A7A, 0x43F3F3F, 0x43F3F3F, 0x1F1F, 0x1F1F1F, 0x2F2F2F, 
-+  0x87, 0x2E554, 0x4F54, 0x2E554, 0x4F54, 0x1F1F1F, 0x1FCF1F, 0x1FCF1F, 
-+  0x1444A44, 0x1444A44, 0x1444A444, 0x1444A44, 0x1444A44, 0x1444A44, 0x1444A44, 0x1444A44, 
-+  0x1444A44, 0x1444A44, 0x1444A44, 0x11444A2F, 0x11444A2F, (1U<<31) | 39, (1U<<31) | 39, 0x0, 
-+  0x0, 0x0, 0x42F1, 0x2F2F, 0x7777, 0x7777, 0x7777, 0x7777, 
-+  0x4474, 0x5, (1U<<31) | 145, 0x2F2F2F2F, (1U<<31) | 59, (1U<<31) | 49, 0x444, 0x444, 
-+  0x444, 0x42F2F5, 0x777, 0x2F2F, 0xAF1F, 0x2F2F, 0x4, 0x41F1F5, 
-+  (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 28, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 29, 
-+  (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 29, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, 
-+  (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, 
-+  (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, 
-+  (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 16, (1U<<31) | 16, 
-+  (1U<<31) | 16, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, 
-+  (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, 
-+  (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, 
-+  (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, 
-+  (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, (1U<<31) | 0, 
-+  (1U<<31) | 0, (1U<<31) | 15, (1U<<31) | 15, (1U<<31) | 145, 0x44447, 0x44477, 0x444777, (1U<<31) | 145, 
-+  0x42F2F, 0x4444, 0x2F2F, 0x444, 0x444, 0x14441F1F, 0x5455, 0x4A454A, 
-+  0x4444, 0x1, 0x5455, (1U<<31) | 145, 0x2F2F, 0x77, 0x44, 0x444, 
-+  0x2F2F, 0x2F2F, 0x77, 0x0, 0x0, 0x0, 0x0, 0x0, 
-+  0x40, 0x44, 0x40, 0x5, 0x5, 0x40, 0x40, 0x4444, 
-+  0x4444, 0x4444, 0x1F1F, 0x2F2F, 0x42F2F, 0x0, 0x4, 0x4, 
-+  0x4, 0x4, 0x4, 0x4, 0x4444440, 0x4444440, 0x0, 0x444, 
-+  0x444, 0x444, 0x444, 0x444, 0x444, 0x40, 0x40, 0x40, 
-+  0x4, 0x40, 0x40, 0x4F4, (1U<<31) | 991, 0x2E440, 0x2E440, 0x2E440, 
-+  0x2E440, 0x4F4, (1U<<31) | 991, 0x4444440, 0x4444440, 0x444440, 0x444440, 0x444444, 
-+  0x444444, (1U<<31) | 2037, (1U<<31) | 2037, 0x2C2C2C, 0x2C2C2C, 0x2C2C, 0x2C2C, 0x4A44A4A, 
-+  0x44, 0x4A44A4A, 0x4A44A4A, 0x4A4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x4A4A4A4A, 0x4A4A4A, 
-+  0x4A4A4A4A, 0x3F3F3F, 0x3F3F3F, 0x3F3F, 0xBFBF3F, 0xBFBF3F, 0x3F3F3F3F, 0x3F3F, 
-+  0xBF3F, 0xBF3F, 0x4AF1F, 0x4AF1F, 0x7A3A, 0x49F2F, 0x49F2F, 0x3A7A, 
-+  0xBF3F, 0xBF3F, 0xBF3F, 0xBF3F, 0xBF3F, 0xBF3F, 0x3F3F3F, 0x3F3F3F, 
-+  0x3F3F3F, 0x3F3F3F, 0x4CF3F, (1U<<31) | 2791, (1U<<31) | 2013, (1U<<31) | 2780, (1U<<31) | 1995, (1U<<31) | 2767, 
-+  (1U<<31) | 1973, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, (1U<<31) | 1339, 
-+  (1U<<31) | 1339, (1U<<31) | 1339, 0x3F3F3F, 0xBF3F3F, 0xBF3F3F, 0x3F3F3F, 0xBF3F, 0xBF3F, 
-+  0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 
-+  (1U<<31) | 1339, (1U<<31) | 1322, (1U<<31) | 1322, (1U<<31) | 1322, 0x3F3F, 0x3F3F3F, (1U<<31) | 1327, (1U<<31) | 1327, 
-+  (1U<<31) | 1327, 0x3F3F3F, 0x3F3F3F, (1U<<31) | 1327, (1U<<31) | 1327, (1U<<31) | 1327, 0x3F3F3F, 0x3F3F3F, 
-+  0x3F3F3F, 0x3F3F3F, 0x3F3F3F, (1U<<31) | 1327, 0x3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 
-+  0x3F3F, 0x3F3F, 0x3F3F, 0x3F3F, 0x3F3F, 0x3F3F, (1U<<31) | 1327, 0x3F3F3F, 
-+  0x3F3F3F, 0x3F3F, 0x3F3F3F, (1U<<31) | 1327, 0x3F3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x4BF4F0, 
-+  0x4BFBF4F0, (1U<<31) | 2279, (1U<<31) | 2716, (1U<<31) | 2289, (1U<<31) | 2727, (1U<<31) | 2301, 0x2B2B2B, 0x2B2B2B2B, 
-+  (1U<<31) | 955, (1U<<31) | 953, 0x2B2B2B2B, (1U<<31) | 955, (1U<<31) | 953, (1U<<31) | 951, 0x444, 0x444, 
-+  0x44, 0x40, 0x444, 0x444, 0x2E440, 0x2E440, 0x2E440, 0x2E440, 
-+  0x4F44, 0x2E444, 0x4F44, 0x2E444, 0x40, 0x444, 0x2F7, 0x2F7, 
-+  0x52E5, 0x52E5, 0x52E5, 0x555, 0x44, 0x55, 0x44, 0x444, 
-+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-+  0x444, 0x444, 0x444, 0x444, 0x444, 0x555, 0x555, 0x444, 
-+  0x545, 0x444, 0x444, 0x555, 0x44, 0x44, 0x444, 0x444, 
-+  0x444, 0x444, 0x445, 0x445, 0x444, 0x555, 0x444, 0x555, 
-+  0x444, 0x555, 0x444, 0x555, 0x44, 0x55, 0x44, 0x44, 
-+  0x55, 0x444, 0x444, 0x555, 0x54, 0x54, 0x44, 0x44, 
-+  0x44, 0x44, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x555, 
-+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-+  0x444, 0x444, 0x444, 0x44, 0x44, 0x44, 0x45, 0x44, 
-+  0x444, 0x444, 0x55, 0x45, 0x44, 0x55, 0x55, 0x55, 
-+  0x55, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
-+  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
-+  0x555, 0x555, 0x555, 0x555, 0x555, 0x554, 0x554, 0x554, 
-+  0x554, 0x554, 0x554, 0x554, 0x554, 0x55, 0x555, 0x555, 
-+  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
-+  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
-+  0x555, 0x5555, 0x555, 0x5555, 0x555, 0x555, 0x555, 0x555, 
-+  0x555, 0x555, 0x555, 0x555, 0x444, 0x555, 0x44, 0x44, 
-+  0x444, 0x555, 0x445, 0x445, 0x544, 0x444, 0x444, 0x444, 
-+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-+  0x444, 0x445, 0x445, 0x444, 0x444, 0x444, 0x444, 0x555, 
-+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-+  0x454, 0x554, 0x454, 0x554, 0x454, 0x454, 0x454, 0x454, 
-+  0x454, 0x454, 0x454, 0x454, 0x4555, 0x4555, 0x4555, 0x4555, 
-+  0x4555, 0x4555, 0x4555, 0x4555, 0x554, 0x44, 0x444, 0x444, 
-+  0x44, 0x444, 0x444, 0x444, 0x444, 0x444, 0x554, 0x444, 
-+  0x444, 0x444, 0x444, 0x554, 0x444, 0x444, 0x554, 0x444, 
-+  0x444, 0x45, 0x4444, 0x4444, 0x4444, 0x4444, 0x44, 0x444, 
-+  0x444, 0x44, 0x44, 0x44, 0x444, 0x5545, 0x444, 0x4444, 
-+  0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x4444, 0x4444, 
-+  0x4444, 0x4444, 0x58, 0x57, 0x85, 0x85, 0x87, 0x85, 
-+  0x85, 0x84, 0x84, 0x84, 0x84, 0x75, 0x75, 0x78, 
-+  0x75, 0x75, 0x74, 0x74, 0x74, 0x74, 0x58, 0x57, 
-+  0x48, 0x47, 0x48, 0x47, 0x484, 0x884, 0x884, 0x884, 
-+  0x884, 0x48, 0x48, 0x777, 0x474, 0x774, 0x774, 0x774, 
-+  0x774, 0x777, 0x777, 0x77, 0x7777, 0x7777, 0x47777, 0x7777, 
-+  0x7777, 0x47, 0x47, 0x777, 0x777, 0x777, 0x777, 0x4E4, 
-+  0x5E5, 0x4444, 0x4444, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
-+  0x4455, 0x445, 0x445, 0x444, 0x444, 0x444, 0x444, 0x445, 
-+  0x445, 0x445, 0x445, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
-+  0x4455, 0x444, 0x445, 0x4455, 0x4455, 0x445, 0x444, 0x444, 
-+  0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 
-+  0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 
-+  0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x555, 0x555, 0x555, 
-+  0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 0x555, 
-+  0x555, 0x555, 0x555, 0x555, 0x555, 0x4444, 0x4444, 0x4444, 
-+  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-+  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444, 
-+  0x444, 0x444, 0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 
-+  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-+  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444, 
-+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-+  0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-+  0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
-+  0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 
-+  0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 0x4455, 
-+  0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 0x445, 
-+  0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-+  0x4444, 0x4444, 0x4444, 0x444, 0x444, 0x444, 0x444, 0x444, 
-+  0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-+  0x4444, 0x4444, 0x4444, 0x444, 0x4455, 0x4455, 0x4455, 0x4455, 
-+  0x4455, 0x4455, 0x4455, 0x4455, 0x445, 0x445, 0x445, 0x445, 
-+  0x445, 0x445, 0x445, 0x445, 0x4455, 0x4455, 0x4455, 0x4455, 
-+  0x4455, 0x4455, 0x4455, 0x4455, 0x444, 0x4444, 0x4444, 0x4444, 
-+  0x555, 0x555, 0x5555, 0x5555, 0x555, 0x555, 0x555, 0x555, 
-+  0x5555, 0x5555, 0x554, 0x554, 0x555, 0x555, 0x4455, 0x5555, 
-+  0x5555, 0x5555, 0x4455, 0x4455, 0x4455, 0x4455, 0x555, 0x555, 
-+  0x445, 0x444, 0x445, 0x444, 0x445, 0x445, 0x554, 0x554, 
-+  0x5555, 0x5555, 0x5555, 0x5555, 0x555, 0x555, 0x555, 0x555, 
-+  0x4555, 0x455, 0x454, 0x5555, 0x555, 0x4444, 0x4444, 0x4444, 
-+  0x4444, 0x4444, 0x454, 0x454, 0x454, 0x454, 0x4444, 0x4444, 
-+  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-+  0x4444, 0x445, 0x4455, 0x445, 0x4455, 0x5555, 0x5555, 0x555, 
-+  0x555, 0x5555, 0x5555, 0x555, 0x555, 0x4444, 0x4444, 0x4444, 
-+  0x5555, 0x5555, 0x555, 0x4455, 0x4455, 0x445, 0x445, 0x5555, 
-+  0x5555, 0x555, 0x555, 0x555, 0x555, 0x4444, 0x455, 0x4555, 
-+  0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 
-+  0x4444, 0x444, 0x4444, 0x455, 0x455, 0x455, 0x4555, 0x4555, 
-+  0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 
-+  0x444, 0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 
-+  0x455, 0x455, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 
-+  0x444, 0x454, 0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555, 
-+  0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x444, 
-+  0x454, 0x455, 0x455, 0x44, 0x55, 0x4555, 0x44, 0x54, 
-+  0x44, 0x54, 0x44, 0x44, 0x54, 0x444, 0x444, 0x44, 
-+  0x54, 0x44, 0x54, 0x55, 0x4444, 0x544, 0x4455, 0x555, 
-+  0x44444, 0x5444, 0x44555, 0x5555, 0x55, 0x555, 0x455, 0x4555, 
-+  0x4555, 0x4555, 0x4555, 0x4555, 0x444, 0x4444, 0x4444, 0x4444, 
-+  0x4444, 0x455, 0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 
-+  0x4555, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x455, 
-+  0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x444, 
-+  0x4444, 0x4444, 0x4444, 0x4444, 0x455, 0x455, 0x445, 0x554, 
-+  0x444, 0x444, 0x555, 0x555, 0x555, 0x555, 0x44E4, 0x44, 
-+  0x44, 0x44444, 0x44444, 0x44444, 0x44444, 0x444, 0x444, 0x444, 
-+  0x444, 0x4555, 0x4555, 0x455, 0x455, 0x4555, 0x54, 0x54, 
-+  0x54, 0x55, 0x54, 0x55, 0x54, 0x55, 0x54, 0x55, 
-+  0x44, 0x45, 0x4555, 0x4555, 0x45, 0x45, 0x54, 0x555, 
-+  0x54, 0x555, 0x45, 0x45, 0x4444, 0x4444, 0x4444, 0x4444, 
-+  0x4444, 0x444, 0x454, 0x54, 0x4444, 0x544, 0x4455, 0x555, 
-+  0x444, 0x444, 0x444, 0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 
-+  0x444, 0x55E4, 0x4444, 0x4444, 0x4444, 0x4455, 0x44555, 0x555, 
-+  0x555, 0x555, 0x555, 0x555, 0x555, 0x454, 0x454, 0x54, 
-+  0x455, 0x455, 0x4555, 0x4555, 0x4555, 0x4555, 0x4555, 0x444, 
-+  0x4444, 0x4444, 0x4444, 0x4444, 0x4444, 0x45, 0x555, 0x555, 
-+  0x44, 0x44C4, 0x44D4, 0x4D4C, (1U<<31) | 2855, 0x4D4C, (1U<<31) | 2855, 0x44C, 
-+  0x44D, (1U<<31) | 131, (1U<<31) | 138, (1U<<31) | 131, (1U<<31) | 138, (1U<<31) | 133, (1U<<31) | 140, (1U<<31) | 131, 
-+  (1U<<31) | 138, (1U<<31) | 131, (1U<<31) | 138, (1U<<31) | 1356, (1U<<31) | 1364, (1U<<31) | 131, (1U<<31) | 138, 0x4C4C4C, 
-+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 
-+  0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2749, (1U<<31) | 2809, (1U<<31) | 2749, (1U<<31) | 2809, 0x4C4C4C, 
-+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2749, (1U<<31) | 2809, (1U<<31) | 2749, (1U<<31) | 2809, 0x4C4C4C, 
-+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4C, 
-+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x4C4C4D, 
-+  (1U<<31) | 2829, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2749, (1U<<31) | 2809, (1U<<31) | 2749, 
-+  (1U<<31) | 2809, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 
-+  0x44D4D4D, 0x4C4C4C, 0x4D4D4D, (1U<<31) | 1354, (1U<<31) | 1362, (1U<<31) | 1352, (1U<<31) | 1360, (1U<<31) | 2317, 
-+  (1U<<31) | 2355, (1U<<31) | 2315, (1U<<31) | 2353, 0x44C4C, 0x44D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 
-+  0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 
-+  0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 
-+  0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 
-+  0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 0x4D4D, 0x4D4D, 
-+  (1U<<31) | 2862, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x4C4C, 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C4D, (1U<<31) | 2829, 0x4C, 
-+  0x4D, 0x4C4C, 0x4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 0x4D4D, 0x44C4C4D, 
-+  (1U<<31) | 2373, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44D4D, 
-+  (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44D4D, 
-+  (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x44D4C, (1U<<31) | 2391, 0x44D4C4C, (1U<<31) | 2389, 0x44C4C, 
-+  0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44D4C, (1U<<31) | 2391, 0x44D4C4C, (1U<<31) | 2389, 0x44C4C, 
-+  0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x44D4D, 
-+  (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740, 
-+  (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740, 
-+  (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740, 
-+  (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740, 
-+  (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740, 
-+  (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740, 
-+  (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740, 
-+  (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740, 
-+  (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2742, (1U<<31) | 2802, (1U<<31) | 2740, (1U<<31) | 2800, (1U<<31) | 2740, 
-+  (1U<<31) | 2800, (1U<<31) | 2740, (1U<<31) | 2800, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 
-+  0x44D4D4D, 0x44C4C, 0x44D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 0x44D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x454C4C, 0x454D4D, 0x454C4C4C, 0x454D4D4D, 0x454D4D, (1U<<31) | 2450, 0x454D4D4D, 
-+  (1U<<31) | 2448, 0x44C4C4C, 0x44D4D4D, (1U<<31) | 2333, (1U<<31) | 2361, 0x44C4C4D, (1U<<31) | 2373, (1U<<31) | 2343, 
-+  (1U<<31) | 2371, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x44D4D, (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x4D4D4D, (1U<<31) | 2860, 0x4D4D4D, 
-+  (1U<<31) | 2860, 0x44D4D, (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x44C4D, (1U<<31) | 2383, 0x44C4D4D, 
-+  (1U<<31) | 2381, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D4D, (1U<<31) | 2827, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D4D, 
-+  (1U<<31) | 2827, 0x4C4C4C, 0x4D4D4D, 0x44C4D, (1U<<31) | 2383, 0x44C4D4D, (1U<<31) | 2381, 0x44C4C, 
-+  0x44D4D, 0x44C4C, 0x44D4D, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D4D, (1U<<31) | 2827, 0x4C4C4D, 
-+  (1U<<31) | 2829, 0x4C4C4D4D, (1U<<31) | 2827, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 
-+  0x4D4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 
-+  0x4D4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 
-+  0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x44C4D, 
-+  (1U<<31) | 2383, 0x44C4D4D, (1U<<31) | 2381, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D4D, (1U<<31) | 2827, 0x44C4D, 
-+  (1U<<31) | 2383, 0x44C4D4D, (1U<<31) | 2381, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D4D, (1U<<31) | 2827, (1U<<31) | 2749, 
-+  (1U<<31) | 2809, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 
-+  0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 
-+  0x4D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x444D4D, 
-+  (1U<<31) | 2122, 0x444D4D4D, (1U<<31) | 2120, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x444D4D, 
-+  (1U<<31) | 2122, 0x444D4D4D, (1U<<31) | 2120, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x44C4C, 
-+  0x44D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x444D4D, (1U<<31) | 2122, 0x444D4D4D, (1U<<31) | 2120, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x4C4D, (1U<<31) | 2838, 0x4C4D, (1U<<31) | 2838, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 
-+  0x4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 0x4D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C4D, 
-+  (1U<<31) | 2373, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
-+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2749, (1U<<31) | 2809, (1U<<31) | 2749, (1U<<31) | 2809, 0x4C4C4C, 
-+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2749, (1U<<31) | 2809, (1U<<31) | 2749, (1U<<31) | 2809, 0x4C4C4C, 
-+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4D, (1U<<31) | 2829, 0x4C4C4C, 
-+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, 0x4C4C4D, 
-+  (1U<<31) | 2829, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2749, (1U<<31) | 2809, (1U<<31) | 2749, 
-+  (1U<<31) | 2809, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2860, (1U<<31) | 2758, (1U<<31) | 2818, 0x44D4D, 
-+  (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x44D4D, (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x44D4D, 
-+  (1U<<31) | 2399, 0x44D4D4D, (1U<<31) | 2397, 0x4C4D, (1U<<31) | 2838, 0x4C4D, (1U<<31) | 2838, 0x4C4D4D, 
-+  (1U<<31) | 2836, 0x4C4D4D, (1U<<31) | 2836, 0x4C4D, (1U<<31) | 2838, 0x4C4D, (1U<<31) | 2838, 0x4C4C4C, 
-+  0x4D4D4D, 0x4C4D, (1U<<31) | 2838, 0x4C4D, (1U<<31) | 2838, 0x42E2E2E, 0x42E2E2E, 0x42E2E2E, 
-+  0x42E2E2E, 0x42E2E2E, 0x42E2E2E, 0x442E2E, 0x452E2E, 0x442E2E, 0x442E2E, 0x442E2E, 
-+  0x442E2E2E, 0x442E2E2E, 0x442E2E2E, 0x442E2E2E, 0x442E2E2E, 0x442E2E2E, 0x4442E2E, 0x4452E2E, 
-+  0x4442E2E, 0x4442E2E, 0x4442E2E, 0x4B4B4B, 0x2E0, 0x3939, 0x2A2A, 0x44, 
-+  0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x393939, 0x393939, 0x444, 0x393939, 
-+  0x393939, 0x444, 0x444, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 
-+  0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x444, 
-+  0x393939, 0x2A2A2A, 0x393939, 0x2A2A2A, 0x2A2A2A, 0x2A2A2A, 0x2C2C2C, 0x595959, 
-+  0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x444, 0x2C2C2C, 
-+  0x42C2C, 0x4444, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 
-+  0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 
-+  0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 
-+  0x3B3B3B, 0x4A4A4A, 0x4444, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 
-+  0x45959, 0x43B3B, 0x44A4A, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B, 0x4A4A4A4A, 0x42C2C2C, 
-+  0x4595959, 0x43B3B3B, 0x44A4A4A, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B, 0x4A4A4A4A, 0x42C2C2C, 
-+  0x4595959, 0x43B3B3B, 0x44A4A4A, 0x44, 0x2C2C2C2C, 0x42C2C2C, 0x2C2C2C2C, 0x42C2C2C, 
-+  0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 
-+  0x2C4, 0x594, 0x3B4, 0x2C4, 0x4A4, 0x4, 0x2C2C2C2C, 0x42C2C2C, 
-+  0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 
-+  0x2C4, 0x594, 0x3B4, 0x2C4, 0x4A4, 0x2C2C2C, 0x595959, 0x3B3B3B, 
-+  0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x44, 0x2C2C2C, 0x595959, 
-+  0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 
-+  0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x2C2C2C, 0x595959, 
-+  0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 
-+  0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x39390, 0x39390, 
-+  0x39390, 0x2A2A4, 0x2A2A4, 0x2A2A4, 0x2A2A4, 0x2A2A4, 0x2A2A4, 0x2A2A0, 
-+  0x2A2A0, 0x2A2A0, 0x42C4, 0x4595, 0x43B4, 0x44A4, 0x42C4, 0x4595, 
-+  0x43B4, 0x44A4, 0x440, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 
-+  0x595959, 0x3B3B3B, 0x4A4A4A, 0x4555, 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59, 
-+  0x2C2C3B, 0x3B3B4A, 0x393955, 0x4A4A5959, 0x2C2C3B3B, 0x3B3B4A4A, 0x4A4A5959, 0x2C2C3B3B, 
-+  0x3B3B4A4A, 0x393955, 0x4455, 0x393955, 0x393955, 0x2A2A55, 0x2A2A55, 0x393955, 
-+  0x393955, 0x393955, 0x4455, 0x393955, 0x393955, 0x2A2A55, 0x2A2A55, 0x4A4A5959, 
-+  0x2C2C3B3B, 0x3B3B4A4A, 0x4A4A5959, 0x2C2C3B3B, 0x3B3B4A4A, 0x393955, 0x454, 0x454, 
-+  0x454, 0x454, 0x454, 0x454, 0x898989, 0x7A7A7A, 0x898959, 0x7A7A4A, 
-+  0x898959, 0x7A7A4A, 0x8959, 0x7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 
-+  0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 
-+  0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898989, 0x7A7A7A, 
-+  0x7A7A6B, 0x89897A, 0x598989, 0x4A7A7A, 0x7A89, 0x6B7A, 0x7A89, 0x6B7A, 
-+  0x5989, 0x4A7A, 0x5989, 0x4A7A, 0x4A89, 0x3B7A, 0x4A89, 0x3B7A, 
-+  0x42C, 0x559, 0x43B, 0x44A, 0x8989, 0x7A7A, (1U<<31) | 3462, 0x7A7A7A7A, 
-+  0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 
-+  (1U<<31) | 3462, 0x7A7A7A7A, 0x898989, 0x7A7A7A, 0x8989, 0x7A7A, 0x8989, 0x7A7A, 
-+  0x8989, 0x7A7A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 
-+  0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x8989, 0x7A7A, 
-+  0x898989, 0x7A7A7A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 
-+  0x898959, 0x7A7A4A, 0x898959, 0x7A7A4A, 0x8959, 0x7A4A, 0x8959, 0x7A4A, 
-+  0x7A7A3B, 0x89894A, 0x8959, 0x7A4A, 0x8959, 0x7A4A, 0x4A4A59, 0x2C2C3B, 
-+  0x3B3B4A, 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59, 
-+  0x2C2C3B, 0x3B3B4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 
-+  0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 
-+  0x3B3B3B, 0x4A4A4A, 0x442C2C, 0x545959, 0x443B3B, 0x444A4A, 0x444, 0x2C42C2C, 
-+  0x5945959, 0x3B43B3B, 0x4A44A4A, 0x42E4, 0x42E2C, 0x42E59, 0x42E3B, 0x42E4A, 
-+  0x42C, 0x459, 0x43B, 0x44A, 0x42E4, 0x4444, 0x42E4, 0x4455, 
-+  0x3B3B3B3B, 0x4A4A4A4A, 0x3B3B3B3B, 0x4A4A4A4A, 0x4455, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B, 
-+  0x4A4A4A4A, 0x393955, 0x393955, 0x393955, 0x393955, 0x2C2C2C, 0x595959, 0x3B3B3B, 
-+  0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 
-+  0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 
-+  0x44A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 
-+  0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 
-+  0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 
-+  0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x444, 0x2C2C, 0x4455, 
-+  0x3B3B3B3B, 0x4A4A4A4A, 0x3B3B3B3B, 0x4A4A4A4A, 0x4455, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B, 
-+  0x4A4A4A4A, 0x455, 0x393939, 0x3B3B3B, 0x4A4A4A, 0x393939, 0x39394, 0x39394, 
-+  0x392A39, 0x392A39, 0x393939, 0x444, 0x393939, 0x444, 0x3B3B3B, 0x4A4A4A, 
-+  0x393955, 0x393955, 0x445, 0x445, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 
-+  0x2C2C, 0x5959, 0x3B3B, 0x4A4A, 0x2C2C, 0x5959, 0x3B3B, 0x4A4A, 
-+  0x2C2C2C, 0x42C2C, 0x2C2C2C, 0x42C2C, 0x393939, 0x2C2C2C, 0x595959, 0x3B3B3B, 
-+  0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C, 0x5959, 0x3B3B, 
-+  0x4A4A, 0x393939, 0x2A2A2A, 0x394, 0x394, 0x2A39, 0x2A39, 0x2A39, 
-+  0x2A39, 0x2A39, 0x2A39, 0x2A39, 0x2A39, 0x39392A, 0x44439, 0x44439, 
-+  0x4439, 0x39392A, 0x4439, 0x39392A, 0x4444, 0x2A4, 0x44, 0x439, 
-+  0x42A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 
-+  0x44A4A, 0x42C2C, 0x43B3B, 0x44A4A, 0x455, 0x43939, 0x42A2A, 0x43939, 
-+  0x444, 0x43939, 0x42A2A, 0x43939, 0x42A2A, 0x444, 0x43939, 0x42A2A, 
-+  0x42C2C2C, 0x4595959, 0x43B3B3B, 0x44A4A4A, 0x42C2C2C, 0x4595959, 0x43B3B3B, 0x44A4A4A, 
-+  0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 
-+  0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 
-+  0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 
-+  0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 
-+  0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 
-+  0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 0x44A4A, 
-+  0x42E2C0, 0x42E590, 0x42E3B0, 0x42E4A0, 0x393939, 0x393939, 0x444, 0x393939, 
-+  0x393939, 0x444, 0x444, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 
-+  0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 
-+  0x595959, 0x3B3B3B, 0x4A4A4A, 0x393939, 0x2A2A2A, 0x393939, 0x2A2A2A, 0x2A2A2A, 
-+  0x2A2A2A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x42C2C, 0x45959, 0x43B3B, 
-+  0x44A4A, 0x2C2C2C2C, 0x59595959, 0x3B3B3B3B, 0x4A4A4A4A, 0x440, 0x2C2C2C, 0x42C2C, 
-+  0x44, 0x55, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 
-+  0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 0x2FCF2F, 0x2FCF2F, 
-+  0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1F1FCF1F, 0x1F1FCF1F, 0x1FCF1F, 0x1FCF1F, 
-+  0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x74F7, 0x44F4, 0x44F4, 0x1FCF1F, 
-+  0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x40, 
-+  0x0, 0x44, 0x44, 0x44, 0x85, 0x74, 0x47, 0x58, 
-+  0x44, 0x55, 0x88, 0x77, 0x77, 0x44, 0x54, 0x4F0, 
-+  0x4F0, 0x77, 0x77, 0x87, 0x87, 0x87, 0x87, 0x87, 
-+  0x87, 0x87, 0x87, 0x84, 0x84, 0x84, 0x84, 0x84, 
-+  0x84, 0x85, 0x85, 0x85, 0x85, 0x84, 0x84, 0x84, 
-+  0x84, 0x85, 0x85, 0x85, 0x85, 0x777, 0x777, 0x888, 
-+  0x777, 0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 
-+  0x888, 0x777, 0x777, 0x88, 0x77, 0x77, 0x73, 0x73, 
-+  0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 
-+  0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 
-+  0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 
-+  0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 
-+  0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 0x8888, 0x7777, 
-+  0x7777, 0x8888, 0x7777, 0x7777, 0x8888, 0x7777, 0x7777, 0x8888, 
-+  0x7777, 0x7777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 
-+  0x37, 0x48, 0x48, 0x48, 0x48, 0x47, 0x47, 0x47, 
-+  0x47, 0x2E1, 0x2E1, 0x2E1, 0x2E1, 0x51, 0x51, 0x51, 
-+  0x4CF2F, 0x4CF1F, 0x4CF4F, 0x4CF2F, 0x4CF1F, 0x4CF4F, 0x88, 0x77, 
-+  0x77, 0x58, 0x58, 0x58, 0x58, 0x57, 0x57, 0x57, 
-+  0x57, 0x448, 0x444, 0x555, 0x444, 0x555, 0x0, 0x0, 
-+  0x0, 0x444, 0x555, 0x444, 0x555, 0x88, 0x77, 0x33, 
-+  0x44, 0x55, 0xCF4F, 0x888, 0x777, 0x777, 0x888, 0x777, 
-+  0x777, 0x888, 0x777, 0x777, 0x888, 0x777, 0x777, 0x444, 
-+  0x444, 0x444, 0x555, 0x444, 0x555, 0x44, 0x54, 0x4444, 
-+  0xCF4F, 0xCF4F, 0xCF4F, 0xCF4F, 0xCF4F, 0xCF4F, 0xCF4F, 0xCF4F, 
-+  0xCF4F, 0x88, 0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 
-+  0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 0x4, 0x5, 
-+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-+  0x4F4, 0x444, 0x455, 0x455, 0x88, 0x77, 0x77, 0x88, 
-+  0x77, 0x77, 0x4444, 0x4444, 0x88, 0x77, 0x77, 0x4477, 
-+  0x4444, 0x4477, 0x4444, 0x4477, 0x4444, 0x4477, 0x4444, 0x77, 
-+  0x77, 0x77, 0x77, 0x77, 0x88, 0x77, 0x77, 0x88, 
-+  0x77, 0x77, 0x88, 0x77, 0x77, 0x88, 0x77, 0x77, 
-+  0x4453, 0x4453, 0x4453, 0x4454, 0x4454, 0x4454, 0x4455, 0x4455, 
-+  0x4455, 0x4453, 0x4453, 0x4453, (1U<<31) | 2138, (1U<<31) | 2138, (1U<<31) | 2138, (1U<<31) | 2154, 
-+  (1U<<31) | 2154, (1U<<31) | 2154, (1U<<31) | 2171, (1U<<31) | 2171, (1U<<31) | 2171, (1U<<31) | 2138, (1U<<31) | 2138, (1U<<31) | 2138, 
-+  (1U<<31) | 2129, (1U<<31) | 2129, (1U<<31) | 2129, (1U<<31) | 2145, (1U<<31) | 2145, (1U<<31) | 2145, (1U<<31) | 2129, (1U<<31) | 2129, 
-+  (1U<<31) | 2129, 0x453, 0x453, 0x453, 0x454, 0x454, 0x454, 0x455, 
-+  0x455, 0x455, 0x453, 0x453, 0x453, (1U<<31) | 2428, (1U<<31) | 2428, (1U<<31) | 2428, 
-+  (1U<<31) | 2442, (1U<<31) | 2442, (1U<<31) | 2442, (1U<<31) | 2466, (1U<<31) | 2466, (1U<<31) | 2466, (1U<<31) | 2428, (1U<<31) | 2428, 
-+  (1U<<31) | 2428, (1U<<31) | 2420, (1U<<31) | 2420, (1U<<31) | 2420, (1U<<31) | 2434, (1U<<31) | 2434, (1U<<31) | 2434, (1U<<31) | 2420, 
-+  (1U<<31) | 2420, (1U<<31) | 2420, 0x44453, 0x44453, 0x44453, 0x44454, 0x44454, 0x44454, 
-+  0x44455, 0x44455, 0x44455, 0x44453, 0x44453, 0x44453, (1U<<31) | 2054, (1U<<31) | 2054, 
-+  (1U<<31) | 2054, (1U<<31) | 2072, (1U<<31) | 2072, (1U<<31) | 2072, (1U<<31) | 2091, (1U<<31) | 2091, (1U<<31) | 2091, (1U<<31) | 2054, 
-+  (1U<<31) | 2054, (1U<<31) | 2054, (1U<<31) | 2044, (1U<<31) | 2044, (1U<<31) | 2044, (1U<<31) | 2062, (1U<<31) | 2062, (1U<<31) | 2062, 
-+  (1U<<31) | 2044, (1U<<31) | 2044, (1U<<31) | 2044, 0x4453, 0x4453, 0x4453, 0x4454, 0x4454, 
-+  0x4454, 0x4455, 0x4455, 0x4455, 0x4453, 0x4453, 0x4453, (1U<<31) | 2138, 
-+  (1U<<31) | 2138, (1U<<31) | 2138, (1U<<31) | 2154, (1U<<31) | 2154, (1U<<31) | 2154, (1U<<31) | 2171, (1U<<31) | 2171, (1U<<31) | 2171, 
-+  (1U<<31) | 2138, (1U<<31) | 2138, (1U<<31) | 2138, (1U<<31) | 2129, (1U<<31) | 2129, (1U<<31) | 2129, (1U<<31) | 2145, (1U<<31) | 2145, 
-+  (1U<<31) | 2145, (1U<<31) | 2129, (1U<<31) | 2129, (1U<<31) | 2129, 0x44453, 0x44453, 0x44453, 0x44454, 
-+  0x44454, 0x44454, 0x44455, 0x44455, 0x44455, 0x44453, 0x44453, 0x44453, 
-+  (1U<<31) | 2054, (1U<<31) | 2054, (1U<<31) | 2054, (1U<<31) | 2072, (1U<<31) | 2072, (1U<<31) | 2072, (1U<<31) | 2091, (1U<<31) | 2091, 
-+  (1U<<31) | 2091, (1U<<31) | 2054, (1U<<31) | 2054, (1U<<31) | 2054, (1U<<31) | 2044, (1U<<31) | 2044, (1U<<31) | 2044, (1U<<31) | 2062, 
-+  (1U<<31) | 2062, (1U<<31) | 2062, (1U<<31) | 2044, (1U<<31) | 2044, (1U<<31) | 2044, 0x54, 0x54, 0x54, 
-+  0x54, 0x54, 0x54, 0x34450, 0x34450, 0x34450, 0x44450, 0x44450, 
-+  0x44450, 0x54450, 0x54450, 0x54450, 0x34450, 0x34450, 0x34450, 0x334450, 
-+  0x334450, 0x334450, 0x444450, 0x444450, 0x444450, 0x554450, 0x554450, 0x554450, 
-+  0x334450, 0x334450, 0x334450, 0x33334450, 0x33334450, 0x33334450, 0x44444450, 0x44444450, 
-+  0x44444450, 0x33334450, 0x33334450, 0x33334450, 0x3450, 0x3450, 0x3450, 0x4450, 
-+  0x4450, 0x4450, 0x5450, 0x5450, 0x5450, 0x3450, 0x3450, 0x3450, 
-+  0x33450, 0x33450, 0x33450, 0x44450, 0x44450, 0x44450, 0x55450, 0x55450, 
-+  0x55450, 0x33450, 0x33450, 0x33450, 0x3333450, 0x3333450, 0x3333450, 0x4444450, 
-+  0x4444450, 0x4444450, 0x3333450, 0x3333450, 0x3333450, 0x344450, 0x344450, 0x344450, 
-+  0x444450, 0x444450, 0x444450, 0x544450, 0x544450, 0x544450, 0x344450, 0x344450, 
-+  0x344450, 0x3344450, 0x3344450, 0x3344450, 0x4444450, 0x4444450, 0x4444450, 0x5544450, 
-+  0x5544450, 0x5544450, 0x3344450, 0x3344450, 0x3344450, (1U<<31) | 1058, (1U<<31) | 1058, (1U<<31) | 1058, 
-+  (1U<<31) | 2027, (1U<<31) | 2027, (1U<<31) | 2027, (1U<<31) | 1058, (1U<<31) | 1058, (1U<<31) | 1058, 0x34450, 0x34450, 
-+  0x34450, 0x44450, 0x44450, 0x44450, 0x54450, 0x54450, 0x54450, 0x34450, 
-+  0x34450, 0x34450, 0x334450, 0x334450, 0x334450, 0x444450, 0x444450, 0x444450, 
-+  0x554450, 0x554450, 0x554450, 0x334450, 0x334450, 0x334450, 0x33334450, 0x33334450, 
-+  0x33334450, 0x44444450, 0x44444450, 0x44444450, 0x33334450, 0x33334450, 0x33334450, 0x344450, 
-+  0x344450, 0x344450, 0x444450, 0x444450, 0x444450, 0x544450, 0x544450, 0x544450, 
-+  0x344450, 0x344450, 0x344450, 0x3344450, 0x3344450, 0x3344450, 0x4444450, 0x4444450, 
-+  0x4444450, 0x5544450, 0x5544450, 0x5544450, 0x3344450, 0x3344450, 0x3344450, (1U<<31) | 1058, 
-+  (1U<<31) | 1058, (1U<<31) | 1058, (1U<<31) | 2027, (1U<<31) | 2027, (1U<<31) | 2027, (1U<<31) | 1058, (1U<<31) | 1058, (1U<<31) | 1058, 
-+  0x34450, 0x44450, 0x34450, 0x334450, 0x444450, 0x334450, 0x33334450, 0x44444450, 
-+  0x33334450, 0x3450, 0x4450, 0x3450, 0x33450, 0x44450, 0x33450, 0x3333450, 
-+  0x4444450, 0x3333450, 0x344450, 0x444450, 0x344450, 0x3344450, 0x4444450, 0x3344450, 
-+  (1U<<31) | 1058, (1U<<31) | 2027, (1U<<31) | 1058, 0x34450, 0x44450, 0x34450, 0x334450, 0x444450, 
-+  0x334450, 0x33334450, 0x44444450, 0x33334450, 0x344450, 0x444450, 0x344450, 0x3344450, 
-+  0x4444450, 0x3344450, (1U<<31) | 1058, (1U<<31) | 2027, (1U<<31) | 1058, 0x55, (1U<<31) | 3110, (1U<<31) | 3098, 
-+  (1U<<31) | 3098, (1U<<31) | 3028, (1U<<31) | 3017, (1U<<31) | 3017, (1U<<31) | 2954, (1U<<31) | 2178, (1U<<31) | 2944, (1U<<31) | 2161, 
-+  (1U<<31) | 2944, (1U<<31) | 2161, (1U<<31) | 3154, (1U<<31) | 3143, (1U<<31) | 3143, (1U<<31) | 3068, (1U<<31) | 3058, (1U<<31) | 3058, 
-+  (1U<<31) | 2990, (1U<<31) | 2472, (1U<<31) | 2981, (1U<<31) | 2457, (1U<<31) | 2981, (1U<<31) | 2457, (1U<<31) | 3300, (1U<<31) | 3285, 
-+  (1U<<31) | 3285, (1U<<31) | 3110, (1U<<31) | 3098, (1U<<31) | 3098, (1U<<31) | 3028, (1U<<31) | 2099, (1U<<31) | 3017, (1U<<31) | 2080, 
-+  (1U<<31) | 3017, (1U<<31) | 2080, (1U<<31) | 3356, (1U<<31) | 3342, (1U<<31) | 3342, (1U<<31) | 3154, (1U<<31) | 3143, (1U<<31) | 3143, 
-+  (1U<<31) | 3068, (1U<<31) | 2178, (1U<<31) | 3058, (1U<<31) | 2161, (1U<<31) | 3058, (1U<<31) | 2161, (1U<<31) | 3416, (1U<<31) | 3399, 
-+  (1U<<31) | 3399, (1U<<31) | 3248, (1U<<31) | 3236, (1U<<31) | 3236, (1U<<31) | 3154, (1U<<31) | 2099, (1U<<31) | 3143, (1U<<31) | 2080, 
-+  (1U<<31) | 3143, (1U<<31) | 2080, (1U<<31) | 3200, (1U<<31) | 3187, (1U<<31) | 3187, (1U<<31) | 3110, (1U<<31) | 3098, (1U<<31) | 3098, 
-+  (1U<<31) | 3248, (1U<<31) | 3236, (1U<<31) | 3236, (1U<<31) | 3154, (1U<<31) | 3143, (1U<<31) | 3143, (1U<<31) | 3122, (1U<<31) | 3087, 
-+  (1U<<31) | 3087, (1U<<31) | 3039, (1U<<31) | 3007, (1U<<31) | 3007, (1U<<31) | 2964, (1U<<31) | 2188, (1U<<31) | 2935, (1U<<31) | 2145, 
-+  (1U<<31) | 2935, (1U<<31) | 2145, (1U<<31) | 3165, (1U<<31) | 3133, (1U<<31) | 3133, (1U<<31) | 3078, (1U<<31) | 3049, (1U<<31) | 3049, 
-+  (1U<<31) | 2999, (1U<<31) | 2481, (1U<<31) | 2973, (1U<<31) | 2434, (1U<<31) | 2973, (1U<<31) | 2434, (1U<<31) | 3315, (1U<<31) | 3271, 
-+  (1U<<31) | 3271, (1U<<31) | 3122, (1U<<31) | 3087, (1U<<31) | 3087, (1U<<31) | 3039, (1U<<31) | 2110, (1U<<31) | 3007, (1U<<31) | 2062, 
-+  (1U<<31) | 3007, (1U<<31) | 2062, (1U<<31) | 3370, (1U<<31) | 3329, (1U<<31) | 3329, (1U<<31) | 3165, (1U<<31) | 3133, (1U<<31) | 3133, 
-+  (1U<<31) | 3078, (1U<<31) | 2188, (1U<<31) | 3049, (1U<<31) | 2145, (1U<<31) | 3049, (1U<<31) | 2145, (1U<<31) | 3433, (1U<<31) | 3383, 
-+  (1U<<31) | 3383, (1U<<31) | 3260, (1U<<31) | 3225, (1U<<31) | 3225, (1U<<31) | 3165, (1U<<31) | 2110, (1U<<31) | 3133, (1U<<31) | 2062, 
-+  (1U<<31) | 3133, (1U<<31) | 2062, (1U<<31) | 3213, (1U<<31) | 3175, (1U<<31) | 3175, (1U<<31) | 3122, (1U<<31) | 3087, (1U<<31) | 3087, 
-+  (1U<<31) | 3260, (1U<<31) | 3225, (1U<<31) | 3225, (1U<<31) | 3165, (1U<<31) | 3133, (1U<<31) | 3133, (1U<<31) | 2850, 0x4F5, 
-+  (1U<<31) | 3068, (1U<<31) | 3058, (1U<<31) | 3058, (1U<<31) | 3068, (1U<<31) | 3058, (1U<<31) | 3058, (1U<<31) | 3068, (1U<<31) | 3058, 
-+  (1U<<31) | 3058, (1U<<31) | 3068, (1U<<31) | 3058, (1U<<31) | 3058, (1U<<31) | 3078, (1U<<31) | 3049, (1U<<31) | 3049, (1U<<31) | 3078, 
-+  (1U<<31) | 3049, (1U<<31) | 3049, (1U<<31) | 3078, (1U<<31) | 3049, (1U<<31) | 3049, (1U<<31) | 3078, (1U<<31) | 3049, (1U<<31) | 3049, 
-+  0x88, 0x77, 0x77, 0x54, 0x54, 0x54, 0x54, 0x54, 
-+  0x54, 0x54, 0x54, 0x48, 0x48, 0x48, 0x48, 0x47, 
-+  0x47, 0x47, 0x47, 0x58, 0x58, 0x58, 0x58, 0x57, 
-+  0x57, 0x57, 0x57, 0x595959, 0x595959, 0x595959, 0x595959, 0x2C2C2C2C, 
-+  0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x5959, 0x445959, 0x444A4A, 0x40, 
-+  0x0, 0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x2E2C, 0x2E3B, 0x2E4A, 
-+  0x2E2C, 0x2E2C, 0x2E4A, 0x2E4A, 0x3B, 0x4A0, 0x2E2C0, 0x2E3B0, 
-+  0x2E4A0, 0x2E4A0, 0x2E4A0, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, (1U<<31) | 3722, 0x4A4A4A, 
-+  (1U<<31) | 3720, (1U<<31) | 3720, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 
-+  0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C59, 0x44A7A, 
-+  0x44A7A, 0x2C4, 0x7A7A4A, 0x7A7A44, 0x7A7A4A, 0x7A7A44, 0x2C2C2C, 0x2C2C44, 
-+  0x595959, 0x595944, 0x3B3B3B, 0x3B3B44, 0x4A4A4A, 0x4A4A44, 0x7A7A4A, 0x7A7A44, 
-+  0x7A7A4A, 0x7A7A44, 0x2C2C2C, 0x2C2C44, 0x595959, 0x595944, 0x3B3B3B, 0x3B3B44, 
-+  0x4A4A4A, 0x4A4A44, 0x2C2C2C, 0x2C2C44, 0x595959, 0x595944, 0x3B3B3B, 0x3B3B44, 
-+  0x4A4A4A, 0x4A4A44, 0x2C2C2C, 0x2C2C44, 0x3B3B3B, 0x3B3B44, 0x4A4A4A, 0x4A4A44, 
-+  0x2C2C2C, 0x2C2C44, 0x3B3B3B, 0x3B3B44, 0x4A4A4A, 0x4A4A44, 0x47A4A, 0x47A4A, 
-+  0x2C4, 0x7A7A, 0x2C2C, 0x7A7A, 0x7A7A7A7A, 0x7A7A7A, 0x2C2C2C, 0x595959, 
-+  0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x3B3B3B3B, 0x3B3B3B3B, 
-+  0x7A7A7A, 0x2C2C2C, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x595959, 0x3B3B3B, 
-+  0x4A4A4A, 0x3B3B3B3B, 0x4A2C2C4A, 0x4A3B3B4A, 0x4A3B3B4A, 0x4A2C2C4A, 0x4A3B3B4A, 0x4A3B3B4A, 
-+  0x2C2C3B, 0x3B3B4A, 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59, 0x2C2C3B, 0x3B3B4A, 
-+  0x4A4A59, 0x2C2C3B, 0x3B3B4A, 0x4A4A59, 0x7A7A7A7A, 0x2C4A4A4A, 0x4A4A3B, 0x59594A, 
-+  0x59594A, 0x3B3B2C, 0x3B3B2C, 0x4A4A3B, 0x4A4A3B, 0x59594A, 0x3B3B2C, 0x4A4A3B, 
-+  0x5959, (1U<<31) | 3724, 0x4A4A, 0x7A7A, 0x7A7A, 0x7A7A, 0x7A7A, 0x7A7A, 
-+  0x2C2C2C, 0x595959, 0x59595959, 0x595959, 0x3B3B3B, 0x4A4A4A, 0x4A4A4A4A, 0x4A4A4A, 
-+  0x7A7A, 0x4A4A4A4A, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x4A4A4A, 
-+  0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x2C2C2C, 
-+  0x4A4A4A, (1U<<31) | 3722, 0x4A4A4A, (1U<<31) | 3720, (1U<<31) | 3720, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 
-+  0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x4A4A4A, 0x4A2C4A, 0x4A3B4A, 0x4A2C4A, 0x4A4A4A, 
-+  0x3B4A, 0x2C3B, 0x3B4A, 0x4A59, 0x3B4A, 0x2C3B, 0x3B4A, 0x4A59, 
-+  0x555, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 
-+  0x2E0, 0x555, 0x555, 0x444, 0x444, 0x5, 0x5, 0x5, 
-+  0x5, 0x1, 0x0, 0x1F0, 0x8A8A, 0x8A8A8A, 0x8A8A8A, 0x8A8A, 
-+  0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A8A, 0x8A8A8A, 0x8A8A8A, 0x8A8A8A, 0x8A8A, 
-+  0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x48A8A8A, 
-+  (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, 0x8A8A8A, 0x8A8A8A, 0x8A8A, 0x8A8A, 
-+  (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, 0x8A8A, 0x8A8A, 0x8A8A, 
-+  0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, (1U<<31) | 3475, 0x8A8A8A, 
-+  0x8A8A8A, 0x8A8A8A, (1U<<31) | 3475, (1U<<31) | 3475, 0x8A8A8A, 0x8A8A8A, (1U<<31) | 3475, (1U<<31) | 3475, 
-+  (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, (1U<<31) | 3475, 0x48A, 0x2E8A, 0x2E8A, 0x2E8A, 
-+  0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 
-+  0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A, 0x2E8A0, 0x2E8A0, 0x2E8A0, 
-+  0x2E8A0, 0x2E8A0, 0x2E8A0, 0x2E8A0, 0x2E8A0, 0x2E8A0, 0x2E8A0, 0x50, 
-+  0x50, 0x50, 0x50, 0x0, 0x44, 0x4444, 0x4444, 0x4444, 
-+  0x4444, 0x44, 0x4, 0x44, 0x4, 0x4, 0x44, 0x4, 
-+  0x44, 0x4, 0x5, 0x2E89, 0x2E89, 0x52E4A, 0x52E4A, 0x2E4A, 
-+  0x2E4A, 0x2E890, 0x2E890, 0x52E4A0, 0x52E4A0, 0x2E4A0, 0x2E4A0, 0x888, 
-+  0x888, 0x898959, 0x898944, 0x7A7A4A, 0x7A7A44, 0x898959, 0x898944, 0x7A7A4A, 
-+  0x7A7A44, 0x898959, 0x898944, 0x7A7A4A, 0x7A7A44, 0x897A, 0x894A, 0x894A, 
-+  0x3B7A, 0x7A89, 0x7A7A, 0x597A, 0x4A89, 0x597A, 0x4A89, 0x898989, 
-+  0x7A7A7A, 0x595989, 0x4A4A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x8989, 
-+  0x8989, 0x7A7A, 0x7A7A, 0x8989, 0x7A7A, 0x48959, 0x47A4A, 0x8959, 
-+  0x7A4A, 0x8959, 0x7A4A, 0x45959, 0x4594A4A, 0x4A4A4A, 0x0, (1U<<31) | 753, 
-+  0x44A4A0, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-+  0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 
-+  0x2F2F, 0x2F2F, 0x4, 0x4, 0x42E4, 0x5E50, 0x40, 0x40, 
-+  0x50, 0x42E4, 0x42E4, 0x42E0, 0x52F4, 0x4, 0x2C2C2C, 0x2C2C2C2C, 
-+  0x4A4A4A, 0x595959, 0x3B3B3B, 0x2C2C2C, 0x2C2C2C2C, 0x2C2C2C, 0x2C2C2C, 0x4A4A4A, 
-+  0x595959, 0x3B3B3B, 0x2C2C2C, 0x4A4A4A, 0x595959, 0x3B3B3B, (1U<<31) | 966, (1U<<31) | 2707, 
-+  (1U<<31) | 2926, (1U<<31) | 1235, (1U<<31) | 966, (1U<<31) | 2707, (1U<<31) | 2926, (1U<<31) | 1235, (1U<<31) | 966, (1U<<31) | 2707, 
-+  (1U<<31) | 2926, (1U<<31) | 1235, 0x4A4A4A, (1U<<31) | 1737, (1U<<31) | 2229, (1U<<31) | 2509, (1U<<31) | 1866, 0x42C2C, 
-+  0x44A4A, 0x45959, 0x43B3B, 0x2C2C2C, 0x4A4A4A, 0x595959, 0x3B3B3B, 0x42C2C2C, 
-+  (1U<<31) | 1759, 0x44A4A4A, (1U<<31) | 2207, 0x43B3B3B, (1U<<31) | 1888, 0x42C2C2C, (1U<<31) | 1759, 0x44A4A4A, 
-+  (1U<<31) | 2207, 0x43B3B3B, (1U<<31) | 1888, (1U<<31) | 3453, (1U<<31) | 3453, (1U<<31) | 3453, 0x2C2C2C, (1U<<31) | 966, 
-+  0x4A4A4A, (1U<<31) | 2707, 0x3B3B3B, (1U<<31) | 1235, 0x2C2C2C, (1U<<31) | 966, 0x4A4A4A, (1U<<31) | 2707, 
-+  0x3B3B3B, (1U<<31) | 1235, 0x2C2C2C, (1U<<31) | 966, 0x4A4A4A, (1U<<31) | 2707, 0x3B3B3B, (1U<<31) | 1235, 
-+  0x2C2C2C, (1U<<31) | 966, 0x4A4A4A, (1U<<31) | 2707, 0x3B3B3B, (1U<<31) | 1235, 0x448989, (1U<<31) | 2623, 
-+  0x3B2C2C3B, 0x594A4A59, 0x2C59592C, 0x4A3B3B4A, 0x2C2C3B, 0x4A4A59, 0x59592C, 0x3B3B4A, 
-+  0x2C2C, (1U<<31) | 975, 0x4A4A, (1U<<31) | 2691, 0x3B3B, (1U<<31) | 1244, 0x42E2C, 0x2E42C, 
-+  0x3B2C2C3B, 0x594A4A59, 0x4A3B3B4A, 0x2C2C2C2C, 0x4A4A4A4A, 0x3B3B3B3B, 0x3B2C2C3B, 0x594A4A59, 
-+  0x4A3B3B4A, 0x2C2C2C2C, 0x4A4A4A4A, 0x3B3B3B3B, 0x3B2C2C3B, 0x594A4A59, 0x4A3B3B4A, 0x3B2C2C3B, 
-+  0x594A4A59, 0x4A3B3B4A, 0x2C2C3B, 0x4A4A59, 0x3B3B4A, 0x2C2C2C, 0x4A4A4A, 0x3B3B3B, 
-+  0x2C2C3B, 0x4A4A59, 0x3B3B4A, 0x2C2C2C, 0x4A4A4A, 0x3B3B3B, 0x2C2C3B, 0x4A4A59, 
-+  0x3B3B4A, 0x2C2C3B, 0x4A4A59, 0x3B3B4A, 0x4595959, 0x2C2C2C2C, 0x4A4A3B, (1U<<31) | 2698, 
-+  0x59594A, (1U<<31) | 2917, 0x3B3B2C, (1U<<31) | 1226, 0x4A4A3B, (1U<<31) | 2698, 0x59594A, (1U<<31) | 2917, 
-+  0x3B3B2C, (1U<<31) | 1226, 0x2C2C2C2C, 0x2C2C2C2C, 0x2C2C2C, 0x4A4A4A, 0x595959, 0x3B3B3B, 
-+  0x2C2C2C, 0x2C2C2C, 0x2C2C2C, 0x42C2C2C, 0x2C2C2C, 0x2C2C2C, 0x2C2C2C, 0x2C2C2C, 
-+  0x2C2C2C, 0x2E42C0, (1U<<31) | 1737, (1U<<31) | 1747, (1U<<31) | 2229, (1U<<31) | 2217, (1U<<31) | 1866, (1U<<31) | 1876, 
-+  (1U<<31) | 1737, (1U<<31) | 1747, (1U<<31) | 2229, (1U<<31) | 2217, (1U<<31) | 1866, (1U<<31) | 1876, 0x2C2C4A, 0x4A4A59, 
-+  0x3B3B59, 0x3B3B4A, 0x4A4A2C, 0x59592C, 0x2C2C4, 0x2C3B, 0x4A59, 0x3B4A, 
-+  0x2C3B, 0x4A59, 0x2C3B, 0x4A59, 0x3B4A, 0x3B4A, 0x2C3B, 0x4A59, 
-+  0x3B4A, 0x1F, 0x1F0, (1U<<31) | 3638, (1U<<31) | 3635, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, 
-+  (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3635, (1U<<31) | 3638, (1U<<31) | 3638, 
-+  (1U<<31) | 3638, (1U<<31) | 3635, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3635, (1U<<31) | 3638, (1U<<31) | 3635, (1U<<31) | 3638, 
-+  (1U<<31) | 3638, (1U<<31) | 3635, (1U<<31) | 3635, 0x2E4422, 0x2E5522, 0x2E4422, 0x2E5522, 0x595959, 
-+  0x595959, 0x595959, 0x595959, 0x5959, 0x25959, 0x8A8A8A, 0x7B7B7B, (1U<<31) | 3475, 
-+  0x7B7B7B7B, 0x28A8A8A, 0x27B7B7B, 0x8A7A, 0x8A4A, 0x7B4B, 0x4B7B, 0x8A4A, 
-+  0x7B4B, 0x27B7B7B, 0x8A8A8A, 0x7B7B7B, 0x8A8A8A, 0x7B7B7B, 0x2E2D, 0x592E89, 
-+  0x5A2E8A, 0x4A2E7A, 0x4B2E7B, 0x89592E0, 0x8A5A2E0, 0x7A4A2E0, 0x7B4B2E0, 0x8A8A8A, 
-+  0x7B7B7B, 0x8A8A8A, 0x7B7B7B, 0x8A4, 0x7B4, 0x5A5A4, 0x5A5A4, 0x5A5A4, 
-+  0x7B7B, 0x48A8A, 0x47B7B, 0x7B7B, 0x8A8A, 0x7B7B, 0x28A8A8A, 0x27B7B7B, 
-+  0x24B4B4B, 0x598989, 0x5A8A8A, 0x4A7A7A, 0x4B7B7B, 0x89894, 0x8A8A4, 0x7A7A4, 
-+  0x7B7B4, 0x89894, 0x8A8A4, 0x7A7A4, 0x7B7B4, 0x89894, 0x8A8A4, 0x7A7A4, 
-+  0x7B7B4, 0x0, 0x0, (1U<<31) | 309, (1U<<31) | 397, (1U<<31) | 768, (1U<<31) | 844, (1U<<31) | 623, 
-+  (1U<<31) | 711, (1U<<31) | 429, (1U<<31) | 505, (1U<<31) | 331, (1U<<31) | 343, (1U<<31) | 780, (1U<<31) | 856, (1U<<31) | 645, 
-+  (1U<<31) | 657, (1U<<31) | 451, (1U<<31) | 527, 0x4A2E4A, 0x4B2E4B, 0x592E59, 0x5A2E5A, 0x4A4A2E0, 
-+  0x4B4B2E0, 0x59592E0, 0x5A5A2E0, 0x2E5A, 0x22D2D3C, 0x2D2D, 0x4B4B, 0x3C3C, 
-+  0x4B4B3C, 0x3C3C2D, 0x4B4B3C, 0x3C3C2D, 0x2D2D2D, 0x3C3C3C, 0x2D2D2D, 0x3C3C3C, 
-+  0x2D2D2D, 0x3C3C3C, 0x2D2D2D2D, 0x4B4B4B, 0x4B7B7B, 0x4B4B4B, 0x3C3C3C, 0x3C3C3C, 
-+  0x4B4B4B, 0x3C3C3C, 0x3C3C3C, 0x2D2D3C, 0x3C3C4B, 0x2D4, 0x4B4B5A, 0x3C3C3C, 
-+  0x3C3C3C, 0x3C3C3C, 0x4B4B5A, 0x2D2D5A, 0x2D2D2D, 0x2D2D2D, 0x4B4B4B, 0x3C3C3C, 
-+  0x4A4B4B, 0x595A5A, 0x3B3C3C, 0x44B4B, 0x45A5A, 0x43C3C, 0x4A4A4A, 0x4B4B4B, 
-+  0x595959, 0x5A5A5A, 0x4A4B4B, 0x3B3C3C, 0x44B4B, 0x43C3C, 0x4A4A4A, 0x4B4B4B, 
-+  0x4A4B4B, 0x595A5A, 0x3B3C3C, 0x44B4B, 0x45A5A, 0x43C3C, 0x4A4A4A, 0x4B4B4B, 
-+  0x595959, 0x5A5A5A, 0x2D2D2D, 0x3C3C3C, 0x2D2D2D, 0x3C3C3C, 0x25A5A5A, 0x259, 
-+  0x25A, 0x25B, 0x34A, 0x34B, 0x34C, 0x2C3, 0x2D4, (1U<<31) | 1029, 
-+  0x4A2, 0x4B2, 0x4C3, 0x32C, 0x42D, (1U<<31) | 2878, 0x24A, 0x24B, 
-+  0x34C, 0x259, 0x25A, 0x25B, 0x23B, 0x33C, 0x43D, 0x592, 
-+  0x5A2, 0x5B2, 0x458989, 0x447A7A, 0x457A7A, 0x4894, 0x4895, 0x4894, 
-+  0x4895, 0x47A4, 0x47A5, 0x47A4, 0x47A5, 0x48989, 0x447A7A, 0x458989, 
-+  0x457A7A, 0x3B2, 0x3C3, 0x3D4, 0x428B8B8B, 0x437C7C7C, (1U<<31) | 1503, (1U<<31) | 1821, 
-+  (1U<<31) | 1481, (1U<<31) | 1832, (1U<<31) | 1635, (1U<<31) | 1602, (1U<<31) | 1613, (1U<<31) | 1624, (1U<<31) | 1547, (1U<<31) | 1525, 
-+  (1U<<31) | 1591, (1U<<31) | 1569, (1U<<31) | 1536, (1U<<31) | 1514, (1U<<31) | 1580, (1U<<31) | 1558, (1U<<31) | 1448, (1U<<31) | 1415, 
-+  (1U<<31) | 1459, (1U<<31) | 1426, (1U<<31) | 1437, (1U<<31) | 1404, (1U<<31) | 1492, (1U<<31) | 1470, 0x442E4B20, 0x442E4C30, 
-+  0x442E5B20, 0x442E5B20, 0x333, 0x333, 0x33, 0x333, 0x334, 0x334, 
-+  0x333, 0x555, 0x444, 0x333, 0x333, (1U<<31) | 1726, (1U<<31) | 1855, (1U<<31) | 1703, 
-+  (1U<<31) | 1658, 0x27B7A7B, 0x37C7A7C, 0x27B7A7B, 0x37C7A7C, 0x37C7B7C, 0x28A898A, 0x28B898B, 
-+  0x28B8A8B, 0x24A4A4A, 0x24B4A4B, 0x34C4A4C, 0x24B4A4B, 0x34C4A4C, 0x34C4B4C, 0x25A595A, 
-+  0x25B595B, 0x25B5A5B, 0x342C2C3, 0x442D2D4, (1U<<31) | 2909, 0x244A4A2, 0x244B4B2, 0x344C4C3, 
-+  0x2489892, 0x248A8A2, 0x4248B8B2, 0x247A7A2, 0x247B7B2, 0x4347C7C3, 0x2459592, 0x245A5A2, 
-+  0x245B5B2, 0x42489892, 0x4247A7A2, 0x243B3B2, 0x343C3C3, 0x443D3D4, 0x24A4A4A, 0x24B4B4B, 
-+  0x34C4C4C, 0x2898989, 0x28A8A8A, 0x28B8B8B, 0x27A7A7A, 0x27B7B7B, 0x37C7C7C, 0x2595959, 
-+  0x25A5A5A, 0x25B5B5B, 0x24A2E0, 0x24B2E0, 0x34C2E0, 0x2892E0, 0x28A2E0, 0x28B2E0, 
-+  0x27A2E0, 0x27B2E0, 0x37C2E0, 0x2592E0, 0x25A2E0, 0x25B2E0, 0x24A4A4A, 0x24B4B4B, 
-+  0x34C4C4C, 0x2595959, 0x25A5A5A, 0x25B5B5B, 0x27A4A7A, 0x27B4B7B, 0x437C4C7C, 0x24A894A, 
-+  0x24A8A4A, 0x424B8B4B, 0x27A897A, 0x27A8A7A, 0x427B8B7B, 0x2598959, 0x25A8A5A, 0x425B8B5B, 
-+  0x24A894A, 0x24A8A4A, 0x424B8B4B, 0x2598959, 0x25A8A5A, 0x425B8B5B, 0x24A7A4A, 0x24B7B4B, 
-+  0x434C7C4C, 0x2897A89, 0x28A7A8A, 0x428B7B8B, 0x2597A59, 0x25A7A5A, 0x425B7B5B, 0x24A7A4A, 
-+  0x24B7B4B, 0x434C7C4C, 0x2597A59, 0x25A7A5A, 0x425B7B5B, 0x2895989, 0x28A5A8A, 0x428B5B8B, 
-+  0x27A597A, 0x27A5A7A, 0x427B5B7B, (1U<<31) | 1669, (1U<<31) | 1692, 0x24A894A, 0x24A8A4A, 0x424B8B4B, 
-+  0x2598959, 0x25A8A5A, 0x425B8B5B, 0x24A894A, 0x24A8A4A, 0x424B8B4B, 0x2598959, 0x25A8A5A, 
-+  0x425B8B5B, 0x24A7A4A, 0x24B7B4B, 0x434C7C4C, 0x2597A59, 0x25A7A5A, 0x425B7B5B, 0x24A7A4A, 
-+  0x24B7B4B, 0x434C7C4C, 0x2597A59, 0x25A7A5A, 0x425B7B5B, 0x27A4A7A, 0x27B4B7B, 0x437C4C7C, 
-+  0x2895989, 0x28A5A8A, 0x428B5B8B, 0x27A597A, 0x27A5A7A, 0x427B5B7B, (1U<<31) | 169, (1U<<31) | 1088, 
-+  (1U<<31) | 1918, (1U<<31) | 1726, (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, 0x24A4A4A, 0x24B4B4B, 0x34C4C4C, 
-+  0x24A2E4A, 0x24B2E4B, 0x34C2E4C, 0x2892E89, 0x28A2E8A, 0x28B2E8B, 0x27A2E7A, 0x27B2E7B, 
-+  0x37C2E7C, 0x2592E59, 0x25A2E5A, 0x25B2E5B, 0x2898989, 0x28A8A8A, 0x28B8B8B, 0x27A7A7A, 
-+  0x27B7B7B, 0x37C7C7C, 0x2595959, 0x25A5A5A, 0x25B5B5B, (1U<<31) | 255, (1U<<31) | 277, (1U<<31) | 1392, 
-+  (1U<<31) | 211, (1U<<31) | 233, (1U<<31) | 1809, (1U<<31) | 1380, (1U<<31) | 1368, 0x24892, 0x248A2, 0x248B2, 
-+  0x247A2, 0x247B2, 0x347C3, 0x24892, 0x247A2, 0x2898989, 0x28A8A8A, 0x428B8B8B, 
-+  0x27A7A7A, 0x27B7B7B, 0x437C7C7C, (1U<<31) | 1703, (1U<<31) | 1658, 0x28948989, 0x28A48A8A, (1U<<31) | 1716, 
-+  0x27A47A7A, 0x27B47B7B, (1U<<31) | 1845, (1U<<31) | 1680, (1U<<31) | 1646, (1U<<31) | 689, (1U<<31) | 1173, (1U<<31) | 1184, 
-+  (1U<<31) | 822, (1U<<31) | 898, (1U<<31) | 909, (1U<<31) | 375, (1U<<31) | 1130, (1U<<31) | 1141, (1U<<31) | 483, (1U<<31) | 559, 
-+  (1U<<31) | 570, 0x24A4A4A, 0x24B4B4B, 0x34C4C4C, 0x2595959, 0x25A5A5A, 0x25B5B5B, (1U<<31) | 812, 
-+  (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 812, 
-+  (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 1726, 
-+  (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, 0x32C2C2C, 0x42D2D2D, (1U<<31) | 2884, 0x24A4A4A, 0x24B4B4B, 
-+  0x34C4C4C, 0x2595959, 0x25A5A5A, 0x25B5B5B, 0x23B3B3B, 0x33C3C3C, 0x43D3D3D, (1U<<31) | 180, 
-+  (1U<<31) | 1099, (1U<<31) | 1929, (1U<<31) | 1048, (1U<<31) | 1779, (1U<<31) | 2899, (1U<<31) | 180, (1U<<31) | 1099, (1U<<31) | 1929, 
-+  (1U<<31) | 1048, (1U<<31) | 1779, (1U<<31) | 2899, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 159, (1U<<31) | 1078, 
-+  (1U<<31) | 1908, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, (1U<<31) | 1038, 
-+  (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, 0x32C22C, 0x42D22D, (1U<<31) | 2875, 
-+  0x24A44A, 0x24B44B, 0x34C44C, 0x259559, 0x25A55A, 0x25B55B, 0x25B55B, 0x23B33B, 
-+  0x33C33C, 0x43D33D, (1U<<31) | 868, (1U<<31) | 931, (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 159, (1U<<31) | 1078, 
-+  (1U<<31) | 1908, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 723, (1U<<31) | 1206, (1U<<31) | 409, (1U<<31) | 1163, 
-+  (1U<<31) | 149, (1U<<31) | 1068, (1U<<31) | 1898, (1U<<31) | 299, (1U<<31) | 365, (1U<<31) | 1120, 0x22C4A2C, 0x22C4B2C, 
-+  0x32C4C2C, 0x24A2E0, 0x24B2E0, 0x34C2E0, 0x23B4A3B, 0x23B4B3B, 0x33C4C3C, 0x24A2E0, 
-+  0x24B2E0, 0x34C2E0, 0x22C592C, 0x22C5A2C, 0x22C5B2C, 0x2592E0, 0x25A2E0, 0x25B2E0, 
-+  0x24A594A, 0x24A5A4A, 0x24B5B4B, 0x2592E0, 0x25A2E0, 0x25B2E0, 0x23B593B, 0x23B5A3B, 
-+  0x23B5B3B, 0x2592E0, 0x25A2E0, 0x25B2E0, 0x22C3B2C, 0x32C3C2C, 0x42D3D2D, 0x23B2E0, 
-+  0x33C2E0, 0x43D2E0, 0x22C4A2C, 0x22C4B2C, 0x32C4C2C, 0x24A2E0, 0x24B2E0, 0x34C2E0, 
-+  0x23B4A3B, 0x23B4B3B, 0x33C4C3C, 0x24A2E0, 0x24B2E0, 0x34C2E0, 0x22C592C, 0x22C5A2C, 
-+  0x22C5B2C, 0x2592E0, 0x25A2E0, 0x25B2E0, 0x24A594A, 0x24A5A4A, 0x24B5B4B, 0x2592E0, 
-+  0x25A2E0, 0x25B2E0, 0x23B593B, 0x23B5A3B, 0x23B5B3B, 0x2592E0, 0x25A2E0, 0x25B2E0, 
-+  0x22C3B2C, 0x32C3C2C, 0x42D3D2D, 0x23B2E0, 0x33C2E0, 0x43D2E0, 0x22C4A2C, 0x22C4B2C, 
-+  0x32C4C2C, 0x24A2E0, 0x24B2E0, 0x34C2E0, 0x23B4A3B, 0x23B4B3B, 0x33C4C3C, 0x24A2E0, 
-+  0x24B2E0, 0x34C2E0, 0x22C592C, 0x22C5A2C, 0x22C5B2C, 0x2592E0, 0x25A2E0, 0x25B2E0, 
-+  0x24A594A, 0x24A5A4A, 0x24B5B4B, 0x2592E0, 0x25A2E0, 0x25B2E0, 0x23B593B, 0x23B5A3B, 
-+  0x23B5B3B, 0x2592E0, 0x25A2E0, 0x25B2E0, 0x22C3B2C, 0x32C3C2C, 0x42D3D2D, 0x23B2E0, 
-+  0x33C2E0, 0x43D2E0, (1U<<31) | 441, (1U<<31) | 517, (1U<<31) | 592, (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, 
-+  (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, (1U<<31) | 1038, (1U<<31) | 1769, 
-+  (1U<<31) | 2882, (1U<<31) | 441, (1U<<31) | 517, (1U<<31) | 592, 0x24A44A4A, 0x24B44B4B, 0x34C44C4C, 0x25945959, 
-+  0x25A45A5A, 0x25B45B5B, (1U<<31) | 321, (1U<<31) | 409, (1U<<31) | 1163, (1U<<31) | 463, (1U<<31) | 539, (1U<<31) | 602, 
-+  0x24A44A4A, 0x24B44B4B, 0x34C44C4C, 0x25945959, 0x25A45A5A, 0x25B45B5B, (1U<<31) | 321, (1U<<31) | 409, 
-+  (1U<<31) | 1163, (1U<<31) | 463, (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 159, 
-+  (1U<<31) | 1078, (1U<<31) | 1908, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, 
-+  (1U<<31) | 200, (1U<<31) | 222, (1U<<31) | 1109, (1U<<31) | 244, (1U<<31) | 266, (1U<<31) | 288, (1U<<31) | 757, (1U<<31) | 833, 
-+  (1U<<31) | 1714, (1U<<31) | 612, (1U<<31) | 700, (1U<<31) | 1843, (1U<<31) | 1961, (1U<<31) | 1949, 0x28948989, 0x28A48A8A, 
-+  (1U<<31) | 1716, 0x27A47A7A, 0x27B47B7B, (1U<<31) | 1845, (1U<<31) | 1961, (1U<<31) | 1949, 0x28948989, 0x28A48A8A, 
-+  (1U<<31) | 1716, 0x27A47A7A, 0x27B47B7B, (1U<<31) | 1845, (1U<<31) | 1961, (1U<<31) | 1949, (1U<<31) | 812, (1U<<31) | 888, 
-+  (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 1195, (1U<<31) | 700, 
-+  (1U<<31) | 920, (1U<<31) | 833, (1U<<31) | 1152, (1U<<31) | 386, (1U<<31) | 581, (1U<<31) | 494, 0x2898989, 0x28A8A8A, 
-+  0x428B8B8B, 0x27A7A7A, 0x27B7B7B, 0x437C7C7C, (1U<<31) | 1703, (1U<<31) | 1658, 0x27A2E0, (1U<<31) | 1726, 
-+  (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, 0x342C2C3, 0x442D2D4, (1U<<31) | 2909, 0x244A4A2, 0x244B4B2, 
-+  0x344C4C3, 0x2459592, 0x245A5A2, 0x245B5B2, 0x243B3B2, 0x343C3C3, 0x443D3D4, 0x27A3B7A, 
-+  0x27B3B7B, 0x437C3C7C, 0x23B47A3B, 0x23B47B3B, 0x33C47C3C, 0x27A47B7A, 0x27A47C7A, 0x27B47C7B, 
-+  0x28948A89, 0x28948B89, 0x28A48B8A, 0x24A44B4A, 0x24A44C4A, 0x24B44C4B, 0x25945A59, 0x25945B59, 
-+  0x25A45B5A, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703, 
-+  (1U<<31) | 1658, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 812, 
-+  (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, 
-+  (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 321, (1U<<31) | 409, (1U<<31) | 1163, (1U<<31) | 159, (1U<<31) | 1078, 
-+  (1U<<31) | 1908, (1U<<31) | 792, (1U<<31) | 868, (1U<<31) | 931, (1U<<31) | 635, (1U<<31) | 723, (1U<<31) | 1206, (1U<<31) | 463, 
-+  (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 321, (1U<<31) | 409, (1U<<31) | 1163, 
-+  (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, (1U<<31) | 802, (1U<<31) | 878, (1U<<31) | 941, (1U<<31) | 669, (1U<<31) | 733, 
-+  (1U<<31) | 1216, (1U<<31) | 463, (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 463, 
-+  (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 463, (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, 
-+  (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, 
-+  (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, 
-+  (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, 
-+  (1U<<31) | 1855, (1U<<31) | 812, (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703, 
-+  (1U<<31) | 1658, (1U<<31) | 255, (1U<<31) | 277, (1U<<31) | 1392, (1U<<31) | 211, (1U<<31) | 233, (1U<<31) | 1809, (1U<<31) | 1380, 
-+  (1U<<31) | 1368, (1U<<31) | 200, (1U<<31) | 222, (1U<<31) | 1109, (1U<<31) | 244, (1U<<31) | 266, (1U<<31) | 288, (1U<<31) | 812, 
-+  (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 812, 
-+  (1U<<31) | 888, (1U<<31) | 1726, (1U<<31) | 679, (1U<<31) | 743, (1U<<31) | 1855, (1U<<31) | 321, (1U<<31) | 409, (1U<<31) | 1163, 
-+  (1U<<31) | 159, (1U<<31) | 1078, (1U<<31) | 1908, (1U<<31) | 802, (1U<<31) | 878, (1U<<31) | 941, (1U<<31) | 669, (1U<<31) | 733, 
-+  (1U<<31) | 1216, (1U<<31) | 463, (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 1038, (1U<<31) | 1769, (1U<<31) | 2882, (1U<<31) | 463, 
-+  (1U<<31) | 539, (1U<<31) | 602, (1U<<31) | 463, (1U<<31) | 539, (1U<<31) | 602, 0x2E5B, (1U<<31) | 1022, (1U<<31) | 1015, 
-+  0x4A4C4C, 0x595B5B, 0x3B3D3D, 0x44C4C, 0x45B5B, 0x43D3D, 0x4C4C4C, 0x5B5B5B, 
-+  0x3B3B3B, 0x3C3C3C, 0x3D3D3D, 0x4A4C4C, 0x595959, 0x595A5A, 0x595B5B, 0x3B3D3D, 
-+  0x44C4C, 0x45959, 0x45A5A, 0x45B5B, 0x43D3D, 0x4C4C4C, 0x595959, 0x5A5A5A, 
-+  0x5B5B5B, 0x3B3B3B, 0x3C3C3C, 0x3D3D3D, 0x4A4C4C, 0x595B5B, 0x3B3D3D, 0x44C4C, 
-+  0x45B5B, 0x43D3D, 0x4C4C4C, 0x5B5B5B, 0x3B3B3B, 0x3C3C3C, 0x3D3D3D, 0x32C2C3, 
-+  0x42D2D4, (1U<<31) | 2892, 0x24A4A2, 0x24B4B2, 0x34C4C3, 0x259592, 0x25A5A2, 0x25B5B2, 
-+  0x23B3B2, 0x33C3C3, 0x43D3D4, 0x32C2C3, 0x42D2D4, (1U<<31) | 2892, 0x24A4A2, 0x24B4B2, 
-+  0x34C4C3, 0x259592, 0x25A5A2, 0x25B5B2, 0x23B3B2, 0x33C3C3, 0x43D3D4, 0x2898989, 
-+  0x28A8A8A, 0x28B8B8B, 0x27A7A7A, 0x27B7B7B, 0x37C7C7C, (1U<<31) | 812, (1U<<31) | 679, 0x428B8B8B, 
-+  0x437C7C7C, (1U<<31) | 1703, (1U<<31) | 1658, 0x2898989, 0x28A8A8A, 0x28B8B8B, 0x27A7A7A, 0x27B7B7B, 
-+  0x37C7C7C, (1U<<31) | 812, (1U<<31) | 679, 0x428B8B8B, 0x437C7C7C, (1U<<31) | 1703, (1U<<31) | 1658, (1U<<31) | 2671, 
-+  (1U<<31) | 2323, (1U<<31) | 2539, (1U<<31) | 2613, (1U<<31) | 2681, (1U<<31) | 2269, (1U<<31) | 2549, (1U<<31) | 2603, (1U<<31) | 2641, 
-+  (1U<<31) | 2499, (1U<<31) | 2661, (1U<<31) | 2529, (1U<<31) | 2573, (1U<<31) | 2239, (1U<<31) | 2583, (1U<<31) | 2249, 0x442E4B20, 
-+  0x442E4C30, 0x442E5B20, 0x442E5B20, (1U<<31) | 2631, (1U<<31) | 2489, (1U<<31) | 2651, (1U<<31) | 2519, (1U<<31) | 2563, 
-+  (1U<<31) | 2197, (1U<<31) | 2593, (1U<<31) | 2259, 0x2E8B, 0x2E7C, 0x4489894, 0x447A7A4, 0x4894, 
-+  0x4895, 0x4894, 0x4895, 0x47A4, 0x47A5, 0x47A4, 0x47A5, 0x5B8B8B, 
-+  0x4C7C7C, 0x444, 0x555, 0x444, 0x555, 0x444, 0x555, 0x444, 
-+  0x555, 0x2E0, 0x4, 0x5, 0x40, 0x50, (1U<<31) | 3462, (1U<<31) | 3475, 
-+  0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3462, 0x7A7A7A7A, (1U<<31) | 3462, (1U<<31) | 3475, 0x7A7A7A7A, 0x7B7B7B7B, 
-+  (1U<<31) | 3462, (1U<<31) | 3475, 0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3462, 0x7A7A7A7A, (1U<<31) | 3462, (1U<<31) | 3475, 
-+  0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3462, (1U<<31) | 3475, 0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3462, 0x7A7A7A7A, 
-+  (1U<<31) | 3462, (1U<<31) | 3475, 0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3462, 0x7A7A7A7A, 0x2E0, 0x2E0, 
-+  0x2E0, 0x2E0, 0x20, 0x0, 0x0, (1U<<31) | 1003, (1U<<31) | 3633, (1U<<31) | 3638, 
-+  (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, 
-+  (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 1033, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, 
-+  (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 2867, (1U<<31) | 2405, (1U<<31) | 3638, 
-+  (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3620, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, 
-+  (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 2871, (1U<<31) | 2871, 
-+  (1U<<31) | 2871, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 2871, (1U<<31) | 2871, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, 
-+  (1U<<31) | 2871, (1U<<31) | 2871, (1U<<31) | 2871, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, 
-+  (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, (1U<<31) | 3638, 
-+  (1U<<31) | 3638, (1U<<31) | 3638, 0x442E0, 0x4440, 0x2595959, 0x4, 0x5, 0x4, 
-+  0x5, 0x4, 0x45, (1U<<31) | 1939, (1U<<31) | 2416, (1U<<31) | 2559, (1U<<31) | 1939, (1U<<31) | 2416, 
-+  (1U<<31) | 2559, 0x5, 0x2E5, 0x2E0, 0x2E0, 0x2E2E, 0x2E2E2E, 0x4A4A4A, 
-+  0x4A4A4A, 0x4A4A4A, 0x24A4A4A, 0x4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x27A7A7A, 0x27A7A7A, 
-+  0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, (1U<<31) | 3471, (1U<<31) | 3629, 
-+  (1U<<31) | 3623, (1U<<31) | 3449, 0x47A7A, 0x57A7A, 0x7A4, 0x7A5, (1U<<31) | 3471, (1U<<31) | 3449, 
-+  0x7A4, 0x7A5, 0x2E0, 0x7A7A7A, 0x7A7A7A, 0x7A7A7A, 0x7A7A7A, 0x7A4, 
-+  (1U<<31) | 1034, 0x7A7A, 0x7A7A, 0x7A7A, 0x7A7A, 0x0, 0x7A7A, 0x7A7A, 
-+  0x2E0, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x7A7A4, 0x2E0, 
-+  0x2898989, 0x2898989, 0x89894, 0x89894, 0x89894, 0x89894, 0x89894, 0x89894, 
-+  0x4A7A, 0x894A, 0x897A, 0x7A4A, 0x894, 0x895, 0x897A7A, 0x48989, 
-+  0x58989, 0x7A8989, 0x894A, 0x7A4A, 0x894, 0x895, 0x0, 0x2E2C2C0, 
-+  0x898989, 0x898989, 0x0, 0x898989, 0x898989, 0x894, 0x4A4A3B, 0x3B3B2C, 
-+  0x3B3B2C, 0x2C2C2C, 0x3B3B3B, 0x2C2C2C, 0x3B3B3B, 0x0, 0x2C2C2C, 0x3B3B3B, 
-+  0x3B3B4A, 0x2C4, 0x3B3B3B, 0x3B3B3B, 0x4A4A59, 0x2C2C59, 0x4A4A4A, 0x595959, 
-+  0x3B3B3B, 0x44A4A, 0x45959, 0x43B3B, 0x4A4A4A, 0x3B3B3B, 0x44A4A, 0x43B3B, 
-+  0x4A4A4A, 0x595959, 0x3B3B3B, 0x44A4A, 0x45959, 0x43B3B, 0x2C2C2C, 0x3B3B3B, 
-+  0x2C2C2C, 0x3B3B3B, 0x8989, 0x8989, 0x89894, 0x89894, 0x89894, 0x89894, 
-+  0x89894, 0x89894, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 
-+  0x2E2C, 0x442E0, 0x440, (1U<<31) | 3462, 0x7A7A7A7A, 0x2898989, 0x27A7A7A, 0x27A7A7A, 
-+  0x2E59, 0x22C2C3B, 0x4A4A3B, 0x2C2C2C2C, 0x3B3B, 0x4A4A59, 0x59594, 0x59594, 
-+  0x59594, 0x48989, 0x47A7A, 0x4898989, 0x47A7A7A, 0x344, 0x444, 0x244, 
-+  0x555, 0x242C42C4, 0x242C42C4, 0x242C42C4, 0x242C42C4, 0x242C42C4, 0x242C42C4, (1U<<31) | 190, 
-+  0x22C2C4, 0x22C2C4, 0x22C2C4, 0x22C2C4, 0x22C2C4, 0x22C2C4, 0x22C2C2C, 0x2C5959, 
-+  0x225959, 0x595959, 0x22595959, (1U<<31) | 3635, 0x2C2C, (1U<<31) | 3635, 0x4A4A, (1U<<31) | 3635, 
-+  0x3B3B, (1U<<31) | 3638, 0x4A4A4A, (1U<<31) | 3638, 0x3B3B3B, (1U<<31) | 3638, 0x3B3B3B, (1U<<31) | 3638, 
-+  0x4A4A4A, (1U<<31) | 3638, 0x3B3B3B, (1U<<31) | 3638, 0x3B3B3B, (1U<<31) | 3638, 0x2C2C3B, (1U<<31) | 3638, 
-+  0x3B3B3B, (1U<<31) | 3638, 0x2C2C2C, (1U<<31) | 3638, 0x2C2C2C, (1U<<31) | 3638, 0x4A4A4A, (1U<<31) | 3638, 
-+  0x3B3B3B, 0x2E4422, 0x2E5522, 0x444, 0x555, 0x3B7A, 0x3B7B, 0x47A3B, 
-+  0x47B3B, 0x40, 0x50, 0x40, 0x50, 0x40, 0x20, 0x4, 
-+  0x0, 0x45, 0x8989, 0x8A8A, 0x7A7A, 0x7B7B, 0x8989, 0x7A7A, 
-+  0x59595959, 0x5A5A5A5A, 0x22C2C2C, 0x24A4A4A, 0x2595959, 0x22C2C2C, 0x24A4A4A, 0x2595959, 
-+  0x23B3B3B, 0x23B3B3B, (1U<<31) | 473, (1U<<31) | 549, (1U<<31) | 355, (1U<<31) | 419, 0x2C4A, 0x2C59, 
-+  0x2C3B, 0x4A59, 0x2C4A, 0x2C59, 0x2C3B, 0x4A59, 0x3B4A, 0x3B59, 
-+  0x3B4A, 0x3B59, 0x2C3B, 0x4A59, 0x3B4A, 0x4A4A4A4A, 0x594A4A59, 0x594A4A59, 
-+  0x4A4A4A4A, 0x594A4A59, 0x594A4A59, 0x4A3B3B4A, 0x3B3B3B3B, 0x4A3B3B4A, 0x3B3B3B3B, 0x4A3B3B4A, 
-+  0x4A3B3B4A, 0x2C2C2C2C, 0x2C2C2C, 0x22C2C, 0x4A4A4A, 0x24A4A, 0x595959, 0x25959, 
-+  0x3B3B3B, 0x23B3B, 0x2C2C2C, 0x4A4A4A, 0x595959, 0x3B3B3B, 0x2C2C2C, 0x4A4A4A, 
-+  0x595959, 0x3B3B3B, 0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x442E0, 
-+  0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x442E0, 0x4440, 0x4, 
-+  0x44, 0x2E2E, 0x44F0, 0x0, 0x4F0, 0x40, 0x4444, (1U<<31) | 2037, 
-+  0x4F0, 0x4F0, 0x4F4, 0x4F0, 0x4, 0x4, 0x4, 0x44, 
-+  0x44F, 0xCF4F, 0x4F4, 0x4F4, 0x4F4, 0x2E4F0, 0x2E4F0, 0x2E4F0, 
-+  0x2E4F0, 0x2E4F0, 0x44F4, 0x4F4, 0x4F0, 0x4F0, 0x44F0, 0x44F0, 
-+  0x44F4, 0x44F0, 0x4F4, 0x44F0, 0xCF4F0, 0x44F0, 0x2E4F0, 0x440, 
-+  0x44F0, 0x44F0, 0xCF4F0, 0x40, 0x44F0, 0x2E4F0, 0x444, 0x0, 
-+  0x4F0, 0x4F4, 0x4F4, 0x2E, 0x444, 0
-+};
-+
-+static const unsigned char IIT_LongEncodingTable[] = {
-+  /* 0 */ 15, 2, 15, 10, 15, 17, 10, 4, 4, 1, 1, 1, 1, 1, 0,
-+  /* 15 */ 0, 15, 2, 15, 9, 15, 17, 4, 1, 1, 1, 1, 0,
-+  /* 28 */ 4, 4, 4, 15, 1, 11, 4, 1, 1, 1, 0,
-+  /* 39 */ 0, 15, 2, 10, 4, 4, 4, 1, 1, 0,
-+  /* 49 */ 21, 15, 2, 1, 15, 2, 15, 2, 1, 0,
-+  /* 59 */ 15, 2, 15, 2, 15, 2, 15, 2, 1, 0,
-+  /* 69 */ 0, 15, 3, 33, 3, 31, 3, 1, 0,
-+  /* 78 */ 0, 15, 3, 34, 3, 4, 31, 3, 1, 0,
-+  /* 88 */ 0, 15, 3, 15, 12, 4, 31, 3, 1, 0,
-+  /* 98 */ 0, 15, 4, 15, 12, 15, 17, 4, 1, 0,
-+  /* 108 */ 21, 15, 1, 1, 15, 1, 15, 1, 0,
-+  /* 117 */ 0, 19, 15, 1, 0,
-+  /* 122 */ 2, 18, 1, 0,
-+  /* 126 */ 15, 1, 25, 1, 0,
-+  /* 131 */ 36, 1, 36, 1, 36, 1, 0,
-+  /* 138 */ 37, 1, 37, 1, 37, 1, 0,
-+  /* 145 */ 27, 2, 2, 0,
-+  /* 149 */ 11, 3, 12, 2, 12, 2, 11, 3, 2, 0,
-+  /* 159 */ 11, 3, 11, 3, 11, 3, 11, 3, 2, 0,
-+  /* 169 */ 11, 3, 12, 2, 12, 2, 4, 11, 3, 2, 0,
-+  /* 180 */ 11, 3, 10, 4, 10, 4, 11, 3, 2, 0,
-+  /* 190 */ 12, 2, 12, 2, 4, 12, 2, 4, 2, 0,
-+  /* 200 */ 10, 4, 10, 4, 10, 4, 10, 4, 4, 2, 0,
-+  /* 211 */ 10, 7, 10, 7, 10, 7, 10, 4, 4, 2, 0,
-+  /* 222 */ 11, 4, 11, 4, 11, 4, 11, 4, 4, 2, 0,
-+  /* 233 */ 11, 7, 11, 7, 11, 7, 11, 4, 4, 2, 0,
-+  /* 244 */ 9, 5, 9, 5, 9, 5, 9, 5, 4, 2, 0,
-+  /* 255 */ 9, 8, 9, 8, 9, 8, 9, 5, 4, 2, 0,
-+  /* 266 */ 10, 5, 10, 5, 10, 5, 10, 5, 4, 2, 0,
-+  /* 277 */ 10, 8, 10, 8, 10, 8, 10, 5, 4, 2, 0,
-+  /* 288 */ 11, 5, 11, 5, 11, 5, 11, 5, 4, 2, 0,
-+  /* 299 */ 10, 4, 11, 3, 11, 3, 10, 4, 2, 0,
-+  /* 309 */ 10, 4, 10, 4, 14, 2, 10, 4, 10, 4, 2, 0,
-+  /* 321 */ 10, 4, 10, 4, 10, 4, 10, 4, 2, 0,
-+  /* 331 */ 10, 4, 10, 4, 14, 2, 9, 5, 10, 4, 2, 0,
-+  /* 343 */ 10, 4, 10, 4, 14, 2, 10, 5, 10, 4, 2, 0,
-+  /* 355 */ 10, 7, 10, 7, 10, 7, 10, 4, 2, 0,
-+  /* 365 */ 11, 4, 12, 3, 12, 3, 11, 4, 2, 0,
-+  /* 375 */ 11, 4, 11, 4, 10, 4, 4, 11, 4, 2, 0,
-+  /* 386 */ 11, 4, 11, 4, 11, 4, 4, 11, 4, 2, 0,
-+  /* 397 */ 11, 4, 11, 4, 14, 2, 11, 4, 11, 4, 2, 0,
-+  /* 409 */ 11, 4, 11, 4, 11, 4, 11, 4, 2, 0,
-+  /* 419 */ 11, 7, 11, 7, 11, 7, 11, 4, 2, 0,
-+  /* 429 */ 9, 5, 9, 5, 14, 2, 10, 4, 9, 5, 2, 0,
-+  /* 441 */ 9, 5, 10, 4, 10, 4, 9, 5, 2, 0,
-+  /* 451 */ 9, 5, 9, 5, 14, 2, 9, 5, 9, 5, 2, 0,
-+  /* 463 */ 9, 5, 9, 5, 9, 5, 9, 5, 2, 0,
-+  /* 473 */ 9, 8, 9, 8, 9, 8, 9, 5, 2, 0,
-+  /* 483 */ 10, 5, 10, 5, 9, 5, 4, 10, 5, 2, 0,
-+  /* 494 */ 10, 5, 10, 5, 10, 5, 4, 10, 5, 2, 0,
-+  /* 505 */ 10, 5, 10, 5, 14, 2, 10, 4, 10, 5, 2, 0,
-+  /* 517 */ 10, 5, 11, 4, 11, 4, 10, 5, 2, 0,
-+  /* 527 */ 10, 5, 10, 5, 14, 2, 10, 5, 10, 5, 2, 0,
-+  /* 539 */ 10, 5, 10, 5, 10, 5, 10, 5, 2, 0,
-+  /* 549 */ 10, 8, 10, 8, 10, 8, 10, 5, 2, 0,
-+  /* 559 */ 11, 5, 11, 5, 9, 5, 4, 11, 5, 2, 0,
-+  /* 570 */ 11, 5, 11, 5, 10, 5, 4, 11, 5, 2, 0,
-+  /* 581 */ 11, 5, 11, 5, 11, 5, 4, 11, 5, 2, 0,
-+  /* 592 */ 11, 5, 12, 4, 12, 4, 11, 5, 2, 0,
-+  /* 602 */ 11, 5, 11, 5, 11, 5, 11, 5, 2, 0,
-+  /* 612 */ 10, 7, 10, 7, 10, 7, 4, 10, 7, 2, 0,
-+  /* 623 */ 10, 7, 10, 7, 14, 2, 10, 4, 10, 7, 2, 0,
-+  /* 635 */ 10, 7, 10, 7, 10, 4, 10, 7, 2, 0,
-+  /* 645 */ 10, 7, 10, 7, 14, 2, 9, 5, 10, 7, 2, 0,
-+  /* 657 */ 10, 7, 10, 7, 14, 2, 10, 5, 10, 7, 2, 0,
-+  /* 669 */ 10, 7, 10, 4, 10, 7, 10, 7, 2, 0,
-+  /* 679 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 0,
-+  /* 689 */ 11, 7, 11, 7, 10, 7, 4, 11, 7, 2, 0,
-+  /* 700 */ 11, 7, 11, 7, 11, 7, 4, 11, 7, 2, 0,
-+  /* 711 */ 11, 7, 11, 7, 14, 2, 11, 4, 11, 7, 2, 0,
-+  /* 723 */ 11, 7, 11, 7, 11, 4, 11, 7, 2, 0,
-+  /* 733 */ 11, 7, 11, 4, 11, 7, 11, 7, 2, 0,
-+  /* 743 */ 11, 7, 11, 7, 11, 7, 11, 7, 2, 0,
-+  /* 753 */ 27, 7, 2, 0,
-+  /* 757 */ 9, 8, 9, 8, 9, 8, 4, 9, 8, 2, 0,
-+  /* 768 */ 9, 8, 9, 8, 14, 2, 10, 4, 9, 8, 2, 0,
-+  /* 780 */ 9, 8, 9, 8, 14, 2, 9, 5, 9, 8, 2, 0,
-+  /* 792 */ 9, 8, 9, 8, 9, 5, 9, 8, 2, 0,
-+  /* 802 */ 9, 8, 9, 5, 9, 8, 9, 8, 2, 0,
-+  /* 812 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 0,
-+  /* 822 */ 10, 8, 10, 8, 9, 8, 4, 10, 8, 2, 0,
-+  /* 833 */ 10, 8, 10, 8, 10, 8, 4, 10, 8, 2, 0,
-+  /* 844 */ 10, 8, 10, 8, 14, 2, 10, 4, 10, 8, 2, 0,
-+  /* 856 */ 10, 8, 10, 8, 14, 2, 10, 5, 10, 8, 2, 0,
-+  /* 868 */ 10, 8, 10, 8, 10, 5, 10, 8, 2, 0,
-+  /* 878 */ 10, 8, 10, 5, 10, 8, 10, 8, 2, 0,
-+  /* 888 */ 10, 8, 10, 8, 10, 8, 10, 8, 2, 0,
-+  /* 898 */ 11, 8, 11, 8, 9, 8, 4, 11, 8, 2, 0,
-+  /* 909 */ 11, 8, 11, 8, 10, 8, 4, 11, 8, 2, 0,
-+  /* 920 */ 11, 8, 11, 8, 11, 8, 4, 11, 8, 2, 0,
-+  /* 931 */ 11, 8, 11, 8, 11, 5, 11, 8, 2, 0,
-+  /* 941 */ 11, 8, 11, 5, 11, 8, 11, 8, 2, 0,
-+  /* 951 */ 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 0,
-+  /* 966 */ 21, 12, 2, 4, 12, 2, 12, 2, 0,
-+  /* 975 */ 21, 12, 2, 4, 12, 2, 0,
-+  /* 982 */ 18, 4, 14, 2, 14, 2, 14, 2, 0,
-+  /* 991 */ 21, 4, 4, 14, 2, 0,
-+  /* 997 */ 21, 5, 5, 14, 2, 0,
-+  /* 1003 */ 0, 17, 17, 14, 2, 0,
-+  /* 1009 */ 14, 2, 18, 14, 2, 0,
-+  /* 1015 */ 16, 2, 16, 2, 16, 2, 0,
-+  /* 1022 */ 11, 5, 16, 2, 16, 2, 0,
-+  /* 1029 */ 5, 16, 2, 0,
-+  /* 1033 */ 17, 17, 17, 2, 0,
-+  /* 1038 */ 12, 2, 12, 2, 12, 2, 12, 2, 3, 0,
-+  /* 1048 */ 12, 2, 11, 3, 11, 3, 12, 2, 3, 0,
-+  /* 1058 */ 0, 5, 4, 4, 4, 3, 3, 3, 3, 0,
-+  /* 1068 */ 12, 3, 13, 2, 13, 2, 12, 3, 3, 0,
-+  /* 1078 */ 12, 3, 12, 3, 12, 3, 12, 3, 3, 0,
-+  /* 1088 */ 12, 3, 13, 2, 13, 2, 4, 12, 3, 3, 0,
-+  /* 1099 */ 12, 3, 11, 4, 11, 4, 12, 3, 3, 0,
-+  /* 1109 */ 12, 4, 12, 4, 12, 4, 12, 4, 4, 3, 0,
-+  /* 1120 */ 12, 4, 13, 3, 13, 3, 12, 4, 3, 0,
-+  /* 1130 */ 12, 4, 12, 4, 10, 4, 4, 12, 4, 3, 0,
-+  /* 1141 */ 12, 4, 12, 4, 11, 4, 4, 12, 4, 3, 0,
-+  /* 1152 */ 12, 4, 12, 4, 12, 4, 4, 12, 4, 3, 0,
-+  /* 1163 */ 12, 4, 12, 4, 12, 4, 12, 4, 3, 0,
-+  /* 1173 */ 12, 7, 12, 7, 10, 7, 4, 12, 7, 3, 0,
-+  /* 1184 */ 12, 7, 12, 7, 11, 7, 4, 12, 7, 3, 0,
-+  /* 1195 */ 12, 7, 12, 7, 12, 7, 4, 12, 7, 3, 0,
-+  /* 1206 */ 12, 7, 12, 7, 12, 4, 12, 7, 3, 0,
-+  /* 1216 */ 12, 7, 12, 4, 12, 7, 12, 7, 3, 0,
-+  /* 1226 */ 21, 12, 2, 4, 11, 3, 11, 3, 0,
-+  /* 1235 */ 21, 11, 3, 4, 11, 3, 11, 3, 0,
-+  /* 1244 */ 21, 11, 3, 4, 11, 3, 0,
-+  /* 1251 */ 15, 3, 33, 3, 31, 3, 1, 15, 3, 0,
-+  /* 1261 */ 15, 3, 34, 3, 4, 31, 3, 1, 15, 3, 0,
-+  /* 1272 */ 15, 3, 15, 12, 4, 31, 3, 1, 15, 3, 0,
-+  /* 1283 */ 15, 3, 15, 3, 12, 2, 12, 2, 12, 2, 12, 2, 15, 3, 0,
-+  /* 1298 */ 15, 3, 15, 3, 12, 2, 12, 2, 12, 2, 15, 3, 0,
-+  /* 1311 */ 15, 3, 15, 3, 12, 2, 12, 2, 15, 3, 0,
-+  /* 1322 */ 15, 3, 25, 3, 0,
-+  /* 1327 */ 15, 3, 25, 3, 25, 3, 0,
-+  /* 1334 */ 15, 3, 26, 3, 0,
-+  /* 1339 */ 15, 3, 26, 3, 26, 3, 0,
-+  /* 1346 */ 15, 1, 25, 1, 4, 0,
-+  /* 1352 */ 12, 4, 12, 4, 36, 1, 4, 0,
-+  /* 1360 */ 13, 4, 13, 4, 37, 1, 4, 0,
-+  /* 1368 */ 10, 7, 10, 7, 10, 7, 10, 4, 4, 2, 4, 0,
-+  /* 1380 */ 9, 8, 9, 8, 9, 8, 9, 5, 4, 2, 4, 0,
-+  /* 1392 */ 11, 8, 11, 8, 11, 8, 11, 5, 4, 2, 4, 0,
-+  /* 1404 */ 10, 4, 10, 4, 14, 2, 10, 4, 2, 4, 0,
-+  /* 1415 */ 9, 5, 9, 5, 14, 2, 10, 4, 2, 4, 0,
-+  /* 1426 */ 10, 5, 10, 5, 14, 2, 10, 4, 2, 4, 0,
-+  /* 1437 */ 10, 7, 10, 7, 14, 2, 10, 4, 2, 4, 0,
-+  /* 1448 */ 9, 8, 9, 8, 14, 2, 10, 4, 2, 4, 0,
-+  /* 1459 */ 10, 8, 10, 8, 14, 2, 10, 4, 2, 4, 0,
-+  /* 1470 */ 11, 4, 11, 4, 14, 2, 11, 4, 2, 4, 0,
-+  /* 1481 */ 11, 5, 11, 5, 14, 2, 11, 4, 2, 4, 0,
-+  /* 1492 */ 11, 7, 11, 7, 14, 2, 11, 4, 2, 4, 0,
-+  /* 1503 */ 11, 8, 11, 8, 14, 2, 11, 4, 2, 4, 0,
-+  /* 1514 */ 10, 4, 10, 4, 14, 2, 9, 5, 2, 4, 0,
-+  /* 1525 */ 9, 5, 9, 5, 14, 2, 9, 5, 2, 4, 0,
-+  /* 1536 */ 10, 7, 10, 7, 14, 2, 9, 5, 2, 4, 0,
-+  /* 1547 */ 9, 8, 9, 8, 14, 2, 9, 5, 2, 4, 0,
-+  /* 1558 */ 10, 4, 10, 4, 14, 2, 10, 5, 2, 4, 0,
-+  /* 1569 */ 10, 5, 10, 5, 14, 2, 10, 5, 2, 4, 0,
-+  /* 1580 */ 10, 7, 10, 7, 14, 2, 10, 5, 2, 4, 0,
-+  /* 1591 */ 10, 8, 10, 8, 14, 2, 10, 5, 2, 4, 0,
-+  /* 1602 */ 11, 4, 11, 4, 14, 2, 11, 5, 2, 4, 0,
-+  /* 1613 */ 11, 5, 11, 5, 14, 2, 11, 5, 2, 4, 0,
-+  /* 1624 */ 11, 7, 11, 7, 14, 2, 11, 5, 2, 4, 0,
-+  /* 1635 */ 11, 8, 11, 8, 14, 2, 11, 5, 2, 4, 0,
-+  /* 1646 */ 10, 7, 10, 7, 10, 7, 4, 10, 7, 2, 4, 0,
-+  /* 1658 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 4, 0,
-+  /* 1669 */ 10, 7, 10, 7, 9, 8, 10, 7, 2, 4, 0,
-+  /* 1680 */ 9, 8, 9, 8, 9, 8, 4, 9, 8, 2, 4, 0,
-+  /* 1692 */ 9, 8, 9, 8, 10, 7, 9, 8, 2, 4, 0,
-+  /* 1703 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 4, 0,
-+  /* 1714 */ 11, 8, 11, 8, 11, 8, 4, 11, 8, 2, 4, 0,
-+  /* 1726 */ 11, 8, 11, 8, 11, 8, 11, 8, 2, 4, 0,
-+  /* 1737 */ 12, 2, 12, 2, 12, 2, 12, 2, 4, 0,
-+  /* 1747 */ 21, 12, 2, 4, 12, 2, 12, 2, 12, 2, 4, 0,
-+  /* 1759 */ 21, 12, 2, 4, 12, 2, 12, 2, 4, 0,
-+  /* 1769 */ 13, 2, 13, 2, 13, 2, 13, 2, 4, 0,
-+  /* 1779 */ 13, 2, 12, 3, 12, 3, 13, 2, 4, 0,
-+  /* 1789 */ 15, 1, 15, 1, 14, 2, 14, 2, 4, 0,
-+  /* 1799 */ 15, 4, 15, 4, 14, 2, 14, 2, 4, 0,
-+  /* 1809 */ 12, 7, 12, 7, 12, 7, 12, 4, 4, 3, 4, 0,
-+  /* 1821 */ 12, 4, 12, 4, 14, 2, 12, 4, 3, 4, 0,
-+  /* 1832 */ 12, 7, 12, 7, 14, 2, 12, 4, 3, 4, 0,
-+  /* 1843 */ 12, 7, 12, 7, 12, 7, 4, 12, 7, 3, 4, 0,
-+  /* 1855 */ 12, 7, 12, 7, 12, 7, 12, 7, 3, 4, 0,
-+  /* 1866 */ 11, 3, 11, 3, 11, 3, 11, 3, 4, 0,
-+  /* 1876 */ 21, 11, 3, 4, 11, 3, 11, 3, 11, 3, 4, 0,
-+  /* 1888 */ 21, 11, 3, 4, 11, 3, 11, 3, 4, 0,
-+  /* 1898 */ 13, 3, 16, 2, 16, 2, 13, 3, 4, 0,
-+  /* 1908 */ 13, 3, 13, 3, 13, 3, 13, 3, 4, 0,
-+  /* 1918 */ 13, 3, 16, 2, 16, 2, 4, 13, 3, 4, 0,
-+  /* 1929 */ 13, 3, 12, 4, 12, 4, 13, 3, 4, 0,
-+  /* 1939 */ 21, 3, 4, 0,
-+  /* 1943 */ 15, 3, 26, 3, 4, 0,
-+  /* 1949 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 4, 4, 0,
-+  /* 1961 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 4, 4, 0,
-+  /* 1973 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 15, 3, 15, 3, 4, 4, 0,
-+  /* 1995 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 15, 3, 4, 4, 0,
-+  /* 2013 */ 21, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 4, 4, 0,
-+  /* 2027 */ 0, 5, 4, 4, 4, 4, 4, 4, 4, 0,
-+  /* 2037 */ 21, 4, 4, 4, 4, 4, 0,
-+  /* 2044 */ 23, 3, 3, 3, 3, 5, 4, 4, 4, 0,
-+  /* 2054 */ 21, 3, 3, 5, 4, 4, 4, 0,
-+  /* 2062 */ 23, 4, 4, 4, 4, 5, 4, 4, 4, 0,
-+  /* 2072 */ 21, 4, 4, 5, 4, 4, 4, 0,
-+  /* 2080 */ 23, 4, 4, 4, 4, 5, 5, 4, 4, 4, 0,
-+  /* 2091 */ 21, 5, 5, 5, 4, 4, 4, 0,
-+  /* 2099 */ 23, 7, 7, 7, 7, 5, 5, 4, 4, 4, 0,
-+  /* 2110 */ 23, 7, 7, 7, 7, 5, 4, 4, 4, 0,
-+  /* 2120 */ 16, 4, 16, 4, 16, 4, 4, 4, 0,
-+  /* 2129 */ 23, 3, 3, 3, 3, 5, 4, 4, 0,
-+  /* 2138 */ 21, 3, 3, 5, 4, 4, 0,
-+  /* 2145 */ 23, 4, 4, 4, 4, 5, 4, 4, 0,
-+  /* 2154 */ 21, 4, 4, 5, 4, 4, 0,
-+  /* 2161 */ 23, 4, 4, 4, 4, 5, 5, 4, 4, 0,
-+  /* 2171 */ 21, 5, 5, 5, 4, 4, 0,
-+  /* 2178 */ 23, 7, 7, 7, 7, 5, 5, 4, 4, 0,
-+  /* 2188 */ 23, 7, 7, 7, 7, 5, 4, 4, 0,
-+  /* 2197 */ 0, 14, 2, 2, 10, 4, 10, 4, 4, 0,
-+  /* 2207 */ 21, 10, 4, 4, 10, 4, 10, 4, 4, 0,
-+  /* 2217 */ 21, 10, 4, 4, 10, 4, 10, 4, 10, 4, 4, 0,
-+  /* 2229 */ 10, 4, 10, 4, 10, 4, 10, 4, 4, 0,
-+  /* 2239 */ 0, 14, 2, 2, 9, 5, 10, 4, 4, 0,
-+  /* 2249 */ 0, 14, 2, 2, 10, 5, 10, 4, 4, 0,
-+  /* 2259 */ 0, 14, 2, 2, 11, 4, 11, 4, 4, 0,
-+  /* 2269 */ 0, 14, 2, 2, 11, 5, 11, 4, 4, 0,
-+  /* 2279 */ 0, 15, 4, 15, 11, 15, 11, 4, 4, 0,
-+  /* 2289 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 4, 4, 0,
-+  /* 2301 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 15, 11, 4, 4, 0,
-+  /* 2315 */ 36, 1, 36, 1, 12, 4, 4, 0,
-+  /* 2323 */ 0, 14, 2, 3, 12, 4, 12, 4, 4, 0,
-+  /* 2333 */ 12, 4, 12, 4, 12, 4, 12, 4, 4, 0,
-+  /* 2343 */ 13, 4, 13, 4, 12, 4, 12, 4, 4, 0,
-+  /* 2353 */ 37, 1, 37, 1, 13, 4, 4, 0,
-+  /* 2361 */ 13, 4, 13, 4, 13, 4, 13, 4, 4, 0,
-+  /* 2371 */ 16, 4, 16, 4, 13, 4, 13, 4, 4, 0,
-+  /* 2381 */ 16, 4, 16, 4, 13, 4, 4, 0,
-+  /* 2389 */ 13, 4, 13, 4, 16, 4, 4, 0,
-+  /* 2397 */ 16, 4, 16, 4, 16, 4, 4, 0,
-+  /* 2405 */ 17, 17, 4, 4, 0,
-+  /* 2410 */ 15, 0, 18, 4, 4, 0,
-+  /* 2416 */ 21, 4, 4, 0,
-+  /* 2420 */ 23, 3, 3, 3, 3, 5, 4, 0,
-+  /* 2428 */ 21, 3, 3, 5, 4, 0,
-+  /* 2434 */ 23, 4, 4, 4, 4, 5, 4, 0,
-+  /* 2442 */ 21, 4, 4, 5, 4, 0,
-+  /* 2448 */ 16, 4, 16, 4, 16, 4, 5, 4, 0,
-+  /* 2457 */ 23, 4, 4, 4, 4, 5, 5, 4, 0,
-+  /* 2466 */ 21, 5, 5, 5, 4, 0,
-+  /* 2472 */ 23, 7, 7, 7, 7, 5, 5, 4, 0,
-+  /* 2481 */ 23, 7, 7, 7, 7, 5, 4, 0,
-+  /* 2489 */ 0, 14, 2, 2, 10, 4, 9, 5, 4, 0,
-+  /* 2499 */ 0, 14, 2, 2, 9, 5, 9, 5, 4, 0,
-+  /* 2509 */ 9, 5, 9, 5, 9, 5, 9, 5, 4, 0,
-+  /* 2519 */ 0, 14, 2, 2, 10, 4, 10, 5, 4, 0,
-+  /* 2529 */ 0, 14, 2, 2, 10, 5, 10, 5, 4, 0,
-+  /* 2539 */ 0, 14, 2, 2, 11, 4, 11, 5, 4, 0,
-+  /* 2549 */ 0, 14, 2, 2, 11, 5, 11, 5, 4, 0,
-+  /* 2559 */ 21, 5, 4, 0,
-+  /* 2563 */ 0, 14, 2, 2, 10, 4, 10, 7, 4, 0,
-+  /* 2573 */ 0, 14, 2, 2, 9, 5, 10, 7, 4, 0,
-+  /* 2583 */ 0, 14, 2, 2, 10, 5, 10, 7, 4, 0,
-+  /* 2593 */ 0, 14, 2, 2, 11, 4, 11, 7, 4, 0,
-+  /* 2603 */ 0, 14, 2, 2, 11, 5, 11, 7, 4, 0,
-+  /* 2613 */ 0, 14, 2, 3, 12, 4, 12, 7, 4, 0,
-+  /* 2623 */ 21, 9, 5, 4, 9, 8, 4, 0,
-+  /* 2631 */ 0, 14, 2, 2, 10, 4, 9, 8, 4, 0,
-+  /* 2641 */ 0, 14, 2, 2, 9, 5, 9, 8, 4, 0,
-+  /* 2651 */ 0, 14, 2, 2, 10, 4, 10, 8, 4, 0,
-+  /* 2661 */ 0, 14, 2, 2, 10, 5, 10, 8, 4, 0,
-+  /* 2671 */ 0, 14, 2, 2, 11, 4, 11, 8, 4, 0,
-+  /* 2681 */ 0, 14, 2, 2, 11, 5, 11, 8, 4, 0,
-+  /* 2691 */ 21, 10, 4, 4, 10, 4, 0,
-+  /* 2698 */ 21, 11, 3, 4, 10, 4, 10, 4, 0,
-+  /* 2707 */ 21, 10, 4, 4, 10, 4, 10, 4, 0,
-+  /* 2716 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 4, 0,
-+  /* 2727 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 15, 11, 4, 0,
-+  /* 2740 */ 36, 1, 36, 1, 12, 4, 12, 4, 0,
-+  /* 2749 */ 12, 4, 36, 1, 12, 4, 12, 4, 0,
-+  /* 2758 */ 13, 4, 36, 1, 12, 4, 12, 4, 0,
-+  /* 2767 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 4, 0,
-+  /* 2780 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 4, 0,
-+  /* 2791 */ 21, 15, 3, 15, 3, 15, 12, 4, 0,
-+  /* 2800 */ 37, 1, 37, 1, 13, 4, 13, 4, 0,
-+  /* 2809 */ 13, 4, 37, 1, 13, 4, 13, 4, 0,
-+  /* 2818 */ 16, 4, 37, 1, 13, 4, 13, 4, 0,
-+  /* 2827 */ 16, 4, 16, 4, 13, 4, 13, 4, 0,
-+  /* 2836 */ 16, 4, 16, 4, 13, 4, 0,
-+  /* 2843 */ 0, 14, 20, 5, 15, 4, 0,
-+  /* 2850 */ 5, 19, 15, 4, 0,
-+  /* 2855 */ 13, 4, 16, 4, 0,
-+  /* 2860 */ 16, 4, 16, 4, 16, 4, 0,
-+  /* 2867 */ 4, 17, 4, 0,
-+  /* 2871 */ 17, 17, 4, 0,
-+  /* 2875 */ 16, 2, 2, 16, 2, 5, 0,
-+  /* 2882 */ 16, 2, 16, 2, 16, 2, 16, 2, 5, 0,
-+  /* 2892 */ 5, 16, 2, 16, 2, 5, 0,
-+  /* 2899 */ 16, 2, 13, 3, 13, 3, 16, 2, 5, 0,
-+  /* 2909 */ 5, 16, 2, 16, 2, 4, 5, 0,
-+  /* 2917 */ 21, 10, 4, 4, 9, 5, 9, 5, 0,
-+  /* 2926 */ 21, 9, 5, 4, 9, 5, 9, 5, 0,
-+  /* 2935 */ 23, 4, 4, 4, 4, 5, 4, 7, 0,
-+  /* 2944 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 0,
-+  /* 2954 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 0,
-+  /* 2964 */ 23, 7, 7, 7, 7, 5, 4, 7, 0,
-+  /* 2973 */ 23, 4, 4, 4, 4, 5, 7, 0,
-+  /* 2981 */ 23, 4, 4, 4, 4, 5, 5, 7, 0,
-+  /* 2990 */ 23, 7, 7, 7, 7, 5, 5, 7, 0,
-+  /* 2999 */ 23, 7, 7, 7, 7, 5, 7, 0,
-+  /* 3007 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 0,
-+  /* 3017 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 0,
-+  /* 3028 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 0,
-+  /* 3039 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 0,
-+  /* 3049 */ 23, 4, 4, 4, 4, 5, 7, 7, 0,
-+  /* 3058 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 0,
-+  /* 3068 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 0,
-+  /* 3078 */ 23, 7, 7, 7, 7, 5, 7, 7, 0,
-+  /* 3087 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 0,
-+  /* 3098 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 0,
-+  /* 3110 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 0,
-+  /* 3122 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 0,
-+  /* 3133 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 0,
-+  /* 3143 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 0,
-+  /* 3154 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 0,
-+  /* 3165 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 0,
-+  /* 3175 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 7, 0,
-+  /* 3187 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 7, 0,
-+  /* 3200 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 7, 0,
-+  /* 3213 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7, 0,
-+  /* 3225 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 0,
-+  /* 3236 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 0,
-+  /* 3248 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 0,
-+  /* 3260 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 0,
-+  /* 3271 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 7, 7, 7, 0,
-+  /* 3285 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 7, 7, 7, 0,
-+  /* 3300 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 7, 7, 7, 0,
-+  /* 3315 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7, 7, 7, 0,
-+  /* 3329 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 7, 7, 0,
-+  /* 3342 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 0,
-+  /* 3356 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 0,
-+  /* 3370 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 0,
-+  /* 3383 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-+  /* 3399 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-+  /* 3416 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-+  /* 3433 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
-+  /* 3449 */ 17, 10, 7, 0,
-+  /* 3453 */ 21, 9, 5, 4, 9, 8, 9, 8, 0,
-+  /* 3462 */ 9, 8, 9, 8, 9, 8, 9, 8, 0,
-+  /* 3471 */ 17, 9, 8, 0,
-+  /* 3475 */ 10, 8, 10, 8, 10, 8, 10, 8, 0,
-+  /* 3484 */ 0, 15, 3, 15, 3, 15, 3, 15, 12, 0,
-+  /* 3494 */ 0, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 0,
-+  /* 3506 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 0,
-+  /* 3518 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 0,
-+  /* 3528 */ 21, 15, 3, 15, 3, 15, 12, 0,
-+  /* 3536 */ 0, 15, 3, 15, 3, 5, 15, 12, 0,
-+  /* 3545 */ 0, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-+  /* 3556 */ 0, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-+  /* 3569 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-+  /* 3590 */ 22, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-+  /* 3607 */ 21, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
-+  /* 3620 */ 4, 17, 0,
-+  /* 3623 */ 10, 7, 10, 7, 17, 0,
-+  /* 3629 */ 9, 8, 17, 0,
-+  /* 3633 */ 0, 14, 17, 17, 0,
-+  /* 3638 */ 17, 17, 17, 0,
-+  /* 3642 */ 15, 0, 18, 0,
-+  /* 3646 */ 1, 18, 0,
-+  /* 3649 */ 15, 4, 18, 0,
-+  /* 3653 */ 15, 1, 19, 0,
-+  /* 3657 */ 1, 14, 2, 19, 0,
-+  /* 3662 */ 21, 14, 2, 1, 14, 2, 4, 19, 0,
-+  /* 3671 */ 0, 19, 5, 19, 19, 0,
-+  /* 3677 */ 0, 19, 19, 19, 0,
-+  /* 3682 */ 15, 0, 29, 0,
-+  /* 3686 */ 0, 1, 29, 0,
-+  /* 3690 */ 0, 5, 4, 14, 2, 4, 29, 0,
-+  /* 3698 */ 5, 5, 4, 14, 2, 4, 29, 0,
-+  /* 3706 */ 18, 5, 4, 15, 4, 4, 4, 29, 0,
-+  /* 3715 */ 0, 5, 4, 29, 0,
-+  /* 3720 */ 28, 35, 28, 35, 28, 35, 28, 35, 0,
-+  255
-+};
-+
-+#endif
-+
-+// Add parameter attributes that are not common to all intrinsics.
-+#ifdef GET_INTRINSIC_ATTRIBUTES
-+AttributeSet Intrinsic::getAttributes(LLVMContext &C, ID id) {
-+  static const uint8_t IntrinsicsToAttributesMap[] = {
-+    1, // llvm.addressofreturnaddress
-+    2, // llvm.adjust.trampoline
-+    3, // llvm.annotation
-+    3, // llvm.assume
-+    1, // llvm.bitreverse
-+    1, // llvm.bswap
-+    1, // llvm.canonicalize
-+    1, // llvm.ceil
-+    3, // llvm.clear_cache
-+    1, // llvm.convert.from.fp16
-+    1, // llvm.convert.to.fp16
-+    3, // llvm.convertff
-+    3, // llvm.convertfsi
-+    3, // llvm.convertfui
-+    3, // llvm.convertsif
-+    3, // llvm.convertss
-+    3, // llvm.convertsu
-+    3, // llvm.convertuif
-+    3, // llvm.convertus
-+    3, // llvm.convertuu
-+    1, // llvm.copysign
-+    3, // llvm.coro.alloc
-+    4, // llvm.coro.begin
-+    5, // llvm.coro.destroy
-+    6, // llvm.coro.done
-+    3, // llvm.coro.end
-+    1, // llvm.coro.frame
-+    7, // llvm.coro.free
-+    8, // llvm.coro.id
-+    9, // llvm.coro.param
-+    10, // llvm.coro.promise
-+    5, // llvm.coro.resume
-+    3, // llvm.coro.save
-+    1, // llvm.coro.size
-+    11, // llvm.coro.subfn.addr
-+    3, // llvm.coro.suspend
-+    1, // llvm.cos
-+    1, // llvm.ctlz
-+    1, // llvm.ctpop
-+    1, // llvm.cttz
-+    1, // llvm.dbg.declare
-+    1, // llvm.dbg.value
-+    3, // llvm.debugtrap
-+    1, // llvm.donothing
-+    3, // llvm.eh.dwarf.cfa
-+    1, // llvm.eh.exceptioncode
-+    1, // llvm.eh.exceptionpointer
-+    3, // llvm.eh.return.i32
-+    3, // llvm.eh.return.i64
-+    1, // llvm.eh.sjlj.callsite
-+    3, // llvm.eh.sjlj.functioncontext
-+    12, // llvm.eh.sjlj.longjmp
-+    1, // llvm.eh.sjlj.lsda
-+    3, // llvm.eh.sjlj.setjmp
-+    3, // llvm.eh.sjlj.setup.dispatch
-+    1, // llvm.eh.typeid.for
-+    3, // llvm.eh.unwind.init
-+    1, // llvm.exp
-+    1, // llvm.exp2
-+    1, // llvm.expect
-+    5, // llvm.experimental.deoptimize
-+    13, // llvm.experimental.gc.relocate
-+    13, // llvm.experimental.gc.result
-+    5, // llvm.experimental.gc.statepoint
-+    5, // llvm.experimental.guard
-+    5, // llvm.experimental.patchpoint.i64
-+    5, // llvm.experimental.patchpoint.void
-+    5, // llvm.experimental.stackmap
-+    1, // llvm.fabs
-+    1, // llvm.floor
-+    3, // llvm.flt.rounds
-+    1, // llvm.fma
-+    1, // llvm.fmuladd
-+    1, // llvm.frameaddress
-+    2, // llvm.gcread
-+    3, // llvm.gcroot
-+    14, // llvm.gcwrite
-+    3, // llvm.get.dynamic.area.offset
-+    15, // llvm.init.trampoline
-+    3, // llvm.instrprof.increment
-+    3, // llvm.instrprof.increment.step
-+    3, // llvm.instrprof.value.profile
-+    16, // llvm.invariant.end
-+    1, // llvm.invariant.group.barrier
-+    17, // llvm.invariant.start
-+    17, // llvm.lifetime.end
-+    17, // llvm.lifetime.start
-+    2, // llvm.load.relative
-+    1, // llvm.localaddress
-+    3, // llvm.localescape
-+    1, // llvm.localrecover
-+    1, // llvm.log
-+    1, // llvm.log10
-+    1, // llvm.log2
-+    12, // llvm.longjmp
-+    18, // llvm.masked.compressstore
-+    13, // llvm.masked.expandload
-+    13, // llvm.masked.gather
-+    2, // llvm.masked.load
-+    3, // llvm.masked.scatter
-+    18, // llvm.masked.store
-+    1, // llvm.maxnum
-+    19, // llvm.memcpy
-+    20, // llvm.memmove
-+    21, // llvm.memset
-+    1, // llvm.minnum
-+    1, // llvm.nearbyint
-+    1, // llvm.objectsize
-+    3, // llvm.pcmarker
-+    1, // llvm.pow
-+    1, // llvm.powi
-+    15, // llvm.prefetch
-+    3, // llvm.ptr.annotation
-+    13, // llvm.read_register
-+    3, // llvm.readcyclecounter
-+    1, // llvm.returnaddress
-+    1, // llvm.rint
-+    1, // llvm.round
-+    1, // llvm.sadd.with.overflow
-+    3, // llvm.setjmp
-+    12, // llvm.siglongjmp
-+    3, // llvm.sigsetjmp
-+    1, // llvm.sin
-+    1, // llvm.smul.with.overflow
-+    1, // llvm.sqrt
-+    1, // llvm.ssub.with.overflow
-+    3, // llvm.stackguard
-+    3, // llvm.stackprotector
-+    3, // llvm.stackrestore
-+    3, // llvm.stacksave
-+    1, // llvm.thread.pointer
-+    12, // llvm.trap
-+    1, // llvm.trunc
-+    1, // llvm.type.checked.load
-+    1, // llvm.type.test
-+    1, // llvm.uadd.with.overflow
-+    1, // llvm.umul.with.overflow
-+    1, // llvm.usub.with.overflow
-+    3, // llvm.va_copy
-+    3, // llvm.va_end
-+    3, // llvm.va_start
-+    3, // llvm.var.annotation
-+    3, // llvm.write_register
-+    3, // llvm.aarch64.clrex
-+    1, // llvm.aarch64.crc32b
-+    1, // llvm.aarch64.crc32cb
-+    1, // llvm.aarch64.crc32ch
-+    1, // llvm.aarch64.crc32cw
-+    1, // llvm.aarch64.crc32cx
-+    1, // llvm.aarch64.crc32h
-+    1, // llvm.aarch64.crc32w
-+    1, // llvm.aarch64.crc32x
-+    1, // llvm.aarch64.crypto.aesd
-+    1, // llvm.aarch64.crypto.aese
-+    1, // llvm.aarch64.crypto.aesimc
-+    1, // llvm.aarch64.crypto.aesmc
-+    1, // llvm.aarch64.crypto.sha1c
-+    1, // llvm.aarch64.crypto.sha1h
-+    1, // llvm.aarch64.crypto.sha1m
-+    1, // llvm.aarch64.crypto.sha1p
-+    1, // llvm.aarch64.crypto.sha1su0
-+    1, // llvm.aarch64.crypto.sha1su1
-+    1, // llvm.aarch64.crypto.sha256h
-+    1, // llvm.aarch64.crypto.sha256h2
-+    1, // llvm.aarch64.crypto.sha256su0
-+    1, // llvm.aarch64.crypto.sha256su1
-+    3, // llvm.aarch64.dmb
-+    3, // llvm.aarch64.dsb
-+    3, // llvm.aarch64.hint
-+    3, // llvm.aarch64.isb
-+    3, // llvm.aarch64.ldaxp
-+    3, // llvm.aarch64.ldaxr
-+    3, // llvm.aarch64.ldxp
-+    3, // llvm.aarch64.ldxr
-+    1, // llvm.aarch64.neon.abs
-+    1, // llvm.aarch64.neon.addhn
-+    1, // llvm.aarch64.neon.addp
-+    1, // llvm.aarch64.neon.cls
-+    1, // llvm.aarch64.neon.fabd
-+    1, // llvm.aarch64.neon.facge
-+    1, // llvm.aarch64.neon.facgt
-+    1, // llvm.aarch64.neon.faddv
-+    1, // llvm.aarch64.neon.fcvtas
-+    1, // llvm.aarch64.neon.fcvtau
-+    1, // llvm.aarch64.neon.fcvtms
-+    1, // llvm.aarch64.neon.fcvtmu
-+    1, // llvm.aarch64.neon.fcvtns
-+    1, // llvm.aarch64.neon.fcvtnu
-+    1, // llvm.aarch64.neon.fcvtps
-+    1, // llvm.aarch64.neon.fcvtpu
-+    1, // llvm.aarch64.neon.fcvtxn
-+    1, // llvm.aarch64.neon.fcvtzs
-+    1, // llvm.aarch64.neon.fcvtzu
-+    1, // llvm.aarch64.neon.fmax
-+    1, // llvm.aarch64.neon.fmaxnm
-+    1, // llvm.aarch64.neon.fmaxnmp
-+    1, // llvm.aarch64.neon.fmaxnmv
-+    1, // llvm.aarch64.neon.fmaxp
-+    1, // llvm.aarch64.neon.fmaxv
-+    1, // llvm.aarch64.neon.fmin
-+    1, // llvm.aarch64.neon.fminnm
-+    1, // llvm.aarch64.neon.fminnmp
-+    1, // llvm.aarch64.neon.fminnmv
-+    1, // llvm.aarch64.neon.fminp
-+    1, // llvm.aarch64.neon.fminv
-+    1, // llvm.aarch64.neon.fmulx
-+    1, // llvm.aarch64.neon.frecpe
-+    1, // llvm.aarch64.neon.frecps
-+    1, // llvm.aarch64.neon.frecpx
-+    1, // llvm.aarch64.neon.frintn
-+    1, // llvm.aarch64.neon.frsqrte
-+    1, // llvm.aarch64.neon.frsqrts
-+    2, // llvm.aarch64.neon.ld1x2
-+    2, // llvm.aarch64.neon.ld1x3
-+    2, // llvm.aarch64.neon.ld1x4
-+    2, // llvm.aarch64.neon.ld2
-+    2, // llvm.aarch64.neon.ld2lane
-+    2, // llvm.aarch64.neon.ld2r
-+    2, // llvm.aarch64.neon.ld3
-+    2, // llvm.aarch64.neon.ld3lane
-+    2, // llvm.aarch64.neon.ld3r
-+    2, // llvm.aarch64.neon.ld4
-+    2, // llvm.aarch64.neon.ld4lane
-+    2, // llvm.aarch64.neon.ld4r
-+    1, // llvm.aarch64.neon.pmul
-+    1, // llvm.aarch64.neon.pmull
-+    1, // llvm.aarch64.neon.pmull64
-+    1, // llvm.aarch64.neon.raddhn
-+    1, // llvm.aarch64.neon.rbit
-+    1, // llvm.aarch64.neon.rshrn
-+    1, // llvm.aarch64.neon.rsubhn
-+    1, // llvm.aarch64.neon.sabd
-+    1, // llvm.aarch64.neon.saddlp
-+    1, // llvm.aarch64.neon.saddlv
-+    1, // llvm.aarch64.neon.saddv
-+    1, // llvm.aarch64.neon.scalar.sqxtn
-+    1, // llvm.aarch64.neon.scalar.sqxtun
-+    1, // llvm.aarch64.neon.scalar.uqxtn
-+    1, // llvm.aarch64.neon.shadd
-+    1, // llvm.aarch64.neon.shll
-+    1, // llvm.aarch64.neon.shsub
-+    1, // llvm.aarch64.neon.smax
-+    1, // llvm.aarch64.neon.smaxp
-+    1, // llvm.aarch64.neon.smaxv
-+    1, // llvm.aarch64.neon.smin
-+    1, // llvm.aarch64.neon.sminp
-+    1, // llvm.aarch64.neon.sminv
-+    1, // llvm.aarch64.neon.smull
-+    1, // llvm.aarch64.neon.sqabs
-+    1, // llvm.aarch64.neon.sqadd
-+    1, // llvm.aarch64.neon.sqdmulh
-+    1, // llvm.aarch64.neon.sqdmull
-+    1, // llvm.aarch64.neon.sqdmulls.scalar
-+    1, // llvm.aarch64.neon.sqneg
-+    1, // llvm.aarch64.neon.sqrdmulh
-+    1, // llvm.aarch64.neon.sqrshl
-+    1, // llvm.aarch64.neon.sqrshrn
-+    1, // llvm.aarch64.neon.sqrshrun
-+    1, // llvm.aarch64.neon.sqshl
-+    1, // llvm.aarch64.neon.sqshlu
-+    1, // llvm.aarch64.neon.sqshrn
-+    1, // llvm.aarch64.neon.sqshrun
-+    1, // llvm.aarch64.neon.sqsub
-+    1, // llvm.aarch64.neon.sqxtn
-+    1, // llvm.aarch64.neon.sqxtun
-+    1, // llvm.aarch64.neon.srhadd
-+    1, // llvm.aarch64.neon.srshl
-+    1, // llvm.aarch64.neon.sshl
-+    1, // llvm.aarch64.neon.sshll
-+    16, // llvm.aarch64.neon.st1x2
-+    22, // llvm.aarch64.neon.st1x3
-+    23, // llvm.aarch64.neon.st1x4
-+    16, // llvm.aarch64.neon.st2
-+    22, // llvm.aarch64.neon.st2lane
-+    22, // llvm.aarch64.neon.st3
-+    23, // llvm.aarch64.neon.st3lane
-+    23, // llvm.aarch64.neon.st4
-+    24, // llvm.aarch64.neon.st4lane
-+    1, // llvm.aarch64.neon.subhn
-+    1, // llvm.aarch64.neon.suqadd
-+    1, // llvm.aarch64.neon.tbl1
-+    1, // llvm.aarch64.neon.tbl2
-+    1, // llvm.aarch64.neon.tbl3
-+    1, // llvm.aarch64.neon.tbl4
-+    1, // llvm.aarch64.neon.tbx1
-+    1, // llvm.aarch64.neon.tbx2
-+    1, // llvm.aarch64.neon.tbx3
-+    1, // llvm.aarch64.neon.tbx4
-+    1, // llvm.aarch64.neon.uabd
-+    1, // llvm.aarch64.neon.uaddlp
-+    1, // llvm.aarch64.neon.uaddlv
-+    1, // llvm.aarch64.neon.uaddv
-+    1, // llvm.aarch64.neon.uhadd
-+    1, // llvm.aarch64.neon.uhsub
-+    1, // llvm.aarch64.neon.umax
-+    1, // llvm.aarch64.neon.umaxp
-+    1, // llvm.aarch64.neon.umaxv
-+    1, // llvm.aarch64.neon.umin
-+    1, // llvm.aarch64.neon.uminp
-+    1, // llvm.aarch64.neon.uminv
-+    1, // llvm.aarch64.neon.umull
-+    1, // llvm.aarch64.neon.uqadd
-+    1, // llvm.aarch64.neon.uqrshl
-+    1, // llvm.aarch64.neon.uqrshrn
-+    1, // llvm.aarch64.neon.uqshl
-+    1, // llvm.aarch64.neon.uqshrn
-+    1, // llvm.aarch64.neon.uqsub
-+    1, // llvm.aarch64.neon.uqxtn
-+    1, // llvm.aarch64.neon.urecpe
-+    1, // llvm.aarch64.neon.urhadd
-+    1, // llvm.aarch64.neon.urshl
-+    1, // llvm.aarch64.neon.ursqrte
-+    1, // llvm.aarch64.neon.ushl
-+    1, // llvm.aarch64.neon.ushll
-+    1, // llvm.aarch64.neon.usqadd
-+    1, // llvm.aarch64.neon.vcopy.lane
-+    1, // llvm.aarch64.neon.vcvtfp2fxs
-+    1, // llvm.aarch64.neon.vcvtfp2fxu
-+    1, // llvm.aarch64.neon.vcvtfp2hf
-+    1, // llvm.aarch64.neon.vcvtfxs2fp
-+    1, // llvm.aarch64.neon.vcvtfxu2fp
-+    1, // llvm.aarch64.neon.vcvthf2fp
-+    1, // llvm.aarch64.neon.vsli
-+    1, // llvm.aarch64.neon.vsri
-+    1, // llvm.aarch64.rbit
-+    1, // llvm.aarch64.sdiv
-+    1, // llvm.aarch64.sisd.fabd
-+    1, // llvm.aarch64.sisd.fcvtxn
-+    3, // llvm.aarch64.stlxp
-+    3, // llvm.aarch64.stlxr
-+    3, // llvm.aarch64.stxp
-+    3, // llvm.aarch64.stxr
-+    1, // llvm.aarch64.udiv
-+    15, // llvm.amdgcn.atomic.dec
-+    15, // llvm.amdgcn.atomic.inc
-+    3, // llvm.amdgcn.buffer.atomic.add
-+    3, // llvm.amdgcn.buffer.atomic.and
-+    3, // llvm.amdgcn.buffer.atomic.cmpswap
-+    3, // llvm.amdgcn.buffer.atomic.or
-+    3, // llvm.amdgcn.buffer.atomic.smax
-+    3, // llvm.amdgcn.buffer.atomic.smin
-+    3, // llvm.amdgcn.buffer.atomic.sub
-+    3, // llvm.amdgcn.buffer.atomic.swap
-+    3, // llvm.amdgcn.buffer.atomic.umax
-+    3, // llvm.amdgcn.buffer.atomic.umin
-+    3, // llvm.amdgcn.buffer.atomic.xor
-+    13, // llvm.amdgcn.buffer.load
-+    13, // llvm.amdgcn.buffer.load.format
-+    25, // llvm.amdgcn.buffer.store
-+    25, // llvm.amdgcn.buffer.store.format
-+    3, // llvm.amdgcn.buffer.wbinvl1
-+    3, // llvm.amdgcn.buffer.wbinvl1.sc
-+    3, // llvm.amdgcn.buffer.wbinvl1.vol
-+    1, // llvm.amdgcn.class
-+    1, // llvm.amdgcn.cos
-+    1, // llvm.amdgcn.cubeid
-+    1, // llvm.amdgcn.cubema
-+    1, // llvm.amdgcn.cubesc
-+    1, // llvm.amdgcn.cubetc
-+    1, // llvm.amdgcn.cvt.pk.u8.f32
-+    1, // llvm.amdgcn.dispatch.id
-+    1, // llvm.amdgcn.dispatch.ptr
-+    1, // llvm.amdgcn.div.fixup
-+    1, // llvm.amdgcn.div.fmas
-+    1, // llvm.amdgcn.div.scale
-+    26, // llvm.amdgcn.ds.bpermute
-+    26, // llvm.amdgcn.ds.permute
-+    26, // llvm.amdgcn.ds.swizzle
-+    26, // llvm.amdgcn.fcmp
-+    1, // llvm.amdgcn.fmul.legacy
-+    1, // llvm.amdgcn.fract
-+    1, // llvm.amdgcn.frexp.exp
-+    1, // llvm.amdgcn.frexp.mant
-+    1, // llvm.amdgcn.groupstaticsize
-+    26, // llvm.amdgcn.icmp
-+    3, // llvm.amdgcn.image.atomic.add
-+    3, // llvm.amdgcn.image.atomic.and
-+    3, // llvm.amdgcn.image.atomic.cmpswap
-+    3, // llvm.amdgcn.image.atomic.dec
-+    3, // llvm.amdgcn.image.atomic.inc
-+    3, // llvm.amdgcn.image.atomic.or
-+    3, // llvm.amdgcn.image.atomic.smax
-+    3, // llvm.amdgcn.image.atomic.smin
-+    3, // llvm.amdgcn.image.atomic.sub
-+    3, // llvm.amdgcn.image.atomic.swap
-+    3, // llvm.amdgcn.image.atomic.umax
-+    3, // llvm.amdgcn.image.atomic.umin
-+    3, // llvm.amdgcn.image.atomic.xor
-+    13, // llvm.amdgcn.image.gather4
-+    13, // llvm.amdgcn.image.gather4.b
-+    13, // llvm.amdgcn.image.gather4.b.cl
-+    13, // llvm.amdgcn.image.gather4.b.cl.o
-+    13, // llvm.amdgcn.image.gather4.b.o
-+    13, // llvm.amdgcn.image.gather4.c
-+    13, // llvm.amdgcn.image.gather4.c.b
-+    13, // llvm.amdgcn.image.gather4.c.b.cl
-+    13, // llvm.amdgcn.image.gather4.c.b.cl.o
-+    13, // llvm.amdgcn.image.gather4.c.b.o
-+    13, // llvm.amdgcn.image.gather4.c.cl
-+    13, // llvm.amdgcn.image.gather4.c.cl.o
-+    13, // llvm.amdgcn.image.gather4.c.l
-+    13, // llvm.amdgcn.image.gather4.c.l.o
-+    13, // llvm.amdgcn.image.gather4.c.lz
-+    13, // llvm.amdgcn.image.gather4.c.lz.o
-+    13, // llvm.amdgcn.image.gather4.c.o
-+    13, // llvm.amdgcn.image.gather4.cl
-+    13, // llvm.amdgcn.image.gather4.cl.o
-+    13, // llvm.amdgcn.image.gather4.l
-+    13, // llvm.amdgcn.image.gather4.l.o
-+    13, // llvm.amdgcn.image.gather4.lz
-+    13, // llvm.amdgcn.image.gather4.lz.o
-+    13, // llvm.amdgcn.image.gather4.o
-+    13, // llvm.amdgcn.image.getlod
-+    13, // llvm.amdgcn.image.getresinfo
-+    13, // llvm.amdgcn.image.load
-+    13, // llvm.amdgcn.image.load.mip
-+    13, // llvm.amdgcn.image.sample
-+    13, // llvm.amdgcn.image.sample.b
-+    13, // llvm.amdgcn.image.sample.b.cl
-+    13, // llvm.amdgcn.image.sample.b.cl.o
-+    13, // llvm.amdgcn.image.sample.b.o
-+    13, // llvm.amdgcn.image.sample.c
-+    13, // llvm.amdgcn.image.sample.c.b
-+    13, // llvm.amdgcn.image.sample.c.b.cl
-+    13, // llvm.amdgcn.image.sample.c.b.cl.o
-+    13, // llvm.amdgcn.image.sample.c.b.o
-+    13, // llvm.amdgcn.image.sample.c.cd
-+    13, // llvm.amdgcn.image.sample.c.cd.cl
-+    13, // llvm.amdgcn.image.sample.c.cd.cl.o
-+    13, // llvm.amdgcn.image.sample.c.cd.o
-+    13, // llvm.amdgcn.image.sample.c.cl
-+    13, // llvm.amdgcn.image.sample.c.cl.o
-+    13, // llvm.amdgcn.image.sample.c.d
-+    13, // llvm.amdgcn.image.sample.c.d.cl
-+    13, // llvm.amdgcn.image.sample.c.d.cl.o
-+    13, // llvm.amdgcn.image.sample.c.d.o
-+    13, // llvm.amdgcn.image.sample.c.l
-+    13, // llvm.amdgcn.image.sample.c.l.o
-+    13, // llvm.amdgcn.image.sample.c.lz
-+    13, // llvm.amdgcn.image.sample.c.lz.o
-+    13, // llvm.amdgcn.image.sample.c.o
-+    13, // llvm.amdgcn.image.sample.cd
-+    13, // llvm.amdgcn.image.sample.cd.cl
-+    13, // llvm.amdgcn.image.sample.cd.cl.o
-+    13, // llvm.amdgcn.image.sample.cd.o
-+    13, // llvm.amdgcn.image.sample.cl
-+    13, // llvm.amdgcn.image.sample.cl.o
-+    13, // llvm.amdgcn.image.sample.d
-+    13, // llvm.amdgcn.image.sample.d.cl
-+    13, // llvm.amdgcn.image.sample.d.cl.o
-+    13, // llvm.amdgcn.image.sample.d.o
-+    13, // llvm.amdgcn.image.sample.l
-+    13, // llvm.amdgcn.image.sample.l.o
-+    13, // llvm.amdgcn.image.sample.lz
-+    13, // llvm.amdgcn.image.sample.lz.o
-+    13, // llvm.amdgcn.image.sample.o
-+    3, // llvm.amdgcn.image.store
-+    3, // llvm.amdgcn.image.store.mip
-+    1, // llvm.amdgcn.implicitarg.ptr
-+    1, // llvm.amdgcn.interp.mov
-+    1, // llvm.amdgcn.interp.p1
-+    1, // llvm.amdgcn.interp.p2
-+    1, // llvm.amdgcn.kernarg.segment.ptr
-+    1, // llvm.amdgcn.ldexp
-+    1, // llvm.amdgcn.lerp
-+    1, // llvm.amdgcn.log.clamp
-+    1, // llvm.amdgcn.mbcnt.hi
-+    1, // llvm.amdgcn.mbcnt.lo
-+    26, // llvm.amdgcn.mov.dpp
-+    1, // llvm.amdgcn.mqsad.pk.u16.u8
-+    1, // llvm.amdgcn.mqsad.u32.u8
-+    1, // llvm.amdgcn.msad.u8
-+    1, // llvm.amdgcn.ps.live
-+    1, // llvm.amdgcn.qsad.pk.u16.u8
-+    1, // llvm.amdgcn.queue.ptr
-+    1, // llvm.amdgcn.rcp
-+    1, // llvm.amdgcn.rcp.legacy
-+    26, // llvm.amdgcn.readfirstlane
-+    26, // llvm.amdgcn.readlane
-+    1, // llvm.amdgcn.rsq
-+    1, // llvm.amdgcn.rsq.clamp
-+    1, // llvm.amdgcn.rsq.legacy
-+    27, // llvm.amdgcn.s.barrier
-+    3, // llvm.amdgcn.s.dcache.inv
-+    3, // llvm.amdgcn.s.dcache.inv.vol
-+    3, // llvm.amdgcn.s.dcache.wb
-+    3, // llvm.amdgcn.s.dcache.wb.vol
-+    3, // llvm.amdgcn.s.decperflevel
-+    13, // llvm.amdgcn.s.getreg
-+    3, // llvm.amdgcn.s.incperflevel
-+    3, // llvm.amdgcn.s.memrealtime
-+    3, // llvm.amdgcn.s.memtime
-+    3, // llvm.amdgcn.s.sleep
-+    3, // llvm.amdgcn.s.waitcnt
-+    1, // llvm.amdgcn.sad.hi.u8
-+    1, // llvm.amdgcn.sad.u16
-+    1, // llvm.amdgcn.sad.u8
-+    1, // llvm.amdgcn.sffbh
-+    1, // llvm.amdgcn.sin
-+    1, // llvm.amdgcn.trig.preop
-+    27, // llvm.amdgcn.wave.barrier
-+    1, // llvm.amdgcn.workgroup.id.x
-+    1, // llvm.amdgcn.workgroup.id.y
-+    1, // llvm.amdgcn.workgroup.id.z
-+    1, // llvm.amdgcn.workitem.id.x
-+    1, // llvm.amdgcn.workitem.id.y
-+    1, // llvm.amdgcn.workitem.id.z
-+    3, // llvm.arm.cdp
-+    3, // llvm.arm.cdp2
-+    3, // llvm.arm.clrex
-+    1, // llvm.arm.crc32b
-+    1, // llvm.arm.crc32cb
-+    1, // llvm.arm.crc32ch
-+    1, // llvm.arm.crc32cw
-+    1, // llvm.arm.crc32h
-+    1, // llvm.arm.crc32w
-+    3, // llvm.arm.dbg
-+    3, // llvm.arm.dmb
-+    3, // llvm.arm.dsb
-+    1, // llvm.arm.get.fpscr
-+    3, // llvm.arm.hint
-+    3, // llvm.arm.isb
-+    3, // llvm.arm.ldaex
-+    3, // llvm.arm.ldaexd
-+    3, // llvm.arm.ldc
-+    3, // llvm.arm.ldc2
-+    3, // llvm.arm.ldc2l
-+    3, // llvm.arm.ldcl
-+    3, // llvm.arm.ldrex
-+    3, // llvm.arm.ldrexd
-+    3, // llvm.arm.mcr
-+    3, // llvm.arm.mcr2
-+    3, // llvm.arm.mcrr
-+    3, // llvm.arm.mcrr2
-+    3, // llvm.arm.mrc
-+    3, // llvm.arm.mrc2
-+    3, // llvm.arm.mrrc
-+    3, // llvm.arm.mrrc2
-+    1, // llvm.arm.neon.aesd
-+    1, // llvm.arm.neon.aese
-+    1, // llvm.arm.neon.aesimc
-+    1, // llvm.arm.neon.aesmc
-+    1, // llvm.arm.neon.sha1c
-+    1, // llvm.arm.neon.sha1h
-+    1, // llvm.arm.neon.sha1m
-+    1, // llvm.arm.neon.sha1p
-+    1, // llvm.arm.neon.sha1su0
-+    1, // llvm.arm.neon.sha1su1
-+    1, // llvm.arm.neon.sha256h
-+    1, // llvm.arm.neon.sha256h2
-+    1, // llvm.arm.neon.sha256su0
-+    1, // llvm.arm.neon.sha256su1
-+    1, // llvm.arm.neon.vabds
-+    1, // llvm.arm.neon.vabdu
-+    1, // llvm.arm.neon.vabs
-+    1, // llvm.arm.neon.vacge
-+    1, // llvm.arm.neon.vacgt
-+    1, // llvm.arm.neon.vbsl
-+    1, // llvm.arm.neon.vcls
-+    1, // llvm.arm.neon.vcvtas
-+    1, // llvm.arm.neon.vcvtau
-+    1, // llvm.arm.neon.vcvtfp2fxs
-+    1, // llvm.arm.neon.vcvtfp2fxu
-+    1, // llvm.arm.neon.vcvtfp2hf
-+    1, // llvm.arm.neon.vcvtfxs2fp
-+    1, // llvm.arm.neon.vcvtfxu2fp
-+    1, // llvm.arm.neon.vcvthf2fp
-+    1, // llvm.arm.neon.vcvtms
-+    1, // llvm.arm.neon.vcvtmu
-+    1, // llvm.arm.neon.vcvtns
-+    1, // llvm.arm.neon.vcvtnu
-+    1, // llvm.arm.neon.vcvtps
-+    1, // llvm.arm.neon.vcvtpu
-+    1, // llvm.arm.neon.vhadds
-+    1, // llvm.arm.neon.vhaddu
-+    1, // llvm.arm.neon.vhsubs
-+    1, // llvm.arm.neon.vhsubu
-+    2, // llvm.arm.neon.vld1
-+    2, // llvm.arm.neon.vld2
-+    2, // llvm.arm.neon.vld2lane
-+    2, // llvm.arm.neon.vld3
-+    2, // llvm.arm.neon.vld3lane
-+    2, // llvm.arm.neon.vld4
-+    2, // llvm.arm.neon.vld4lane
-+    1, // llvm.arm.neon.vmaxnm
-+    1, // llvm.arm.neon.vmaxs
-+    1, // llvm.arm.neon.vmaxu
-+    1, // llvm.arm.neon.vminnm
-+    1, // llvm.arm.neon.vmins
-+    1, // llvm.arm.neon.vminu
-+    1, // llvm.arm.neon.vmullp
-+    1, // llvm.arm.neon.vmulls
-+    1, // llvm.arm.neon.vmullu
-+    1, // llvm.arm.neon.vmulp
-+    1, // llvm.arm.neon.vpadals
-+    1, // llvm.arm.neon.vpadalu
-+    1, // llvm.arm.neon.vpadd
-+    1, // llvm.arm.neon.vpaddls
-+    1, // llvm.arm.neon.vpaddlu
-+    1, // llvm.arm.neon.vpmaxs
-+    1, // llvm.arm.neon.vpmaxu
-+    1, // llvm.arm.neon.vpmins
-+    1, // llvm.arm.neon.vpminu
-+    1, // llvm.arm.neon.vqabs
-+    1, // llvm.arm.neon.vqadds
-+    1, // llvm.arm.neon.vqaddu
-+    1, // llvm.arm.neon.vqdmulh
-+    1, // llvm.arm.neon.vqdmull
-+    1, // llvm.arm.neon.vqmovns
-+    1, // llvm.arm.neon.vqmovnsu
-+    1, // llvm.arm.neon.vqmovnu
-+    1, // llvm.arm.neon.vqneg
-+    1, // llvm.arm.neon.vqrdmulh
-+    1, // llvm.arm.neon.vqrshiftns
-+    1, // llvm.arm.neon.vqrshiftnsu
-+    1, // llvm.arm.neon.vqrshiftnu
-+    1, // llvm.arm.neon.vqrshifts
-+    1, // llvm.arm.neon.vqrshiftu
-+    1, // llvm.arm.neon.vqshiftns
-+    1, // llvm.arm.neon.vqshiftnsu
-+    1, // llvm.arm.neon.vqshiftnu
-+    1, // llvm.arm.neon.vqshifts
-+    1, // llvm.arm.neon.vqshiftsu
-+    1, // llvm.arm.neon.vqshiftu
-+    1, // llvm.arm.neon.vqsubs
-+    1, // llvm.arm.neon.vqsubu
-+    1, // llvm.arm.neon.vraddhn
-+    1, // llvm.arm.neon.vrecpe
-+    1, // llvm.arm.neon.vrecps
-+    1, // llvm.arm.neon.vrhadds
-+    1, // llvm.arm.neon.vrhaddu
-+    1, // llvm.arm.neon.vrinta
-+    1, // llvm.arm.neon.vrintm
-+    1, // llvm.arm.neon.vrintn
-+    1, // llvm.arm.neon.vrintp
-+    1, // llvm.arm.neon.vrintx
-+    1, // llvm.arm.neon.vrintz
-+    1, // llvm.arm.neon.vrshiftn
-+    1, // llvm.arm.neon.vrshifts
-+    1, // llvm.arm.neon.vrshiftu
-+    1, // llvm.arm.neon.vrsqrte
-+    1, // llvm.arm.neon.vrsqrts
-+    1, // llvm.arm.neon.vrsubhn
-+    1, // llvm.arm.neon.vshiftins
-+    1, // llvm.arm.neon.vshifts
-+    1, // llvm.arm.neon.vshiftu
-+    18, // llvm.arm.neon.vst1
-+    18, // llvm.arm.neon.vst2
-+    18, // llvm.arm.neon.vst2lane
-+    18, // llvm.arm.neon.vst3
-+    18, // llvm.arm.neon.vst3lane
-+    18, // llvm.arm.neon.vst4
-+    18, // llvm.arm.neon.vst4lane
-+    1, // llvm.arm.neon.vtbl1
-+    1, // llvm.arm.neon.vtbl2
-+    1, // llvm.arm.neon.vtbl3
-+    1, // llvm.arm.neon.vtbl4
-+    1, // llvm.arm.neon.vtbx1
-+    1, // llvm.arm.neon.vtbx2
-+    1, // llvm.arm.neon.vtbx3
-+    1, // llvm.arm.neon.vtbx4
-+    1, // llvm.arm.qadd
-+    1, // llvm.arm.qsub
-+    1, // llvm.arm.rbit
-+    3, // llvm.arm.set.fpscr
-+    3, // llvm.arm.space
-+    1, // llvm.arm.ssat
-+    3, // llvm.arm.stc
-+    3, // llvm.arm.stc2
-+    3, // llvm.arm.stc2l
-+    3, // llvm.arm.stcl
-+    3, // llvm.arm.stlex
-+    3, // llvm.arm.stlexd
-+    3, // llvm.arm.strex
-+    3, // llvm.arm.strexd
-+    3, // llvm.arm.undefined
-+    1, // llvm.arm.usat
-+    1, // llvm.arm.vcvtr
-+    1, // llvm.arm.vcvtru
-+    13, // llvm.bpf.load.byte
-+    13, // llvm.bpf.load.half
-+    13, // llvm.bpf.load.word
-+    3, // llvm.bpf.pseudo
-+    1, // llvm.hexagon.A2.abs
-+    1, // llvm.hexagon.A2.absp
-+    1, // llvm.hexagon.A2.abssat
-+    1, // llvm.hexagon.A2.add
-+    1, // llvm.hexagon.A2.addh.h16.hh
-+    1, // llvm.hexagon.A2.addh.h16.hl
-+    1, // llvm.hexagon.A2.addh.h16.lh
-+    1, // llvm.hexagon.A2.addh.h16.ll
-+    1, // llvm.hexagon.A2.addh.h16.sat.hh
-+    1, // llvm.hexagon.A2.addh.h16.sat.hl
-+    1, // llvm.hexagon.A2.addh.h16.sat.lh
-+    1, // llvm.hexagon.A2.addh.h16.sat.ll
-+    1, // llvm.hexagon.A2.addh.l16.hl
-+    1, // llvm.hexagon.A2.addh.l16.ll
-+    1, // llvm.hexagon.A2.addh.l16.sat.hl
-+    1, // llvm.hexagon.A2.addh.l16.sat.ll
-+    1, // llvm.hexagon.A2.addi
-+    1, // llvm.hexagon.A2.addp
-+    1, // llvm.hexagon.A2.addpsat
-+    1, // llvm.hexagon.A2.addsat
-+    1, // llvm.hexagon.A2.addsp
-+    1, // llvm.hexagon.A2.and
-+    1, // llvm.hexagon.A2.andir
-+    1, // llvm.hexagon.A2.andp
-+    1, // llvm.hexagon.A2.aslh
-+    1, // llvm.hexagon.A2.asrh
-+    1, // llvm.hexagon.A2.combine.hh
-+    1, // llvm.hexagon.A2.combine.hl
-+    1, // llvm.hexagon.A2.combine.lh
-+    1, // llvm.hexagon.A2.combine.ll
-+    1, // llvm.hexagon.A2.combineii
-+    1, // llvm.hexagon.A2.combinew
-+    1, // llvm.hexagon.A2.max
-+    1, // llvm.hexagon.A2.maxp
-+    1, // llvm.hexagon.A2.maxu
-+    1, // llvm.hexagon.A2.maxup
-+    1, // llvm.hexagon.A2.min
-+    1, // llvm.hexagon.A2.minp
-+    1, // llvm.hexagon.A2.minu
-+    1, // llvm.hexagon.A2.minup
-+    1, // llvm.hexagon.A2.neg
-+    1, // llvm.hexagon.A2.negp
-+    1, // llvm.hexagon.A2.negsat
-+    1, // llvm.hexagon.A2.not
-+    1, // llvm.hexagon.A2.notp
-+    1, // llvm.hexagon.A2.or
-+    1, // llvm.hexagon.A2.orir
-+    1, // llvm.hexagon.A2.orp
-+    1, // llvm.hexagon.A2.roundsat
-+    1, // llvm.hexagon.A2.sat
-+    1, // llvm.hexagon.A2.satb
-+    1, // llvm.hexagon.A2.sath
-+    1, // llvm.hexagon.A2.satub
-+    1, // llvm.hexagon.A2.satuh
-+    1, // llvm.hexagon.A2.sub
-+    1, // llvm.hexagon.A2.subh.h16.hh
-+    1, // llvm.hexagon.A2.subh.h16.hl
-+    1, // llvm.hexagon.A2.subh.h16.lh
-+    1, // llvm.hexagon.A2.subh.h16.ll
-+    1, // llvm.hexagon.A2.subh.h16.sat.hh
-+    1, // llvm.hexagon.A2.subh.h16.sat.hl
-+    1, // llvm.hexagon.A2.subh.h16.sat.lh
-+    1, // llvm.hexagon.A2.subh.h16.sat.ll
-+    1, // llvm.hexagon.A2.subh.l16.hl
-+    1, // llvm.hexagon.A2.subh.l16.ll
-+    1, // llvm.hexagon.A2.subh.l16.sat.hl
-+    1, // llvm.hexagon.A2.subh.l16.sat.ll
-+    1, // llvm.hexagon.A2.subp
-+    1, // llvm.hexagon.A2.subri
-+    1, // llvm.hexagon.A2.subsat
-+    1, // llvm.hexagon.A2.svaddh
-+    1, // llvm.hexagon.A2.svaddhs
-+    1, // llvm.hexagon.A2.svadduhs
-+    1, // llvm.hexagon.A2.svavgh
-+    1, // llvm.hexagon.A2.svavghs
-+    1, // llvm.hexagon.A2.svnavgh
-+    1, // llvm.hexagon.A2.svsubh
-+    1, // llvm.hexagon.A2.svsubhs
-+    1, // llvm.hexagon.A2.svsubuhs
-+    1, // llvm.hexagon.A2.swiz
-+    1, // llvm.hexagon.A2.sxtb
-+    1, // llvm.hexagon.A2.sxth
-+    1, // llvm.hexagon.A2.sxtw
-+    1, // llvm.hexagon.A2.tfr
-+    1, // llvm.hexagon.A2.tfrih
-+    1, // llvm.hexagon.A2.tfril
-+    1, // llvm.hexagon.A2.tfrp
-+    1, // llvm.hexagon.A2.tfrpi
-+    1, // llvm.hexagon.A2.tfrsi
-+    1, // llvm.hexagon.A2.vabsh
-+    1, // llvm.hexagon.A2.vabshsat
-+    1, // llvm.hexagon.A2.vabsw
-+    1, // llvm.hexagon.A2.vabswsat
-+    1, // llvm.hexagon.A2.vaddb.map
-+    1, // llvm.hexagon.A2.vaddh
-+    1, // llvm.hexagon.A2.vaddhs
-+    1, // llvm.hexagon.A2.vaddub
-+    1, // llvm.hexagon.A2.vaddubs
-+    1, // llvm.hexagon.A2.vadduhs
-+    1, // llvm.hexagon.A2.vaddw
-+    1, // llvm.hexagon.A2.vaddws
-+    1, // llvm.hexagon.A2.vavgh
-+    1, // llvm.hexagon.A2.vavghcr
-+    1, // llvm.hexagon.A2.vavghr
-+    1, // llvm.hexagon.A2.vavgub
-+    1, // llvm.hexagon.A2.vavgubr
-+    1, // llvm.hexagon.A2.vavguh
-+    1, // llvm.hexagon.A2.vavguhr
-+    1, // llvm.hexagon.A2.vavguw
-+    1, // llvm.hexagon.A2.vavguwr
-+    1, // llvm.hexagon.A2.vavgw
-+    1, // llvm.hexagon.A2.vavgwcr
-+    1, // llvm.hexagon.A2.vavgwr
-+    1, // llvm.hexagon.A2.vcmpbeq
-+    1, // llvm.hexagon.A2.vcmpbgtu
-+    1, // llvm.hexagon.A2.vcmpheq
-+    1, // llvm.hexagon.A2.vcmphgt
-+    1, // llvm.hexagon.A2.vcmphgtu
-+    1, // llvm.hexagon.A2.vcmpweq
-+    1, // llvm.hexagon.A2.vcmpwgt
-+    1, // llvm.hexagon.A2.vcmpwgtu
-+    1, // llvm.hexagon.A2.vconj
-+    1, // llvm.hexagon.A2.vmaxb
-+    1, // llvm.hexagon.A2.vmaxh
-+    1, // llvm.hexagon.A2.vmaxub
-+    1, // llvm.hexagon.A2.vmaxuh
-+    1, // llvm.hexagon.A2.vmaxuw
-+    1, // llvm.hexagon.A2.vmaxw
-+    1, // llvm.hexagon.A2.vminb
-+    1, // llvm.hexagon.A2.vminh
-+    1, // llvm.hexagon.A2.vminub
-+    1, // llvm.hexagon.A2.vminuh
-+    1, // llvm.hexagon.A2.vminuw
-+    1, // llvm.hexagon.A2.vminw
-+    1, // llvm.hexagon.A2.vnavgh
-+    1, // llvm.hexagon.A2.vnavghcr
-+    1, // llvm.hexagon.A2.vnavghr
-+    1, // llvm.hexagon.A2.vnavgw
-+    1, // llvm.hexagon.A2.vnavgwcr
-+    1, // llvm.hexagon.A2.vnavgwr
-+    1, // llvm.hexagon.A2.vraddub
-+    1, // llvm.hexagon.A2.vraddub.acc
-+    1, // llvm.hexagon.A2.vrsadub
-+    1, // llvm.hexagon.A2.vrsadub.acc
-+    1, // llvm.hexagon.A2.vsubb.map
-+    1, // llvm.hexagon.A2.vsubh
-+    1, // llvm.hexagon.A2.vsubhs
-+    1, // llvm.hexagon.A2.vsubub
-+    1, // llvm.hexagon.A2.vsububs
-+    1, // llvm.hexagon.A2.vsubuhs
-+    1, // llvm.hexagon.A2.vsubw
-+    1, // llvm.hexagon.A2.vsubws
-+    1, // llvm.hexagon.A2.xor
-+    1, // llvm.hexagon.A2.xorp
-+    1, // llvm.hexagon.A2.zxtb
-+    1, // llvm.hexagon.A2.zxth
-+    1, // llvm.hexagon.A4.andn
-+    1, // llvm.hexagon.A4.andnp
-+    1, // llvm.hexagon.A4.bitsplit
-+    1, // llvm.hexagon.A4.bitspliti
-+    1, // llvm.hexagon.A4.boundscheck
-+    1, // llvm.hexagon.A4.cmpbeq
-+    1, // llvm.hexagon.A4.cmpbeqi
-+    1, // llvm.hexagon.A4.cmpbgt
-+    1, // llvm.hexagon.A4.cmpbgti
-+    1, // llvm.hexagon.A4.cmpbgtu
-+    1, // llvm.hexagon.A4.cmpbgtui
-+    1, // llvm.hexagon.A4.cmpheq
-+    1, // llvm.hexagon.A4.cmpheqi
-+    1, // llvm.hexagon.A4.cmphgt
-+    1, // llvm.hexagon.A4.cmphgti
-+    1, // llvm.hexagon.A4.cmphgtu
-+    1, // llvm.hexagon.A4.cmphgtui
-+    1, // llvm.hexagon.A4.combineir
-+    1, // llvm.hexagon.A4.combineri
-+    1, // llvm.hexagon.A4.cround.ri
-+    1, // llvm.hexagon.A4.cround.rr
-+    1, // llvm.hexagon.A4.modwrapu
-+    1, // llvm.hexagon.A4.orn
-+    1, // llvm.hexagon.A4.ornp
-+    1, // llvm.hexagon.A4.rcmpeq
-+    1, // llvm.hexagon.A4.rcmpeqi
-+    1, // llvm.hexagon.A4.rcmpneq
-+    1, // llvm.hexagon.A4.rcmpneqi
-+    1, // llvm.hexagon.A4.round.ri
-+    1, // llvm.hexagon.A4.round.ri.sat
-+    1, // llvm.hexagon.A4.round.rr
-+    1, // llvm.hexagon.A4.round.rr.sat
-+    1, // llvm.hexagon.A4.tlbmatch
-+    1, // llvm.hexagon.A4.vcmpbeq.any
-+    1, // llvm.hexagon.A4.vcmpbeqi
-+    1, // llvm.hexagon.A4.vcmpbgt
-+    1, // llvm.hexagon.A4.vcmpbgti
-+    1, // llvm.hexagon.A4.vcmpbgtui
-+    1, // llvm.hexagon.A4.vcmpheqi
-+    1, // llvm.hexagon.A4.vcmphgti
-+    1, // llvm.hexagon.A4.vcmphgtui
-+    1, // llvm.hexagon.A4.vcmpweqi
-+    1, // llvm.hexagon.A4.vcmpwgti
-+    1, // llvm.hexagon.A4.vcmpwgtui
-+    1, // llvm.hexagon.A4.vrmaxh
-+    1, // llvm.hexagon.A4.vrmaxuh
-+    1, // llvm.hexagon.A4.vrmaxuw
-+    1, // llvm.hexagon.A4.vrmaxw
-+    1, // llvm.hexagon.A4.vrminh
-+    1, // llvm.hexagon.A4.vrminuh
-+    1, // llvm.hexagon.A4.vrminuw
-+    1, // llvm.hexagon.A4.vrminw
-+    1, // llvm.hexagon.A5.vaddhubs
-+    1, // llvm.hexagon.C2.all8
-+    1, // llvm.hexagon.C2.and
-+    1, // llvm.hexagon.C2.andn
-+    1, // llvm.hexagon.C2.any8
-+    1, // llvm.hexagon.C2.bitsclr
-+    1, // llvm.hexagon.C2.bitsclri
-+    1, // llvm.hexagon.C2.bitsset
-+    1, // llvm.hexagon.C2.cmpeq
-+    1, // llvm.hexagon.C2.cmpeqi
-+    1, // llvm.hexagon.C2.cmpeqp
-+    1, // llvm.hexagon.C2.cmpgei
-+    1, // llvm.hexagon.C2.cmpgeui
-+    1, // llvm.hexagon.C2.cmpgt
-+    1, // llvm.hexagon.C2.cmpgti
-+    1, // llvm.hexagon.C2.cmpgtp
-+    1, // llvm.hexagon.C2.cmpgtu
-+    1, // llvm.hexagon.C2.cmpgtui
-+    1, // llvm.hexagon.C2.cmpgtup
-+    1, // llvm.hexagon.C2.cmplt
-+    1, // llvm.hexagon.C2.cmpltu
-+    1, // llvm.hexagon.C2.mask
-+    1, // llvm.hexagon.C2.mux
-+    1, // llvm.hexagon.C2.muxii
-+    1, // llvm.hexagon.C2.muxir
-+    1, // llvm.hexagon.C2.muxri
-+    1, // llvm.hexagon.C2.not
-+    1, // llvm.hexagon.C2.or
-+    1, // llvm.hexagon.C2.orn
-+    1, // llvm.hexagon.C2.pxfer.map
-+    1, // llvm.hexagon.C2.tfrpr
-+    1, // llvm.hexagon.C2.tfrrp
-+    1, // llvm.hexagon.C2.vitpack
-+    1, // llvm.hexagon.C2.vmux
-+    1, // llvm.hexagon.C2.xor
-+    1, // llvm.hexagon.C4.and.and
-+    1, // llvm.hexagon.C4.and.andn
-+    1, // llvm.hexagon.C4.and.or
-+    1, // llvm.hexagon.C4.and.orn
-+    1, // llvm.hexagon.C4.cmplte
-+    1, // llvm.hexagon.C4.cmpltei
-+    1, // llvm.hexagon.C4.cmplteu
-+    1, // llvm.hexagon.C4.cmplteui
-+    1, // llvm.hexagon.C4.cmpneq
-+    1, // llvm.hexagon.C4.cmpneqi
-+    1, // llvm.hexagon.C4.fastcorner9
-+    1, // llvm.hexagon.C4.fastcorner9.not
-+    1, // llvm.hexagon.C4.nbitsclr
-+    1, // llvm.hexagon.C4.nbitsclri
-+    1, // llvm.hexagon.C4.nbitsset
-+    1, // llvm.hexagon.C4.or.and
-+    1, // llvm.hexagon.C4.or.andn
-+    1, // llvm.hexagon.C4.or.or
-+    1, // llvm.hexagon.C4.or.orn
-+    1, // llvm.hexagon.F2.conv.d2df
-+    1, // llvm.hexagon.F2.conv.d2sf
-+    1, // llvm.hexagon.F2.conv.df2d
-+    1, // llvm.hexagon.F2.conv.df2d.chop
-+    1, // llvm.hexagon.F2.conv.df2sf
-+    1, // llvm.hexagon.F2.conv.df2ud
-+    1, // llvm.hexagon.F2.conv.df2ud.chop
-+    1, // llvm.hexagon.F2.conv.df2uw
-+    1, // llvm.hexagon.F2.conv.df2uw.chop
-+    1, // llvm.hexagon.F2.conv.df2w
-+    1, // llvm.hexagon.F2.conv.df2w.chop
-+    1, // llvm.hexagon.F2.conv.sf2d
-+    1, // llvm.hexagon.F2.conv.sf2d.chop
-+    1, // llvm.hexagon.F2.conv.sf2df
-+    1, // llvm.hexagon.F2.conv.sf2ud
-+    1, // llvm.hexagon.F2.conv.sf2ud.chop
-+    1, // llvm.hexagon.F2.conv.sf2uw
-+    1, // llvm.hexagon.F2.conv.sf2uw.chop
-+    1, // llvm.hexagon.F2.conv.sf2w
-+    1, // llvm.hexagon.F2.conv.sf2w.chop
-+    1, // llvm.hexagon.F2.conv.ud2df
-+    1, // llvm.hexagon.F2.conv.ud2sf
-+    28, // llvm.hexagon.F2.conv.uw2df
-+    28, // llvm.hexagon.F2.conv.uw2sf
-+    28, // llvm.hexagon.F2.conv.w2df
-+    28, // llvm.hexagon.F2.conv.w2sf
-+    28, // llvm.hexagon.F2.dfclass
-+    28, // llvm.hexagon.F2.dfcmpeq
-+    28, // llvm.hexagon.F2.dfcmpge
-+    28, // llvm.hexagon.F2.dfcmpgt
-+    28, // llvm.hexagon.F2.dfcmpuo
-+    28, // llvm.hexagon.F2.dfimm.n
-+    28, // llvm.hexagon.F2.dfimm.p
-+    28, // llvm.hexagon.F2.sfadd
-+    28, // llvm.hexagon.F2.sfclass
-+    28, // llvm.hexagon.F2.sfcmpeq
-+    28, // llvm.hexagon.F2.sfcmpge
-+    28, // llvm.hexagon.F2.sfcmpgt
-+    28, // llvm.hexagon.F2.sfcmpuo
-+    28, // llvm.hexagon.F2.sffixupd
-+    28, // llvm.hexagon.F2.sffixupn
-+    1, // llvm.hexagon.F2.sffixupr
-+    28, // llvm.hexagon.F2.sffma
-+    28, // llvm.hexagon.F2.sffma.lib
-+    28, // llvm.hexagon.F2.sffma.sc
-+    28, // llvm.hexagon.F2.sffms
-+    28, // llvm.hexagon.F2.sffms.lib
-+    28, // llvm.hexagon.F2.sfimm.n
-+    28, // llvm.hexagon.F2.sfimm.p
-+    28, // llvm.hexagon.F2.sfmax
-+    28, // llvm.hexagon.F2.sfmin
-+    28, // llvm.hexagon.F2.sfmpy
-+    28, // llvm.hexagon.F2.sfsub
-+    15, // llvm.hexagon.L2.loadw.locked
-+    15, // llvm.hexagon.L4.loadd.locked
-+    1, // llvm.hexagon.M2.acci
-+    1, // llvm.hexagon.M2.accii
-+    1, // llvm.hexagon.M2.cmaci.s0
-+    1, // llvm.hexagon.M2.cmacr.s0
-+    1, // llvm.hexagon.M2.cmacs.s0
-+    1, // llvm.hexagon.M2.cmacs.s1
-+    1, // llvm.hexagon.M2.cmacsc.s0
-+    1, // llvm.hexagon.M2.cmacsc.s1
-+    1, // llvm.hexagon.M2.cmpyi.s0
-+    1, // llvm.hexagon.M2.cmpyr.s0
-+    1, // llvm.hexagon.M2.cmpyrs.s0
-+    1, // llvm.hexagon.M2.cmpyrs.s1
-+    1, // llvm.hexagon.M2.cmpyrsc.s0
-+    1, // llvm.hexagon.M2.cmpyrsc.s1
-+    1, // llvm.hexagon.M2.cmpys.s0
-+    1, // llvm.hexagon.M2.cmpys.s1
-+    1, // llvm.hexagon.M2.cmpysc.s0
-+    1, // llvm.hexagon.M2.cmpysc.s1
-+    1, // llvm.hexagon.M2.cnacs.s0
-+    1, // llvm.hexagon.M2.cnacs.s1
-+    1, // llvm.hexagon.M2.cnacsc.s0
-+    1, // llvm.hexagon.M2.cnacsc.s1
-+    1, // llvm.hexagon.M2.dpmpyss.acc.s0
-+    1, // llvm.hexagon.M2.dpmpyss.nac.s0
-+    1, // llvm.hexagon.M2.dpmpyss.rnd.s0
-+    1, // llvm.hexagon.M2.dpmpyss.s0
-+    1, // llvm.hexagon.M2.dpmpyuu.acc.s0
-+    1, // llvm.hexagon.M2.dpmpyuu.nac.s0
-+    1, // llvm.hexagon.M2.dpmpyuu.s0
-+    1, // llvm.hexagon.M2.hmmpyh.rs1
-+    1, // llvm.hexagon.M2.hmmpyh.s1
-+    1, // llvm.hexagon.M2.hmmpyl.rs1
-+    1, // llvm.hexagon.M2.hmmpyl.s1
-+    1, // llvm.hexagon.M2.maci
-+    1, // llvm.hexagon.M2.macsin
-+    1, // llvm.hexagon.M2.macsip
-+    1, // llvm.hexagon.M2.mmachs.rs0
-+    1, // llvm.hexagon.M2.mmachs.rs1
-+    1, // llvm.hexagon.M2.mmachs.s0
-+    1, // llvm.hexagon.M2.mmachs.s1
-+    1, // llvm.hexagon.M2.mmacls.rs0
-+    1, // llvm.hexagon.M2.mmacls.rs1
-+    1, // llvm.hexagon.M2.mmacls.s0
-+    1, // llvm.hexagon.M2.mmacls.s1
-+    1, // llvm.hexagon.M2.mmacuhs.rs0
-+    1, // llvm.hexagon.M2.mmacuhs.rs1
-+    1, // llvm.hexagon.M2.mmacuhs.s0
-+    1, // llvm.hexagon.M2.mmacuhs.s1
-+    1, // llvm.hexagon.M2.mmaculs.rs0
-+    1, // llvm.hexagon.M2.mmaculs.rs1
-+    1, // llvm.hexagon.M2.mmaculs.s0
-+    1, // llvm.hexagon.M2.mmaculs.s1
-+    1, // llvm.hexagon.M2.mmpyh.rs0
-+    1, // llvm.hexagon.M2.mmpyh.rs1
-+    1, // llvm.hexagon.M2.mmpyh.s0
-+    1, // llvm.hexagon.M2.mmpyh.s1
-+    1, // llvm.hexagon.M2.mmpyl.rs0
-+    1, // llvm.hexagon.M2.mmpyl.rs1
-+    1, // llvm.hexagon.M2.mmpyl.s0
-+    1, // llvm.hexagon.M2.mmpyl.s1
-+    1, // llvm.hexagon.M2.mmpyuh.rs0
-+    1, // llvm.hexagon.M2.mmpyuh.rs1
-+    1, // llvm.hexagon.M2.mmpyuh.s0
-+    1, // llvm.hexagon.M2.mmpyuh.s1
-+    1, // llvm.hexagon.M2.mmpyul.rs0
-+    1, // llvm.hexagon.M2.mmpyul.rs1
-+    1, // llvm.hexagon.M2.mmpyul.s0
-+    1, // llvm.hexagon.M2.mmpyul.s1
-+    1, // llvm.hexagon.M2.mpy.acc.hh.s0
-+    1, // llvm.hexagon.M2.mpy.acc.hh.s1
-+    1, // llvm.hexagon.M2.mpy.acc.hl.s0
-+    1, // llvm.hexagon.M2.mpy.acc.hl.s1
-+    1, // llvm.hexagon.M2.mpy.acc.lh.s0
-+    1, // llvm.hexagon.M2.mpy.acc.lh.s1
-+    1, // llvm.hexagon.M2.mpy.acc.ll.s0
-+    1, // llvm.hexagon.M2.mpy.acc.ll.s1
-+    1, // llvm.hexagon.M2.mpy.acc.sat.hh.s0
-+    1, // llvm.hexagon.M2.mpy.acc.sat.hh.s1
-+    1, // llvm.hexagon.M2.mpy.acc.sat.hl.s0
-+    1, // llvm.hexagon.M2.mpy.acc.sat.hl.s1
-+    1, // llvm.hexagon.M2.mpy.acc.sat.lh.s0
-+    1, // llvm.hexagon.M2.mpy.acc.sat.lh.s1
-+    1, // llvm.hexagon.M2.mpy.acc.sat.ll.s0
-+    1, // llvm.hexagon.M2.mpy.acc.sat.ll.s1
-+    1, // llvm.hexagon.M2.mpy.hh.s0
-+    1, // llvm.hexagon.M2.mpy.hh.s1
-+    1, // llvm.hexagon.M2.mpy.hl.s0
-+    1, // llvm.hexagon.M2.mpy.hl.s1
-+    1, // llvm.hexagon.M2.mpy.lh.s0
-+    1, // llvm.hexagon.M2.mpy.lh.s1
-+    1, // llvm.hexagon.M2.mpy.ll.s0
-+    1, // llvm.hexagon.M2.mpy.ll.s1
-+    1, // llvm.hexagon.M2.mpy.nac.hh.s0
-+    1, // llvm.hexagon.M2.mpy.nac.hh.s1
-+    1, // llvm.hexagon.M2.mpy.nac.hl.s0
-+    1, // llvm.hexagon.M2.mpy.nac.hl.s1
-+    1, // llvm.hexagon.M2.mpy.nac.lh.s0
-+    1, // llvm.hexagon.M2.mpy.nac.lh.s1
-+    1, // llvm.hexagon.M2.mpy.nac.ll.s0
-+    1, // llvm.hexagon.M2.mpy.nac.ll.s1
-+    1, // llvm.hexagon.M2.mpy.nac.sat.hh.s0
-+    1, // llvm.hexagon.M2.mpy.nac.sat.hh.s1
-+    1, // llvm.hexagon.M2.mpy.nac.sat.hl.s0
-+    1, // llvm.hexagon.M2.mpy.nac.sat.hl.s1
-+    1, // llvm.hexagon.M2.mpy.nac.sat.lh.s0
-+    1, // llvm.hexagon.M2.mpy.nac.sat.lh.s1
-+    1, // llvm.hexagon.M2.mpy.nac.sat.ll.s0
-+    1, // llvm.hexagon.M2.mpy.nac.sat.ll.s1
-+    1, // llvm.hexagon.M2.mpy.rnd.hh.s0
-+    1, // llvm.hexagon.M2.mpy.rnd.hh.s1
-+    1, // llvm.hexagon.M2.mpy.rnd.hl.s0
-+    1, // llvm.hexagon.M2.mpy.rnd.hl.s1
-+    1, // llvm.hexagon.M2.mpy.rnd.lh.s0
-+    1, // llvm.hexagon.M2.mpy.rnd.lh.s1
-+    1, // llvm.hexagon.M2.mpy.rnd.ll.s0
-+    1, // llvm.hexagon.M2.mpy.rnd.ll.s1
-+    1, // llvm.hexagon.M2.mpy.sat.hh.s0
-+    1, // llvm.hexagon.M2.mpy.sat.hh.s1
-+    1, // llvm.hexagon.M2.mpy.sat.hl.s0
-+    1, // llvm.hexagon.M2.mpy.sat.hl.s1
-+    1, // llvm.hexagon.M2.mpy.sat.lh.s0
-+    1, // llvm.hexagon.M2.mpy.sat.lh.s1
-+    1, // llvm.hexagon.M2.mpy.sat.ll.s0
-+    1, // llvm.hexagon.M2.mpy.sat.ll.s1
-+    1, // llvm.hexagon.M2.mpy.sat.rnd.hh.s0
-+    1, // llvm.hexagon.M2.mpy.sat.rnd.hh.s1
-+    1, // llvm.hexagon.M2.mpy.sat.rnd.hl.s0
-+    1, // llvm.hexagon.M2.mpy.sat.rnd.hl.s1
-+    1, // llvm.hexagon.M2.mpy.sat.rnd.lh.s0
-+    1, // llvm.hexagon.M2.mpy.sat.rnd.lh.s1
-+    1, // llvm.hexagon.M2.mpy.sat.rnd.ll.s0
-+    1, // llvm.hexagon.M2.mpy.sat.rnd.ll.s1
-+    1, // llvm.hexagon.M2.mpy.up
-+    1, // llvm.hexagon.M2.mpy.up.s1
-+    1, // llvm.hexagon.M2.mpy.up.s1.sat
-+    1, // llvm.hexagon.M2.mpyd.acc.hh.s0
-+    1, // llvm.hexagon.M2.mpyd.acc.hh.s1
-+    1, // llvm.hexagon.M2.mpyd.acc.hl.s0
-+    1, // llvm.hexagon.M2.mpyd.acc.hl.s1
-+    1, // llvm.hexagon.M2.mpyd.acc.lh.s0
-+    1, // llvm.hexagon.M2.mpyd.acc.lh.s1
-+    1, // llvm.hexagon.M2.mpyd.acc.ll.s0
-+    1, // llvm.hexagon.M2.mpyd.acc.ll.s1
-+    1, // llvm.hexagon.M2.mpyd.hh.s0
-+    1, // llvm.hexagon.M2.mpyd.hh.s1
-+    1, // llvm.hexagon.M2.mpyd.hl.s0
-+    1, // llvm.hexagon.M2.mpyd.hl.s1
-+    1, // llvm.hexagon.M2.mpyd.lh.s0
-+    1, // llvm.hexagon.M2.mpyd.lh.s1
-+    1, // llvm.hexagon.M2.mpyd.ll.s0
-+    1, // llvm.hexagon.M2.mpyd.ll.s1
-+    1, // llvm.hexagon.M2.mpyd.nac.hh.s0
-+    1, // llvm.hexagon.M2.mpyd.nac.hh.s1
-+    1, // llvm.hexagon.M2.mpyd.nac.hl.s0
-+    1, // llvm.hexagon.M2.mpyd.nac.hl.s1
-+    1, // llvm.hexagon.M2.mpyd.nac.lh.s0
-+    1, // llvm.hexagon.M2.mpyd.nac.lh.s1
-+    1, // llvm.hexagon.M2.mpyd.nac.ll.s0
-+    1, // llvm.hexagon.M2.mpyd.nac.ll.s1
-+    1, // llvm.hexagon.M2.mpyd.rnd.hh.s0
-+    1, // llvm.hexagon.M2.mpyd.rnd.hh.s1
-+    1, // llvm.hexagon.M2.mpyd.rnd.hl.s0
-+    1, // llvm.hexagon.M2.mpyd.rnd.hl.s1
-+    1, // llvm.hexagon.M2.mpyd.rnd.lh.s0
-+    1, // llvm.hexagon.M2.mpyd.rnd.lh.s1
-+    1, // llvm.hexagon.M2.mpyd.rnd.ll.s0
-+    1, // llvm.hexagon.M2.mpyd.rnd.ll.s1
-+    1, // llvm.hexagon.M2.mpyi
-+    1, // llvm.hexagon.M2.mpysmi
-+    1, // llvm.hexagon.M2.mpysu.up
-+    1, // llvm.hexagon.M2.mpyu.acc.hh.s0
-+    1, // llvm.hexagon.M2.mpyu.acc.hh.s1
-+    1, // llvm.hexagon.M2.mpyu.acc.hl.s0
-+    1, // llvm.hexagon.M2.mpyu.acc.hl.s1
-+    1, // llvm.hexagon.M2.mpyu.acc.lh.s0
-+    1, // llvm.hexagon.M2.mpyu.acc.lh.s1
-+    1, // llvm.hexagon.M2.mpyu.acc.ll.s0
-+    1, // llvm.hexagon.M2.mpyu.acc.ll.s1
-+    1, // llvm.hexagon.M2.mpyu.hh.s0
-+    1, // llvm.hexagon.M2.mpyu.hh.s1
-+    1, // llvm.hexagon.M2.mpyu.hl.s0
-+    1, // llvm.hexagon.M2.mpyu.hl.s1
-+    1, // llvm.hexagon.M2.mpyu.lh.s0
-+    1, // llvm.hexagon.M2.mpyu.lh.s1
-+    1, // llvm.hexagon.M2.mpyu.ll.s0
-+    1, // llvm.hexagon.M2.mpyu.ll.s1
-+    1, // llvm.hexagon.M2.mpyu.nac.hh.s0
-+    1, // llvm.hexagon.M2.mpyu.nac.hh.s1
-+    1, // llvm.hexagon.M2.mpyu.nac.hl.s0
-+    1, // llvm.hexagon.M2.mpyu.nac.hl.s1
-+    1, // llvm.hexagon.M2.mpyu.nac.lh.s0
-+    1, // llvm.hexagon.M2.mpyu.nac.lh.s1
-+    1, // llvm.hexagon.M2.mpyu.nac.ll.s0
-+    1, // llvm.hexagon.M2.mpyu.nac.ll.s1
-+    1, // llvm.hexagon.M2.mpyu.up
-+    1, // llvm.hexagon.M2.mpyud.acc.hh.s0
-+    1, // llvm.hexagon.M2.mpyud.acc.hh.s1
-+    1, // llvm.hexagon.M2.mpyud.acc.hl.s0
-+    1, // llvm.hexagon.M2.mpyud.acc.hl.s1
-+    1, // llvm.hexagon.M2.mpyud.acc.lh.s0
-+    1, // llvm.hexagon.M2.mpyud.acc.lh.s1
-+    1, // llvm.hexagon.M2.mpyud.acc.ll.s0
-+    1, // llvm.hexagon.M2.mpyud.acc.ll.s1
-+    1, // llvm.hexagon.M2.mpyud.hh.s0
-+    1, // llvm.hexagon.M2.mpyud.hh.s1
-+    1, // llvm.hexagon.M2.mpyud.hl.s0
-+    1, // llvm.hexagon.M2.mpyud.hl.s1
-+    1, // llvm.hexagon.M2.mpyud.lh.s0
-+    1, // llvm.hexagon.M2.mpyud.lh.s1
-+    1, // llvm.hexagon.M2.mpyud.ll.s0
-+    1, // llvm.hexagon.M2.mpyud.ll.s1
-+    1, // llvm.hexagon.M2.mpyud.nac.hh.s0
-+    1, // llvm.hexagon.M2.mpyud.nac.hh.s1
-+    1, // llvm.hexagon.M2.mpyud.nac.hl.s0
-+    1, // llvm.hexagon.M2.mpyud.nac.hl.s1
-+    1, // llvm.hexagon.M2.mpyud.nac.lh.s0
-+    1, // llvm.hexagon.M2.mpyud.nac.lh.s1
-+    1, // llvm.hexagon.M2.mpyud.nac.ll.s0
-+    1, // llvm.hexagon.M2.mpyud.nac.ll.s1
-+    1, // llvm.hexagon.M2.mpyui
-+    1, // llvm.hexagon.M2.nacci
-+    1, // llvm.hexagon.M2.naccii
-+    1, // llvm.hexagon.M2.subacc
-+    1, // llvm.hexagon.M2.vabsdiffh
-+    1, // llvm.hexagon.M2.vabsdiffw
-+    1, // llvm.hexagon.M2.vcmac.s0.sat.i
-+    1, // llvm.hexagon.M2.vcmac.s0.sat.r
-+    1, // llvm.hexagon.M2.vcmpy.s0.sat.i
-+    1, // llvm.hexagon.M2.vcmpy.s0.sat.r
-+    1, // llvm.hexagon.M2.vcmpy.s1.sat.i
-+    1, // llvm.hexagon.M2.vcmpy.s1.sat.r
-+    1, // llvm.hexagon.M2.vdmacs.s0
-+    1, // llvm.hexagon.M2.vdmacs.s1
-+    1, // llvm.hexagon.M2.vdmpyrs.s0
-+    1, // llvm.hexagon.M2.vdmpyrs.s1
-+    1, // llvm.hexagon.M2.vdmpys.s0
-+    1, // llvm.hexagon.M2.vdmpys.s1
-+    1, // llvm.hexagon.M2.vmac2
-+    1, // llvm.hexagon.M2.vmac2es
-+    1, // llvm.hexagon.M2.vmac2es.s0
-+    1, // llvm.hexagon.M2.vmac2es.s1
-+    1, // llvm.hexagon.M2.vmac2s.s0
-+    1, // llvm.hexagon.M2.vmac2s.s1
-+    1, // llvm.hexagon.M2.vmac2su.s0
-+    1, // llvm.hexagon.M2.vmac2su.s1
-+    1, // llvm.hexagon.M2.vmpy2es.s0
-+    1, // llvm.hexagon.M2.vmpy2es.s1
-+    1, // llvm.hexagon.M2.vmpy2s.s0
-+    1, // llvm.hexagon.M2.vmpy2s.s0pack
-+    1, // llvm.hexagon.M2.vmpy2s.s1
-+    1, // llvm.hexagon.M2.vmpy2s.s1pack
-+    1, // llvm.hexagon.M2.vmpy2su.s0
-+    1, // llvm.hexagon.M2.vmpy2su.s1
-+    1, // llvm.hexagon.M2.vraddh
-+    1, // llvm.hexagon.M2.vradduh
-+    1, // llvm.hexagon.M2.vrcmaci.s0
-+    1, // llvm.hexagon.M2.vrcmaci.s0c
-+    1, // llvm.hexagon.M2.vrcmacr.s0
-+    1, // llvm.hexagon.M2.vrcmacr.s0c
-+    1, // llvm.hexagon.M2.vrcmpyi.s0
-+    1, // llvm.hexagon.M2.vrcmpyi.s0c
-+    1, // llvm.hexagon.M2.vrcmpyr.s0
-+    1, // llvm.hexagon.M2.vrcmpyr.s0c
-+    1, // llvm.hexagon.M2.vrcmpys.acc.s1
-+    1, // llvm.hexagon.M2.vrcmpys.s1
-+    1, // llvm.hexagon.M2.vrcmpys.s1rp
-+    1, // llvm.hexagon.M2.vrmac.s0
-+    1, // llvm.hexagon.M2.vrmpy.s0
-+    1, // llvm.hexagon.M2.xor.xacc
-+    1, // llvm.hexagon.M4.and.and
-+    1, // llvm.hexagon.M4.and.andn
-+    1, // llvm.hexagon.M4.and.or
-+    1, // llvm.hexagon.M4.and.xor
-+    1, // llvm.hexagon.M4.cmpyi.wh
-+    1, // llvm.hexagon.M4.cmpyi.whc
-+    1, // llvm.hexagon.M4.cmpyr.wh
-+    1, // llvm.hexagon.M4.cmpyr.whc
-+    1, // llvm.hexagon.M4.mac.up.s1.sat
-+    1, // llvm.hexagon.M4.mpyri.addi
-+    1, // llvm.hexagon.M4.mpyri.addr
-+    1, // llvm.hexagon.M4.mpyri.addr.u2
-+    1, // llvm.hexagon.M4.mpyrr.addi
-+    1, // llvm.hexagon.M4.mpyrr.addr
-+    1, // llvm.hexagon.M4.nac.up.s1.sat
-+    1, // llvm.hexagon.M4.or.and
-+    1, // llvm.hexagon.M4.or.andn
-+    1, // llvm.hexagon.M4.or.or
-+    1, // llvm.hexagon.M4.or.xor
-+    1, // llvm.hexagon.M4.pmpyw
-+    1, // llvm.hexagon.M4.pmpyw.acc
-+    1, // llvm.hexagon.M4.vpmpyh
-+    1, // llvm.hexagon.M4.vpmpyh.acc
-+    1, // llvm.hexagon.M4.vrmpyeh.acc.s0
-+    1, // llvm.hexagon.M4.vrmpyeh.acc.s1
-+    1, // llvm.hexagon.M4.vrmpyeh.s0
-+    1, // llvm.hexagon.M4.vrmpyeh.s1
-+    1, // llvm.hexagon.M4.vrmpyoh.acc.s0
-+    1, // llvm.hexagon.M4.vrmpyoh.acc.s1
-+    1, // llvm.hexagon.M4.vrmpyoh.s0
-+    1, // llvm.hexagon.M4.vrmpyoh.s1
-+    1, // llvm.hexagon.M4.xor.and
-+    1, // llvm.hexagon.M4.xor.andn
-+    1, // llvm.hexagon.M4.xor.or
-+    1, // llvm.hexagon.M4.xor.xacc
-+    1, // llvm.hexagon.M5.vdmacbsu
-+    1, // llvm.hexagon.M5.vdmpybsu
-+    1, // llvm.hexagon.M5.vmacbsu
-+    1, // llvm.hexagon.M5.vmacbuu
-+    1, // llvm.hexagon.M5.vmpybsu
-+    1, // llvm.hexagon.M5.vmpybuu
-+    1, // llvm.hexagon.M5.vrmacbsu
-+    1, // llvm.hexagon.M5.vrmacbuu
-+    1, // llvm.hexagon.M5.vrmpybsu
-+    1, // llvm.hexagon.M5.vrmpybuu
-+    1, // llvm.hexagon.M6.vabsdiffb
-+    1, // llvm.hexagon.M6.vabsdiffub
-+    1, // llvm.hexagon.S2.addasl.rrri
-+    1, // llvm.hexagon.S2.asl.i.p
-+    1, // llvm.hexagon.S2.asl.i.p.acc
-+    1, // llvm.hexagon.S2.asl.i.p.and
-+    1, // llvm.hexagon.S2.asl.i.p.nac
-+    1, // llvm.hexagon.S2.asl.i.p.or
-+    1, // llvm.hexagon.S2.asl.i.p.xacc
-+    1, // llvm.hexagon.S2.asl.i.r
-+    1, // llvm.hexagon.S2.asl.i.r.acc
-+    1, // llvm.hexagon.S2.asl.i.r.and
-+    1, // llvm.hexagon.S2.asl.i.r.nac
-+    1, // llvm.hexagon.S2.asl.i.r.or
-+    1, // llvm.hexagon.S2.asl.i.r.sat
-+    1, // llvm.hexagon.S2.asl.i.r.xacc
-+    1, // llvm.hexagon.S2.asl.i.vh
-+    1, // llvm.hexagon.S2.asl.i.vw
-+    1, // llvm.hexagon.S2.asl.r.p
-+    1, // llvm.hexagon.S2.asl.r.p.acc
-+    1, // llvm.hexagon.S2.asl.r.p.and
-+    1, // llvm.hexagon.S2.asl.r.p.nac
-+    1, // llvm.hexagon.S2.asl.r.p.or
-+    1, // llvm.hexagon.S2.asl.r.p.xor
-+    1, // llvm.hexagon.S2.asl.r.r
-+    1, // llvm.hexagon.S2.asl.r.r.acc
-+    1, // llvm.hexagon.S2.asl.r.r.and
-+    1, // llvm.hexagon.S2.asl.r.r.nac
-+    1, // llvm.hexagon.S2.asl.r.r.or
-+    1, // llvm.hexagon.S2.asl.r.r.sat
-+    1, // llvm.hexagon.S2.asl.r.vh
-+    1, // llvm.hexagon.S2.asl.r.vw
-+    1, // llvm.hexagon.S2.asr.i.p
-+    1, // llvm.hexagon.S2.asr.i.p.acc
-+    1, // llvm.hexagon.S2.asr.i.p.and
-+    1, // llvm.hexagon.S2.asr.i.p.nac
-+    1, // llvm.hexagon.S2.asr.i.p.or
-+    1, // llvm.hexagon.S2.asr.i.p.rnd
-+    1, // llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
-+    1, // llvm.hexagon.S2.asr.i.r
-+    1, // llvm.hexagon.S2.asr.i.r.acc
-+    1, // llvm.hexagon.S2.asr.i.r.and
-+    1, // llvm.hexagon.S2.asr.i.r.nac
-+    1, // llvm.hexagon.S2.asr.i.r.or
-+    1, // llvm.hexagon.S2.asr.i.r.rnd
-+    1, // llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
-+    1, // llvm.hexagon.S2.asr.i.svw.trun
-+    1, // llvm.hexagon.S2.asr.i.vh
-+    1, // llvm.hexagon.S2.asr.i.vw
-+    1, // llvm.hexagon.S2.asr.r.p
-+    1, // llvm.hexagon.S2.asr.r.p.acc
-+    1, // llvm.hexagon.S2.asr.r.p.and
-+    1, // llvm.hexagon.S2.asr.r.p.nac
-+    1, // llvm.hexagon.S2.asr.r.p.or
-+    1, // llvm.hexagon.S2.asr.r.p.xor
-+    1, // llvm.hexagon.S2.asr.r.r
-+    1, // llvm.hexagon.S2.asr.r.r.acc
-+    1, // llvm.hexagon.S2.asr.r.r.and
-+    1, // llvm.hexagon.S2.asr.r.r.nac
-+    1, // llvm.hexagon.S2.asr.r.r.or
-+    1, // llvm.hexagon.S2.asr.r.r.sat
-+    1, // llvm.hexagon.S2.asr.r.svw.trun
-+    1, // llvm.hexagon.S2.asr.r.vh
-+    1, // llvm.hexagon.S2.asr.r.vw
-+    1, // llvm.hexagon.S2.brev
-+    1, // llvm.hexagon.S2.brevp
-+    1, // llvm.hexagon.S2.cabacencbin
-+    1, // llvm.hexagon.S2.cl0
-+    1, // llvm.hexagon.S2.cl0p
-+    1, // llvm.hexagon.S2.cl1
-+    1, // llvm.hexagon.S2.cl1p
-+    1, // llvm.hexagon.S2.clb
-+    1, // llvm.hexagon.S2.clbnorm
-+    1, // llvm.hexagon.S2.clbp
-+    1, // llvm.hexagon.S2.clrbit.i
-+    1, // llvm.hexagon.S2.clrbit.r
-+    1, // llvm.hexagon.S2.ct0
-+    1, // llvm.hexagon.S2.ct0p
-+    1, // llvm.hexagon.S2.ct1
-+    1, // llvm.hexagon.S2.ct1p
-+    1, // llvm.hexagon.S2.deinterleave
-+    1, // llvm.hexagon.S2.extractu
-+    1, // llvm.hexagon.S2.extractu.rp
-+    1, // llvm.hexagon.S2.extractup
-+    1, // llvm.hexagon.S2.extractup.rp
-+    1, // llvm.hexagon.S2.insert
-+    1, // llvm.hexagon.S2.insert.rp
-+    1, // llvm.hexagon.S2.insertp
-+    1, // llvm.hexagon.S2.insertp.rp
-+    1, // llvm.hexagon.S2.interleave
-+    1, // llvm.hexagon.S2.lfsp
-+    1, // llvm.hexagon.S2.lsl.r.p
-+    1, // llvm.hexagon.S2.lsl.r.p.acc
-+    1, // llvm.hexagon.S2.lsl.r.p.and
-+    1, // llvm.hexagon.S2.lsl.r.p.nac
-+    1, // llvm.hexagon.S2.lsl.r.p.or
-+    1, // llvm.hexagon.S2.lsl.r.p.xor
-+    1, // llvm.hexagon.S2.lsl.r.r
-+    1, // llvm.hexagon.S2.lsl.r.r.acc
-+    1, // llvm.hexagon.S2.lsl.r.r.and
-+    1, // llvm.hexagon.S2.lsl.r.r.nac
-+    1, // llvm.hexagon.S2.lsl.r.r.or
-+    1, // llvm.hexagon.S2.lsl.r.vh
-+    1, // llvm.hexagon.S2.lsl.r.vw
-+    1, // llvm.hexagon.S2.lsr.i.p
-+    1, // llvm.hexagon.S2.lsr.i.p.acc
-+    1, // llvm.hexagon.S2.lsr.i.p.and
-+    1, // llvm.hexagon.S2.lsr.i.p.nac
-+    1, // llvm.hexagon.S2.lsr.i.p.or
-+    1, // llvm.hexagon.S2.lsr.i.p.xacc
-+    1, // llvm.hexagon.S2.lsr.i.r
-+    1, // llvm.hexagon.S2.lsr.i.r.acc
-+    1, // llvm.hexagon.S2.lsr.i.r.and
-+    1, // llvm.hexagon.S2.lsr.i.r.nac
-+    1, // llvm.hexagon.S2.lsr.i.r.or
-+    1, // llvm.hexagon.S2.lsr.i.r.xacc
-+    1, // llvm.hexagon.S2.lsr.i.vh
-+    1, // llvm.hexagon.S2.lsr.i.vw
-+    1, // llvm.hexagon.S2.lsr.r.p
-+    1, // llvm.hexagon.S2.lsr.r.p.acc
-+    1, // llvm.hexagon.S2.lsr.r.p.and
-+    1, // llvm.hexagon.S2.lsr.r.p.nac
-+    1, // llvm.hexagon.S2.lsr.r.p.or
-+    1, // llvm.hexagon.S2.lsr.r.p.xor
-+    1, // llvm.hexagon.S2.lsr.r.r
-+    1, // llvm.hexagon.S2.lsr.r.r.acc
-+    1, // llvm.hexagon.S2.lsr.r.r.and
-+    1, // llvm.hexagon.S2.lsr.r.r.nac
-+    1, // llvm.hexagon.S2.lsr.r.r.or
-+    1, // llvm.hexagon.S2.lsr.r.vh
-+    1, // llvm.hexagon.S2.lsr.r.vw
-+    1, // llvm.hexagon.S2.packhl
-+    1, // llvm.hexagon.S2.parityp
-+    1, // llvm.hexagon.S2.setbit.i
-+    1, // llvm.hexagon.S2.setbit.r
-+    1, // llvm.hexagon.S2.shuffeb
-+    1, // llvm.hexagon.S2.shuffeh
-+    1, // llvm.hexagon.S2.shuffob
-+    1, // llvm.hexagon.S2.shuffoh
-+    15, // llvm.hexagon.S2.storew.locked
-+    1, // llvm.hexagon.S2.svsathb
-+    1, // llvm.hexagon.S2.svsathub
-+    1, // llvm.hexagon.S2.tableidxb.goodsyntax
-+    1, // llvm.hexagon.S2.tableidxd.goodsyntax
-+    1, // llvm.hexagon.S2.tableidxh.goodsyntax
-+    1, // llvm.hexagon.S2.tableidxw.goodsyntax
-+    1, // llvm.hexagon.S2.togglebit.i
-+    1, // llvm.hexagon.S2.togglebit.r
-+    1, // llvm.hexagon.S2.tstbit.i
-+    1, // llvm.hexagon.S2.tstbit.r
-+    1, // llvm.hexagon.S2.valignib
-+    1, // llvm.hexagon.S2.valignrb
-+    1, // llvm.hexagon.S2.vcnegh
-+    1, // llvm.hexagon.S2.vcrotate
-+    1, // llvm.hexagon.S2.vrcnegh
-+    1, // llvm.hexagon.S2.vrndpackwh
-+    1, // llvm.hexagon.S2.vrndpackwhs
-+    1, // llvm.hexagon.S2.vsathb
-+    1, // llvm.hexagon.S2.vsathb.nopack
-+    1, // llvm.hexagon.S2.vsathub
-+    1, // llvm.hexagon.S2.vsathub.nopack
-+    1, // llvm.hexagon.S2.vsatwh
-+    1, // llvm.hexagon.S2.vsatwh.nopack
-+    1, // llvm.hexagon.S2.vsatwuh
-+    1, // llvm.hexagon.S2.vsatwuh.nopack
-+    1, // llvm.hexagon.S2.vsplatrb
-+    1, // llvm.hexagon.S2.vsplatrh
-+    1, // llvm.hexagon.S2.vspliceib
-+    1, // llvm.hexagon.S2.vsplicerb
-+    1, // llvm.hexagon.S2.vsxtbh
-+    1, // llvm.hexagon.S2.vsxthw
-+    1, // llvm.hexagon.S2.vtrunehb
-+    1, // llvm.hexagon.S2.vtrunewh
-+    1, // llvm.hexagon.S2.vtrunohb
-+    1, // llvm.hexagon.S2.vtrunowh
-+    1, // llvm.hexagon.S2.vzxtbh
-+    1, // llvm.hexagon.S2.vzxthw
-+    1, // llvm.hexagon.S4.addaddi
-+    1, // llvm.hexagon.S4.addi.asl.ri
-+    1, // llvm.hexagon.S4.addi.lsr.ri
-+    1, // llvm.hexagon.S4.andi.asl.ri
-+    1, // llvm.hexagon.S4.andi.lsr.ri
-+    1, // llvm.hexagon.S4.clbaddi
-+    1, // llvm.hexagon.S4.clbpaddi
-+    1, // llvm.hexagon.S4.clbpnorm
-+    1, // llvm.hexagon.S4.extract
-+    1, // llvm.hexagon.S4.extract.rp
-+    1, // llvm.hexagon.S4.extractp
-+    1, // llvm.hexagon.S4.extractp.rp
-+    1, // llvm.hexagon.S4.lsli
-+    1, // llvm.hexagon.S4.ntstbit.i
-+    1, // llvm.hexagon.S4.ntstbit.r
-+    1, // llvm.hexagon.S4.or.andi
-+    1, // llvm.hexagon.S4.or.andix
-+    1, // llvm.hexagon.S4.or.ori
-+    1, // llvm.hexagon.S4.ori.asl.ri
-+    1, // llvm.hexagon.S4.ori.lsr.ri
-+    1, // llvm.hexagon.S4.parity
-+    15, // llvm.hexagon.S4.stored.locked
-+    1, // llvm.hexagon.S4.subaddi
-+    1, // llvm.hexagon.S4.subi.asl.ri
-+    1, // llvm.hexagon.S4.subi.lsr.ri
-+    1, // llvm.hexagon.S4.vrcrotate
-+    1, // llvm.hexagon.S4.vrcrotate.acc
-+    1, // llvm.hexagon.S4.vxaddsubh
-+    1, // llvm.hexagon.S4.vxaddsubhr
-+    1, // llvm.hexagon.S4.vxaddsubw
-+    1, // llvm.hexagon.S4.vxsubaddh
-+    1, // llvm.hexagon.S4.vxsubaddhr
-+    1, // llvm.hexagon.S4.vxsubaddw
-+    1, // llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
-+    1, // llvm.hexagon.S5.asrhub.sat
-+    1, // llvm.hexagon.S5.popcountp
-+    1, // llvm.hexagon.S5.vasrhrnd.goodsyntax
-+    1, // llvm.hexagon.S6.rol.i.p
-+    1, // llvm.hexagon.S6.rol.i.p.acc
-+    1, // llvm.hexagon.S6.rol.i.p.and
-+    1, // llvm.hexagon.S6.rol.i.p.nac
-+    1, // llvm.hexagon.S6.rol.i.p.or
-+    1, // llvm.hexagon.S6.rol.i.p.xacc
-+    1, // llvm.hexagon.S6.rol.i.r
-+    1, // llvm.hexagon.S6.rol.i.r.acc
-+    1, // llvm.hexagon.S6.rol.i.r.and
-+    1, // llvm.hexagon.S6.rol.i.r.nac
-+    1, // llvm.hexagon.S6.rol.i.r.or
-+    1, // llvm.hexagon.S6.rol.i.r.xacc
-+    1, // llvm.hexagon.S6.vsplatrbp
-+    1, // llvm.hexagon.S6.vtrunehb.ppp
-+    1, // llvm.hexagon.S6.vtrunohb.ppp
-+    1, // llvm.hexagon.SI.to.SXTHI.asrh
-+    1, // llvm.hexagon.V6.extractw
-+    1, // llvm.hexagon.V6.extractw.128B
-+    1, // llvm.hexagon.V6.hi
-+    1, // llvm.hexagon.V6.hi.128B
-+    1, // llvm.hexagon.V6.lo
-+    1, // llvm.hexagon.V6.lo.128B
-+    1, // llvm.hexagon.V6.lvsplatw
-+    1, // llvm.hexagon.V6.lvsplatw.128B
-+    1, // llvm.hexagon.V6.pred.and
-+    1, // llvm.hexagon.V6.pred.and.128B
-+    1, // llvm.hexagon.V6.pred.and.n
-+    1, // llvm.hexagon.V6.pred.and.n.128B
-+    1, // llvm.hexagon.V6.pred.not
-+    1, // llvm.hexagon.V6.pred.not.128B
-+    1, // llvm.hexagon.V6.pred.or
-+    1, // llvm.hexagon.V6.pred.or.128B
-+    1, // llvm.hexagon.V6.pred.or.n
-+    1, // llvm.hexagon.V6.pred.or.n.128B
-+    1, // llvm.hexagon.V6.pred.scalar2
-+    1, // llvm.hexagon.V6.pred.scalar2.128B
-+    1, // llvm.hexagon.V6.pred.xor
-+    1, // llvm.hexagon.V6.pred.xor.128B
-+    1, // llvm.hexagon.V6.vabsdiffh
-+    1, // llvm.hexagon.V6.vabsdiffh.128B
-+    1, // llvm.hexagon.V6.vabsdiffub
-+    1, // llvm.hexagon.V6.vabsdiffub.128B
-+    1, // llvm.hexagon.V6.vabsdiffuh
-+    1, // llvm.hexagon.V6.vabsdiffuh.128B
-+    1, // llvm.hexagon.V6.vabsdiffw
-+    1, // llvm.hexagon.V6.vabsdiffw.128B
-+    1, // llvm.hexagon.V6.vabsh
-+    1, // llvm.hexagon.V6.vabsh.128B
-+    1, // llvm.hexagon.V6.vabsh.sat
-+    1, // llvm.hexagon.V6.vabsh.sat.128B
-+    1, // llvm.hexagon.V6.vabsw
-+    1, // llvm.hexagon.V6.vabsw.128B
-+    1, // llvm.hexagon.V6.vabsw.sat
-+    1, // llvm.hexagon.V6.vabsw.sat.128B
-+    1, // llvm.hexagon.V6.vaddb
-+    1, // llvm.hexagon.V6.vaddb.128B
-+    1, // llvm.hexagon.V6.vaddb.dv
-+    1, // llvm.hexagon.V6.vaddb.dv.128B
-+    1, // llvm.hexagon.V6.vaddbnq
-+    1, // llvm.hexagon.V6.vaddbnq.128B
-+    1, // llvm.hexagon.V6.vaddbq
-+    1, // llvm.hexagon.V6.vaddbq.128B
-+    1, // llvm.hexagon.V6.vaddh
-+    1, // llvm.hexagon.V6.vaddh.128B
-+    1, // llvm.hexagon.V6.vaddh.dv
-+    1, // llvm.hexagon.V6.vaddh.dv.128B
-+    1, // llvm.hexagon.V6.vaddhnq
-+    1, // llvm.hexagon.V6.vaddhnq.128B
-+    1, // llvm.hexagon.V6.vaddhq
-+    1, // llvm.hexagon.V6.vaddhq.128B
-+    1, // llvm.hexagon.V6.vaddhsat
-+    1, // llvm.hexagon.V6.vaddhsat.128B
-+    1, // llvm.hexagon.V6.vaddhsat.dv
-+    1, // llvm.hexagon.V6.vaddhsat.dv.128B
-+    1, // llvm.hexagon.V6.vaddhw
-+    1, // llvm.hexagon.V6.vaddhw.128B
-+    1, // llvm.hexagon.V6.vaddubh
-+    1, // llvm.hexagon.V6.vaddubh.128B
-+    1, // llvm.hexagon.V6.vaddubsat
-+    1, // llvm.hexagon.V6.vaddubsat.128B
-+    1, // llvm.hexagon.V6.vaddubsat.dv
-+    1, // llvm.hexagon.V6.vaddubsat.dv.128B
-+    1, // llvm.hexagon.V6.vadduhsat
-+    1, // llvm.hexagon.V6.vadduhsat.128B
-+    1, // llvm.hexagon.V6.vadduhsat.dv
-+    1, // llvm.hexagon.V6.vadduhsat.dv.128B
-+    1, // llvm.hexagon.V6.vadduhw
-+    1, // llvm.hexagon.V6.vadduhw.128B
-+    1, // llvm.hexagon.V6.vaddw
-+    1, // llvm.hexagon.V6.vaddw.128B
-+    1, // llvm.hexagon.V6.vaddw.dv
-+    1, // llvm.hexagon.V6.vaddw.dv.128B
-+    1, // llvm.hexagon.V6.vaddwnq
-+    1, // llvm.hexagon.V6.vaddwnq.128B
-+    1, // llvm.hexagon.V6.vaddwq
-+    1, // llvm.hexagon.V6.vaddwq.128B
-+    1, // llvm.hexagon.V6.vaddwsat
-+    1, // llvm.hexagon.V6.vaddwsat.128B
-+    1, // llvm.hexagon.V6.vaddwsat.dv
-+    1, // llvm.hexagon.V6.vaddwsat.dv.128B
-+    1, // llvm.hexagon.V6.valignb
-+    1, // llvm.hexagon.V6.valignb.128B
-+    1, // llvm.hexagon.V6.valignbi
-+    1, // llvm.hexagon.V6.valignbi.128B
-+    1, // llvm.hexagon.V6.vand
-+    1, // llvm.hexagon.V6.vand.128B
-+    1, // llvm.hexagon.V6.vandqrt
-+    1, // llvm.hexagon.V6.vandqrt.128B
-+    1, // llvm.hexagon.V6.vandqrt.acc
-+    1, // llvm.hexagon.V6.vandqrt.acc.128B
-+    1, // llvm.hexagon.V6.vandvrt
-+    1, // llvm.hexagon.V6.vandvrt.128B
-+    1, // llvm.hexagon.V6.vandvrt.acc
-+    1, // llvm.hexagon.V6.vandvrt.acc.128B
-+    1, // llvm.hexagon.V6.vaslh
-+    1, // llvm.hexagon.V6.vaslh.128B
-+    1, // llvm.hexagon.V6.vaslhv
-+    1, // llvm.hexagon.V6.vaslhv.128B
-+    1, // llvm.hexagon.V6.vaslw
-+    1, // llvm.hexagon.V6.vaslw.128B
-+    1, // llvm.hexagon.V6.vaslw.acc
-+    1, // llvm.hexagon.V6.vaslw.acc.128B
-+    1, // llvm.hexagon.V6.vaslwv
-+    1, // llvm.hexagon.V6.vaslwv.128B
-+    1, // llvm.hexagon.V6.vasrh
-+    1, // llvm.hexagon.V6.vasrh.128B
-+    1, // llvm.hexagon.V6.vasrhbrndsat
-+    1, // llvm.hexagon.V6.vasrhbrndsat.128B
-+    1, // llvm.hexagon.V6.vasrhubrndsat
-+    1, // llvm.hexagon.V6.vasrhubrndsat.128B
-+    1, // llvm.hexagon.V6.vasrhubsat
-+    1, // llvm.hexagon.V6.vasrhubsat.128B
-+    1, // llvm.hexagon.V6.vasrhv
-+    1, // llvm.hexagon.V6.vasrhv.128B
-+    1, // llvm.hexagon.V6.vasrw
-+    1, // llvm.hexagon.V6.vasrw.128B
-+    1, // llvm.hexagon.V6.vasrw.acc
-+    1, // llvm.hexagon.V6.vasrw.acc.128B
-+    1, // llvm.hexagon.V6.vasrwh
-+    1, // llvm.hexagon.V6.vasrwh.128B
-+    1, // llvm.hexagon.V6.vasrwhrndsat
-+    1, // llvm.hexagon.V6.vasrwhrndsat.128B
-+    1, // llvm.hexagon.V6.vasrwhsat
-+    1, // llvm.hexagon.V6.vasrwhsat.128B
-+    1, // llvm.hexagon.V6.vasrwuhsat
-+    1, // llvm.hexagon.V6.vasrwuhsat.128B
-+    1, // llvm.hexagon.V6.vasrwv
-+    1, // llvm.hexagon.V6.vasrwv.128B
-+    1, // llvm.hexagon.V6.vassign
-+    1, // llvm.hexagon.V6.vassign.128B
-+    1, // llvm.hexagon.V6.vassignp
-+    1, // llvm.hexagon.V6.vassignp.128B
-+    1, // llvm.hexagon.V6.vavgh
-+    1, // llvm.hexagon.V6.vavgh.128B
-+    1, // llvm.hexagon.V6.vavghrnd
-+    1, // llvm.hexagon.V6.vavghrnd.128B
-+    1, // llvm.hexagon.V6.vavgub
-+    1, // llvm.hexagon.V6.vavgub.128B
-+    1, // llvm.hexagon.V6.vavgubrnd
-+    1, // llvm.hexagon.V6.vavgubrnd.128B
-+    1, // llvm.hexagon.V6.vavguh
-+    1, // llvm.hexagon.V6.vavguh.128B
-+    1, // llvm.hexagon.V6.vavguhrnd
-+    1, // llvm.hexagon.V6.vavguhrnd.128B
-+    1, // llvm.hexagon.V6.vavgw
-+    1, // llvm.hexagon.V6.vavgw.128B
-+    1, // llvm.hexagon.V6.vavgwrnd
-+    1, // llvm.hexagon.V6.vavgwrnd.128B
-+    1, // llvm.hexagon.V6.vcl0h
-+    1, // llvm.hexagon.V6.vcl0h.128B
-+    1, // llvm.hexagon.V6.vcl0w
-+    1, // llvm.hexagon.V6.vcl0w.128B
-+    1, // llvm.hexagon.V6.vcombine
-+    1, // llvm.hexagon.V6.vcombine.128B
-+    1, // llvm.hexagon.V6.vd0
-+    1, // llvm.hexagon.V6.vd0.128B
-+    1, // llvm.hexagon.V6.vdealb
-+    1, // llvm.hexagon.V6.vdealb.128B
-+    1, // llvm.hexagon.V6.vdealb4w
-+    1, // llvm.hexagon.V6.vdealb4w.128B
-+    1, // llvm.hexagon.V6.vdealh
-+    1, // llvm.hexagon.V6.vdealh.128B
-+    1, // llvm.hexagon.V6.vdealvdd
-+    1, // llvm.hexagon.V6.vdealvdd.128B
-+    1, // llvm.hexagon.V6.vdelta
-+    1, // llvm.hexagon.V6.vdelta.128B
-+    1, // llvm.hexagon.V6.vdmpybus
-+    1, // llvm.hexagon.V6.vdmpybus.128B
-+    1, // llvm.hexagon.V6.vdmpybus.acc
-+    1, // llvm.hexagon.V6.vdmpybus.acc.128B
-+    1, // llvm.hexagon.V6.vdmpybus.dv
-+    1, // llvm.hexagon.V6.vdmpybus.dv.128B
-+    1, // llvm.hexagon.V6.vdmpybus.dv.acc
-+    1, // llvm.hexagon.V6.vdmpybus.dv.acc.128B
-+    1, // llvm.hexagon.V6.vdmpyhb
-+    1, // llvm.hexagon.V6.vdmpyhb.128B
-+    1, // llvm.hexagon.V6.vdmpyhb.acc
-+    1, // llvm.hexagon.V6.vdmpyhb.acc.128B
-+    1, // llvm.hexagon.V6.vdmpyhb.dv
-+    1, // llvm.hexagon.V6.vdmpyhb.dv.128B
-+    1, // llvm.hexagon.V6.vdmpyhb.dv.acc
-+    1, // llvm.hexagon.V6.vdmpyhb.dv.acc.128B
-+    1, // llvm.hexagon.V6.vdmpyhisat
-+    1, // llvm.hexagon.V6.vdmpyhisat.128B
-+    1, // llvm.hexagon.V6.vdmpyhisat.acc
-+    1, // llvm.hexagon.V6.vdmpyhisat.acc.128B
-+    1, // llvm.hexagon.V6.vdmpyhsat
-+    1, // llvm.hexagon.V6.vdmpyhsat.128B
-+    1, // llvm.hexagon.V6.vdmpyhsat.acc
-+    1, // llvm.hexagon.V6.vdmpyhsat.acc.128B
-+    1, // llvm.hexagon.V6.vdmpyhsuisat
-+    1, // llvm.hexagon.V6.vdmpyhsuisat.128B
-+    1, // llvm.hexagon.V6.vdmpyhsuisat.acc
-+    1, // llvm.hexagon.V6.vdmpyhsuisat.acc.128B
-+    1, // llvm.hexagon.V6.vdmpyhsusat
-+    1, // llvm.hexagon.V6.vdmpyhsusat.128B
-+    1, // llvm.hexagon.V6.vdmpyhsusat.acc
-+    1, // llvm.hexagon.V6.vdmpyhsusat.acc.128B
-+    1, // llvm.hexagon.V6.vdmpyhvsat
-+    1, // llvm.hexagon.V6.vdmpyhvsat.128B
-+    1, // llvm.hexagon.V6.vdmpyhvsat.acc
-+    1, // llvm.hexagon.V6.vdmpyhvsat.acc.128B
-+    1, // llvm.hexagon.V6.vdsaduh
-+    1, // llvm.hexagon.V6.vdsaduh.128B
-+    1, // llvm.hexagon.V6.vdsaduh.acc
-+    1, // llvm.hexagon.V6.vdsaduh.acc.128B
-+    1, // llvm.hexagon.V6.veqb
-+    1, // llvm.hexagon.V6.veqb.128B
-+    1, // llvm.hexagon.V6.veqb.and
-+    1, // llvm.hexagon.V6.veqb.and.128B
-+    1, // llvm.hexagon.V6.veqb.or
-+    1, // llvm.hexagon.V6.veqb.or.128B
-+    1, // llvm.hexagon.V6.veqb.xor
-+    1, // llvm.hexagon.V6.veqb.xor.128B
-+    1, // llvm.hexagon.V6.veqh
-+    1, // llvm.hexagon.V6.veqh.128B
-+    1, // llvm.hexagon.V6.veqh.and
-+    1, // llvm.hexagon.V6.veqh.and.128B
-+    1, // llvm.hexagon.V6.veqh.or
-+    1, // llvm.hexagon.V6.veqh.or.128B
-+    1, // llvm.hexagon.V6.veqh.xor
-+    1, // llvm.hexagon.V6.veqh.xor.128B
-+    1, // llvm.hexagon.V6.veqw
-+    1, // llvm.hexagon.V6.veqw.128B
-+    1, // llvm.hexagon.V6.veqw.and
-+    1, // llvm.hexagon.V6.veqw.and.128B
-+    1, // llvm.hexagon.V6.veqw.or
-+    1, // llvm.hexagon.V6.veqw.or.128B
-+    1, // llvm.hexagon.V6.veqw.xor
-+    1, // llvm.hexagon.V6.veqw.xor.128B
-+    1, // llvm.hexagon.V6.vgtb
-+    1, // llvm.hexagon.V6.vgtb.128B
-+    1, // llvm.hexagon.V6.vgtb.and
-+    1, // llvm.hexagon.V6.vgtb.and.128B
-+    1, // llvm.hexagon.V6.vgtb.or
-+    1, // llvm.hexagon.V6.vgtb.or.128B
-+    1, // llvm.hexagon.V6.vgtb.xor
-+    1, // llvm.hexagon.V6.vgtb.xor.128B
-+    1, // llvm.hexagon.V6.vgth
-+    1, // llvm.hexagon.V6.vgth.128B
-+    1, // llvm.hexagon.V6.vgth.and
-+    1, // llvm.hexagon.V6.vgth.and.128B
-+    1, // llvm.hexagon.V6.vgth.or
-+    1, // llvm.hexagon.V6.vgth.or.128B
-+    1, // llvm.hexagon.V6.vgth.xor
-+    1, // llvm.hexagon.V6.vgth.xor.128B
-+    1, // llvm.hexagon.V6.vgtub
-+    1, // llvm.hexagon.V6.vgtub.128B
-+    1, // llvm.hexagon.V6.vgtub.and
-+    1, // llvm.hexagon.V6.vgtub.and.128B
-+    1, // llvm.hexagon.V6.vgtub.or
-+    1, // llvm.hexagon.V6.vgtub.or.128B
-+    1, // llvm.hexagon.V6.vgtub.xor
-+    1, // llvm.hexagon.V6.vgtub.xor.128B
-+    1, // llvm.hexagon.V6.vgtuh
-+    1, // llvm.hexagon.V6.vgtuh.128B
-+    1, // llvm.hexagon.V6.vgtuh.and
-+    1, // llvm.hexagon.V6.vgtuh.and.128B
-+    1, // llvm.hexagon.V6.vgtuh.or
-+    1, // llvm.hexagon.V6.vgtuh.or.128B
-+    1, // llvm.hexagon.V6.vgtuh.xor
-+    1, // llvm.hexagon.V6.vgtuh.xor.128B
-+    1, // llvm.hexagon.V6.vgtuw
-+    1, // llvm.hexagon.V6.vgtuw.128B
-+    1, // llvm.hexagon.V6.vgtuw.and
-+    1, // llvm.hexagon.V6.vgtuw.and.128B
-+    1, // llvm.hexagon.V6.vgtuw.or
-+    1, // llvm.hexagon.V6.vgtuw.or.128B
-+    1, // llvm.hexagon.V6.vgtuw.xor
-+    1, // llvm.hexagon.V6.vgtuw.xor.128B
-+    1, // llvm.hexagon.V6.vgtw
-+    1, // llvm.hexagon.V6.vgtw.128B
-+    1, // llvm.hexagon.V6.vgtw.and
-+    1, // llvm.hexagon.V6.vgtw.and.128B
-+    1, // llvm.hexagon.V6.vgtw.or
-+    1, // llvm.hexagon.V6.vgtw.or.128B
-+    1, // llvm.hexagon.V6.vgtw.xor
-+    1, // llvm.hexagon.V6.vgtw.xor.128B
-+    1, // llvm.hexagon.V6.vinsertwr
-+    1, // llvm.hexagon.V6.vinsertwr.128B
-+    1, // llvm.hexagon.V6.vlalignb
-+    1, // llvm.hexagon.V6.vlalignb.128B
-+    1, // llvm.hexagon.V6.vlalignbi
-+    1, // llvm.hexagon.V6.vlalignbi.128B
-+    1, // llvm.hexagon.V6.vlsrh
-+    1, // llvm.hexagon.V6.vlsrh.128B
-+    1, // llvm.hexagon.V6.vlsrhv
-+    1, // llvm.hexagon.V6.vlsrhv.128B
-+    1, // llvm.hexagon.V6.vlsrw
-+    1, // llvm.hexagon.V6.vlsrw.128B
-+    1, // llvm.hexagon.V6.vlsrwv
-+    1, // llvm.hexagon.V6.vlsrwv.128B
-+    1, // llvm.hexagon.V6.vlutb
-+    1, // llvm.hexagon.V6.vlutb.128B
-+    1, // llvm.hexagon.V6.vlutb.acc
-+    1, // llvm.hexagon.V6.vlutb.acc.128B
-+    1, // llvm.hexagon.V6.vlutb.dv
-+    1, // llvm.hexagon.V6.vlutb.dv.128B
-+    1, // llvm.hexagon.V6.vlutb.dv.acc
-+    1, // llvm.hexagon.V6.vlutb.dv.acc.128B
-+    1, // llvm.hexagon.V6.vlutvvb
-+    1, // llvm.hexagon.V6.vlutvvb.128B
-+    1, // llvm.hexagon.V6.vlutvvb.oracc
-+    1, // llvm.hexagon.V6.vlutvvb.oracc.128B
-+    1, // llvm.hexagon.V6.vlutvwh
-+    1, // llvm.hexagon.V6.vlutvwh.128B
-+    1, // llvm.hexagon.V6.vlutvwh.oracc
-+    1, // llvm.hexagon.V6.vlutvwh.oracc.128B
-+    1, // llvm.hexagon.V6.vmaxh
-+    1, // llvm.hexagon.V6.vmaxh.128B
-+    1, // llvm.hexagon.V6.vmaxub
-+    1, // llvm.hexagon.V6.vmaxub.128B
-+    1, // llvm.hexagon.V6.vmaxuh
-+    1, // llvm.hexagon.V6.vmaxuh.128B
-+    1, // llvm.hexagon.V6.vmaxw
-+    1, // llvm.hexagon.V6.vmaxw.128B
-+    1, // llvm.hexagon.V6.vminh
-+    1, // llvm.hexagon.V6.vminh.128B
-+    1, // llvm.hexagon.V6.vminub
-+    1, // llvm.hexagon.V6.vminub.128B
-+    1, // llvm.hexagon.V6.vminuh
-+    1, // llvm.hexagon.V6.vminuh.128B
-+    1, // llvm.hexagon.V6.vminw
-+    1, // llvm.hexagon.V6.vminw.128B
-+    1, // llvm.hexagon.V6.vmpabus
-+    1, // llvm.hexagon.V6.vmpabus.128B
-+    1, // llvm.hexagon.V6.vmpabus.acc
-+    1, // llvm.hexagon.V6.vmpabus.acc.128B
-+    1, // llvm.hexagon.V6.vmpabusv
-+    1, // llvm.hexagon.V6.vmpabusv.128B
-+    1, // llvm.hexagon.V6.vmpabuuv
-+    1, // llvm.hexagon.V6.vmpabuuv.128B
-+    1, // llvm.hexagon.V6.vmpahb
-+    1, // llvm.hexagon.V6.vmpahb.128B
-+    1, // llvm.hexagon.V6.vmpahb.acc
-+    1, // llvm.hexagon.V6.vmpahb.acc.128B
-+    1, // llvm.hexagon.V6.vmpybus
-+    1, // llvm.hexagon.V6.vmpybus.128B
-+    1, // llvm.hexagon.V6.vmpybus.acc
-+    1, // llvm.hexagon.V6.vmpybus.acc.128B
-+    1, // llvm.hexagon.V6.vmpybusv
-+    1, // llvm.hexagon.V6.vmpybusv.128B
-+    1, // llvm.hexagon.V6.vmpybusv.acc
-+    1, // llvm.hexagon.V6.vmpybusv.acc.128B
-+    1, // llvm.hexagon.V6.vmpybv
-+    1, // llvm.hexagon.V6.vmpybv.128B
-+    1, // llvm.hexagon.V6.vmpybv.acc
-+    1, // llvm.hexagon.V6.vmpybv.acc.128B
-+    1, // llvm.hexagon.V6.vmpyewuh
-+    1, // llvm.hexagon.V6.vmpyewuh.128B
-+    1, // llvm.hexagon.V6.vmpyh
-+    1, // llvm.hexagon.V6.vmpyh.128B
-+    1, // llvm.hexagon.V6.vmpyhsat.acc
-+    1, // llvm.hexagon.V6.vmpyhsat.acc.128B
-+    1, // llvm.hexagon.V6.vmpyhsrs
-+    1, // llvm.hexagon.V6.vmpyhsrs.128B
-+    1, // llvm.hexagon.V6.vmpyhss
-+    1, // llvm.hexagon.V6.vmpyhss.128B
-+    1, // llvm.hexagon.V6.vmpyhus
-+    1, // llvm.hexagon.V6.vmpyhus.128B
-+    1, // llvm.hexagon.V6.vmpyhus.acc
-+    1, // llvm.hexagon.V6.vmpyhus.acc.128B
-+    1, // llvm.hexagon.V6.vmpyhv
-+    1, // llvm.hexagon.V6.vmpyhv.128B
-+    1, // llvm.hexagon.V6.vmpyhv.acc
-+    1, // llvm.hexagon.V6.vmpyhv.acc.128B
-+    1, // llvm.hexagon.V6.vmpyhvsrs
-+    1, // llvm.hexagon.V6.vmpyhvsrs.128B
-+    1, // llvm.hexagon.V6.vmpyieoh
-+    1, // llvm.hexagon.V6.vmpyieoh.128B
-+    1, // llvm.hexagon.V6.vmpyiewh.acc
-+    1, // llvm.hexagon.V6.vmpyiewh.acc.128B
-+    1, // llvm.hexagon.V6.vmpyiewuh
-+    1, // llvm.hexagon.V6.vmpyiewuh.128B
-+    1, // llvm.hexagon.V6.vmpyiewuh.acc
-+    1, // llvm.hexagon.V6.vmpyiewuh.acc.128B
-+    1, // llvm.hexagon.V6.vmpyih
-+    1, // llvm.hexagon.V6.vmpyih.128B
-+    1, // llvm.hexagon.V6.vmpyih.acc
-+    1, // llvm.hexagon.V6.vmpyih.acc.128B
-+    1, // llvm.hexagon.V6.vmpyihb
-+    1, // llvm.hexagon.V6.vmpyihb.128B
-+    1, // llvm.hexagon.V6.vmpyihb.acc
-+    1, // llvm.hexagon.V6.vmpyihb.acc.128B
-+    1, // llvm.hexagon.V6.vmpyiowh
-+    1, // llvm.hexagon.V6.vmpyiowh.128B
-+    1, // llvm.hexagon.V6.vmpyiwb
-+    1, // llvm.hexagon.V6.vmpyiwb.128B
-+    1, // llvm.hexagon.V6.vmpyiwb.acc
-+    1, // llvm.hexagon.V6.vmpyiwb.acc.128B
-+    1, // llvm.hexagon.V6.vmpyiwh
-+    1, // llvm.hexagon.V6.vmpyiwh.128B
-+    1, // llvm.hexagon.V6.vmpyiwh.acc
-+    1, // llvm.hexagon.V6.vmpyiwh.acc.128B
-+    1, // llvm.hexagon.V6.vmpyowh
-+    1, // llvm.hexagon.V6.vmpyowh.128B
-+    1, // llvm.hexagon.V6.vmpyowh.rnd
-+    1, // llvm.hexagon.V6.vmpyowh.rnd.128B
-+    1, // llvm.hexagon.V6.vmpyowh.rnd.sacc
-+    1, // llvm.hexagon.V6.vmpyowh.rnd.sacc.128B
-+    1, // llvm.hexagon.V6.vmpyowh.sacc
-+    1, // llvm.hexagon.V6.vmpyowh.sacc.128B
-+    1, // llvm.hexagon.V6.vmpyub
-+    1, // llvm.hexagon.V6.vmpyub.128B
-+    1, // llvm.hexagon.V6.vmpyub.acc
-+    1, // llvm.hexagon.V6.vmpyub.acc.128B
-+    1, // llvm.hexagon.V6.vmpyubv
-+    1, // llvm.hexagon.V6.vmpyubv.128B
-+    1, // llvm.hexagon.V6.vmpyubv.acc
-+    1, // llvm.hexagon.V6.vmpyubv.acc.128B
-+    1, // llvm.hexagon.V6.vmpyuh
-+    1, // llvm.hexagon.V6.vmpyuh.128B
-+    1, // llvm.hexagon.V6.vmpyuh.acc
-+    1, // llvm.hexagon.V6.vmpyuh.acc.128B
-+    1, // llvm.hexagon.V6.vmpyuhv
-+    1, // llvm.hexagon.V6.vmpyuhv.128B
-+    1, // llvm.hexagon.V6.vmpyuhv.acc
-+    1, // llvm.hexagon.V6.vmpyuhv.acc.128B
-+    1, // llvm.hexagon.V6.vmux
-+    1, // llvm.hexagon.V6.vmux.128B
-+    1, // llvm.hexagon.V6.vnavgh
-+    1, // llvm.hexagon.V6.vnavgh.128B
-+    1, // llvm.hexagon.V6.vnavgub
-+    1, // llvm.hexagon.V6.vnavgub.128B
-+    1, // llvm.hexagon.V6.vnavgw
-+    1, // llvm.hexagon.V6.vnavgw.128B
-+    1, // llvm.hexagon.V6.vnormamth
-+    1, // llvm.hexagon.V6.vnormamth.128B
-+    1, // llvm.hexagon.V6.vnormamtw
-+    1, // llvm.hexagon.V6.vnormamtw.128B
-+    1, // llvm.hexagon.V6.vnot
-+    1, // llvm.hexagon.V6.vnot.128B
-+    1, // llvm.hexagon.V6.vor
-+    1, // llvm.hexagon.V6.vor.128B
-+    1, // llvm.hexagon.V6.vpackeb
-+    1, // llvm.hexagon.V6.vpackeb.128B
-+    1, // llvm.hexagon.V6.vpackeh
-+    1, // llvm.hexagon.V6.vpackeh.128B
-+    1, // llvm.hexagon.V6.vpackhb.sat
-+    1, // llvm.hexagon.V6.vpackhb.sat.128B
-+    1, // llvm.hexagon.V6.vpackhub.sat
-+    1, // llvm.hexagon.V6.vpackhub.sat.128B
-+    1, // llvm.hexagon.V6.vpackob
-+    1, // llvm.hexagon.V6.vpackob.128B
-+    1, // llvm.hexagon.V6.vpackoh
-+    1, // llvm.hexagon.V6.vpackoh.128B
-+    1, // llvm.hexagon.V6.vpackwh.sat
-+    1, // llvm.hexagon.V6.vpackwh.sat.128B
-+    1, // llvm.hexagon.V6.vpackwuh.sat
-+    1, // llvm.hexagon.V6.vpackwuh.sat.128B
-+    1, // llvm.hexagon.V6.vpopcounth
-+    1, // llvm.hexagon.V6.vpopcounth.128B
-+    1, // llvm.hexagon.V6.vrdelta
-+    1, // llvm.hexagon.V6.vrdelta.128B
-+    1, // llvm.hexagon.V6.vrmpybus
-+    1, // llvm.hexagon.V6.vrmpybus.128B
-+    1, // llvm.hexagon.V6.vrmpybus.acc
-+    1, // llvm.hexagon.V6.vrmpybus.acc.128B
-+    1, // llvm.hexagon.V6.vrmpybusi
-+    1, // llvm.hexagon.V6.vrmpybusi.128B
-+    1, // llvm.hexagon.V6.vrmpybusi.acc
-+    1, // llvm.hexagon.V6.vrmpybusi.acc.128B
-+    1, // llvm.hexagon.V6.vrmpybusv
-+    1, // llvm.hexagon.V6.vrmpybusv.128B
-+    1, // llvm.hexagon.V6.vrmpybusv.acc
-+    1, // llvm.hexagon.V6.vrmpybusv.acc.128B
-+    1, // llvm.hexagon.V6.vrmpybv
-+    1, // llvm.hexagon.V6.vrmpybv.128B
-+    1, // llvm.hexagon.V6.vrmpybv.acc
-+    1, // llvm.hexagon.V6.vrmpybv.acc.128B
-+    1, // llvm.hexagon.V6.vrmpyub
-+    1, // llvm.hexagon.V6.vrmpyub.128B
-+    1, // llvm.hexagon.V6.vrmpyub.acc
-+    1, // llvm.hexagon.V6.vrmpyub.acc.128B
-+    1, // llvm.hexagon.V6.vrmpyubi
-+    1, // llvm.hexagon.V6.vrmpyubi.128B
-+    1, // llvm.hexagon.V6.vrmpyubi.acc
-+    1, // llvm.hexagon.V6.vrmpyubi.acc.128B
-+    1, // llvm.hexagon.V6.vrmpyubv
-+    1, // llvm.hexagon.V6.vrmpyubv.128B
-+    1, // llvm.hexagon.V6.vrmpyubv.acc
-+    1, // llvm.hexagon.V6.vrmpyubv.acc.128B
-+    1, // llvm.hexagon.V6.vror
-+    1, // llvm.hexagon.V6.vror.128B
-+    1, // llvm.hexagon.V6.vroundhb
-+    1, // llvm.hexagon.V6.vroundhb.128B
-+    1, // llvm.hexagon.V6.vroundhub
-+    1, // llvm.hexagon.V6.vroundhub.128B
-+    1, // llvm.hexagon.V6.vroundwh
-+    1, // llvm.hexagon.V6.vroundwh.128B
-+    1, // llvm.hexagon.V6.vroundwuh
-+    1, // llvm.hexagon.V6.vroundwuh.128B
-+    1, // llvm.hexagon.V6.vrsadubi
-+    1, // llvm.hexagon.V6.vrsadubi.128B
-+    1, // llvm.hexagon.V6.vrsadubi.acc
-+    1, // llvm.hexagon.V6.vrsadubi.acc.128B
-+    1, // llvm.hexagon.V6.vsathub
-+    1, // llvm.hexagon.V6.vsathub.128B
-+    1, // llvm.hexagon.V6.vsatwh
-+    1, // llvm.hexagon.V6.vsatwh.128B
-+    1, // llvm.hexagon.V6.vsb
-+    1, // llvm.hexagon.V6.vsb.128B
-+    1, // llvm.hexagon.V6.vsh
-+    1, // llvm.hexagon.V6.vsh.128B
-+    1, // llvm.hexagon.V6.vshufeh
-+    1, // llvm.hexagon.V6.vshufeh.128B
-+    1, // llvm.hexagon.V6.vshuffb
-+    1, // llvm.hexagon.V6.vshuffb.128B
-+    1, // llvm.hexagon.V6.vshuffeb
-+    1, // llvm.hexagon.V6.vshuffeb.128B
-+    1, // llvm.hexagon.V6.vshuffh
-+    1, // llvm.hexagon.V6.vshuffh.128B
-+    1, // llvm.hexagon.V6.vshuffob
-+    1, // llvm.hexagon.V6.vshuffob.128B
-+    1, // llvm.hexagon.V6.vshuffvdd
-+    1, // llvm.hexagon.V6.vshuffvdd.128B
-+    1, // llvm.hexagon.V6.vshufoeb
-+    1, // llvm.hexagon.V6.vshufoeb.128B
-+    1, // llvm.hexagon.V6.vshufoeh
-+    1, // llvm.hexagon.V6.vshufoeh.128B
-+    1, // llvm.hexagon.V6.vshufoh
-+    1, // llvm.hexagon.V6.vshufoh.128B
-+    1, // llvm.hexagon.V6.vsubb
-+    1, // llvm.hexagon.V6.vsubb.128B
-+    1, // llvm.hexagon.V6.vsubb.dv
-+    1, // llvm.hexagon.V6.vsubb.dv.128B
-+    1, // llvm.hexagon.V6.vsubbnq
-+    1, // llvm.hexagon.V6.vsubbnq.128B
-+    1, // llvm.hexagon.V6.vsubbq
-+    1, // llvm.hexagon.V6.vsubbq.128B
-+    1, // llvm.hexagon.V6.vsubh
-+    1, // llvm.hexagon.V6.vsubh.128B
-+    1, // llvm.hexagon.V6.vsubh.dv
-+    1, // llvm.hexagon.V6.vsubh.dv.128B
-+    1, // llvm.hexagon.V6.vsubhnq
-+    1, // llvm.hexagon.V6.vsubhnq.128B
-+    1, // llvm.hexagon.V6.vsubhq
-+    1, // llvm.hexagon.V6.vsubhq.128B
-+    1, // llvm.hexagon.V6.vsubhsat
-+    1, // llvm.hexagon.V6.vsubhsat.128B
-+    1, // llvm.hexagon.V6.vsubhsat.dv
-+    1, // llvm.hexagon.V6.vsubhsat.dv.128B
-+    1, // llvm.hexagon.V6.vsubhw
-+    1, // llvm.hexagon.V6.vsubhw.128B
-+    1, // llvm.hexagon.V6.vsububh
-+    1, // llvm.hexagon.V6.vsububh.128B
-+    1, // llvm.hexagon.V6.vsububsat
-+    1, // llvm.hexagon.V6.vsububsat.128B
-+    1, // llvm.hexagon.V6.vsububsat.dv
-+    1, // llvm.hexagon.V6.vsububsat.dv.128B
-+    1, // llvm.hexagon.V6.vsubuhsat
-+    1, // llvm.hexagon.V6.vsubuhsat.128B
-+    1, // llvm.hexagon.V6.vsubuhsat.dv
-+    1, // llvm.hexagon.V6.vsubuhsat.dv.128B
-+    1, // llvm.hexagon.V6.vsubuhw
-+    1, // llvm.hexagon.V6.vsubuhw.128B
-+    1, // llvm.hexagon.V6.vsubw
-+    1, // llvm.hexagon.V6.vsubw.128B
-+    1, // llvm.hexagon.V6.vsubw.dv
-+    1, // llvm.hexagon.V6.vsubw.dv.128B
-+    1, // llvm.hexagon.V6.vsubwnq
-+    1, // llvm.hexagon.V6.vsubwnq.128B
-+    1, // llvm.hexagon.V6.vsubwq
-+    1, // llvm.hexagon.V6.vsubwq.128B
-+    1, // llvm.hexagon.V6.vsubwsat
-+    1, // llvm.hexagon.V6.vsubwsat.128B
-+    1, // llvm.hexagon.V6.vsubwsat.dv
-+    1, // llvm.hexagon.V6.vsubwsat.dv.128B
-+    1, // llvm.hexagon.V6.vswap
-+    1, // llvm.hexagon.V6.vswap.128B
-+    1, // llvm.hexagon.V6.vtmpyb
-+    1, // llvm.hexagon.V6.vtmpyb.128B
-+    1, // llvm.hexagon.V6.vtmpyb.acc
-+    1, // llvm.hexagon.V6.vtmpyb.acc.128B
-+    1, // llvm.hexagon.V6.vtmpybus
-+    1, // llvm.hexagon.V6.vtmpybus.128B
-+    1, // llvm.hexagon.V6.vtmpybus.acc
-+    1, // llvm.hexagon.V6.vtmpybus.acc.128B
-+    1, // llvm.hexagon.V6.vtmpyhb
-+    1, // llvm.hexagon.V6.vtmpyhb.128B
-+    1, // llvm.hexagon.V6.vtmpyhb.acc
-+    1, // llvm.hexagon.V6.vtmpyhb.acc.128B
-+    1, // llvm.hexagon.V6.vunpackb
-+    1, // llvm.hexagon.V6.vunpackb.128B
-+    1, // llvm.hexagon.V6.vunpackh
-+    1, // llvm.hexagon.V6.vunpackh.128B
-+    1, // llvm.hexagon.V6.vunpackob
-+    1, // llvm.hexagon.V6.vunpackob.128B
-+    1, // llvm.hexagon.V6.vunpackoh
-+    1, // llvm.hexagon.V6.vunpackoh.128B
-+    1, // llvm.hexagon.V6.vunpackub
-+    1, // llvm.hexagon.V6.vunpackub.128B
-+    1, // llvm.hexagon.V6.vunpackuh
-+    1, // llvm.hexagon.V6.vunpackuh.128B
-+    1, // llvm.hexagon.V6.vxor
-+    1, // llvm.hexagon.V6.vxor.128B
-+    1, // llvm.hexagon.V6.vzb
-+    1, // llvm.hexagon.V6.vzb.128B
-+    1, // llvm.hexagon.V6.vzh
-+    1, // llvm.hexagon.V6.vzh.128B
-+    18, // llvm.hexagon.brev.ldb
-+    18, // llvm.hexagon.brev.ldd
-+    18, // llvm.hexagon.brev.ldh
-+    18, // llvm.hexagon.brev.ldub
-+    18, // llvm.hexagon.brev.lduh
-+    18, // llvm.hexagon.brev.ldw
-+    18, // llvm.hexagon.brev.stb
-+    18, // llvm.hexagon.brev.std
-+    18, // llvm.hexagon.brev.sth
-+    18, // llvm.hexagon.brev.sthhi
-+    18, // llvm.hexagon.brev.stw
-+    18, // llvm.hexagon.circ.ldb
-+    18, // llvm.hexagon.circ.ldd
-+    18, // llvm.hexagon.circ.ldh
-+    18, // llvm.hexagon.circ.ldub
-+    18, // llvm.hexagon.circ.lduh
-+    18, // llvm.hexagon.circ.ldw
-+    18, // llvm.hexagon.circ.stb
-+    18, // llvm.hexagon.circ.std
-+    18, // llvm.hexagon.circ.sth
-+    18, // llvm.hexagon.circ.sthhi
-+    18, // llvm.hexagon.circ.stw
-+    18, // llvm.hexagon.mm256i.vaddw
-+    3, // llvm.hexagon.prefetch
-+    3, // llvm.mips.absq.s.ph
-+    3, // llvm.mips.absq.s.qb
-+    3, // llvm.mips.absq.s.w
-+    1, // llvm.mips.add.a.b
-+    1, // llvm.mips.add.a.d
-+    1, // llvm.mips.add.a.h
-+    1, // llvm.mips.add.a.w
-+    1, // llvm.mips.addq.ph
-+    1, // llvm.mips.addq.s.ph
-+    3, // llvm.mips.addq.s.w
-+    1, // llvm.mips.addqh.ph
-+    1, // llvm.mips.addqh.r.ph
-+    1, // llvm.mips.addqh.r.w
-+    1, // llvm.mips.addqh.w
-+    1, // llvm.mips.adds.a.b
-+    1, // llvm.mips.adds.a.d
-+    1, // llvm.mips.adds.a.h
-+    1, // llvm.mips.adds.a.w
-+    1, // llvm.mips.adds.s.b
-+    1, // llvm.mips.adds.s.d
-+    1, // llvm.mips.adds.s.h
-+    1, // llvm.mips.adds.s.w
-+    1, // llvm.mips.adds.u.b
-+    1, // llvm.mips.adds.u.d
-+    1, // llvm.mips.adds.u.h
-+    1, // llvm.mips.adds.u.w
-+    3, // llvm.mips.addsc
-+    3, // llvm.mips.addu.ph
-+    1, // llvm.mips.addu.qb
-+    3, // llvm.mips.addu.s.ph
-+    1, // llvm.mips.addu.s.qb
-+    1, // llvm.mips.adduh.qb
-+    1, // llvm.mips.adduh.r.qb
-+    1, // llvm.mips.addv.b
-+    1, // llvm.mips.addv.d
-+    1, // llvm.mips.addv.h
-+    1, // llvm.mips.addv.w
-+    1, // llvm.mips.addvi.b
-+    1, // llvm.mips.addvi.d
-+    1, // llvm.mips.addvi.h
-+    1, // llvm.mips.addvi.w
-+    3, // llvm.mips.addwc
-+    1, // llvm.mips.and.v
-+    1, // llvm.mips.andi.b
-+    1, // llvm.mips.append
-+    1, // llvm.mips.asub.s.b
-+    1, // llvm.mips.asub.s.d
-+    1, // llvm.mips.asub.s.h
-+    1, // llvm.mips.asub.s.w
-+    1, // llvm.mips.asub.u.b
-+    1, // llvm.mips.asub.u.d
-+    1, // llvm.mips.asub.u.h
-+    1, // llvm.mips.asub.u.w
-+    1, // llvm.mips.ave.s.b
-+    1, // llvm.mips.ave.s.d
-+    1, // llvm.mips.ave.s.h
-+    1, // llvm.mips.ave.s.w
-+    1, // llvm.mips.ave.u.b
-+    1, // llvm.mips.ave.u.d
-+    1, // llvm.mips.ave.u.h
-+    1, // llvm.mips.ave.u.w
-+    1, // llvm.mips.aver.s.b
-+    1, // llvm.mips.aver.s.d
-+    1, // llvm.mips.aver.s.h
-+    1, // llvm.mips.aver.s.w
-+    1, // llvm.mips.aver.u.b
-+    1, // llvm.mips.aver.u.d
-+    1, // llvm.mips.aver.u.h
-+    1, // llvm.mips.aver.u.w
-+    1, // llvm.mips.balign
-+    1, // llvm.mips.bclr.b
-+    1, // llvm.mips.bclr.d
-+    1, // llvm.mips.bclr.h
-+    1, // llvm.mips.bclr.w
-+    1, // llvm.mips.bclri.b
-+    1, // llvm.mips.bclri.d
-+    1, // llvm.mips.bclri.h
-+    1, // llvm.mips.bclri.w
-+    1, // llvm.mips.binsl.b
-+    1, // llvm.mips.binsl.d
-+    1, // llvm.mips.binsl.h
-+    1, // llvm.mips.binsl.w
-+    1, // llvm.mips.binsli.b
-+    1, // llvm.mips.binsli.d
-+    1, // llvm.mips.binsli.h
-+    1, // llvm.mips.binsli.w
-+    1, // llvm.mips.binsr.b
-+    1, // llvm.mips.binsr.d
-+    1, // llvm.mips.binsr.h
-+    1, // llvm.mips.binsr.w
-+    1, // llvm.mips.binsri.b
-+    1, // llvm.mips.binsri.d
-+    1, // llvm.mips.binsri.h
-+    1, // llvm.mips.binsri.w
-+    1, // llvm.mips.bitrev
-+    1, // llvm.mips.bmnz.v
-+    1, // llvm.mips.bmnzi.b
-+    1, // llvm.mips.bmz.v
-+    1, // llvm.mips.bmzi.b
-+    1, // llvm.mips.bneg.b
-+    1, // llvm.mips.bneg.d
-+    1, // llvm.mips.bneg.h
-+    1, // llvm.mips.bneg.w
-+    1, // llvm.mips.bnegi.b
-+    1, // llvm.mips.bnegi.d
-+    1, // llvm.mips.bnegi.h
-+    1, // llvm.mips.bnegi.w
-+    1, // llvm.mips.bnz.b
-+    1, // llvm.mips.bnz.d
-+    1, // llvm.mips.bnz.h
-+    1, // llvm.mips.bnz.v
-+    1, // llvm.mips.bnz.w
-+    13, // llvm.mips.bposge32
-+    1, // llvm.mips.bsel.v
-+    1, // llvm.mips.bseli.b
-+    1, // llvm.mips.bset.b
-+    1, // llvm.mips.bset.d
-+    1, // llvm.mips.bset.h
-+    1, // llvm.mips.bset.w
-+    1, // llvm.mips.bseti.b
-+    1, // llvm.mips.bseti.d
-+    1, // llvm.mips.bseti.h
-+    1, // llvm.mips.bseti.w
-+    1, // llvm.mips.bz.b
-+    1, // llvm.mips.bz.d
-+    1, // llvm.mips.bz.h
-+    1, // llvm.mips.bz.v
-+    1, // llvm.mips.bz.w
-+    1, // llvm.mips.ceq.b
-+    1, // llvm.mips.ceq.d
-+    1, // llvm.mips.ceq.h
-+    1, // llvm.mips.ceq.w
-+    1, // llvm.mips.ceqi.b
-+    1, // llvm.mips.ceqi.d
-+    1, // llvm.mips.ceqi.h
-+    1, // llvm.mips.ceqi.w
-+    3, // llvm.mips.cfcmsa
-+    1, // llvm.mips.cle.s.b
-+    1, // llvm.mips.cle.s.d
-+    1, // llvm.mips.cle.s.h
-+    1, // llvm.mips.cle.s.w
-+    1, // llvm.mips.cle.u.b
-+    1, // llvm.mips.cle.u.d
-+    1, // llvm.mips.cle.u.h
-+    1, // llvm.mips.cle.u.w
-+    1, // llvm.mips.clei.s.b
-+    1, // llvm.mips.clei.s.d
-+    1, // llvm.mips.clei.s.h
-+    1, // llvm.mips.clei.s.w
-+    1, // llvm.mips.clei.u.b
-+    1, // llvm.mips.clei.u.d
-+    1, // llvm.mips.clei.u.h
-+    1, // llvm.mips.clei.u.w
-+    1, // llvm.mips.clt.s.b
-+    1, // llvm.mips.clt.s.d
-+    1, // llvm.mips.clt.s.h
-+    1, // llvm.mips.clt.s.w
-+    1, // llvm.mips.clt.u.b
-+    1, // llvm.mips.clt.u.d
-+    1, // llvm.mips.clt.u.h
-+    1, // llvm.mips.clt.u.w
-+    1, // llvm.mips.clti.s.b
-+    1, // llvm.mips.clti.s.d
-+    1, // llvm.mips.clti.s.h
-+    1, // llvm.mips.clti.s.w
-+    1, // llvm.mips.clti.u.b
-+    1, // llvm.mips.clti.u.d
-+    1, // llvm.mips.clti.u.h
-+    1, // llvm.mips.clti.u.w
-+    3, // llvm.mips.cmp.eq.ph
-+    3, // llvm.mips.cmp.le.ph
-+    3, // llvm.mips.cmp.lt.ph
-+    3, // llvm.mips.cmpgdu.eq.qb
-+    3, // llvm.mips.cmpgdu.le.qb
-+    3, // llvm.mips.cmpgdu.lt.qb
-+    3, // llvm.mips.cmpgu.eq.qb
-+    3, // llvm.mips.cmpgu.le.qb
-+    3, // llvm.mips.cmpgu.lt.qb
-+    3, // llvm.mips.cmpu.eq.qb
-+    3, // llvm.mips.cmpu.le.qb
-+    3, // llvm.mips.cmpu.lt.qb
-+    1, // llvm.mips.copy.s.b
-+    1, // llvm.mips.copy.s.d
-+    1, // llvm.mips.copy.s.h
-+    1, // llvm.mips.copy.s.w
-+    1, // llvm.mips.copy.u.b
-+    1, // llvm.mips.copy.u.d
-+    1, // llvm.mips.copy.u.h
-+    1, // llvm.mips.copy.u.w
-+    3, // llvm.mips.ctcmsa
-+    1, // llvm.mips.div.s.b
-+    1, // llvm.mips.div.s.d
-+    1, // llvm.mips.div.s.h
-+    1, // llvm.mips.div.s.w
-+    1, // llvm.mips.div.u.b
-+    1, // llvm.mips.div.u.d
-+    1, // llvm.mips.div.u.h
-+    1, // llvm.mips.div.u.w
-+    1, // llvm.mips.dlsa
-+    1, // llvm.mips.dotp.s.d
-+    1, // llvm.mips.dotp.s.h
-+    1, // llvm.mips.dotp.s.w
-+    1, // llvm.mips.dotp.u.d
-+    1, // llvm.mips.dotp.u.h
-+    1, // llvm.mips.dotp.u.w
-+    1, // llvm.mips.dpa.w.ph
-+    1, // llvm.mips.dpadd.s.d
-+    1, // llvm.mips.dpadd.s.h
-+    1, // llvm.mips.dpadd.s.w
-+    1, // llvm.mips.dpadd.u.d
-+    1, // llvm.mips.dpadd.u.h
-+    1, // llvm.mips.dpadd.u.w
-+    3, // llvm.mips.dpaq.s.w.ph
-+    3, // llvm.mips.dpaq.sa.l.w
-+    3, // llvm.mips.dpaqx.s.w.ph
-+    3, // llvm.mips.dpaqx.sa.w.ph
-+    1, // llvm.mips.dpau.h.qbl
-+    1, // llvm.mips.dpau.h.qbr
-+    1, // llvm.mips.dpax.w.ph
-+    1, // llvm.mips.dps.w.ph
-+    3, // llvm.mips.dpsq.s.w.ph
-+    3, // llvm.mips.dpsq.sa.l.w
-+    3, // llvm.mips.dpsqx.s.w.ph
-+    3, // llvm.mips.dpsqx.sa.w.ph
-+    1, // llvm.mips.dpsu.h.qbl
-+    1, // llvm.mips.dpsu.h.qbr
-+    1, // llvm.mips.dpsub.s.d
-+    1, // llvm.mips.dpsub.s.h
-+    1, // llvm.mips.dpsub.s.w
-+    1, // llvm.mips.dpsub.u.d
-+    1, // llvm.mips.dpsub.u.h
-+    1, // llvm.mips.dpsub.u.w
-+    1, // llvm.mips.dpsx.w.ph
-+    3, // llvm.mips.extp
-+    3, // llvm.mips.extpdp
-+    3, // llvm.mips.extr.r.w
-+    3, // llvm.mips.extr.rs.w
-+    3, // llvm.mips.extr.s.h
-+    3, // llvm.mips.extr.w
-+    1, // llvm.mips.fadd.d
-+    1, // llvm.mips.fadd.w
-+    1, // llvm.mips.fcaf.d
-+    1, // llvm.mips.fcaf.w
-+    1, // llvm.mips.fceq.d
-+    1, // llvm.mips.fceq.w
-+    1, // llvm.mips.fclass.d
-+    1, // llvm.mips.fclass.w
-+    1, // llvm.mips.fcle.d
-+    1, // llvm.mips.fcle.w
-+    1, // llvm.mips.fclt.d
-+    1, // llvm.mips.fclt.w
-+    1, // llvm.mips.fcne.d
-+    1, // llvm.mips.fcne.w
-+    1, // llvm.mips.fcor.d
-+    1, // llvm.mips.fcor.w
-+    1, // llvm.mips.fcueq.d
-+    1, // llvm.mips.fcueq.w
-+    1, // llvm.mips.fcule.d
-+    1, // llvm.mips.fcule.w
-+    1, // llvm.mips.fcult.d
-+    1, // llvm.mips.fcult.w
-+    1, // llvm.mips.fcun.d
-+    1, // llvm.mips.fcun.w
-+    1, // llvm.mips.fcune.d
-+    1, // llvm.mips.fcune.w
-+    1, // llvm.mips.fdiv.d
-+    1, // llvm.mips.fdiv.w
-+    1, // llvm.mips.fexdo.h
-+    1, // llvm.mips.fexdo.w
-+    1, // llvm.mips.fexp2.d
-+    1, // llvm.mips.fexp2.w
-+    1, // llvm.mips.fexupl.d
-+    1, // llvm.mips.fexupl.w
-+    1, // llvm.mips.fexupr.d
-+    1, // llvm.mips.fexupr.w
-+    1, // llvm.mips.ffint.s.d
-+    1, // llvm.mips.ffint.s.w
-+    1, // llvm.mips.ffint.u.d
-+    1, // llvm.mips.ffint.u.w
-+    1, // llvm.mips.ffql.d
-+    1, // llvm.mips.ffql.w
-+    1, // llvm.mips.ffqr.d
-+    1, // llvm.mips.ffqr.w
-+    1, // llvm.mips.fill.b
-+    1, // llvm.mips.fill.d
-+    1, // llvm.mips.fill.h
-+    1, // llvm.mips.fill.w
-+    1, // llvm.mips.flog2.d
-+    1, // llvm.mips.flog2.w
-+    1, // llvm.mips.fmadd.d
-+    1, // llvm.mips.fmadd.w
-+    1, // llvm.mips.fmax.a.d
-+    1, // llvm.mips.fmax.a.w
-+    1, // llvm.mips.fmax.d
-+    1, // llvm.mips.fmax.w
-+    1, // llvm.mips.fmin.a.d
-+    1, // llvm.mips.fmin.a.w
-+    1, // llvm.mips.fmin.d
-+    1, // llvm.mips.fmin.w
-+    1, // llvm.mips.fmsub.d
-+    1, // llvm.mips.fmsub.w
-+    1, // llvm.mips.fmul.d
-+    1, // llvm.mips.fmul.w
-+    1, // llvm.mips.frcp.d
-+    1, // llvm.mips.frcp.w
-+    1, // llvm.mips.frint.d
-+    1, // llvm.mips.frint.w
-+    1, // llvm.mips.frsqrt.d
-+    1, // llvm.mips.frsqrt.w
-+    1, // llvm.mips.fsaf.d
-+    1, // llvm.mips.fsaf.w
-+    1, // llvm.mips.fseq.d
-+    1, // llvm.mips.fseq.w
-+    1, // llvm.mips.fsle.d
-+    1, // llvm.mips.fsle.w
-+    1, // llvm.mips.fslt.d
-+    1, // llvm.mips.fslt.w
-+    1, // llvm.mips.fsne.d
-+    1, // llvm.mips.fsne.w
-+    1, // llvm.mips.fsor.d
-+    1, // llvm.mips.fsor.w
-+    1, // llvm.mips.fsqrt.d
-+    1, // llvm.mips.fsqrt.w
-+    1, // llvm.mips.fsub.d
-+    1, // llvm.mips.fsub.w
-+    1, // llvm.mips.fsueq.d
-+    1, // llvm.mips.fsueq.w
-+    1, // llvm.mips.fsule.d
-+    1, // llvm.mips.fsule.w
-+    1, // llvm.mips.fsult.d
-+    1, // llvm.mips.fsult.w
-+    1, // llvm.mips.fsun.d
-+    1, // llvm.mips.fsun.w
-+    1, // llvm.mips.fsune.d
-+    1, // llvm.mips.fsune.w
-+    1, // llvm.mips.ftint.s.d
-+    1, // llvm.mips.ftint.s.w
-+    1, // llvm.mips.ftint.u.d
-+    1, // llvm.mips.ftint.u.w
-+    1, // llvm.mips.ftq.h
-+    1, // llvm.mips.ftq.w
-+    1, // llvm.mips.ftrunc.s.d
-+    1, // llvm.mips.ftrunc.s.w
-+    1, // llvm.mips.ftrunc.u.d
-+    1, // llvm.mips.ftrunc.u.w
-+    1, // llvm.mips.hadd.s.d
-+    1, // llvm.mips.hadd.s.h
-+    1, // llvm.mips.hadd.s.w
-+    1, // llvm.mips.hadd.u.d
-+    1, // llvm.mips.hadd.u.h
-+    1, // llvm.mips.hadd.u.w
-+    1, // llvm.mips.hsub.s.d
-+    1, // llvm.mips.hsub.s.h
-+    1, // llvm.mips.hsub.s.w
-+    1, // llvm.mips.hsub.u.d
-+    1, // llvm.mips.hsub.u.h
-+    1, // llvm.mips.hsub.u.w
-+    1, // llvm.mips.ilvev.b
-+    1, // llvm.mips.ilvev.d
-+    1, // llvm.mips.ilvev.h
-+    1, // llvm.mips.ilvev.w
-+    1, // llvm.mips.ilvl.b
-+    1, // llvm.mips.ilvl.d
-+    1, // llvm.mips.ilvl.h
-+    1, // llvm.mips.ilvl.w
-+    1, // llvm.mips.ilvod.b
-+    1, // llvm.mips.ilvod.d
-+    1, // llvm.mips.ilvod.h
-+    1, // llvm.mips.ilvod.w
-+    1, // llvm.mips.ilvr.b
-+    1, // llvm.mips.ilvr.d
-+    1, // llvm.mips.ilvr.h
-+    1, // llvm.mips.ilvr.w
-+    1, // llvm.mips.insert.b
-+    1, // llvm.mips.insert.d
-+    1, // llvm.mips.insert.h
-+    1, // llvm.mips.insert.w
-+    13, // llvm.mips.insv
-+    1, // llvm.mips.insve.b
-+    1, // llvm.mips.insve.d
-+    1, // llvm.mips.insve.h
-+    1, // llvm.mips.insve.w
-+    2, // llvm.mips.lbux
-+    2, // llvm.mips.ld.b
-+    2, // llvm.mips.ld.d
-+    2, // llvm.mips.ld.h
-+    2, // llvm.mips.ld.w
-+    1, // llvm.mips.ldi.b
-+    1, // llvm.mips.ldi.d
-+    1, // llvm.mips.ldi.h
-+    1, // llvm.mips.ldi.w
-+    2, // llvm.mips.lhx
-+    1, // llvm.mips.lsa
-+    2, // llvm.mips.lwx
-+    1, // llvm.mips.madd
-+    1, // llvm.mips.madd.q.h
-+    1, // llvm.mips.madd.q.w
-+    1, // llvm.mips.maddr.q.h
-+    1, // llvm.mips.maddr.q.w
-+    1, // llvm.mips.maddu
-+    1, // llvm.mips.maddv.b
-+    1, // llvm.mips.maddv.d
-+    1, // llvm.mips.maddv.h
-+    1, // llvm.mips.maddv.w
-+    3, // llvm.mips.maq.s.w.phl
-+    3, // llvm.mips.maq.s.w.phr
-+    3, // llvm.mips.maq.sa.w.phl
-+    3, // llvm.mips.maq.sa.w.phr
-+    1, // llvm.mips.max.a.b
-+    1, // llvm.mips.max.a.d
-+    1, // llvm.mips.max.a.h
-+    1, // llvm.mips.max.a.w
-+    1, // llvm.mips.max.s.b
-+    1, // llvm.mips.max.s.d
-+    1, // llvm.mips.max.s.h
-+    1, // llvm.mips.max.s.w
-+    1, // llvm.mips.max.u.b
-+    1, // llvm.mips.max.u.d
-+    1, // llvm.mips.max.u.h
-+    1, // llvm.mips.max.u.w
-+    1, // llvm.mips.maxi.s.b
-+    1, // llvm.mips.maxi.s.d
-+    1, // llvm.mips.maxi.s.h
-+    1, // llvm.mips.maxi.s.w
-+    1, // llvm.mips.maxi.u.b
-+    1, // llvm.mips.maxi.u.d
-+    1, // llvm.mips.maxi.u.h
-+    1, // llvm.mips.maxi.u.w
-+    1, // llvm.mips.min.a.b
-+    1, // llvm.mips.min.a.d
-+    1, // llvm.mips.min.a.h
-+    1, // llvm.mips.min.a.w
-+    1, // llvm.mips.min.s.b
-+    1, // llvm.mips.min.s.d
-+    1, // llvm.mips.min.s.h
-+    1, // llvm.mips.min.s.w
-+    1, // llvm.mips.min.u.b
-+    1, // llvm.mips.min.u.d
-+    1, // llvm.mips.min.u.h
-+    1, // llvm.mips.min.u.w
-+    1, // llvm.mips.mini.s.b
-+    1, // llvm.mips.mini.s.d
-+    1, // llvm.mips.mini.s.h
-+    1, // llvm.mips.mini.s.w
-+    1, // llvm.mips.mini.u.b
-+    1, // llvm.mips.mini.u.d
-+    1, // llvm.mips.mini.u.h
-+    1, // llvm.mips.mini.u.w
-+    1, // llvm.mips.mod.s.b
-+    1, // llvm.mips.mod.s.d
-+    1, // llvm.mips.mod.s.h
-+    1, // llvm.mips.mod.s.w
-+    1, // llvm.mips.mod.u.b
-+    1, // llvm.mips.mod.u.d
-+    1, // llvm.mips.mod.u.h
-+    1, // llvm.mips.mod.u.w
-+    1, // llvm.mips.modsub
-+    1, // llvm.mips.move.v
-+    1, // llvm.mips.msub
-+    1, // llvm.mips.msub.q.h
-+    1, // llvm.mips.msub.q.w
-+    1, // llvm.mips.msubr.q.h
-+    1, // llvm.mips.msubr.q.w
-+    1, // llvm.mips.msubu
-+    1, // llvm.mips.msubv.b
-+    1, // llvm.mips.msubv.d
-+    1, // llvm.mips.msubv.h
-+    1, // llvm.mips.msubv.w
-+    3, // llvm.mips.mthlip
-+    3, // llvm.mips.mul.ph
-+    1, // llvm.mips.mul.q.h
-+    1, // llvm.mips.mul.q.w
-+    3, // llvm.mips.mul.s.ph
-+    3, // llvm.mips.muleq.s.w.phl
-+    3, // llvm.mips.muleq.s.w.phr
-+    3, // llvm.mips.muleu.s.ph.qbl
-+    3, // llvm.mips.muleu.s.ph.qbr
-+    3, // llvm.mips.mulq.rs.ph
-+    3, // llvm.mips.mulq.rs.w
-+    3, // llvm.mips.mulq.s.ph
-+    3, // llvm.mips.mulq.s.w
-+    1, // llvm.mips.mulr.q.h
-+    1, // llvm.mips.mulr.q.w
-+    1, // llvm.mips.mulsa.w.ph
-+    3, // llvm.mips.mulsaq.s.w.ph
-+    1, // llvm.mips.mult
-+    1, // llvm.mips.multu
-+    1, // llvm.mips.mulv.b
-+    1, // llvm.mips.mulv.d
-+    1, // llvm.mips.mulv.h
-+    1, // llvm.mips.mulv.w
-+    1, // llvm.mips.nloc.b
-+    1, // llvm.mips.nloc.d
-+    1, // llvm.mips.nloc.h
-+    1, // llvm.mips.nloc.w
-+    1, // llvm.mips.nlzc.b
-+    1, // llvm.mips.nlzc.d
-+    1, // llvm.mips.nlzc.h
-+    1, // llvm.mips.nlzc.w
-+    1, // llvm.mips.nor.v
-+    1, // llvm.mips.nori.b
-+    1, // llvm.mips.or.v
-+    1, // llvm.mips.ori.b
-+    1, // llvm.mips.packrl.ph
-+    1, // llvm.mips.pckev.b
-+    1, // llvm.mips.pckev.d
-+    1, // llvm.mips.pckev.h
-+    1, // llvm.mips.pckev.w
-+    1, // llvm.mips.pckod.b
-+    1, // llvm.mips.pckod.d
-+    1, // llvm.mips.pckod.h
-+    1, // llvm.mips.pckod.w
-+    1, // llvm.mips.pcnt.b
-+    1, // llvm.mips.pcnt.d
-+    1, // llvm.mips.pcnt.h
-+    1, // llvm.mips.pcnt.w
-+    13, // llvm.mips.pick.ph
-+    13, // llvm.mips.pick.qb
-+    1, // llvm.mips.preceq.w.phl
-+    1, // llvm.mips.preceq.w.phr
-+    1, // llvm.mips.precequ.ph.qbl
-+    1, // llvm.mips.precequ.ph.qbla
-+    1, // llvm.mips.precequ.ph.qbr
-+    1, // llvm.mips.precequ.ph.qbra
-+    1, // llvm.mips.preceu.ph.qbl
-+    1, // llvm.mips.preceu.ph.qbla
-+    1, // llvm.mips.preceu.ph.qbr
-+    1, // llvm.mips.preceu.ph.qbra
-+    3, // llvm.mips.precr.qb.ph
-+    1, // llvm.mips.precr.sra.ph.w
-+    1, // llvm.mips.precr.sra.r.ph.w
-+    1, // llvm.mips.precrq.ph.w
-+    1, // llvm.mips.precrq.qb.ph
-+    3, // llvm.mips.precrq.rs.ph.w
-+    3, // llvm.mips.precrqu.s.qb.ph
-+    1, // llvm.mips.prepend
-+    1, // llvm.mips.raddu.w.qb
-+    13, // llvm.mips.rddsp
-+    1, // llvm.mips.repl.ph
-+    1, // llvm.mips.repl.qb
-+    1, // llvm.mips.sat.s.b
-+    1, // llvm.mips.sat.s.d
-+    1, // llvm.mips.sat.s.h
-+    1, // llvm.mips.sat.s.w
-+    1, // llvm.mips.sat.u.b
-+    1, // llvm.mips.sat.u.d
-+    1, // llvm.mips.sat.u.h
-+    1, // llvm.mips.sat.u.w
-+    1, // llvm.mips.shf.b
-+    1, // llvm.mips.shf.h
-+    1, // llvm.mips.shf.w
-+    1, // llvm.mips.shilo
-+    3, // llvm.mips.shll.ph
-+    3, // llvm.mips.shll.qb
-+    3, // llvm.mips.shll.s.ph
-+    3, // llvm.mips.shll.s.w
-+    1, // llvm.mips.shra.ph
-+    1, // llvm.mips.shra.qb
-+    1, // llvm.mips.shra.r.ph
-+    1, // llvm.mips.shra.r.qb
-+    1, // llvm.mips.shra.r.w
-+    1, // llvm.mips.shrl.ph
-+    1, // llvm.mips.shrl.qb
-+    1, // llvm.mips.sld.b
-+    1, // llvm.mips.sld.d
-+    1, // llvm.mips.sld.h
-+    1, // llvm.mips.sld.w
-+    1, // llvm.mips.sldi.b
-+    1, // llvm.mips.sldi.d
-+    1, // llvm.mips.sldi.h
-+    1, // llvm.mips.sldi.w
-+    1, // llvm.mips.sll.b
-+    1, // llvm.mips.sll.d
-+    1, // llvm.mips.sll.h
-+    1, // llvm.mips.sll.w
-+    1, // llvm.mips.slli.b
-+    1, // llvm.mips.slli.d
-+    1, // llvm.mips.slli.h
-+    1, // llvm.mips.slli.w
-+    1, // llvm.mips.splat.b
-+    1, // llvm.mips.splat.d
-+    1, // llvm.mips.splat.h
-+    1, // llvm.mips.splat.w
-+    1, // llvm.mips.splati.b
-+    1, // llvm.mips.splati.d
-+    1, // llvm.mips.splati.h
-+    1, // llvm.mips.splati.w
-+    1, // llvm.mips.sra.b
-+    1, // llvm.mips.sra.d
-+    1, // llvm.mips.sra.h
-+    1, // llvm.mips.sra.w
-+    1, // llvm.mips.srai.b
-+    1, // llvm.mips.srai.d
-+    1, // llvm.mips.srai.h
-+    1, // llvm.mips.srai.w
-+    1, // llvm.mips.srar.b
-+    1, // llvm.mips.srar.d
-+    1, // llvm.mips.srar.h
-+    1, // llvm.mips.srar.w
-+    1, // llvm.mips.srari.b
-+    1, // llvm.mips.srari.d
-+    1, // llvm.mips.srari.h
-+    1, // llvm.mips.srari.w
-+    1, // llvm.mips.srl.b
-+    1, // llvm.mips.srl.d
-+    1, // llvm.mips.srl.h
-+    1, // llvm.mips.srl.w
-+    1, // llvm.mips.srli.b
-+    1, // llvm.mips.srli.d
-+    1, // llvm.mips.srli.h
-+    1, // llvm.mips.srli.w
-+    1, // llvm.mips.srlr.b
-+    1, // llvm.mips.srlr.d
-+    1, // llvm.mips.srlr.h
-+    1, // llvm.mips.srlr.w
-+    1, // llvm.mips.srlri.b
-+    1, // llvm.mips.srlri.d
-+    1, // llvm.mips.srlri.h
-+    1, // llvm.mips.srlri.w
-+    18, // llvm.mips.st.b
-+    18, // llvm.mips.st.d
-+    18, // llvm.mips.st.h
-+    18, // llvm.mips.st.w
-+    1, // llvm.mips.subq.ph
-+    1, // llvm.mips.subq.s.ph
-+    3, // llvm.mips.subq.s.w
-+    1, // llvm.mips.subqh.ph
-+    1, // llvm.mips.subqh.r.ph
-+    1, // llvm.mips.subqh.r.w
-+    1, // llvm.mips.subqh.w
-+    1, // llvm.mips.subs.s.b
-+    1, // llvm.mips.subs.s.d
-+    1, // llvm.mips.subs.s.h
-+    1, // llvm.mips.subs.s.w
-+    1, // llvm.mips.subs.u.b
-+    1, // llvm.mips.subs.u.d
-+    1, // llvm.mips.subs.u.h
-+    1, // llvm.mips.subs.u.w
-+    1, // llvm.mips.subsus.u.b
-+    1, // llvm.mips.subsus.u.d
-+    1, // llvm.mips.subsus.u.h
-+    1, // llvm.mips.subsus.u.w
-+    1, // llvm.mips.subsuu.s.b
-+    1, // llvm.mips.subsuu.s.d
-+    1, // llvm.mips.subsuu.s.h
-+    1, // llvm.mips.subsuu.s.w
-+    3, // llvm.mips.subu.ph
-+    1, // llvm.mips.subu.qb
-+    3, // llvm.mips.subu.s.ph
-+    1, // llvm.mips.subu.s.qb
-+    1, // llvm.mips.subuh.qb
-+    1, // llvm.mips.subuh.r.qb
-+    1, // llvm.mips.subv.b
-+    1, // llvm.mips.subv.d
-+    1, // llvm.mips.subv.h
-+    1, // llvm.mips.subv.w
-+    1, // llvm.mips.subvi.b
-+    1, // llvm.mips.subvi.d
-+    1, // llvm.mips.subvi.h
-+    1, // llvm.mips.subvi.w
-+    1, // llvm.mips.vshf.b
-+    1, // llvm.mips.vshf.d
-+    1, // llvm.mips.vshf.h
-+    1, // llvm.mips.vshf.w
-+    3, // llvm.mips.wrdsp
-+    1, // llvm.mips.xor.v
-+    1, // llvm.mips.xori.b
-+    1, // llvm.nvvm.abs.i
-+    1, // llvm.nvvm.abs.ll
-+    1, // llvm.nvvm.add.rm.d
-+    1, // llvm.nvvm.add.rm.f
-+    1, // llvm.nvvm.add.rm.ftz.f
-+    1, // llvm.nvvm.add.rn.d
-+    1, // llvm.nvvm.add.rn.f
-+    1, // llvm.nvvm.add.rn.ftz.f
-+    1, // llvm.nvvm.add.rp.d
-+    1, // llvm.nvvm.add.rp.f
-+    1, // llvm.nvvm.add.rp.ftz.f
-+    1, // llvm.nvvm.add.rz.d
-+    1, // llvm.nvvm.add.rz.f
-+    1, // llvm.nvvm.add.rz.ftz.f
-+    15, // llvm.nvvm.atomic.add.gen.f.cta
-+    15, // llvm.nvvm.atomic.add.gen.f.sys
-+    15, // llvm.nvvm.atomic.add.gen.i.cta
-+    15, // llvm.nvvm.atomic.add.gen.i.sys
-+    15, // llvm.nvvm.atomic.and.gen.i.cta
-+    15, // llvm.nvvm.atomic.and.gen.i.sys
-+    15, // llvm.nvvm.atomic.cas.gen.i.cta
-+    15, // llvm.nvvm.atomic.cas.gen.i.sys
-+    15, // llvm.nvvm.atomic.dec.gen.i.cta
-+    15, // llvm.nvvm.atomic.dec.gen.i.sys
-+    15, // llvm.nvvm.atomic.exch.gen.i.cta
-+    15, // llvm.nvvm.atomic.exch.gen.i.sys
-+    15, // llvm.nvvm.atomic.inc.gen.i.cta
-+    15, // llvm.nvvm.atomic.inc.gen.i.sys
-+    15, // llvm.nvvm.atomic.load.add.f32
-+    15, // llvm.nvvm.atomic.load.dec.32
-+    15, // llvm.nvvm.atomic.load.inc.32
-+    15, // llvm.nvvm.atomic.max.gen.i.cta
-+    15, // llvm.nvvm.atomic.max.gen.i.sys
-+    15, // llvm.nvvm.atomic.min.gen.i.cta
-+    15, // llvm.nvvm.atomic.min.gen.i.sys
-+    15, // llvm.nvvm.atomic.or.gen.i.cta
-+    15, // llvm.nvvm.atomic.or.gen.i.sys
-+    15, // llvm.nvvm.atomic.xor.gen.i.cta
-+    15, // llvm.nvvm.atomic.xor.gen.i.sys
-+    27, // llvm.nvvm.bar.sync
-+    27, // llvm.nvvm.barrier0
-+    27, // llvm.nvvm.barrier0.and
-+    27, // llvm.nvvm.barrier0.or
-+    27, // llvm.nvvm.barrier0.popc
-+    1, // llvm.nvvm.bitcast.d2ll
-+    1, // llvm.nvvm.bitcast.f2i
-+    1, // llvm.nvvm.bitcast.i2f
-+    1, // llvm.nvvm.bitcast.ll2d
-+    1, // llvm.nvvm.brev32
-+    1, // llvm.nvvm.brev64
-+    1, // llvm.nvvm.ceil.d
-+    1, // llvm.nvvm.ceil.f
-+    1, // llvm.nvvm.ceil.ftz.f
-+    1, // llvm.nvvm.clz.i
-+    1, // llvm.nvvm.clz.ll
-+    3, // llvm.nvvm.compiler.error
-+    3, // llvm.nvvm.compiler.warn
-+    1, // llvm.nvvm.cos.approx.f
-+    1, // llvm.nvvm.cos.approx.ftz.f
-+    1, // llvm.nvvm.d2f.rm
-+    1, // llvm.nvvm.d2f.rm.ftz
-+    1, // llvm.nvvm.d2f.rn
-+    1, // llvm.nvvm.d2f.rn.ftz
-+    1, // llvm.nvvm.d2f.rp
-+    1, // llvm.nvvm.d2f.rp.ftz
-+    1, // llvm.nvvm.d2f.rz
-+    1, // llvm.nvvm.d2f.rz.ftz
-+    1, // llvm.nvvm.d2i.hi
-+    1, // llvm.nvvm.d2i.lo
-+    1, // llvm.nvvm.d2i.rm
-+    1, // llvm.nvvm.d2i.rn
-+    1, // llvm.nvvm.d2i.rp
-+    1, // llvm.nvvm.d2i.rz
-+    1, // llvm.nvvm.d2ll.rm
-+    1, // llvm.nvvm.d2ll.rn
-+    1, // llvm.nvvm.d2ll.rp
-+    1, // llvm.nvvm.d2ll.rz
-+    1, // llvm.nvvm.d2ui.rm
-+    1, // llvm.nvvm.d2ui.rn
-+    1, // llvm.nvvm.d2ui.rp
-+    1, // llvm.nvvm.d2ui.rz
-+    1, // llvm.nvvm.d2ull.rm
-+    1, // llvm.nvvm.d2ull.rn
-+    1, // llvm.nvvm.d2ull.rp
-+    1, // llvm.nvvm.d2ull.rz
-+    1, // llvm.nvvm.div.approx.f
-+    1, // llvm.nvvm.div.approx.ftz.f
-+    1, // llvm.nvvm.div.rm.d
-+    1, // llvm.nvvm.div.rm.f
-+    1, // llvm.nvvm.div.rm.ftz.f
-+    1, // llvm.nvvm.div.rn.d
-+    1, // llvm.nvvm.div.rn.f
-+    1, // llvm.nvvm.div.rn.ftz.f
-+    1, // llvm.nvvm.div.rp.d
-+    1, // llvm.nvvm.div.rp.f
-+    1, // llvm.nvvm.div.rp.ftz.f
-+    1, // llvm.nvvm.div.rz.d
-+    1, // llvm.nvvm.div.rz.f
-+    1, // llvm.nvvm.div.rz.ftz.f
-+    1, // llvm.nvvm.ex2.approx.d
-+    1, // llvm.nvvm.ex2.approx.f
-+    1, // llvm.nvvm.ex2.approx.ftz.f
-+    1, // llvm.nvvm.f2h.rn
-+    1, // llvm.nvvm.f2h.rn.ftz
-+    1, // llvm.nvvm.f2i.rm
-+    1, // llvm.nvvm.f2i.rm.ftz
-+    1, // llvm.nvvm.f2i.rn
-+    1, // llvm.nvvm.f2i.rn.ftz
-+    1, // llvm.nvvm.f2i.rp
-+    1, // llvm.nvvm.f2i.rp.ftz
-+    1, // llvm.nvvm.f2i.rz
-+    1, // llvm.nvvm.f2i.rz.ftz
-+    1, // llvm.nvvm.f2ll.rm
-+    1, // llvm.nvvm.f2ll.rm.ftz
-+    1, // llvm.nvvm.f2ll.rn
-+    1, // llvm.nvvm.f2ll.rn.ftz
-+    1, // llvm.nvvm.f2ll.rp
-+    1, // llvm.nvvm.f2ll.rp.ftz
-+    1, // llvm.nvvm.f2ll.rz
-+    1, // llvm.nvvm.f2ll.rz.ftz
-+    1, // llvm.nvvm.f2ui.rm
-+    1, // llvm.nvvm.f2ui.rm.ftz
-+    1, // llvm.nvvm.f2ui.rn
-+    1, // llvm.nvvm.f2ui.rn.ftz
-+    1, // llvm.nvvm.f2ui.rp
-+    1, // llvm.nvvm.f2ui.rp.ftz
-+    1, // llvm.nvvm.f2ui.rz
-+    1, // llvm.nvvm.f2ui.rz.ftz
-+    1, // llvm.nvvm.f2ull.rm
-+    1, // llvm.nvvm.f2ull.rm.ftz
-+    1, // llvm.nvvm.f2ull.rn
-+    1, // llvm.nvvm.f2ull.rn.ftz
-+    1, // llvm.nvvm.f2ull.rp
-+    1, // llvm.nvvm.f2ull.rp.ftz
-+    1, // llvm.nvvm.f2ull.rz
-+    1, // llvm.nvvm.f2ull.rz.ftz
-+    1, // llvm.nvvm.fabs.d
-+    1, // llvm.nvvm.fabs.f
-+    1, // llvm.nvvm.fabs.ftz.f
-+    1, // llvm.nvvm.floor.d
-+    1, // llvm.nvvm.floor.f
-+    1, // llvm.nvvm.floor.ftz.f
-+    1, // llvm.nvvm.fma.rm.d
-+    1, // llvm.nvvm.fma.rm.f
-+    1, // llvm.nvvm.fma.rm.ftz.f
-+    1, // llvm.nvvm.fma.rn.d
-+    1, // llvm.nvvm.fma.rn.f
-+    1, // llvm.nvvm.fma.rn.ftz.f
-+    1, // llvm.nvvm.fma.rp.d
-+    1, // llvm.nvvm.fma.rp.f
-+    1, // llvm.nvvm.fma.rp.ftz.f
-+    1, // llvm.nvvm.fma.rz.d
-+    1, // llvm.nvvm.fma.rz.f
-+    1, // llvm.nvvm.fma.rz.ftz.f
-+    1, // llvm.nvvm.fmax.d
-+    1, // llvm.nvvm.fmax.f
-+    1, // llvm.nvvm.fmax.ftz.f
-+    1, // llvm.nvvm.fmin.d
-+    1, // llvm.nvvm.fmin.f
-+    1, // llvm.nvvm.fmin.ftz.f
-+    1, // llvm.nvvm.h2f
-+    1, // llvm.nvvm.i2d.rm
-+    1, // llvm.nvvm.i2d.rn
-+    1, // llvm.nvvm.i2d.rp
-+    1, // llvm.nvvm.i2d.rz
-+    1, // llvm.nvvm.i2f.rm
-+    1, // llvm.nvvm.i2f.rn
-+    1, // llvm.nvvm.i2f.rp
-+    1, // llvm.nvvm.i2f.rz
-+    1, // llvm.nvvm.isspacep.const
-+    1, // llvm.nvvm.isspacep.global
-+    1, // llvm.nvvm.isspacep.local
-+    1, // llvm.nvvm.isspacep.shared
-+    1, // llvm.nvvm.istypep.sampler
-+    1, // llvm.nvvm.istypep.surface
-+    1, // llvm.nvvm.istypep.texture
-+    29, // llvm.nvvm.ldg.global.f
-+    29, // llvm.nvvm.ldg.global.i
-+    29, // llvm.nvvm.ldg.global.p
-+    29, // llvm.nvvm.ldu.global.f
-+    29, // llvm.nvvm.ldu.global.i
-+    29, // llvm.nvvm.ldu.global.p
-+    1, // llvm.nvvm.lg2.approx.d
-+    1, // llvm.nvvm.lg2.approx.f
-+    1, // llvm.nvvm.lg2.approx.ftz.f
-+    1, // llvm.nvvm.ll2d.rm
-+    1, // llvm.nvvm.ll2d.rn
-+    1, // llvm.nvvm.ll2d.rp
-+    1, // llvm.nvvm.ll2d.rz
-+    1, // llvm.nvvm.ll2f.rm
-+    1, // llvm.nvvm.ll2f.rn
-+    1, // llvm.nvvm.ll2f.rp
-+    1, // llvm.nvvm.ll2f.rz
-+    1, // llvm.nvvm.lohi.i2d
-+    1, // llvm.nvvm.max.i
-+    1, // llvm.nvvm.max.ll
-+    1, // llvm.nvvm.max.ui
-+    1, // llvm.nvvm.max.ull
-+    3, // llvm.nvvm.membar.cta
-+    3, // llvm.nvvm.membar.gl
-+    3, // llvm.nvvm.membar.sys
-+    1, // llvm.nvvm.min.i
-+    1, // llvm.nvvm.min.ll
-+    1, // llvm.nvvm.min.ui
-+    1, // llvm.nvvm.min.ull
-+    1, // llvm.nvvm.move.double
-+    1, // llvm.nvvm.move.float
-+    1, // llvm.nvvm.move.i16
-+    1, // llvm.nvvm.move.i32
-+    1, // llvm.nvvm.move.i64
-+    10, // llvm.nvvm.move.ptr
-+    1, // llvm.nvvm.mul.rm.d
-+    1, // llvm.nvvm.mul.rm.f
-+    1, // llvm.nvvm.mul.rm.ftz.f
-+    1, // llvm.nvvm.mul.rn.d
-+    1, // llvm.nvvm.mul.rn.f
-+    1, // llvm.nvvm.mul.rn.ftz.f
-+    1, // llvm.nvvm.mul.rp.d
-+    1, // llvm.nvvm.mul.rp.f
-+    1, // llvm.nvvm.mul.rp.ftz.f
-+    1, // llvm.nvvm.mul.rz.d
-+    1, // llvm.nvvm.mul.rz.f
-+    1, // llvm.nvvm.mul.rz.ftz.f
-+    1, // llvm.nvvm.mul24.i
-+    1, // llvm.nvvm.mul24.ui
-+    1, // llvm.nvvm.mulhi.i
-+    1, // llvm.nvvm.mulhi.ll
-+    1, // llvm.nvvm.mulhi.ui
-+    1, // llvm.nvvm.mulhi.ull
-+    1, // llvm.nvvm.popc.i
-+    1, // llvm.nvvm.popc.ll
-+    1, // llvm.nvvm.prmt
-+    1, // llvm.nvvm.ptr.constant.to.gen
-+    1, // llvm.nvvm.ptr.gen.to.constant
-+    1, // llvm.nvvm.ptr.gen.to.global
-+    1, // llvm.nvvm.ptr.gen.to.local
-+    1, // llvm.nvvm.ptr.gen.to.param
-+    1, // llvm.nvvm.ptr.gen.to.shared
-+    1, // llvm.nvvm.ptr.global.to.gen
-+    1, // llvm.nvvm.ptr.local.to.gen
-+    1, // llvm.nvvm.ptr.shared.to.gen
-+    1, // llvm.nvvm.rcp.approx.ftz.d
-+    1, // llvm.nvvm.rcp.rm.d
-+    1, // llvm.nvvm.rcp.rm.f
-+    1, // llvm.nvvm.rcp.rm.ftz.f
-+    1, // llvm.nvvm.rcp.rn.d
-+    1, // llvm.nvvm.rcp.rn.f
-+    1, // llvm.nvvm.rcp.rn.ftz.f
-+    1, // llvm.nvvm.rcp.rp.d
-+    1, // llvm.nvvm.rcp.rp.f
-+    1, // llvm.nvvm.rcp.rp.ftz.f
-+    1, // llvm.nvvm.rcp.rz.d
-+    1, // llvm.nvvm.rcp.rz.f
-+    1, // llvm.nvvm.rcp.rz.ftz.f
-+    1, // llvm.nvvm.read.ptx.sreg.clock
-+    1, // llvm.nvvm.read.ptx.sreg.clock64
-+    1, // llvm.nvvm.read.ptx.sreg.ctaid.w
-+    1, // llvm.nvvm.read.ptx.sreg.ctaid.x
-+    1, // llvm.nvvm.read.ptx.sreg.ctaid.y
-+    1, // llvm.nvvm.read.ptx.sreg.ctaid.z
-+    1, // llvm.nvvm.read.ptx.sreg.envreg0
-+    1, // llvm.nvvm.read.ptx.sreg.envreg1
-+    1, // llvm.nvvm.read.ptx.sreg.envreg10
-+    1, // llvm.nvvm.read.ptx.sreg.envreg11
-+    1, // llvm.nvvm.read.ptx.sreg.envreg12
-+    1, // llvm.nvvm.read.ptx.sreg.envreg13
-+    1, // llvm.nvvm.read.ptx.sreg.envreg14
-+    1, // llvm.nvvm.read.ptx.sreg.envreg15
-+    1, // llvm.nvvm.read.ptx.sreg.envreg16
-+    1, // llvm.nvvm.read.ptx.sreg.envreg17
-+    1, // llvm.nvvm.read.ptx.sreg.envreg18
-+    1, // llvm.nvvm.read.ptx.sreg.envreg19
-+    1, // llvm.nvvm.read.ptx.sreg.envreg2
-+    1, // llvm.nvvm.read.ptx.sreg.envreg20
-+    1, // llvm.nvvm.read.ptx.sreg.envreg21
-+    1, // llvm.nvvm.read.ptx.sreg.envreg22
-+    1, // llvm.nvvm.read.ptx.sreg.envreg23
-+    1, // llvm.nvvm.read.ptx.sreg.envreg24
-+    1, // llvm.nvvm.read.ptx.sreg.envreg25
-+    1, // llvm.nvvm.read.ptx.sreg.envreg26
-+    1, // llvm.nvvm.read.ptx.sreg.envreg27
-+    1, // llvm.nvvm.read.ptx.sreg.envreg28
-+    1, // llvm.nvvm.read.ptx.sreg.envreg29
-+    1, // llvm.nvvm.read.ptx.sreg.envreg3
-+    1, // llvm.nvvm.read.ptx.sreg.envreg30
-+    1, // llvm.nvvm.read.ptx.sreg.envreg31
-+    1, // llvm.nvvm.read.ptx.sreg.envreg4
-+    1, // llvm.nvvm.read.ptx.sreg.envreg5
-+    1, // llvm.nvvm.read.ptx.sreg.envreg6
-+    1, // llvm.nvvm.read.ptx.sreg.envreg7
-+    1, // llvm.nvvm.read.ptx.sreg.envreg8
-+    1, // llvm.nvvm.read.ptx.sreg.envreg9
-+    1, // llvm.nvvm.read.ptx.sreg.gridid
-+    1, // llvm.nvvm.read.ptx.sreg.laneid
-+    1, // llvm.nvvm.read.ptx.sreg.lanemask.eq
-+    1, // llvm.nvvm.read.ptx.sreg.lanemask.ge
-+    1, // llvm.nvvm.read.ptx.sreg.lanemask.gt
-+    1, // llvm.nvvm.read.ptx.sreg.lanemask.le
-+    1, // llvm.nvvm.read.ptx.sreg.lanemask.lt
-+    1, // llvm.nvvm.read.ptx.sreg.nctaid.w
-+    1, // llvm.nvvm.read.ptx.sreg.nctaid.x
-+    1, // llvm.nvvm.read.ptx.sreg.nctaid.y
-+    1, // llvm.nvvm.read.ptx.sreg.nctaid.z
-+    1, // llvm.nvvm.read.ptx.sreg.nsmid
-+    1, // llvm.nvvm.read.ptx.sreg.ntid.w
-+    1, // llvm.nvvm.read.ptx.sreg.ntid.x
-+    1, // llvm.nvvm.read.ptx.sreg.ntid.y
-+    1, // llvm.nvvm.read.ptx.sreg.ntid.z
-+    1, // llvm.nvvm.read.ptx.sreg.nwarpid
-+    1, // llvm.nvvm.read.ptx.sreg.pm0
-+    1, // llvm.nvvm.read.ptx.sreg.pm1
-+    1, // llvm.nvvm.read.ptx.sreg.pm2
-+    1, // llvm.nvvm.read.ptx.sreg.pm3
-+    1, // llvm.nvvm.read.ptx.sreg.smid
-+    1, // llvm.nvvm.read.ptx.sreg.tid.w
-+    1, // llvm.nvvm.read.ptx.sreg.tid.x
-+    1, // llvm.nvvm.read.ptx.sreg.tid.y
-+    1, // llvm.nvvm.read.ptx.sreg.tid.z
-+    1, // llvm.nvvm.read.ptx.sreg.warpid
-+    1, // llvm.nvvm.read.ptx.sreg.warpsize
-+    1, // llvm.nvvm.reflect
-+    1, // llvm.nvvm.rotate.b32
-+    1, // llvm.nvvm.rotate.b64
-+    1, // llvm.nvvm.rotate.right.b64
-+    1, // llvm.nvvm.round.d
-+    1, // llvm.nvvm.round.f
-+    1, // llvm.nvvm.round.ftz.f
-+    1, // llvm.nvvm.rsqrt.approx.d
-+    1, // llvm.nvvm.rsqrt.approx.f
-+    1, // llvm.nvvm.rsqrt.approx.ftz.f
-+    1, // llvm.nvvm.sad.i
-+    1, // llvm.nvvm.sad.ui
-+    1, // llvm.nvvm.saturate.d
-+    1, // llvm.nvvm.saturate.f
-+    1, // llvm.nvvm.saturate.ftz.f
-+    26, // llvm.nvvm.shfl.bfly.f32
-+    26, // llvm.nvvm.shfl.bfly.i32
-+    26, // llvm.nvvm.shfl.down.f32
-+    26, // llvm.nvvm.shfl.down.i32
-+    26, // llvm.nvvm.shfl.idx.f32
-+    26, // llvm.nvvm.shfl.idx.i32
-+    26, // llvm.nvvm.shfl.up.f32
-+    26, // llvm.nvvm.shfl.up.i32
-+    1, // llvm.nvvm.sin.approx.f
-+    1, // llvm.nvvm.sin.approx.ftz.f
-+    1, // llvm.nvvm.sqrt.approx.f
-+    1, // llvm.nvvm.sqrt.approx.ftz.f
-+    1, // llvm.nvvm.sqrt.f
-+    1, // llvm.nvvm.sqrt.rm.d
-+    1, // llvm.nvvm.sqrt.rm.f
-+    1, // llvm.nvvm.sqrt.rm.ftz.f
-+    1, // llvm.nvvm.sqrt.rn.d
-+    1, // llvm.nvvm.sqrt.rn.f
-+    1, // llvm.nvvm.sqrt.rn.ftz.f
-+    1, // llvm.nvvm.sqrt.rp.d
-+    1, // llvm.nvvm.sqrt.rp.f
-+    1, // llvm.nvvm.sqrt.rp.ftz.f
-+    1, // llvm.nvvm.sqrt.rz.d
-+    1, // llvm.nvvm.sqrt.rz.f
-+    1, // llvm.nvvm.sqrt.rz.ftz.f
-+    3, // llvm.nvvm.suld.1d.array.i16.clamp
-+    3, // llvm.nvvm.suld.1d.array.i16.trap
-+    3, // llvm.nvvm.suld.1d.array.i16.zero
-+    3, // llvm.nvvm.suld.1d.array.i32.clamp
-+    3, // llvm.nvvm.suld.1d.array.i32.trap
-+    3, // llvm.nvvm.suld.1d.array.i32.zero
-+    3, // llvm.nvvm.suld.1d.array.i64.clamp
-+    3, // llvm.nvvm.suld.1d.array.i64.trap
-+    3, // llvm.nvvm.suld.1d.array.i64.zero
-+    3, // llvm.nvvm.suld.1d.array.i8.clamp
-+    3, // llvm.nvvm.suld.1d.array.i8.trap
-+    3, // llvm.nvvm.suld.1d.array.i8.zero
-+    3, // llvm.nvvm.suld.1d.array.v2i16.clamp
-+    3, // llvm.nvvm.suld.1d.array.v2i16.trap
-+    3, // llvm.nvvm.suld.1d.array.v2i16.zero
-+    3, // llvm.nvvm.suld.1d.array.v2i32.clamp
-+    3, // llvm.nvvm.suld.1d.array.v2i32.trap
-+    3, // llvm.nvvm.suld.1d.array.v2i32.zero
-+    3, // llvm.nvvm.suld.1d.array.v2i64.clamp
-+    3, // llvm.nvvm.suld.1d.array.v2i64.trap
-+    3, // llvm.nvvm.suld.1d.array.v2i64.zero
-+    3, // llvm.nvvm.suld.1d.array.v2i8.clamp
-+    3, // llvm.nvvm.suld.1d.array.v2i8.trap
-+    3, // llvm.nvvm.suld.1d.array.v2i8.zero
-+    3, // llvm.nvvm.suld.1d.array.v4i16.clamp
-+    3, // llvm.nvvm.suld.1d.array.v4i16.trap
-+    3, // llvm.nvvm.suld.1d.array.v4i16.zero
-+    3, // llvm.nvvm.suld.1d.array.v4i32.clamp
-+    3, // llvm.nvvm.suld.1d.array.v4i32.trap
-+    3, // llvm.nvvm.suld.1d.array.v4i32.zero
-+    3, // llvm.nvvm.suld.1d.array.v4i8.clamp
-+    3, // llvm.nvvm.suld.1d.array.v4i8.trap
-+    3, // llvm.nvvm.suld.1d.array.v4i8.zero
-+    3, // llvm.nvvm.suld.1d.i16.clamp
-+    3, // llvm.nvvm.suld.1d.i16.trap
-+    3, // llvm.nvvm.suld.1d.i16.zero
-+    3, // llvm.nvvm.suld.1d.i32.clamp
-+    3, // llvm.nvvm.suld.1d.i32.trap
-+    3, // llvm.nvvm.suld.1d.i32.zero
-+    3, // llvm.nvvm.suld.1d.i64.clamp
-+    3, // llvm.nvvm.suld.1d.i64.trap
-+    3, // llvm.nvvm.suld.1d.i64.zero
-+    3, // llvm.nvvm.suld.1d.i8.clamp
-+    3, // llvm.nvvm.suld.1d.i8.trap
-+    3, // llvm.nvvm.suld.1d.i8.zero
-+    3, // llvm.nvvm.suld.1d.v2i16.clamp
-+    3, // llvm.nvvm.suld.1d.v2i16.trap
-+    3, // llvm.nvvm.suld.1d.v2i16.zero
-+    3, // llvm.nvvm.suld.1d.v2i32.clamp
-+    3, // llvm.nvvm.suld.1d.v2i32.trap
-+    3, // llvm.nvvm.suld.1d.v2i32.zero
-+    3, // llvm.nvvm.suld.1d.v2i64.clamp
-+    3, // llvm.nvvm.suld.1d.v2i64.trap
-+    3, // llvm.nvvm.suld.1d.v2i64.zero
-+    3, // llvm.nvvm.suld.1d.v2i8.clamp
-+    3, // llvm.nvvm.suld.1d.v2i8.trap
-+    3, // llvm.nvvm.suld.1d.v2i8.zero
-+    3, // llvm.nvvm.suld.1d.v4i16.clamp
-+    3, // llvm.nvvm.suld.1d.v4i16.trap
-+    3, // llvm.nvvm.suld.1d.v4i16.zero
-+    3, // llvm.nvvm.suld.1d.v4i32.clamp
-+    3, // llvm.nvvm.suld.1d.v4i32.trap
-+    3, // llvm.nvvm.suld.1d.v4i32.zero
-+    3, // llvm.nvvm.suld.1d.v4i8.clamp
-+    3, // llvm.nvvm.suld.1d.v4i8.trap
-+    3, // llvm.nvvm.suld.1d.v4i8.zero
-+    3, // llvm.nvvm.suld.2d.array.i16.clamp
-+    3, // llvm.nvvm.suld.2d.array.i16.trap
-+    3, // llvm.nvvm.suld.2d.array.i16.zero
-+    3, // llvm.nvvm.suld.2d.array.i32.clamp
-+    3, // llvm.nvvm.suld.2d.array.i32.trap
-+    3, // llvm.nvvm.suld.2d.array.i32.zero
-+    3, // llvm.nvvm.suld.2d.array.i64.clamp
-+    3, // llvm.nvvm.suld.2d.array.i64.trap
-+    3, // llvm.nvvm.suld.2d.array.i64.zero
-+    3, // llvm.nvvm.suld.2d.array.i8.clamp
-+    3, // llvm.nvvm.suld.2d.array.i8.trap
-+    3, // llvm.nvvm.suld.2d.array.i8.zero
-+    3, // llvm.nvvm.suld.2d.array.v2i16.clamp
-+    3, // llvm.nvvm.suld.2d.array.v2i16.trap
-+    3, // llvm.nvvm.suld.2d.array.v2i16.zero
-+    3, // llvm.nvvm.suld.2d.array.v2i32.clamp
-+    3, // llvm.nvvm.suld.2d.array.v2i32.trap
-+    3, // llvm.nvvm.suld.2d.array.v2i32.zero
-+    3, // llvm.nvvm.suld.2d.array.v2i64.clamp
-+    3, // llvm.nvvm.suld.2d.array.v2i64.trap
-+    3, // llvm.nvvm.suld.2d.array.v2i64.zero
-+    3, // llvm.nvvm.suld.2d.array.v2i8.clamp
-+    3, // llvm.nvvm.suld.2d.array.v2i8.trap
-+    3, // llvm.nvvm.suld.2d.array.v2i8.zero
-+    3, // llvm.nvvm.suld.2d.array.v4i16.clamp
-+    3, // llvm.nvvm.suld.2d.array.v4i16.trap
-+    3, // llvm.nvvm.suld.2d.array.v4i16.zero
-+    3, // llvm.nvvm.suld.2d.array.v4i32.clamp
-+    3, // llvm.nvvm.suld.2d.array.v4i32.trap
-+    3, // llvm.nvvm.suld.2d.array.v4i32.zero
-+    3, // llvm.nvvm.suld.2d.array.v4i8.clamp
-+    3, // llvm.nvvm.suld.2d.array.v4i8.trap
-+    3, // llvm.nvvm.suld.2d.array.v4i8.zero
-+    3, // llvm.nvvm.suld.2d.i16.clamp
-+    3, // llvm.nvvm.suld.2d.i16.trap
-+    3, // llvm.nvvm.suld.2d.i16.zero
-+    3, // llvm.nvvm.suld.2d.i32.clamp
-+    3, // llvm.nvvm.suld.2d.i32.trap
-+    3, // llvm.nvvm.suld.2d.i32.zero
-+    3, // llvm.nvvm.suld.2d.i64.clamp
-+    3, // llvm.nvvm.suld.2d.i64.trap
-+    3, // llvm.nvvm.suld.2d.i64.zero
-+    3, // llvm.nvvm.suld.2d.i8.clamp
-+    3, // llvm.nvvm.suld.2d.i8.trap
-+    3, // llvm.nvvm.suld.2d.i8.zero
-+    3, // llvm.nvvm.suld.2d.v2i16.clamp
-+    3, // llvm.nvvm.suld.2d.v2i16.trap
-+    3, // llvm.nvvm.suld.2d.v2i16.zero
-+    3, // llvm.nvvm.suld.2d.v2i32.clamp
-+    3, // llvm.nvvm.suld.2d.v2i32.trap
-+    3, // llvm.nvvm.suld.2d.v2i32.zero
-+    3, // llvm.nvvm.suld.2d.v2i64.clamp
-+    3, // llvm.nvvm.suld.2d.v2i64.trap
-+    3, // llvm.nvvm.suld.2d.v2i64.zero
-+    3, // llvm.nvvm.suld.2d.v2i8.clamp
-+    3, // llvm.nvvm.suld.2d.v2i8.trap
-+    3, // llvm.nvvm.suld.2d.v2i8.zero
-+    3, // llvm.nvvm.suld.2d.v4i16.clamp
-+    3, // llvm.nvvm.suld.2d.v4i16.trap
-+    3, // llvm.nvvm.suld.2d.v4i16.zero
-+    3, // llvm.nvvm.suld.2d.v4i32.clamp
-+    3, // llvm.nvvm.suld.2d.v4i32.trap
-+    3, // llvm.nvvm.suld.2d.v4i32.zero
-+    3, // llvm.nvvm.suld.2d.v4i8.clamp
-+    3, // llvm.nvvm.suld.2d.v4i8.trap
-+    3, // llvm.nvvm.suld.2d.v4i8.zero
-+    3, // llvm.nvvm.suld.3d.i16.clamp
-+    3, // llvm.nvvm.suld.3d.i16.trap
-+    3, // llvm.nvvm.suld.3d.i16.zero
-+    3, // llvm.nvvm.suld.3d.i32.clamp
-+    3, // llvm.nvvm.suld.3d.i32.trap
-+    3, // llvm.nvvm.suld.3d.i32.zero
-+    3, // llvm.nvvm.suld.3d.i64.clamp
-+    3, // llvm.nvvm.suld.3d.i64.trap
-+    3, // llvm.nvvm.suld.3d.i64.zero
-+    3, // llvm.nvvm.suld.3d.i8.clamp
-+    3, // llvm.nvvm.suld.3d.i8.trap
-+    3, // llvm.nvvm.suld.3d.i8.zero
-+    3, // llvm.nvvm.suld.3d.v2i16.clamp
-+    3, // llvm.nvvm.suld.3d.v2i16.trap
-+    3, // llvm.nvvm.suld.3d.v2i16.zero
-+    3, // llvm.nvvm.suld.3d.v2i32.clamp
-+    3, // llvm.nvvm.suld.3d.v2i32.trap
-+    3, // llvm.nvvm.suld.3d.v2i32.zero
-+    3, // llvm.nvvm.suld.3d.v2i64.clamp
-+    3, // llvm.nvvm.suld.3d.v2i64.trap
-+    3, // llvm.nvvm.suld.3d.v2i64.zero
-+    3, // llvm.nvvm.suld.3d.v2i8.clamp
-+    3, // llvm.nvvm.suld.3d.v2i8.trap
-+    3, // llvm.nvvm.suld.3d.v2i8.zero
-+    3, // llvm.nvvm.suld.3d.v4i16.clamp
-+    3, // llvm.nvvm.suld.3d.v4i16.trap
-+    3, // llvm.nvvm.suld.3d.v4i16.zero
-+    3, // llvm.nvvm.suld.3d.v4i32.clamp
-+    3, // llvm.nvvm.suld.3d.v4i32.trap
-+    3, // llvm.nvvm.suld.3d.v4i32.zero
-+    3, // llvm.nvvm.suld.3d.v4i8.clamp
-+    3, // llvm.nvvm.suld.3d.v4i8.trap
-+    3, // llvm.nvvm.suld.3d.v4i8.zero
-+    1, // llvm.nvvm.suq.array.size
-+    1, // llvm.nvvm.suq.channel.data.type
-+    1, // llvm.nvvm.suq.channel.order
-+    1, // llvm.nvvm.suq.depth
-+    1, // llvm.nvvm.suq.height
-+    1, // llvm.nvvm.suq.width
-+    3, // llvm.nvvm.sust.b.1d.array.i16.clamp
-+    3, // llvm.nvvm.sust.b.1d.array.i16.trap
-+    3, // llvm.nvvm.sust.b.1d.array.i16.zero
-+    3, // llvm.nvvm.sust.b.1d.array.i32.clamp
-+    3, // llvm.nvvm.sust.b.1d.array.i32.trap
-+    3, // llvm.nvvm.sust.b.1d.array.i32.zero
-+    3, // llvm.nvvm.sust.b.1d.array.i64.clamp
-+    3, // llvm.nvvm.sust.b.1d.array.i64.trap
-+    3, // llvm.nvvm.sust.b.1d.array.i64.zero
-+    3, // llvm.nvvm.sust.b.1d.array.i8.clamp
-+    3, // llvm.nvvm.sust.b.1d.array.i8.trap
-+    3, // llvm.nvvm.sust.b.1d.array.i8.zero
-+    3, // llvm.nvvm.sust.b.1d.array.v2i16.clamp
-+    3, // llvm.nvvm.sust.b.1d.array.v2i16.trap
-+    3, // llvm.nvvm.sust.b.1d.array.v2i16.zero
-+    3, // llvm.nvvm.sust.b.1d.array.v2i32.clamp
-+    3, // llvm.nvvm.sust.b.1d.array.v2i32.trap
-+    3, // llvm.nvvm.sust.b.1d.array.v2i32.zero
-+    3, // llvm.nvvm.sust.b.1d.array.v2i64.clamp
-+    3, // llvm.nvvm.sust.b.1d.array.v2i64.trap
-+    3, // llvm.nvvm.sust.b.1d.array.v2i64.zero
-+    3, // llvm.nvvm.sust.b.1d.array.v2i8.clamp
-+    3, // llvm.nvvm.sust.b.1d.array.v2i8.trap
-+    3, // llvm.nvvm.sust.b.1d.array.v2i8.zero
-+    3, // llvm.nvvm.sust.b.1d.array.v4i16.clamp
-+    3, // llvm.nvvm.sust.b.1d.array.v4i16.trap
-+    3, // llvm.nvvm.sust.b.1d.array.v4i16.zero
-+    3, // llvm.nvvm.sust.b.1d.array.v4i32.clamp
-+    3, // llvm.nvvm.sust.b.1d.array.v4i32.trap
-+    3, // llvm.nvvm.sust.b.1d.array.v4i32.zero
-+    3, // llvm.nvvm.sust.b.1d.array.v4i8.clamp
-+    3, // llvm.nvvm.sust.b.1d.array.v4i8.trap
-+    3, // llvm.nvvm.sust.b.1d.array.v4i8.zero
-+    3, // llvm.nvvm.sust.b.1d.i16.clamp
-+    3, // llvm.nvvm.sust.b.1d.i16.trap
-+    3, // llvm.nvvm.sust.b.1d.i16.zero
-+    3, // llvm.nvvm.sust.b.1d.i32.clamp
-+    3, // llvm.nvvm.sust.b.1d.i32.trap
-+    3, // llvm.nvvm.sust.b.1d.i32.zero
-+    3, // llvm.nvvm.sust.b.1d.i64.clamp
-+    3, // llvm.nvvm.sust.b.1d.i64.trap
-+    3, // llvm.nvvm.sust.b.1d.i64.zero
-+    3, // llvm.nvvm.sust.b.1d.i8.clamp
-+    3, // llvm.nvvm.sust.b.1d.i8.trap
-+    3, // llvm.nvvm.sust.b.1d.i8.zero
-+    3, // llvm.nvvm.sust.b.1d.v2i16.clamp
-+    3, // llvm.nvvm.sust.b.1d.v2i16.trap
-+    3, // llvm.nvvm.sust.b.1d.v2i16.zero
-+    3, // llvm.nvvm.sust.b.1d.v2i32.clamp
-+    3, // llvm.nvvm.sust.b.1d.v2i32.trap
-+    3, // llvm.nvvm.sust.b.1d.v2i32.zero
-+    3, // llvm.nvvm.sust.b.1d.v2i64.clamp
-+    3, // llvm.nvvm.sust.b.1d.v2i64.trap
-+    3, // llvm.nvvm.sust.b.1d.v2i64.zero
-+    3, // llvm.nvvm.sust.b.1d.v2i8.clamp
-+    3, // llvm.nvvm.sust.b.1d.v2i8.trap
-+    3, // llvm.nvvm.sust.b.1d.v2i8.zero
-+    3, // llvm.nvvm.sust.b.1d.v4i16.clamp
-+    3, // llvm.nvvm.sust.b.1d.v4i16.trap
-+    3, // llvm.nvvm.sust.b.1d.v4i16.zero
-+    3, // llvm.nvvm.sust.b.1d.v4i32.clamp
-+    3, // llvm.nvvm.sust.b.1d.v4i32.trap
-+    3, // llvm.nvvm.sust.b.1d.v4i32.zero
-+    3, // llvm.nvvm.sust.b.1d.v4i8.clamp
-+    3, // llvm.nvvm.sust.b.1d.v4i8.trap
-+    3, // llvm.nvvm.sust.b.1d.v4i8.zero
-+    3, // llvm.nvvm.sust.b.2d.array.i16.clamp
-+    3, // llvm.nvvm.sust.b.2d.array.i16.trap
-+    3, // llvm.nvvm.sust.b.2d.array.i16.zero
-+    3, // llvm.nvvm.sust.b.2d.array.i32.clamp
-+    3, // llvm.nvvm.sust.b.2d.array.i32.trap
-+    3, // llvm.nvvm.sust.b.2d.array.i32.zero
-+    3, // llvm.nvvm.sust.b.2d.array.i64.clamp
-+    3, // llvm.nvvm.sust.b.2d.array.i64.trap
-+    3, // llvm.nvvm.sust.b.2d.array.i64.zero
-+    3, // llvm.nvvm.sust.b.2d.array.i8.clamp
-+    3, // llvm.nvvm.sust.b.2d.array.i8.trap
-+    3, // llvm.nvvm.sust.b.2d.array.i8.zero
-+    3, // llvm.nvvm.sust.b.2d.array.v2i16.clamp
-+    3, // llvm.nvvm.sust.b.2d.array.v2i16.trap
-+    3, // llvm.nvvm.sust.b.2d.array.v2i16.zero
-+    3, // llvm.nvvm.sust.b.2d.array.v2i32.clamp
-+    3, // llvm.nvvm.sust.b.2d.array.v2i32.trap
-+    3, // llvm.nvvm.sust.b.2d.array.v2i32.zero
-+    3, // llvm.nvvm.sust.b.2d.array.v2i64.clamp
-+    3, // llvm.nvvm.sust.b.2d.array.v2i64.trap
-+    3, // llvm.nvvm.sust.b.2d.array.v2i64.zero
-+    3, // llvm.nvvm.sust.b.2d.array.v2i8.clamp
-+    3, // llvm.nvvm.sust.b.2d.array.v2i8.trap
-+    3, // llvm.nvvm.sust.b.2d.array.v2i8.zero
-+    3, // llvm.nvvm.sust.b.2d.array.v4i16.clamp
-+    3, // llvm.nvvm.sust.b.2d.array.v4i16.trap
-+    3, // llvm.nvvm.sust.b.2d.array.v4i16.zero
-+    3, // llvm.nvvm.sust.b.2d.array.v4i32.clamp
-+    3, // llvm.nvvm.sust.b.2d.array.v4i32.trap
-+    3, // llvm.nvvm.sust.b.2d.array.v4i32.zero
-+    3, // llvm.nvvm.sust.b.2d.array.v4i8.clamp
-+    3, // llvm.nvvm.sust.b.2d.array.v4i8.trap
-+    3, // llvm.nvvm.sust.b.2d.array.v4i8.zero
-+    3, // llvm.nvvm.sust.b.2d.i16.clamp
-+    3, // llvm.nvvm.sust.b.2d.i16.trap
-+    3, // llvm.nvvm.sust.b.2d.i16.zero
-+    3, // llvm.nvvm.sust.b.2d.i32.clamp
-+    3, // llvm.nvvm.sust.b.2d.i32.trap
-+    3, // llvm.nvvm.sust.b.2d.i32.zero
-+    3, // llvm.nvvm.sust.b.2d.i64.clamp
-+    3, // llvm.nvvm.sust.b.2d.i64.trap
-+    3, // llvm.nvvm.sust.b.2d.i64.zero
-+    3, // llvm.nvvm.sust.b.2d.i8.clamp
-+    3, // llvm.nvvm.sust.b.2d.i8.trap
-+    3, // llvm.nvvm.sust.b.2d.i8.zero
-+    3, // llvm.nvvm.sust.b.2d.v2i16.clamp
-+    3, // llvm.nvvm.sust.b.2d.v2i16.trap
-+    3, // llvm.nvvm.sust.b.2d.v2i16.zero
-+    3, // llvm.nvvm.sust.b.2d.v2i32.clamp
-+    3, // llvm.nvvm.sust.b.2d.v2i32.trap
-+    3, // llvm.nvvm.sust.b.2d.v2i32.zero
-+    3, // llvm.nvvm.sust.b.2d.v2i64.clamp
-+    3, // llvm.nvvm.sust.b.2d.v2i64.trap
-+    3, // llvm.nvvm.sust.b.2d.v2i64.zero
-+    3, // llvm.nvvm.sust.b.2d.v2i8.clamp
-+    3, // llvm.nvvm.sust.b.2d.v2i8.trap
-+    3, // llvm.nvvm.sust.b.2d.v2i8.zero
-+    3, // llvm.nvvm.sust.b.2d.v4i16.clamp
-+    3, // llvm.nvvm.sust.b.2d.v4i16.trap
-+    3, // llvm.nvvm.sust.b.2d.v4i16.zero
-+    3, // llvm.nvvm.sust.b.2d.v4i32.clamp
-+    3, // llvm.nvvm.sust.b.2d.v4i32.trap
-+    3, // llvm.nvvm.sust.b.2d.v4i32.zero
-+    3, // llvm.nvvm.sust.b.2d.v4i8.clamp
-+    3, // llvm.nvvm.sust.b.2d.v4i8.trap
-+    3, // llvm.nvvm.sust.b.2d.v4i8.zero
-+    3, // llvm.nvvm.sust.b.3d.i16.clamp
-+    3, // llvm.nvvm.sust.b.3d.i16.trap
-+    3, // llvm.nvvm.sust.b.3d.i16.zero
-+    3, // llvm.nvvm.sust.b.3d.i32.clamp
-+    3, // llvm.nvvm.sust.b.3d.i32.trap
-+    3, // llvm.nvvm.sust.b.3d.i32.zero
-+    3, // llvm.nvvm.sust.b.3d.i64.clamp
-+    3, // llvm.nvvm.sust.b.3d.i64.trap
-+    3, // llvm.nvvm.sust.b.3d.i64.zero
-+    3, // llvm.nvvm.sust.b.3d.i8.clamp
-+    3, // llvm.nvvm.sust.b.3d.i8.trap
-+    3, // llvm.nvvm.sust.b.3d.i8.zero
-+    3, // llvm.nvvm.sust.b.3d.v2i16.clamp
-+    3, // llvm.nvvm.sust.b.3d.v2i16.trap
-+    3, // llvm.nvvm.sust.b.3d.v2i16.zero
-+    3, // llvm.nvvm.sust.b.3d.v2i32.clamp
-+    3, // llvm.nvvm.sust.b.3d.v2i32.trap
-+    3, // llvm.nvvm.sust.b.3d.v2i32.zero
-+    3, // llvm.nvvm.sust.b.3d.v2i64.clamp
-+    3, // llvm.nvvm.sust.b.3d.v2i64.trap
-+    3, // llvm.nvvm.sust.b.3d.v2i64.zero
-+    3, // llvm.nvvm.sust.b.3d.v2i8.clamp
-+    3, // llvm.nvvm.sust.b.3d.v2i8.trap
-+    3, // llvm.nvvm.sust.b.3d.v2i8.zero
-+    3, // llvm.nvvm.sust.b.3d.v4i16.clamp
-+    3, // llvm.nvvm.sust.b.3d.v4i16.trap
-+    3, // llvm.nvvm.sust.b.3d.v4i16.zero
-+    3, // llvm.nvvm.sust.b.3d.v4i32.clamp
-+    3, // llvm.nvvm.sust.b.3d.v4i32.trap
-+    3, // llvm.nvvm.sust.b.3d.v4i32.zero
-+    3, // llvm.nvvm.sust.b.3d.v4i8.clamp
-+    3, // llvm.nvvm.sust.b.3d.v4i8.trap
-+    3, // llvm.nvvm.sust.b.3d.v4i8.zero
-+    3, // llvm.nvvm.sust.p.1d.array.i16.trap
-+    3, // llvm.nvvm.sust.p.1d.array.i32.trap
-+    3, // llvm.nvvm.sust.p.1d.array.i8.trap
-+    3, // llvm.nvvm.sust.p.1d.array.v2i16.trap
-+    3, // llvm.nvvm.sust.p.1d.array.v2i32.trap
-+    3, // llvm.nvvm.sust.p.1d.array.v2i8.trap
-+    3, // llvm.nvvm.sust.p.1d.array.v4i16.trap
-+    3, // llvm.nvvm.sust.p.1d.array.v4i32.trap
-+    3, // llvm.nvvm.sust.p.1d.array.v4i8.trap
-+    3, // llvm.nvvm.sust.p.1d.i16.trap
-+    3, // llvm.nvvm.sust.p.1d.i32.trap
-+    3, // llvm.nvvm.sust.p.1d.i8.trap
-+    3, // llvm.nvvm.sust.p.1d.v2i16.trap
-+    3, // llvm.nvvm.sust.p.1d.v2i32.trap
-+    3, // llvm.nvvm.sust.p.1d.v2i8.trap
-+    3, // llvm.nvvm.sust.p.1d.v4i16.trap
-+    3, // llvm.nvvm.sust.p.1d.v4i32.trap
-+    3, // llvm.nvvm.sust.p.1d.v4i8.trap
-+    3, // llvm.nvvm.sust.p.2d.array.i16.trap
-+    3, // llvm.nvvm.sust.p.2d.array.i32.trap
-+    3, // llvm.nvvm.sust.p.2d.array.i8.trap
-+    3, // llvm.nvvm.sust.p.2d.array.v2i16.trap
-+    3, // llvm.nvvm.sust.p.2d.array.v2i32.trap
-+    3, // llvm.nvvm.sust.p.2d.array.v2i8.trap
-+    3, // llvm.nvvm.sust.p.2d.array.v4i16.trap
-+    3, // llvm.nvvm.sust.p.2d.array.v4i32.trap
-+    3, // llvm.nvvm.sust.p.2d.array.v4i8.trap
-+    3, // llvm.nvvm.sust.p.2d.i16.trap
-+    3, // llvm.nvvm.sust.p.2d.i32.trap
-+    3, // llvm.nvvm.sust.p.2d.i8.trap
-+    3, // llvm.nvvm.sust.p.2d.v2i16.trap
-+    3, // llvm.nvvm.sust.p.2d.v2i32.trap
-+    3, // llvm.nvvm.sust.p.2d.v2i8.trap
-+    3, // llvm.nvvm.sust.p.2d.v4i16.trap
-+    3, // llvm.nvvm.sust.p.2d.v4i32.trap
-+    3, // llvm.nvvm.sust.p.2d.v4i8.trap
-+    3, // llvm.nvvm.sust.p.3d.i16.trap
-+    3, // llvm.nvvm.sust.p.3d.i32.trap
-+    3, // llvm.nvvm.sust.p.3d.i8.trap
-+    3, // llvm.nvvm.sust.p.3d.v2i16.trap
-+    3, // llvm.nvvm.sust.p.3d.v2i32.trap
-+    3, // llvm.nvvm.sust.p.3d.v2i8.trap
-+    3, // llvm.nvvm.sust.p.3d.v4i16.trap
-+    3, // llvm.nvvm.sust.p.3d.v4i32.trap
-+    3, // llvm.nvvm.sust.p.3d.v4i8.trap
-+    1, // llvm.nvvm.swap.lo.hi.b64
-+    3, // llvm.nvvm.tex.1d.array.grad.v4f32.f32
-+    3, // llvm.nvvm.tex.1d.array.grad.v4s32.f32
-+    3, // llvm.nvvm.tex.1d.array.grad.v4u32.f32
-+    3, // llvm.nvvm.tex.1d.array.level.v4f32.f32
-+    3, // llvm.nvvm.tex.1d.array.level.v4s32.f32
-+    3, // llvm.nvvm.tex.1d.array.level.v4u32.f32
-+    3, // llvm.nvvm.tex.1d.array.v4f32.f32
-+    3, // llvm.nvvm.tex.1d.array.v4f32.s32
-+    3, // llvm.nvvm.tex.1d.array.v4s32.f32
-+    3, // llvm.nvvm.tex.1d.array.v4s32.s32
-+    3, // llvm.nvvm.tex.1d.array.v4u32.f32
-+    3, // llvm.nvvm.tex.1d.array.v4u32.s32
-+    3, // llvm.nvvm.tex.1d.grad.v4f32.f32
-+    3, // llvm.nvvm.tex.1d.grad.v4s32.f32
-+    3, // llvm.nvvm.tex.1d.grad.v4u32.f32
-+    3, // llvm.nvvm.tex.1d.level.v4f32.f32
-+    3, // llvm.nvvm.tex.1d.level.v4s32.f32
-+    3, // llvm.nvvm.tex.1d.level.v4u32.f32
-+    3, // llvm.nvvm.tex.1d.v4f32.f32
-+    3, // llvm.nvvm.tex.1d.v4f32.s32
-+    3, // llvm.nvvm.tex.1d.v4s32.f32
-+    3, // llvm.nvvm.tex.1d.v4s32.s32
-+    3, // llvm.nvvm.tex.1d.v4u32.f32
-+    3, // llvm.nvvm.tex.1d.v4u32.s32
-+    3, // llvm.nvvm.tex.2d.array.grad.v4f32.f32
-+    3, // llvm.nvvm.tex.2d.array.grad.v4s32.f32
-+    3, // llvm.nvvm.tex.2d.array.grad.v4u32.f32
-+    3, // llvm.nvvm.tex.2d.array.level.v4f32.f32
-+    3, // llvm.nvvm.tex.2d.array.level.v4s32.f32
-+    3, // llvm.nvvm.tex.2d.array.level.v4u32.f32
-+    3, // llvm.nvvm.tex.2d.array.v4f32.f32
-+    3, // llvm.nvvm.tex.2d.array.v4f32.s32
-+    3, // llvm.nvvm.tex.2d.array.v4s32.f32
-+    3, // llvm.nvvm.tex.2d.array.v4s32.s32
-+    3, // llvm.nvvm.tex.2d.array.v4u32.f32
-+    3, // llvm.nvvm.tex.2d.array.v4u32.s32
-+    3, // llvm.nvvm.tex.2d.grad.v4f32.f32
-+    3, // llvm.nvvm.tex.2d.grad.v4s32.f32
-+    3, // llvm.nvvm.tex.2d.grad.v4u32.f32
-+    3, // llvm.nvvm.tex.2d.level.v4f32.f32
-+    3, // llvm.nvvm.tex.2d.level.v4s32.f32
-+    3, // llvm.nvvm.tex.2d.level.v4u32.f32
-+    3, // llvm.nvvm.tex.2d.v4f32.f32
-+    3, // llvm.nvvm.tex.2d.v4f32.s32
-+    3, // llvm.nvvm.tex.2d.v4s32.f32
-+    3, // llvm.nvvm.tex.2d.v4s32.s32
-+    3, // llvm.nvvm.tex.2d.v4u32.f32
-+    3, // llvm.nvvm.tex.2d.v4u32.s32
-+    3, // llvm.nvvm.tex.3d.grad.v4f32.f32
-+    3, // llvm.nvvm.tex.3d.grad.v4s32.f32
-+    3, // llvm.nvvm.tex.3d.grad.v4u32.f32
-+    3, // llvm.nvvm.tex.3d.level.v4f32.f32
-+    3, // llvm.nvvm.tex.3d.level.v4s32.f32
-+    3, // llvm.nvvm.tex.3d.level.v4u32.f32
-+    3, // llvm.nvvm.tex.3d.v4f32.f32
-+    3, // llvm.nvvm.tex.3d.v4f32.s32
-+    3, // llvm.nvvm.tex.3d.v4s32.f32
-+    3, // llvm.nvvm.tex.3d.v4s32.s32
-+    3, // llvm.nvvm.tex.3d.v4u32.f32
-+    3, // llvm.nvvm.tex.3d.v4u32.s32
-+    3, // llvm.nvvm.tex.cube.array.level.v4f32.f32
-+    3, // llvm.nvvm.tex.cube.array.level.v4s32.f32
-+    3, // llvm.nvvm.tex.cube.array.level.v4u32.f32
-+    3, // llvm.nvvm.tex.cube.array.v4f32.f32
-+    3, // llvm.nvvm.tex.cube.array.v4s32.f32
-+    3, // llvm.nvvm.tex.cube.array.v4u32.f32
-+    3, // llvm.nvvm.tex.cube.level.v4f32.f32
-+    3, // llvm.nvvm.tex.cube.level.v4s32.f32
-+    3, // llvm.nvvm.tex.cube.level.v4u32.f32
-+    3, // llvm.nvvm.tex.cube.v4f32.f32
-+    3, // llvm.nvvm.tex.cube.v4s32.f32
-+    3, // llvm.nvvm.tex.cube.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.1d.array.grad.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.1d.array.grad.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.1d.array.grad.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.1d.array.level.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.1d.array.level.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.1d.array.level.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.1d.array.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.1d.array.v4f32.s32
-+    3, // llvm.nvvm.tex.unified.1d.array.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.1d.array.v4s32.s32
-+    3, // llvm.nvvm.tex.unified.1d.array.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.1d.array.v4u32.s32
-+    3, // llvm.nvvm.tex.unified.1d.grad.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.1d.grad.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.1d.grad.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.1d.level.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.1d.level.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.1d.level.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.1d.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.1d.v4f32.s32
-+    3, // llvm.nvvm.tex.unified.1d.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.1d.v4s32.s32
-+    3, // llvm.nvvm.tex.unified.1d.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.1d.v4u32.s32
-+    3, // llvm.nvvm.tex.unified.2d.array.grad.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.2d.array.grad.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.2d.array.grad.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.2d.array.level.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.2d.array.level.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.2d.array.level.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.2d.array.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.2d.array.v4f32.s32
-+    3, // llvm.nvvm.tex.unified.2d.array.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.2d.array.v4s32.s32
-+    3, // llvm.nvvm.tex.unified.2d.array.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.2d.array.v4u32.s32
-+    3, // llvm.nvvm.tex.unified.2d.grad.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.2d.grad.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.2d.grad.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.2d.level.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.2d.level.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.2d.level.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.2d.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.2d.v4f32.s32
-+    3, // llvm.nvvm.tex.unified.2d.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.2d.v4s32.s32
-+    3, // llvm.nvvm.tex.unified.2d.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.2d.v4u32.s32
-+    3, // llvm.nvvm.tex.unified.3d.grad.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.3d.grad.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.3d.grad.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.3d.level.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.3d.level.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.3d.level.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.3d.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.3d.v4f32.s32
-+    3, // llvm.nvvm.tex.unified.3d.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.3d.v4s32.s32
-+    3, // llvm.nvvm.tex.unified.3d.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.3d.v4u32.s32
-+    3, // llvm.nvvm.tex.unified.cube.array.level.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.cube.array.level.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.cube.array.level.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.cube.array.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.cube.array.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.cube.array.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.cube.level.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.cube.level.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.cube.level.v4u32.f32
-+    3, // llvm.nvvm.tex.unified.cube.v4f32.f32
-+    3, // llvm.nvvm.tex.unified.cube.v4s32.f32
-+    3, // llvm.nvvm.tex.unified.cube.v4u32.f32
-+    1, // llvm.nvvm.texsurf.handle
-+    1, // llvm.nvvm.texsurf.handle.internal
-+    3, // llvm.nvvm.tld4.a.2d.v4f32.f32
-+    3, // llvm.nvvm.tld4.a.2d.v4s32.f32
-+    3, // llvm.nvvm.tld4.a.2d.v4u32.f32
-+    3, // llvm.nvvm.tld4.b.2d.v4f32.f32
-+    3, // llvm.nvvm.tld4.b.2d.v4s32.f32
-+    3, // llvm.nvvm.tld4.b.2d.v4u32.f32
-+    3, // llvm.nvvm.tld4.g.2d.v4f32.f32
-+    3, // llvm.nvvm.tld4.g.2d.v4s32.f32
-+    3, // llvm.nvvm.tld4.g.2d.v4u32.f32
-+    3, // llvm.nvvm.tld4.r.2d.v4f32.f32
-+    3, // llvm.nvvm.tld4.r.2d.v4s32.f32
-+    3, // llvm.nvvm.tld4.r.2d.v4u32.f32
-+    3, // llvm.nvvm.tld4.unified.a.2d.v4f32.f32
-+    3, // llvm.nvvm.tld4.unified.a.2d.v4s32.f32
-+    3, // llvm.nvvm.tld4.unified.a.2d.v4u32.f32
-+    3, // llvm.nvvm.tld4.unified.b.2d.v4f32.f32
-+    3, // llvm.nvvm.tld4.unified.b.2d.v4s32.f32
-+    3, // llvm.nvvm.tld4.unified.b.2d.v4u32.f32
-+    3, // llvm.nvvm.tld4.unified.g.2d.v4f32.f32
-+    3, // llvm.nvvm.tld4.unified.g.2d.v4s32.f32
-+    3, // llvm.nvvm.tld4.unified.g.2d.v4u32.f32
-+    3, // llvm.nvvm.tld4.unified.r.2d.v4f32.f32
-+    3, // llvm.nvvm.tld4.unified.r.2d.v4s32.f32
-+    3, // llvm.nvvm.tld4.unified.r.2d.v4u32.f32
-+    1, // llvm.nvvm.trunc.d
-+    1, // llvm.nvvm.trunc.f
-+    1, // llvm.nvvm.trunc.ftz.f
-+    1, // llvm.nvvm.txq.array.size
-+    1, // llvm.nvvm.txq.channel.data.type
-+    1, // llvm.nvvm.txq.channel.order
-+    1, // llvm.nvvm.txq.depth
-+    1, // llvm.nvvm.txq.height
-+    1, // llvm.nvvm.txq.num.mipmap.levels
-+    1, // llvm.nvvm.txq.num.samples
-+    1, // llvm.nvvm.txq.width
-+    1, // llvm.nvvm.ui2d.rm
-+    1, // llvm.nvvm.ui2d.rn
-+    1, // llvm.nvvm.ui2d.rp
-+    1, // llvm.nvvm.ui2d.rz
-+    1, // llvm.nvvm.ui2f.rm
-+    1, // llvm.nvvm.ui2f.rn
-+    1, // llvm.nvvm.ui2f.rp
-+    1, // llvm.nvvm.ui2f.rz
-+    1, // llvm.nvvm.ull2d.rm
-+    1, // llvm.nvvm.ull2d.rn
-+    1, // llvm.nvvm.ull2d.rp
-+    1, // llvm.nvvm.ull2d.rz
-+    1, // llvm.nvvm.ull2f.rm
-+    1, // llvm.nvvm.ull2f.rn
-+    1, // llvm.nvvm.ull2f.rp
-+    1, // llvm.nvvm.ull2f.rz
-+    1, // llvm.ppc.altivec.crypto.vcipher
-+    1, // llvm.ppc.altivec.crypto.vcipherlast
-+    1, // llvm.ppc.altivec.crypto.vncipher
-+    1, // llvm.ppc.altivec.crypto.vncipherlast
-+    1, // llvm.ppc.altivec.crypto.vpermxor
-+    1, // llvm.ppc.altivec.crypto.vpmsumb
-+    1, // llvm.ppc.altivec.crypto.vpmsumd
-+    1, // llvm.ppc.altivec.crypto.vpmsumh
-+    1, // llvm.ppc.altivec.crypto.vpmsumw
-+    1, // llvm.ppc.altivec.crypto.vsbox
-+    1, // llvm.ppc.altivec.crypto.vshasigmad
-+    1, // llvm.ppc.altivec.crypto.vshasigmaw
-+    3, // llvm.ppc.altivec.dss
-+    3, // llvm.ppc.altivec.dssall
-+    3, // llvm.ppc.altivec.dst
-+    3, // llvm.ppc.altivec.dstst
-+    3, // llvm.ppc.altivec.dststt
-+    3, // llvm.ppc.altivec.dstt
-+    2, // llvm.ppc.altivec.lvebx
-+    2, // llvm.ppc.altivec.lvehx
-+    2, // llvm.ppc.altivec.lvewx
-+    1, // llvm.ppc.altivec.lvsl
-+    1, // llvm.ppc.altivec.lvsr
-+    2, // llvm.ppc.altivec.lvx
-+    2, // llvm.ppc.altivec.lvxl
-+    13, // llvm.ppc.altivec.mfvscr
-+    3, // llvm.ppc.altivec.mtvscr
-+    18, // llvm.ppc.altivec.stvebx
-+    18, // llvm.ppc.altivec.stvehx
-+    18, // llvm.ppc.altivec.stvewx
-+    18, // llvm.ppc.altivec.stvx
-+    18, // llvm.ppc.altivec.stvxl
-+    1, // llvm.ppc.altivec.vabsdub
-+    1, // llvm.ppc.altivec.vabsduh
-+    1, // llvm.ppc.altivec.vabsduw
-+    1, // llvm.ppc.altivec.vaddcuq
-+    1, // llvm.ppc.altivec.vaddcuw
-+    1, // llvm.ppc.altivec.vaddecuq
-+    1, // llvm.ppc.altivec.vaddeuqm
-+    1, // llvm.ppc.altivec.vaddsbs
-+    1, // llvm.ppc.altivec.vaddshs
-+    1, // llvm.ppc.altivec.vaddsws
-+    1, // llvm.ppc.altivec.vaddubs
-+    1, // llvm.ppc.altivec.vadduhs
-+    1, // llvm.ppc.altivec.vadduws
-+    1, // llvm.ppc.altivec.vavgsb
-+    1, // llvm.ppc.altivec.vavgsh
-+    1, // llvm.ppc.altivec.vavgsw
-+    1, // llvm.ppc.altivec.vavgub
-+    1, // llvm.ppc.altivec.vavguh
-+    1, // llvm.ppc.altivec.vavguw
-+    1, // llvm.ppc.altivec.vbpermq
-+    1, // llvm.ppc.altivec.vcfsx
-+    1, // llvm.ppc.altivec.vcfux
-+    1, // llvm.ppc.altivec.vclzlsbb
-+    1, // llvm.ppc.altivec.vcmpbfp
-+    1, // llvm.ppc.altivec.vcmpbfp.p
-+    1, // llvm.ppc.altivec.vcmpeqfp
-+    1, // llvm.ppc.altivec.vcmpeqfp.p
-+    1, // llvm.ppc.altivec.vcmpequb
-+    1, // llvm.ppc.altivec.vcmpequb.p
-+    1, // llvm.ppc.altivec.vcmpequd
-+    1, // llvm.ppc.altivec.vcmpequd.p
-+    1, // llvm.ppc.altivec.vcmpequh
-+    1, // llvm.ppc.altivec.vcmpequh.p
-+    1, // llvm.ppc.altivec.vcmpequw
-+    1, // llvm.ppc.altivec.vcmpequw.p
-+    1, // llvm.ppc.altivec.vcmpgefp
-+    1, // llvm.ppc.altivec.vcmpgefp.p
-+    1, // llvm.ppc.altivec.vcmpgtfp
-+    1, // llvm.ppc.altivec.vcmpgtfp.p
-+    1, // llvm.ppc.altivec.vcmpgtsb
-+    1, // llvm.ppc.altivec.vcmpgtsb.p
-+    1, // llvm.ppc.altivec.vcmpgtsd
-+    1, // llvm.ppc.altivec.vcmpgtsd.p
-+    1, // llvm.ppc.altivec.vcmpgtsh
-+    1, // llvm.ppc.altivec.vcmpgtsh.p
-+    1, // llvm.ppc.altivec.vcmpgtsw
-+    1, // llvm.ppc.altivec.vcmpgtsw.p
-+    1, // llvm.ppc.altivec.vcmpgtub
-+    1, // llvm.ppc.altivec.vcmpgtub.p
-+    1, // llvm.ppc.altivec.vcmpgtud
-+    1, // llvm.ppc.altivec.vcmpgtud.p
-+    1, // llvm.ppc.altivec.vcmpgtuh
-+    1, // llvm.ppc.altivec.vcmpgtuh.p
-+    1, // llvm.ppc.altivec.vcmpgtuw
-+    1, // llvm.ppc.altivec.vcmpgtuw.p
-+    1, // llvm.ppc.altivec.vcmpneb
-+    1, // llvm.ppc.altivec.vcmpneb.p
-+    1, // llvm.ppc.altivec.vcmpneh
-+    1, // llvm.ppc.altivec.vcmpneh.p
-+    1, // llvm.ppc.altivec.vcmpnew
-+    1, // llvm.ppc.altivec.vcmpnew.p
-+    1, // llvm.ppc.altivec.vcmpnezb
-+    1, // llvm.ppc.altivec.vcmpnezb.p
-+    1, // llvm.ppc.altivec.vcmpnezh
-+    1, // llvm.ppc.altivec.vcmpnezh.p
-+    1, // llvm.ppc.altivec.vcmpnezw
-+    1, // llvm.ppc.altivec.vcmpnezw.p
-+    1, // llvm.ppc.altivec.vctsxs
-+    1, // llvm.ppc.altivec.vctuxs
-+    1, // llvm.ppc.altivec.vctzlsbb
-+    1, // llvm.ppc.altivec.vexptefp
-+    1, // llvm.ppc.altivec.vgbbd
-+    1, // llvm.ppc.altivec.vlogefp
-+    1, // llvm.ppc.altivec.vmaddfp
-+    1, // llvm.ppc.altivec.vmaxfp
-+    1, // llvm.ppc.altivec.vmaxsb
-+    1, // llvm.ppc.altivec.vmaxsd
-+    1, // llvm.ppc.altivec.vmaxsh
-+    1, // llvm.ppc.altivec.vmaxsw
-+    1, // llvm.ppc.altivec.vmaxub
-+    1, // llvm.ppc.altivec.vmaxud
-+    1, // llvm.ppc.altivec.vmaxuh
-+    1, // llvm.ppc.altivec.vmaxuw
-+    1, // llvm.ppc.altivec.vmhaddshs
-+    1, // llvm.ppc.altivec.vmhraddshs
-+    1, // llvm.ppc.altivec.vminfp
-+    1, // llvm.ppc.altivec.vminsb
-+    1, // llvm.ppc.altivec.vminsd
-+    1, // llvm.ppc.altivec.vminsh
-+    1, // llvm.ppc.altivec.vminsw
-+    1, // llvm.ppc.altivec.vminub
-+    1, // llvm.ppc.altivec.vminud
-+    1, // llvm.ppc.altivec.vminuh
-+    1, // llvm.ppc.altivec.vminuw
-+    1, // llvm.ppc.altivec.vmladduhm
-+    1, // llvm.ppc.altivec.vmsummbm
-+    1, // llvm.ppc.altivec.vmsumshm
-+    1, // llvm.ppc.altivec.vmsumshs
-+    1, // llvm.ppc.altivec.vmsumubm
-+    1, // llvm.ppc.altivec.vmsumuhm
-+    1, // llvm.ppc.altivec.vmsumuhs
-+    1, // llvm.ppc.altivec.vmulesb
-+    1, // llvm.ppc.altivec.vmulesh
-+    1, // llvm.ppc.altivec.vmulesw
-+    1, // llvm.ppc.altivec.vmuleub
-+    1, // llvm.ppc.altivec.vmuleuh
-+    1, // llvm.ppc.altivec.vmuleuw
-+    1, // llvm.ppc.altivec.vmulosb
-+    1, // llvm.ppc.altivec.vmulosh
-+    1, // llvm.ppc.altivec.vmulosw
-+    1, // llvm.ppc.altivec.vmuloub
-+    1, // llvm.ppc.altivec.vmulouh
-+    1, // llvm.ppc.altivec.vmulouw
-+    1, // llvm.ppc.altivec.vnmsubfp
-+    1, // llvm.ppc.altivec.vperm
-+    1, // llvm.ppc.altivec.vpkpx
-+    1, // llvm.ppc.altivec.vpksdss
-+    1, // llvm.ppc.altivec.vpksdus
-+    1, // llvm.ppc.altivec.vpkshss
-+    1, // llvm.ppc.altivec.vpkshus
-+    1, // llvm.ppc.altivec.vpkswss
-+    1, // llvm.ppc.altivec.vpkswus
-+    1, // llvm.ppc.altivec.vpkudus
-+    1, // llvm.ppc.altivec.vpkuhus
-+    1, // llvm.ppc.altivec.vpkuwus
-+    1, // llvm.ppc.altivec.vprtybd
-+    1, // llvm.ppc.altivec.vprtybq
-+    1, // llvm.ppc.altivec.vprtybw
-+    1, // llvm.ppc.altivec.vrefp
-+    1, // llvm.ppc.altivec.vrfim
-+    1, // llvm.ppc.altivec.vrfin
-+    1, // llvm.ppc.altivec.vrfip
-+    1, // llvm.ppc.altivec.vrfiz
-+    1, // llvm.ppc.altivec.vrlb
-+    1, // llvm.ppc.altivec.vrld
-+    1, // llvm.ppc.altivec.vrldmi
-+    1, // llvm.ppc.altivec.vrldnm
-+    1, // llvm.ppc.altivec.vrlh
-+    1, // llvm.ppc.altivec.vrlw
-+    1, // llvm.ppc.altivec.vrlwmi
-+    1, // llvm.ppc.altivec.vrlwnm
-+    1, // llvm.ppc.altivec.vrsqrtefp
-+    1, // llvm.ppc.altivec.vsel
-+    1, // llvm.ppc.altivec.vsl
-+    1, // llvm.ppc.altivec.vslb
-+    1, // llvm.ppc.altivec.vslh
-+    1, // llvm.ppc.altivec.vslo
-+    1, // llvm.ppc.altivec.vslv
-+    1, // llvm.ppc.altivec.vslw
-+    1, // llvm.ppc.altivec.vsr
-+    1, // llvm.ppc.altivec.vsrab
-+    1, // llvm.ppc.altivec.vsrah
-+    1, // llvm.ppc.altivec.vsraw
-+    1, // llvm.ppc.altivec.vsrb
-+    1, // llvm.ppc.altivec.vsrh
-+    1, // llvm.ppc.altivec.vsro
-+    1, // llvm.ppc.altivec.vsrv
-+    1, // llvm.ppc.altivec.vsrw
-+    1, // llvm.ppc.altivec.vsubcuq
-+    1, // llvm.ppc.altivec.vsubcuw
-+    1, // llvm.ppc.altivec.vsubecuq
-+    1, // llvm.ppc.altivec.vsubeuqm
-+    1, // llvm.ppc.altivec.vsubsbs
-+    1, // llvm.ppc.altivec.vsubshs
-+    1, // llvm.ppc.altivec.vsubsws
-+    1, // llvm.ppc.altivec.vsububs
-+    1, // llvm.ppc.altivec.vsubuhs
-+    1, // llvm.ppc.altivec.vsubuws
-+    1, // llvm.ppc.altivec.vsum2sws
-+    1, // llvm.ppc.altivec.vsum4sbs
-+    1, // llvm.ppc.altivec.vsum4shs
-+    1, // llvm.ppc.altivec.vsum4ubs
-+    1, // llvm.ppc.altivec.vsumsws
-+    1, // llvm.ppc.altivec.vupkhpx
-+    1, // llvm.ppc.altivec.vupkhsb
-+    1, // llvm.ppc.altivec.vupkhsh
-+    1, // llvm.ppc.altivec.vupkhsw
-+    1, // llvm.ppc.altivec.vupklpx
-+    1, // llvm.ppc.altivec.vupklsb
-+    1, // llvm.ppc.altivec.vupklsh
-+    1, // llvm.ppc.altivec.vupklsw
-+    1, // llvm.ppc.bpermd
-+    3, // llvm.ppc.dcba
-+    3, // llvm.ppc.dcbf
-+    3, // llvm.ppc.dcbi
-+    3, // llvm.ppc.dcbst
-+    15, // llvm.ppc.dcbt
-+    15, // llvm.ppc.dcbtst
-+    3, // llvm.ppc.dcbz
-+    3, // llvm.ppc.dcbzl
-+    1, // llvm.ppc.divde
-+    1, // llvm.ppc.divdeu
-+    1, // llvm.ppc.divwe
-+    1, // llvm.ppc.divweu
-+    3, // llvm.ppc.get.texasr
-+    3, // llvm.ppc.get.texasru
-+    3, // llvm.ppc.get.tfhar
-+    3, // llvm.ppc.get.tfiar
-+    3, // llvm.ppc.is.decremented.ctr.nonzero
-+    3, // llvm.ppc.lwsync
-+    3, // llvm.ppc.mtctr
-+    1, // llvm.ppc.qpx.qvfabs
-+    1, // llvm.ppc.qpx.qvfadd
-+    1, // llvm.ppc.qpx.qvfadds
-+    1, // llvm.ppc.qpx.qvfcfid
-+    1, // llvm.ppc.qpx.qvfcfids
-+    1, // llvm.ppc.qpx.qvfcfidu
-+    1, // llvm.ppc.qpx.qvfcfidus
-+    1, // llvm.ppc.qpx.qvfcmpeq
-+    1, // llvm.ppc.qpx.qvfcmpgt
-+    1, // llvm.ppc.qpx.qvfcmplt
-+    1, // llvm.ppc.qpx.qvfcpsgn
-+    1, // llvm.ppc.qpx.qvfctid
-+    1, // llvm.ppc.qpx.qvfctidu
-+    1, // llvm.ppc.qpx.qvfctiduz
-+    1, // llvm.ppc.qpx.qvfctidz
-+    1, // llvm.ppc.qpx.qvfctiw
-+    1, // llvm.ppc.qpx.qvfctiwu
-+    1, // llvm.ppc.qpx.qvfctiwuz
-+    1, // llvm.ppc.qpx.qvfctiwz
-+    1, // llvm.ppc.qpx.qvflogical
-+    1, // llvm.ppc.qpx.qvfmadd
-+    1, // llvm.ppc.qpx.qvfmadds
-+    1, // llvm.ppc.qpx.qvfmsub
-+    1, // llvm.ppc.qpx.qvfmsubs
-+    1, // llvm.ppc.qpx.qvfmul
-+    1, // llvm.ppc.qpx.qvfmuls
-+    1, // llvm.ppc.qpx.qvfnabs
-+    1, // llvm.ppc.qpx.qvfneg
-+    1, // llvm.ppc.qpx.qvfnmadd
-+    1, // llvm.ppc.qpx.qvfnmadds
-+    1, // llvm.ppc.qpx.qvfnmsub
-+    1, // llvm.ppc.qpx.qvfnmsubs
-+    1, // llvm.ppc.qpx.qvfperm
-+    1, // llvm.ppc.qpx.qvfre
-+    1, // llvm.ppc.qpx.qvfres
-+    1, // llvm.ppc.qpx.qvfrim
-+    1, // llvm.ppc.qpx.qvfrin
-+    1, // llvm.ppc.qpx.qvfrip
-+    1, // llvm.ppc.qpx.qvfriz
-+    1, // llvm.ppc.qpx.qvfrsp
-+    1, // llvm.ppc.qpx.qvfrsqrte
-+    1, // llvm.ppc.qpx.qvfrsqrtes
-+    1, // llvm.ppc.qpx.qvfsel
-+    1, // llvm.ppc.qpx.qvfsub
-+    1, // llvm.ppc.qpx.qvfsubs
-+    1, // llvm.ppc.qpx.qvftstnan
-+    1, // llvm.ppc.qpx.qvfxmadd
-+    1, // llvm.ppc.qpx.qvfxmadds
-+    1, // llvm.ppc.qpx.qvfxmul
-+    1, // llvm.ppc.qpx.qvfxmuls
-+    1, // llvm.ppc.qpx.qvfxxcpnmadd
-+    1, // llvm.ppc.qpx.qvfxxcpnmadds
-+    1, // llvm.ppc.qpx.qvfxxmadd
-+    1, // llvm.ppc.qpx.qvfxxmadds
-+    1, // llvm.ppc.qpx.qvfxxnpmadd
-+    1, // llvm.ppc.qpx.qvfxxnpmadds
-+    1, // llvm.ppc.qpx.qvgpci
-+    2, // llvm.ppc.qpx.qvlfcd
-+    2, // llvm.ppc.qpx.qvlfcda
-+    2, // llvm.ppc.qpx.qvlfcs
-+    2, // llvm.ppc.qpx.qvlfcsa
-+    2, // llvm.ppc.qpx.qvlfd
-+    2, // llvm.ppc.qpx.qvlfda
-+    2, // llvm.ppc.qpx.qvlfiwa
-+    2, // llvm.ppc.qpx.qvlfiwaa
-+    2, // llvm.ppc.qpx.qvlfiwz
-+    2, // llvm.ppc.qpx.qvlfiwza
-+    2, // llvm.ppc.qpx.qvlfs
-+    2, // llvm.ppc.qpx.qvlfsa
-+    1, // llvm.ppc.qpx.qvlpcld
-+    1, // llvm.ppc.qpx.qvlpcls
-+    1, // llvm.ppc.qpx.qvlpcrd
-+    1, // llvm.ppc.qpx.qvlpcrs
-+    18, // llvm.ppc.qpx.qvstfcd
-+    18, // llvm.ppc.qpx.qvstfcda
-+    18, // llvm.ppc.qpx.qvstfcs
-+    18, // llvm.ppc.qpx.qvstfcsa
-+    18, // llvm.ppc.qpx.qvstfd
-+    18, // llvm.ppc.qpx.qvstfda
-+    18, // llvm.ppc.qpx.qvstfiw
-+    18, // llvm.ppc.qpx.qvstfiwa
-+    18, // llvm.ppc.qpx.qvstfs
-+    18, // llvm.ppc.qpx.qvstfsa
-+    3, // llvm.ppc.set.texasr
-+    3, // llvm.ppc.set.texasru
-+    3, // llvm.ppc.set.tfhar
-+    3, // llvm.ppc.set.tfiar
-+    3, // llvm.ppc.sync
-+    3, // llvm.ppc.tabort
-+    3, // llvm.ppc.tabortdc
-+    3, // llvm.ppc.tabortdci
-+    3, // llvm.ppc.tabortwc
-+    3, // llvm.ppc.tabortwci
-+    3, // llvm.ppc.tbegin
-+    3, // llvm.ppc.tcheck
-+    3, // llvm.ppc.tend
-+    3, // llvm.ppc.tendall
-+    3, // llvm.ppc.trechkpt
-+    3, // llvm.ppc.treclaim
-+    3, // llvm.ppc.tresume
-+    3, // llvm.ppc.tsr
-+    3, // llvm.ppc.tsuspend
-+    3, // llvm.ppc.ttest
-+    2, // llvm.ppc.vsx.lxvd2x
-+    2, // llvm.ppc.vsx.lxvd2x.be
-+    2, // llvm.ppc.vsx.lxvl
-+    2, // llvm.ppc.vsx.lxvll
-+    2, // llvm.ppc.vsx.lxvw4x
-+    2, // llvm.ppc.vsx.lxvw4x.be
-+    18, // llvm.ppc.vsx.stxvd2x
-+    18, // llvm.ppc.vsx.stxvd2x.be
-+    18, // llvm.ppc.vsx.stxvl
-+    18, // llvm.ppc.vsx.stxvll
-+    18, // llvm.ppc.vsx.stxvw4x
-+    18, // llvm.ppc.vsx.stxvw4x.be
-+    1, // llvm.ppc.vsx.xsmaxdp
-+    1, // llvm.ppc.vsx.xsmindp
-+    1, // llvm.ppc.vsx.xvcmpeqdp
-+    1, // llvm.ppc.vsx.xvcmpeqdp.p
-+    1, // llvm.ppc.vsx.xvcmpeqsp
-+    1, // llvm.ppc.vsx.xvcmpeqsp.p
-+    1, // llvm.ppc.vsx.xvcmpgedp
-+    1, // llvm.ppc.vsx.xvcmpgedp.p
-+    1, // llvm.ppc.vsx.xvcmpgesp
-+    1, // llvm.ppc.vsx.xvcmpgesp.p
-+    1, // llvm.ppc.vsx.xvcmpgtdp
-+    1, // llvm.ppc.vsx.xvcmpgtdp.p
-+    1, // llvm.ppc.vsx.xvcmpgtsp
-+    1, // llvm.ppc.vsx.xvcmpgtsp.p
-+    1, // llvm.ppc.vsx.xvcvdpsp
-+    1, // llvm.ppc.vsx.xvcvdpsxws
-+    1, // llvm.ppc.vsx.xvcvdpuxws
-+    1, // llvm.ppc.vsx.xvcvhpsp
-+    1, // llvm.ppc.vsx.xvcvspdp
-+    1, // llvm.ppc.vsx.xvcvsphp
-+    1, // llvm.ppc.vsx.xvcvsxdsp
-+    1, // llvm.ppc.vsx.xvcvsxwdp
-+    1, // llvm.ppc.vsx.xvcvuxdsp
-+    1, // llvm.ppc.vsx.xvcvuxwdp
-+    1, // llvm.ppc.vsx.xvdivdp
-+    1, // llvm.ppc.vsx.xvdivsp
-+    1, // llvm.ppc.vsx.xviexpdp
-+    1, // llvm.ppc.vsx.xviexpsp
-+    1, // llvm.ppc.vsx.xvmaxdp
-+    1, // llvm.ppc.vsx.xvmaxsp
-+    1, // llvm.ppc.vsx.xvmindp
-+    1, // llvm.ppc.vsx.xvminsp
-+    1, // llvm.ppc.vsx.xvrdpip
-+    1, // llvm.ppc.vsx.xvredp
-+    1, // llvm.ppc.vsx.xvresp
-+    1, // llvm.ppc.vsx.xvrspip
-+    1, // llvm.ppc.vsx.xvrsqrtedp
-+    1, // llvm.ppc.vsx.xvrsqrtesp
-+    1, // llvm.ppc.vsx.xvtstdcdp
-+    1, // llvm.ppc.vsx.xvtstdcsp
-+    1, // llvm.ppc.vsx.xvxexpdp
-+    1, // llvm.ppc.vsx.xvxexpsp
-+    1, // llvm.ppc.vsx.xvxsigdp
-+    1, // llvm.ppc.vsx.xvxsigsp
-+    1, // llvm.ppc.vsx.xxextractuw
-+    1, // llvm.ppc.vsx.xxinsertw
-+    1, // llvm.ppc.vsx.xxleqv
-+    27, // llvm.r600.group.barrier
-+    1, // llvm.r600.implicitarg.ptr
-+    3, // llvm.r600.rat.store.typed
-+    1, // llvm.r600.read.global.size.x
-+    1, // llvm.r600.read.global.size.y
-+    1, // llvm.r600.read.global.size.z
-+    1, // llvm.r600.read.local.size.x
-+    1, // llvm.r600.read.local.size.y
-+    1, // llvm.r600.read.local.size.z
-+    1, // llvm.r600.read.ngroups.x
-+    1, // llvm.r600.read.ngroups.y
-+    1, // llvm.r600.read.ngroups.z
-+    1, // llvm.r600.read.tgid.x
-+    1, // llvm.r600.read.tgid.y
-+    1, // llvm.r600.read.tgid.z
-+    1, // llvm.r600.read.tidig.x
-+    1, // llvm.r600.read.tidig.y
-+    1, // llvm.r600.read.tidig.z
-+    1, // llvm.r600.recipsqrt.clamped
-+    1, // llvm.r600.recipsqrt.ieee
-+    3, // llvm.s390.efpc
-+    1, // llvm.s390.etnd
-+    1, // llvm.s390.lcbb
-+    18, // llvm.s390.ntstg
-+    3, // llvm.s390.ppa.txassist
-+    3, // llvm.s390.sfpc
-+    30, // llvm.s390.tabort
-+    31, // llvm.s390.tbegin
-+    31, // llvm.s390.tbegin.nofloat
-+    31, // llvm.s390.tbeginc
-+    1, // llvm.s390.tdc
-+    3, // llvm.s390.tend
-+    1, // llvm.s390.vaccb
-+    1, // llvm.s390.vacccq
-+    1, // llvm.s390.vaccf
-+    1, // llvm.s390.vaccg
-+    1, // llvm.s390.vacch
-+    1, // llvm.s390.vaccq
-+    1, // llvm.s390.vacq
-+    1, // llvm.s390.vaq
-+    1, // llvm.s390.vavgb
-+    1, // llvm.s390.vavgf
-+    1, // llvm.s390.vavgg
-+    1, // llvm.s390.vavgh
-+    1, // llvm.s390.vavglb
-+    1, // llvm.s390.vavglf
-+    1, // llvm.s390.vavglg
-+    1, // llvm.s390.vavglh
-+    1, // llvm.s390.vceqbs
-+    1, // llvm.s390.vceqfs
-+    1, // llvm.s390.vceqgs
-+    1, // llvm.s390.vceqhs
-+    1, // llvm.s390.vchbs
-+    1, // llvm.s390.vchfs
-+    1, // llvm.s390.vchgs
-+    1, // llvm.s390.vchhs
-+    1, // llvm.s390.vchlbs
-+    1, // llvm.s390.vchlfs
-+    1, // llvm.s390.vchlgs
-+    1, // llvm.s390.vchlhs
-+    1, // llvm.s390.vcksm
-+    1, // llvm.s390.verimb
-+    1, // llvm.s390.verimf
-+    1, // llvm.s390.verimg
-+    1, // llvm.s390.verimh
-+    1, // llvm.s390.verllb
-+    1, // llvm.s390.verllf
-+    1, // llvm.s390.verllg
-+    1, // llvm.s390.verllh
-+    1, // llvm.s390.verllvb
-+    1, // llvm.s390.verllvf
-+    1, // llvm.s390.verllvg
-+    1, // llvm.s390.verllvh
-+    1, // llvm.s390.vfaeb
-+    1, // llvm.s390.vfaebs
-+    1, // llvm.s390.vfaef
-+    1, // llvm.s390.vfaefs
-+    1, // llvm.s390.vfaeh
-+    1, // llvm.s390.vfaehs
-+    1, // llvm.s390.vfaezb
-+    1, // llvm.s390.vfaezbs
-+    1, // llvm.s390.vfaezf
-+    1, // llvm.s390.vfaezfs
-+    1, // llvm.s390.vfaezh
-+    1, // llvm.s390.vfaezhs
-+    1, // llvm.s390.vfcedbs
-+    1, // llvm.s390.vfchdbs
-+    1, // llvm.s390.vfchedbs
-+    1, // llvm.s390.vfeeb
-+    1, // llvm.s390.vfeebs
-+    1, // llvm.s390.vfeef
-+    1, // llvm.s390.vfeefs
-+    1, // llvm.s390.vfeeh
-+    1, // llvm.s390.vfeehs
-+    1, // llvm.s390.vfeezb
-+    1, // llvm.s390.vfeezbs
-+    1, // llvm.s390.vfeezf
-+    1, // llvm.s390.vfeezfs
-+    1, // llvm.s390.vfeezh
-+    1, // llvm.s390.vfeezhs
-+    1, // llvm.s390.vfeneb
-+    1, // llvm.s390.vfenebs
-+    1, // llvm.s390.vfenef
-+    1, // llvm.s390.vfenefs
-+    1, // llvm.s390.vfeneh
-+    1, // llvm.s390.vfenehs
-+    1, // llvm.s390.vfenezb
-+    1, // llvm.s390.vfenezbs
-+    1, // llvm.s390.vfenezf
-+    1, // llvm.s390.vfenezfs
-+    1, // llvm.s390.vfenezh
-+    1, // llvm.s390.vfenezhs
-+    1, // llvm.s390.vfidb
-+    1, // llvm.s390.vftcidb
-+    1, // llvm.s390.vgfmab
-+    1, // llvm.s390.vgfmaf
-+    1, // llvm.s390.vgfmag
-+    1, // llvm.s390.vgfmah
-+    1, // llvm.s390.vgfmb
-+    1, // llvm.s390.vgfmf
-+    1, // llvm.s390.vgfmg
-+    1, // llvm.s390.vgfmh
-+    1, // llvm.s390.vistrb
-+    1, // llvm.s390.vistrbs
-+    1, // llvm.s390.vistrf
-+    1, // llvm.s390.vistrfs
-+    1, // llvm.s390.vistrh
-+    1, // llvm.s390.vistrhs
-+    2, // llvm.s390.vlbb
-+    2, // llvm.s390.vll
-+    1, // llvm.s390.vmaeb
-+    1, // llvm.s390.vmaef
-+    1, // llvm.s390.vmaeh
-+    1, // llvm.s390.vmahb
-+    1, // llvm.s390.vmahf
-+    1, // llvm.s390.vmahh
-+    1, // llvm.s390.vmaleb
-+    1, // llvm.s390.vmalef
-+    1, // llvm.s390.vmaleh
-+    1, // llvm.s390.vmalhb
-+    1, // llvm.s390.vmalhf
-+    1, // llvm.s390.vmalhh
-+    1, // llvm.s390.vmalob
-+    1, // llvm.s390.vmalof
-+    1, // llvm.s390.vmaloh
-+    1, // llvm.s390.vmaob
-+    1, // llvm.s390.vmaof
-+    1, // llvm.s390.vmaoh
-+    1, // llvm.s390.vmeb
-+    1, // llvm.s390.vmef
-+    1, // llvm.s390.vmeh
-+    1, // llvm.s390.vmhb
-+    1, // llvm.s390.vmhf
-+    1, // llvm.s390.vmhh
-+    1, // llvm.s390.vmleb
-+    1, // llvm.s390.vmlef
-+    1, // llvm.s390.vmleh
-+    1, // llvm.s390.vmlhb
-+    1, // llvm.s390.vmlhf
-+    1, // llvm.s390.vmlhh
-+    1, // llvm.s390.vmlob
-+    1, // llvm.s390.vmlof
-+    1, // llvm.s390.vmloh
-+    1, // llvm.s390.vmob
-+    1, // llvm.s390.vmof
-+    1, // llvm.s390.vmoh
-+    1, // llvm.s390.vpdi
-+    1, // llvm.s390.vperm
-+    1, // llvm.s390.vpklsf
-+    1, // llvm.s390.vpklsfs
-+    1, // llvm.s390.vpklsg
-+    1, // llvm.s390.vpklsgs
-+    1, // llvm.s390.vpklsh
-+    1, // llvm.s390.vpklshs
-+    1, // llvm.s390.vpksf
-+    1, // llvm.s390.vpksfs
-+    1, // llvm.s390.vpksg
-+    1, // llvm.s390.vpksgs
-+    1, // llvm.s390.vpksh
-+    1, // llvm.s390.vpkshs
-+    1, // llvm.s390.vsbcbiq
-+    1, // llvm.s390.vsbiq
-+    1, // llvm.s390.vscbib
-+    1, // llvm.s390.vscbif
-+    1, // llvm.s390.vscbig
-+    1, // llvm.s390.vscbih
-+    1, // llvm.s390.vscbiq
-+    1, // llvm.s390.vsl
-+    1, // llvm.s390.vslb
-+    1, // llvm.s390.vsldb
-+    1, // llvm.s390.vsq
-+    1, // llvm.s390.vsra
-+    1, // llvm.s390.vsrab
-+    1, // llvm.s390.vsrl
-+    1, // llvm.s390.vsrlb
-+    18, // llvm.s390.vstl
-+    1, // llvm.s390.vstrcb
-+    1, // llvm.s390.vstrcbs
-+    1, // llvm.s390.vstrcf
-+    1, // llvm.s390.vstrcfs
-+    1, // llvm.s390.vstrch
-+    1, // llvm.s390.vstrchs
-+    1, // llvm.s390.vstrczb
-+    1, // llvm.s390.vstrczbs
-+    1, // llvm.s390.vstrczf
-+    1, // llvm.s390.vstrczfs
-+    1, // llvm.s390.vstrczh
-+    1, // llvm.s390.vstrczhs
-+    1, // llvm.s390.vsumb
-+    1, // llvm.s390.vsumgf
-+    1, // llvm.s390.vsumgh
-+    1, // llvm.s390.vsumh
-+    1, // llvm.s390.vsumqf
-+    1, // llvm.s390.vsumqg
-+    1, // llvm.s390.vtm
-+    1, // llvm.s390.vuphb
-+    1, // llvm.s390.vuphf
-+    1, // llvm.s390.vuphh
-+    1, // llvm.s390.vuplb
-+    1, // llvm.s390.vuplf
-+    1, // llvm.s390.vuplhb
-+    1, // llvm.s390.vuplhf
-+    1, // llvm.s390.vuplhh
-+    1, // llvm.s390.vuplhw
-+    1, // llvm.s390.vupllb
-+    1, // llvm.s390.vupllf
-+    1, // llvm.s390.vupllh
-+    13, // llvm.wasm.current.memory
-+    3, // llvm.wasm.grow.memory
-+    1, // llvm.x86.3dnow.pavgusb
-+    1, // llvm.x86.3dnow.pf2id
-+    1, // llvm.x86.3dnow.pfacc
-+    1, // llvm.x86.3dnow.pfadd
-+    1, // llvm.x86.3dnow.pfcmpeq
-+    1, // llvm.x86.3dnow.pfcmpge
-+    1, // llvm.x86.3dnow.pfcmpgt
-+    1, // llvm.x86.3dnow.pfmax
-+    1, // llvm.x86.3dnow.pfmin
-+    1, // llvm.x86.3dnow.pfmul
-+    1, // llvm.x86.3dnow.pfrcp
-+    1, // llvm.x86.3dnow.pfrcpit1
-+    1, // llvm.x86.3dnow.pfrcpit2
-+    1, // llvm.x86.3dnow.pfrsqit1
-+    1, // llvm.x86.3dnow.pfrsqrt
-+    1, // llvm.x86.3dnow.pfsub
-+    1, // llvm.x86.3dnow.pfsubr
-+    1, // llvm.x86.3dnow.pi2fd
-+    1, // llvm.x86.3dnow.pmulhrw
-+    1, // llvm.x86.3dnowa.pf2iw
-+    1, // llvm.x86.3dnowa.pfnacc
-+    1, // llvm.x86.3dnowa.pfpnacc
-+    1, // llvm.x86.3dnowa.pi2fw
-+    1, // llvm.x86.3dnowa.pswapd
-+    18, // llvm.x86.addcarry.u32
-+    18, // llvm.x86.addcarry.u64
-+    18, // llvm.x86.addcarryx.u32
-+    18, // llvm.x86.addcarryx.u64
-+    1, // llvm.x86.aesni.aesdec
-+    1, // llvm.x86.aesni.aesdeclast
-+    1, // llvm.x86.aesni.aesenc
-+    1, // llvm.x86.aesni.aesenclast
-+    1, // llvm.x86.aesni.aesimc
-+    1, // llvm.x86.aesni.aeskeygenassist
-+    1, // llvm.x86.avx.addsub.pd.256
-+    1, // llvm.x86.avx.addsub.ps.256
-+    1, // llvm.x86.avx.blendv.pd.256
-+    1, // llvm.x86.avx.blendv.ps.256
-+    1, // llvm.x86.avx.cmp.pd.256
-+    1, // llvm.x86.avx.cmp.ps.256
-+    1, // llvm.x86.avx.cvt.pd2.ps.256
-+    1, // llvm.x86.avx.cvt.pd2dq.256
-+    1, // llvm.x86.avx.cvt.ps2dq.256
-+    1, // llvm.x86.avx.cvtdq2.ps.256
-+    1, // llvm.x86.avx.cvtt.pd2dq.256
-+    1, // llvm.x86.avx.cvtt.ps2dq.256
-+    1, // llvm.x86.avx.dp.ps.256
-+    1, // llvm.x86.avx.hadd.pd.256
-+    1, // llvm.x86.avx.hadd.ps.256
-+    1, // llvm.x86.avx.hsub.pd.256
-+    1, // llvm.x86.avx.hsub.ps.256
-+    13, // llvm.x86.avx.ldu.dq.256
-+    2, // llvm.x86.avx.maskload.pd
-+    2, // llvm.x86.avx.maskload.pd.256
-+    2, // llvm.x86.avx.maskload.ps
-+    2, // llvm.x86.avx.maskload.ps.256
-+    18, // llvm.x86.avx.maskstore.pd
-+    18, // llvm.x86.avx.maskstore.pd.256
-+    18, // llvm.x86.avx.maskstore.ps
-+    18, // llvm.x86.avx.maskstore.ps.256
-+    1, // llvm.x86.avx.max.pd.256
-+    1, // llvm.x86.avx.max.ps.256
-+    1, // llvm.x86.avx.min.pd.256
-+    1, // llvm.x86.avx.min.ps.256
-+    1, // llvm.x86.avx.movmsk.pd.256
-+    1, // llvm.x86.avx.movmsk.ps.256
-+    1, // llvm.x86.avx.ptestc.256
-+    1, // llvm.x86.avx.ptestnzc.256
-+    1, // llvm.x86.avx.ptestz.256
-+    1, // llvm.x86.avx.rcp.ps.256
-+    1, // llvm.x86.avx.round.pd.256
-+    1, // llvm.x86.avx.round.ps.256
-+    1, // llvm.x86.avx.rsqrt.ps.256
-+    1, // llvm.x86.avx.sqrt.pd.256
-+    1, // llvm.x86.avx.sqrt.ps.256
-+    1, // llvm.x86.avx.vperm2f128.pd.256
-+    1, // llvm.x86.avx.vperm2f128.ps.256
-+    1, // llvm.x86.avx.vperm2f128.si.256
-+    1, // llvm.x86.avx.vpermilvar.pd
-+    1, // llvm.x86.avx.vpermilvar.pd.256
-+    1, // llvm.x86.avx.vpermilvar.ps
-+    1, // llvm.x86.avx.vpermilvar.ps.256
-+    1, // llvm.x86.avx.vtestc.pd
-+    1, // llvm.x86.avx.vtestc.pd.256
-+    1, // llvm.x86.avx.vtestc.ps
-+    1, // llvm.x86.avx.vtestc.ps.256
-+    1, // llvm.x86.avx.vtestnzc.pd
-+    1, // llvm.x86.avx.vtestnzc.pd.256
-+    1, // llvm.x86.avx.vtestnzc.ps
-+    1, // llvm.x86.avx.vtestnzc.ps.256
-+    1, // llvm.x86.avx.vtestz.pd
-+    1, // llvm.x86.avx.vtestz.pd.256
-+    1, // llvm.x86.avx.vtestz.ps
-+    1, // llvm.x86.avx.vtestz.ps.256
-+    3, // llvm.x86.avx.vzeroall
-+    3, // llvm.x86.avx.vzeroupper
-+    2, // llvm.x86.avx2.gather.d.d
-+    2, // llvm.x86.avx2.gather.d.d.256
-+    2, // llvm.x86.avx2.gather.d.pd
-+    2, // llvm.x86.avx2.gather.d.pd.256
-+    2, // llvm.x86.avx2.gather.d.ps
-+    2, // llvm.x86.avx2.gather.d.ps.256
-+    2, // llvm.x86.avx2.gather.d.q
-+    2, // llvm.x86.avx2.gather.d.q.256
-+    2, // llvm.x86.avx2.gather.q.d
-+    2, // llvm.x86.avx2.gather.q.d.256
-+    2, // llvm.x86.avx2.gather.q.pd
-+    2, // llvm.x86.avx2.gather.q.pd.256
-+    2, // llvm.x86.avx2.gather.q.ps
-+    2, // llvm.x86.avx2.gather.q.ps.256
-+    2, // llvm.x86.avx2.gather.q.q
-+    2, // llvm.x86.avx2.gather.q.q.256
-+    2, // llvm.x86.avx2.maskload.d
-+    2, // llvm.x86.avx2.maskload.d.256
-+    2, // llvm.x86.avx2.maskload.q
-+    2, // llvm.x86.avx2.maskload.q.256
-+    18, // llvm.x86.avx2.maskstore.d
-+    18, // llvm.x86.avx2.maskstore.d.256
-+    18, // llvm.x86.avx2.maskstore.q
-+    18, // llvm.x86.avx2.maskstore.q.256
-+    13, // llvm.x86.avx2.movntdqa
-+    1, // llvm.x86.avx2.mpsadbw
-+    1, // llvm.x86.avx2.pabs.b
-+    1, // llvm.x86.avx2.pabs.d
-+    1, // llvm.x86.avx2.pabs.w
-+    1, // llvm.x86.avx2.packssdw
-+    1, // llvm.x86.avx2.packsswb
-+    1, // llvm.x86.avx2.packusdw
-+    1, // llvm.x86.avx2.packuswb
-+    1, // llvm.x86.avx2.padds.b
-+    1, // llvm.x86.avx2.padds.w
-+    1, // llvm.x86.avx2.paddus.b
-+    1, // llvm.x86.avx2.paddus.w
-+    1, // llvm.x86.avx2.pavg.b
-+    1, // llvm.x86.avx2.pavg.w
-+    1, // llvm.x86.avx2.pblendvb
-+    1, // llvm.x86.avx2.permd
-+    1, // llvm.x86.avx2.permps
-+    1, // llvm.x86.avx2.phadd.d
-+    1, // llvm.x86.avx2.phadd.sw
-+    1, // llvm.x86.avx2.phadd.w
-+    1, // llvm.x86.avx2.phsub.d
-+    1, // llvm.x86.avx2.phsub.sw
-+    1, // llvm.x86.avx2.phsub.w
-+    1, // llvm.x86.avx2.pmadd.ub.sw
-+    1, // llvm.x86.avx2.pmadd.wd
-+    1, // llvm.x86.avx2.pmovmskb
-+    1, // llvm.x86.avx2.pmul.dq
-+    1, // llvm.x86.avx2.pmul.hr.sw
-+    1, // llvm.x86.avx2.pmulh.w
-+    1, // llvm.x86.avx2.pmulhu.w
-+    1, // llvm.x86.avx2.pmulu.dq
-+    1, // llvm.x86.avx2.psad.bw
-+    1, // llvm.x86.avx2.pshuf.b
-+    1, // llvm.x86.avx2.psign.b
-+    1, // llvm.x86.avx2.psign.d
-+    1, // llvm.x86.avx2.psign.w
-+    1, // llvm.x86.avx2.psll.d
-+    1, // llvm.x86.avx2.psll.q
-+    1, // llvm.x86.avx2.psll.w
-+    1, // llvm.x86.avx2.pslli.d
-+    1, // llvm.x86.avx2.pslli.q
-+    1, // llvm.x86.avx2.pslli.w
-+    1, // llvm.x86.avx2.psllv.d
-+    1, // llvm.x86.avx2.psllv.d.256
-+    1, // llvm.x86.avx2.psllv.q
-+    1, // llvm.x86.avx2.psllv.q.256
-+    1, // llvm.x86.avx2.psra.d
-+    1, // llvm.x86.avx2.psra.w
-+    1, // llvm.x86.avx2.psrai.d
-+    1, // llvm.x86.avx2.psrai.w
-+    1, // llvm.x86.avx2.psrav.d
-+    1, // llvm.x86.avx2.psrav.d.256
-+    1, // llvm.x86.avx2.psrl.d
-+    1, // llvm.x86.avx2.psrl.q
-+    1, // llvm.x86.avx2.psrl.w
-+    1, // llvm.x86.avx2.psrli.d
-+    1, // llvm.x86.avx2.psrli.q
-+    1, // llvm.x86.avx2.psrli.w
-+    1, // llvm.x86.avx2.psrlv.d
-+    1, // llvm.x86.avx2.psrlv.d.256
-+    1, // llvm.x86.avx2.psrlv.q
-+    1, // llvm.x86.avx2.psrlv.q.256
-+    1, // llvm.x86.avx2.psubs.b
-+    1, // llvm.x86.avx2.psubs.w
-+    1, // llvm.x86.avx2.psubus.b
-+    1, // llvm.x86.avx2.psubus.w
-+    1, // llvm.x86.avx2.vperm2i128
-+    1, // llvm.x86.avx512.broadcastmb.128
-+    1, // llvm.x86.avx512.broadcastmb.256
-+    1, // llvm.x86.avx512.broadcastmb.512
-+    1, // llvm.x86.avx512.broadcastmw.128
-+    1, // llvm.x86.avx512.broadcastmw.256
-+    1, // llvm.x86.avx512.broadcastmw.512
-+    1, // llvm.x86.avx512.cvtb2mask.128
-+    1, // llvm.x86.avx512.cvtb2mask.256
-+    1, // llvm.x86.avx512.cvtb2mask.512
-+    1, // llvm.x86.avx512.cvtd2mask.128
-+    1, // llvm.x86.avx512.cvtd2mask.256
-+    1, // llvm.x86.avx512.cvtd2mask.512
-+    1, // llvm.x86.avx512.cvtmask2b.128
-+    1, // llvm.x86.avx512.cvtmask2b.256
-+    1, // llvm.x86.avx512.cvtmask2b.512
-+    1, // llvm.x86.avx512.cvtmask2d.128
-+    1, // llvm.x86.avx512.cvtmask2d.256
-+    1, // llvm.x86.avx512.cvtmask2d.512
-+    1, // llvm.x86.avx512.cvtmask2q.128
-+    1, // llvm.x86.avx512.cvtmask2q.256
-+    1, // llvm.x86.avx512.cvtmask2q.512
-+    1, // llvm.x86.avx512.cvtmask2w.128
-+    1, // llvm.x86.avx512.cvtmask2w.256
-+    1, // llvm.x86.avx512.cvtmask2w.512
-+    1, // llvm.x86.avx512.cvtq2mask.128
-+    1, // llvm.x86.avx512.cvtq2mask.256
-+    1, // llvm.x86.avx512.cvtq2mask.512
-+    1, // llvm.x86.avx512.cvtsi2sd64
-+    1, // llvm.x86.avx512.cvtsi2ss32
-+    1, // llvm.x86.avx512.cvtsi2ss64
-+    1, // llvm.x86.avx512.cvttsd2si
-+    1, // llvm.x86.avx512.cvttsd2si64
-+    1, // llvm.x86.avx512.cvttsd2usi
-+    1, // llvm.x86.avx512.cvttsd2usi64
-+    1, // llvm.x86.avx512.cvttss2si
-+    1, // llvm.x86.avx512.cvttss2si64
-+    1, // llvm.x86.avx512.cvttss2usi
-+    1, // llvm.x86.avx512.cvttss2usi64
-+    1, // llvm.x86.avx512.cvtusi2sd
-+    1, // llvm.x86.avx512.cvtusi2ss
-+    1, // llvm.x86.avx512.cvtusi642sd
-+    1, // llvm.x86.avx512.cvtusi642ss
-+    1, // llvm.x86.avx512.cvtw2mask.128
-+    1, // llvm.x86.avx512.cvtw2mask.256
-+    1, // llvm.x86.avx512.cvtw2mask.512
-+    1, // llvm.x86.avx512.exp2.pd
-+    1, // llvm.x86.avx512.exp2.ps
-+    2, // llvm.x86.avx512.gather.dpd.512
-+    2, // llvm.x86.avx512.gather.dpi.512
-+    2, // llvm.x86.avx512.gather.dpq.512
-+    2, // llvm.x86.avx512.gather.dps.512
-+    2, // llvm.x86.avx512.gather.qpd.512
-+    2, // llvm.x86.avx512.gather.qpi.512
-+    2, // llvm.x86.avx512.gather.qpq.512
-+    2, // llvm.x86.avx512.gather.qps.512
-+    2, // llvm.x86.avx512.gather3div2.df
-+    2, // llvm.x86.avx512.gather3div2.di
-+    2, // llvm.x86.avx512.gather3div4.df
-+    2, // llvm.x86.avx512.gather3div4.di
-+    2, // llvm.x86.avx512.gather3div4.sf
-+    2, // llvm.x86.avx512.gather3div4.si
-+    2, // llvm.x86.avx512.gather3div8.sf
-+    2, // llvm.x86.avx512.gather3div8.si
-+    2, // llvm.x86.avx512.gather3siv2.df
-+    2, // llvm.x86.avx512.gather3siv2.di
-+    2, // llvm.x86.avx512.gather3siv4.df
-+    2, // llvm.x86.avx512.gather3siv4.di
-+    2, // llvm.x86.avx512.gather3siv4.sf
-+    2, // llvm.x86.avx512.gather3siv4.si
-+    2, // llvm.x86.avx512.gather3siv8.sf
-+    2, // llvm.x86.avx512.gather3siv8.si
-+    18, // llvm.x86.avx512.gatherpf.dpd.512
-+    18, // llvm.x86.avx512.gatherpf.dps.512
-+    18, // llvm.x86.avx512.gatherpf.qpd.512
-+    18, // llvm.x86.avx512.gatherpf.qps.512
-+    1, // llvm.x86.avx512.kand.w
-+    1, // llvm.x86.avx512.kandn.w
-+    1, // llvm.x86.avx512.knot.w
-+    1, // llvm.x86.avx512.kor.w
-+    1, // llvm.x86.avx512.kortestc.w
-+    1, // llvm.x86.avx512.kortestz.w
-+    1, // llvm.x86.avx512.kunpck.bw
-+    1, // llvm.x86.avx512.kunpck.dq
-+    1, // llvm.x86.avx512.kunpck.wd
-+    1, // llvm.x86.avx512.kxnor.w
-+    1, // llvm.x86.avx512.kxor.w
-+    1, // llvm.x86.avx512.mask.add.pd.512
-+    1, // llvm.x86.avx512.mask.add.ps.512
-+    1, // llvm.x86.avx512.mask.add.sd.round
-+    1, // llvm.x86.avx512.mask.add.ss.round
-+    1, // llvm.x86.avx512.mask.broadcastf32x2.256
-+    1, // llvm.x86.avx512.mask.broadcastf32x2.512
-+    1, // llvm.x86.avx512.mask.broadcastf32x4.256
-+    1, // llvm.x86.avx512.mask.broadcastf32x4.512
-+    1, // llvm.x86.avx512.mask.broadcastf32x8.512
-+    1, // llvm.x86.avx512.mask.broadcastf64x2.256
-+    1, // llvm.x86.avx512.mask.broadcastf64x2.512
-+    1, // llvm.x86.avx512.mask.broadcastf64x4.512
-+    1, // llvm.x86.avx512.mask.broadcasti32x2.128
-+    1, // llvm.x86.avx512.mask.broadcasti32x2.256
-+    1, // llvm.x86.avx512.mask.broadcasti32x2.512
-+    1, // llvm.x86.avx512.mask.broadcasti32x4.256
-+    1, // llvm.x86.avx512.mask.broadcasti32x4.512
-+    1, // llvm.x86.avx512.mask.broadcasti32x8.512
-+    1, // llvm.x86.avx512.mask.broadcasti64x2.256
-+    1, // llvm.x86.avx512.mask.broadcasti64x2.512
-+    1, // llvm.x86.avx512.mask.broadcasti64x4.512
-+    1, // llvm.x86.avx512.mask.cmp.b.128
-+    1, // llvm.x86.avx512.mask.cmp.b.256
-+    1, // llvm.x86.avx512.mask.cmp.b.512
-+    1, // llvm.x86.avx512.mask.cmp.d.128
-+    1, // llvm.x86.avx512.mask.cmp.d.256
-+    1, // llvm.x86.avx512.mask.cmp.d.512
-+    1, // llvm.x86.avx512.mask.cmp.pd.128
-+    1, // llvm.x86.avx512.mask.cmp.pd.256
-+    1, // llvm.x86.avx512.mask.cmp.pd.512
-+    1, // llvm.x86.avx512.mask.cmp.ps.128
-+    1, // llvm.x86.avx512.mask.cmp.ps.256
-+    1, // llvm.x86.avx512.mask.cmp.ps.512
-+    1, // llvm.x86.avx512.mask.cmp.q.128
-+    1, // llvm.x86.avx512.mask.cmp.q.256
-+    1, // llvm.x86.avx512.mask.cmp.q.512
-+    1, // llvm.x86.avx512.mask.cmp.sd
-+    1, // llvm.x86.avx512.mask.cmp.ss
-+    1, // llvm.x86.avx512.mask.cmp.w.128
-+    1, // llvm.x86.avx512.mask.cmp.w.256
-+    1, // llvm.x86.avx512.mask.cmp.w.512
-+    1, // llvm.x86.avx512.mask.compress.d.128
-+    1, // llvm.x86.avx512.mask.compress.d.256
-+    1, // llvm.x86.avx512.mask.compress.d.512
-+    1, // llvm.x86.avx512.mask.compress.pd.128
-+    1, // llvm.x86.avx512.mask.compress.pd.256
-+    1, // llvm.x86.avx512.mask.compress.pd.512
-+    1, // llvm.x86.avx512.mask.compress.ps.128
-+    1, // llvm.x86.avx512.mask.compress.ps.256
-+    1, // llvm.x86.avx512.mask.compress.ps.512
-+    1, // llvm.x86.avx512.mask.compress.q.128
-+    1, // llvm.x86.avx512.mask.compress.q.256
-+    1, // llvm.x86.avx512.mask.compress.q.512
-+    18, // llvm.x86.avx512.mask.compress.store.d.128
-+    18, // llvm.x86.avx512.mask.compress.store.d.256
-+    18, // llvm.x86.avx512.mask.compress.store.d.512
-+    18, // llvm.x86.avx512.mask.compress.store.pd.128
-+    18, // llvm.x86.avx512.mask.compress.store.pd.256
-+    18, // llvm.x86.avx512.mask.compress.store.pd.512
-+    18, // llvm.x86.avx512.mask.compress.store.ps.128
-+    18, // llvm.x86.avx512.mask.compress.store.ps.256
-+    18, // llvm.x86.avx512.mask.compress.store.ps.512
-+    18, // llvm.x86.avx512.mask.compress.store.q.128
-+    18, // llvm.x86.avx512.mask.compress.store.q.256
-+    18, // llvm.x86.avx512.mask.compress.store.q.512
-+    1, // llvm.x86.avx512.mask.conflict.d.128
-+    1, // llvm.x86.avx512.mask.conflict.d.256
-+    1, // llvm.x86.avx512.mask.conflict.d.512
-+    1, // llvm.x86.avx512.mask.conflict.q.128
-+    1, // llvm.x86.avx512.mask.conflict.q.256
-+    1, // llvm.x86.avx512.mask.conflict.q.512
-+    1, // llvm.x86.avx512.mask.cvtdq2ps.128
-+    1, // llvm.x86.avx512.mask.cvtdq2ps.256
-+    1, // llvm.x86.avx512.mask.cvtdq2ps.512
-+    1, // llvm.x86.avx512.mask.cvtpd2dq.128
-+    1, // llvm.x86.avx512.mask.cvtpd2dq.256
-+    1, // llvm.x86.avx512.mask.cvtpd2dq.512
-+    1, // llvm.x86.avx512.mask.cvtpd2ps
-+    1, // llvm.x86.avx512.mask.cvtpd2ps.256
-+    1, // llvm.x86.avx512.mask.cvtpd2ps.512
-+    1, // llvm.x86.avx512.mask.cvtpd2qq.128
-+    1, // llvm.x86.avx512.mask.cvtpd2qq.256
-+    1, // llvm.x86.avx512.mask.cvtpd2qq.512
-+    1, // llvm.x86.avx512.mask.cvtpd2udq.128
-+    1, // llvm.x86.avx512.mask.cvtpd2udq.256
-+    1, // llvm.x86.avx512.mask.cvtpd2udq.512
-+    1, // llvm.x86.avx512.mask.cvtpd2uqq.128
-+    1, // llvm.x86.avx512.mask.cvtpd2uqq.256
-+    1, // llvm.x86.avx512.mask.cvtpd2uqq.512
-+    1, // llvm.x86.avx512.mask.cvtps2dq.128
-+    1, // llvm.x86.avx512.mask.cvtps2dq.256
-+    1, // llvm.x86.avx512.mask.cvtps2dq.512
-+    1, // llvm.x86.avx512.mask.cvtps2pd.128
-+    1, // llvm.x86.avx512.mask.cvtps2pd.256
-+    1, // llvm.x86.avx512.mask.cvtps2pd.512
-+    1, // llvm.x86.avx512.mask.cvtps2qq.128
-+    1, // llvm.x86.avx512.mask.cvtps2qq.256
-+    1, // llvm.x86.avx512.mask.cvtps2qq.512
-+    1, // llvm.x86.avx512.mask.cvtps2udq.128
-+    1, // llvm.x86.avx512.mask.cvtps2udq.256
-+    1, // llvm.x86.avx512.mask.cvtps2udq.512
-+    1, // llvm.x86.avx512.mask.cvtps2uqq.128
-+    1, // llvm.x86.avx512.mask.cvtps2uqq.256
-+    1, // llvm.x86.avx512.mask.cvtps2uqq.512
-+    1, // llvm.x86.avx512.mask.cvtqq2pd.128
-+    1, // llvm.x86.avx512.mask.cvtqq2pd.256
-+    1, // llvm.x86.avx512.mask.cvtqq2pd.512
-+    1, // llvm.x86.avx512.mask.cvtqq2ps.128
-+    1, // llvm.x86.avx512.mask.cvtqq2ps.256
-+    1, // llvm.x86.avx512.mask.cvtqq2ps.512
-+    1, // llvm.x86.avx512.mask.cvtsd2ss.round
-+    1, // llvm.x86.avx512.mask.cvtss2sd.round
-+    1, // llvm.x86.avx512.mask.cvttpd2dq.128
-+    1, // llvm.x86.avx512.mask.cvttpd2dq.256
-+    1, // llvm.x86.avx512.mask.cvttpd2dq.512
-+    1, // llvm.x86.avx512.mask.cvttpd2qq.128
-+    1, // llvm.x86.avx512.mask.cvttpd2qq.256
-+    1, // llvm.x86.avx512.mask.cvttpd2qq.512
-+    1, // llvm.x86.avx512.mask.cvttpd2udq.128
-+    1, // llvm.x86.avx512.mask.cvttpd2udq.256
-+    1, // llvm.x86.avx512.mask.cvttpd2udq.512
-+    1, // llvm.x86.avx512.mask.cvttpd2uqq.128
-+    1, // llvm.x86.avx512.mask.cvttpd2uqq.256
-+    1, // llvm.x86.avx512.mask.cvttpd2uqq.512
-+    1, // llvm.x86.avx512.mask.cvttps2dq.128
-+    1, // llvm.x86.avx512.mask.cvttps2dq.256
-+    1, // llvm.x86.avx512.mask.cvttps2dq.512
-+    1, // llvm.x86.avx512.mask.cvttps2qq.128
-+    1, // llvm.x86.avx512.mask.cvttps2qq.256
-+    1, // llvm.x86.avx512.mask.cvttps2qq.512
-+    1, // llvm.x86.avx512.mask.cvttps2udq.128
-+    1, // llvm.x86.avx512.mask.cvttps2udq.256
-+    1, // llvm.x86.avx512.mask.cvttps2udq.512
-+    1, // llvm.x86.avx512.mask.cvttps2uqq.128
-+    1, // llvm.x86.avx512.mask.cvttps2uqq.256
-+    1, // llvm.x86.avx512.mask.cvttps2uqq.512
-+    1, // llvm.x86.avx512.mask.cvtudq2ps.128
-+    1, // llvm.x86.avx512.mask.cvtudq2ps.256
-+    1, // llvm.x86.avx512.mask.cvtudq2ps.512
-+    1, // llvm.x86.avx512.mask.cvtuqq2pd.128
-+    1, // llvm.x86.avx512.mask.cvtuqq2pd.256
-+    1, // llvm.x86.avx512.mask.cvtuqq2pd.512
-+    1, // llvm.x86.avx512.mask.cvtuqq2ps.128
-+    1, // llvm.x86.avx512.mask.cvtuqq2ps.256
-+    1, // llvm.x86.avx512.mask.cvtuqq2ps.512
-+    1, // llvm.x86.avx512.mask.dbpsadbw.128
-+    1, // llvm.x86.avx512.mask.dbpsadbw.256
-+    1, // llvm.x86.avx512.mask.dbpsadbw.512
-+    1, // llvm.x86.avx512.mask.div.pd.512
-+    1, // llvm.x86.avx512.mask.div.ps.512
-+    1, // llvm.x86.avx512.mask.div.sd.round
-+    1, // llvm.x86.avx512.mask.div.ss.round
-+    1, // llvm.x86.avx512.mask.expand.d.128
-+    1, // llvm.x86.avx512.mask.expand.d.256
-+    1, // llvm.x86.avx512.mask.expand.d.512
-+    2, // llvm.x86.avx512.mask.expand.load.d.128
-+    2, // llvm.x86.avx512.mask.expand.load.d.256
-+    2, // llvm.x86.avx512.mask.expand.load.d.512
-+    2, // llvm.x86.avx512.mask.expand.load.pd.128
-+    2, // llvm.x86.avx512.mask.expand.load.pd.256
-+    2, // llvm.x86.avx512.mask.expand.load.pd.512
-+    2, // llvm.x86.avx512.mask.expand.load.ps.128
-+    2, // llvm.x86.avx512.mask.expand.load.ps.256
-+    2, // llvm.x86.avx512.mask.expand.load.ps.512
-+    2, // llvm.x86.avx512.mask.expand.load.q.128
-+    2, // llvm.x86.avx512.mask.expand.load.q.256
-+    2, // llvm.x86.avx512.mask.expand.load.q.512
-+    1, // llvm.x86.avx512.mask.expand.pd.128
-+    1, // llvm.x86.avx512.mask.expand.pd.256
-+    1, // llvm.x86.avx512.mask.expand.pd.512
-+    1, // llvm.x86.avx512.mask.expand.ps.128
-+    1, // llvm.x86.avx512.mask.expand.ps.256
-+    1, // llvm.x86.avx512.mask.expand.ps.512
-+    1, // llvm.x86.avx512.mask.expand.q.128
-+    1, // llvm.x86.avx512.mask.expand.q.256
-+    1, // llvm.x86.avx512.mask.expand.q.512
-+    1, // llvm.x86.avx512.mask.fixupimm.pd.128
-+    1, // llvm.x86.avx512.mask.fixupimm.pd.256
-+    1, // llvm.x86.avx512.mask.fixupimm.pd.512
-+    1, // llvm.x86.avx512.mask.fixupimm.ps.128
-+    1, // llvm.x86.avx512.mask.fixupimm.ps.256
-+    1, // llvm.x86.avx512.mask.fixupimm.ps.512
-+    1, // llvm.x86.avx512.mask.fixupimm.sd
-+    1, // llvm.x86.avx512.mask.fixupimm.ss
-+    1, // llvm.x86.avx512.mask.fpclass.pd.128
-+    1, // llvm.x86.avx512.mask.fpclass.pd.256
-+    1, // llvm.x86.avx512.mask.fpclass.pd.512
-+    1, // llvm.x86.avx512.mask.fpclass.ps.128
-+    1, // llvm.x86.avx512.mask.fpclass.ps.256
-+    1, // llvm.x86.avx512.mask.fpclass.ps.512
-+    1, // llvm.x86.avx512.mask.fpclass.sd
-+    1, // llvm.x86.avx512.mask.fpclass.ss
-+    1, // llvm.x86.avx512.mask.getexp.pd.128
-+    1, // llvm.x86.avx512.mask.getexp.pd.256
-+    1, // llvm.x86.avx512.mask.getexp.pd.512
-+    1, // llvm.x86.avx512.mask.getexp.ps.128
-+    1, // llvm.x86.avx512.mask.getexp.ps.256
-+    1, // llvm.x86.avx512.mask.getexp.ps.512
-+    1, // llvm.x86.avx512.mask.getexp.sd
-+    1, // llvm.x86.avx512.mask.getexp.ss
-+    1, // llvm.x86.avx512.mask.getmant.pd.128
-+    1, // llvm.x86.avx512.mask.getmant.pd.256
-+    1, // llvm.x86.avx512.mask.getmant.pd.512
-+    1, // llvm.x86.avx512.mask.getmant.ps.128
-+    1, // llvm.x86.avx512.mask.getmant.ps.256
-+    1, // llvm.x86.avx512.mask.getmant.ps.512
-+    1, // llvm.x86.avx512.mask.getmant.sd
-+    1, // llvm.x86.avx512.mask.getmant.ss
-+    1, // llvm.x86.avx512.mask.insertf32x4.256
-+    1, // llvm.x86.avx512.mask.insertf32x4.512
-+    1, // llvm.x86.avx512.mask.insertf32x8.512
-+    1, // llvm.x86.avx512.mask.insertf64x2.256
-+    1, // llvm.x86.avx512.mask.insertf64x2.512
-+    1, // llvm.x86.avx512.mask.insertf64x4.512
-+    1, // llvm.x86.avx512.mask.inserti32x4.256
-+    1, // llvm.x86.avx512.mask.inserti32x4.512
-+    1, // llvm.x86.avx512.mask.inserti32x8.512
-+    1, // llvm.x86.avx512.mask.inserti64x2.256
-+    1, // llvm.x86.avx512.mask.inserti64x2.512
-+    1, // llvm.x86.avx512.mask.inserti64x4.512
-+    1, // llvm.x86.avx512.mask.lzcnt.d.128
-+    1, // llvm.x86.avx512.mask.lzcnt.d.256
-+    1, // llvm.x86.avx512.mask.lzcnt.d.512
-+    1, // llvm.x86.avx512.mask.lzcnt.q.128
-+    1, // llvm.x86.avx512.mask.lzcnt.q.256
-+    1, // llvm.x86.avx512.mask.lzcnt.q.512
-+    1, // llvm.x86.avx512.mask.max.pd.128
-+    1, // llvm.x86.avx512.mask.max.pd.256
-+    1, // llvm.x86.avx512.mask.max.pd.512
-+    1, // llvm.x86.avx512.mask.max.ps.128
-+    1, // llvm.x86.avx512.mask.max.ps.256
-+    1, // llvm.x86.avx512.mask.max.ps.512
-+    1, // llvm.x86.avx512.mask.max.sd.round
-+    1, // llvm.x86.avx512.mask.max.ss.round
-+    1, // llvm.x86.avx512.mask.min.pd.128
-+    1, // llvm.x86.avx512.mask.min.pd.256
-+    1, // llvm.x86.avx512.mask.min.pd.512
-+    1, // llvm.x86.avx512.mask.min.ps.128
-+    1, // llvm.x86.avx512.mask.min.ps.256
-+    1, // llvm.x86.avx512.mask.min.ps.512
-+    1, // llvm.x86.avx512.mask.min.sd.round
-+    1, // llvm.x86.avx512.mask.min.ss.round
-+    1, // llvm.x86.avx512.mask.mul.pd.512
-+    1, // llvm.x86.avx512.mask.mul.ps.512
-+    1, // llvm.x86.avx512.mask.mul.sd.round
-+    1, // llvm.x86.avx512.mask.mul.ss.round
-+    1, // llvm.x86.avx512.mask.pabs.b.128
-+    1, // llvm.x86.avx512.mask.pabs.b.256
-+    1, // llvm.x86.avx512.mask.pabs.b.512
-+    1, // llvm.x86.avx512.mask.pabs.d.128
-+    1, // llvm.x86.avx512.mask.pabs.d.256
-+    1, // llvm.x86.avx512.mask.pabs.d.512
-+    1, // llvm.x86.avx512.mask.pabs.q.128
-+    1, // llvm.x86.avx512.mask.pabs.q.256
-+    1, // llvm.x86.avx512.mask.pabs.q.512
-+    1, // llvm.x86.avx512.mask.pabs.w.128
-+    1, // llvm.x86.avx512.mask.pabs.w.256
-+    1, // llvm.x86.avx512.mask.pabs.w.512
-+    1, // llvm.x86.avx512.mask.packssdw.128
-+    1, // llvm.x86.avx512.mask.packssdw.256
-+    1, // llvm.x86.avx512.mask.packssdw.512
-+    1, // llvm.x86.avx512.mask.packsswb.128
-+    1, // llvm.x86.avx512.mask.packsswb.256
-+    1, // llvm.x86.avx512.mask.packsswb.512
-+    1, // llvm.x86.avx512.mask.packusdw.128
-+    1, // llvm.x86.avx512.mask.packusdw.256
-+    1, // llvm.x86.avx512.mask.packusdw.512
-+    1, // llvm.x86.avx512.mask.packuswb.128
-+    1, // llvm.x86.avx512.mask.packuswb.256
-+    1, // llvm.x86.avx512.mask.packuswb.512
-+    1, // llvm.x86.avx512.mask.padds.b.128
-+    1, // llvm.x86.avx512.mask.padds.b.256
-+    1, // llvm.x86.avx512.mask.padds.b.512
-+    1, // llvm.x86.avx512.mask.padds.w.128
-+    1, // llvm.x86.avx512.mask.padds.w.256
-+    1, // llvm.x86.avx512.mask.padds.w.512
-+    1, // llvm.x86.avx512.mask.paddus.b.128
-+    1, // llvm.x86.avx512.mask.paddus.b.256
-+    1, // llvm.x86.avx512.mask.paddus.b.512
-+    1, // llvm.x86.avx512.mask.paddus.w.128
-+    1, // llvm.x86.avx512.mask.paddus.w.256
-+    1, // llvm.x86.avx512.mask.paddus.w.512
-+    1, // llvm.x86.avx512.mask.pavg.b.128
-+    1, // llvm.x86.avx512.mask.pavg.b.256
-+    1, // llvm.x86.avx512.mask.pavg.b.512
-+    1, // llvm.x86.avx512.mask.pavg.w.128
-+    1, // llvm.x86.avx512.mask.pavg.w.256
-+    1, // llvm.x86.avx512.mask.pavg.w.512
-+    1, // llvm.x86.avx512.mask.pbroadcast.b.gpr.128
-+    1, // llvm.x86.avx512.mask.pbroadcast.b.gpr.256
-+    1, // llvm.x86.avx512.mask.pbroadcast.b.gpr.512
-+    1, // llvm.x86.avx512.mask.pbroadcast.d.gpr.128
-+    1, // llvm.x86.avx512.mask.pbroadcast.d.gpr.256
-+    1, // llvm.x86.avx512.mask.pbroadcast.d.gpr.512
-+    1, // llvm.x86.avx512.mask.pbroadcast.q.gpr.128
-+    1, // llvm.x86.avx512.mask.pbroadcast.q.gpr.256
-+    1, // llvm.x86.avx512.mask.pbroadcast.q.gpr.512
-+    1, // llvm.x86.avx512.mask.pbroadcast.q.mem.512
-+    1, // llvm.x86.avx512.mask.pbroadcast.w.gpr.128
-+    1, // llvm.x86.avx512.mask.pbroadcast.w.gpr.256
-+    1, // llvm.x86.avx512.mask.pbroadcast.w.gpr.512
-+    1, // llvm.x86.avx512.mask.permvar.df.256
-+    1, // llvm.x86.avx512.mask.permvar.df.512
-+    1, // llvm.x86.avx512.mask.permvar.di.256
-+    1, // llvm.x86.avx512.mask.permvar.di.512
-+    1, // llvm.x86.avx512.mask.permvar.hi.128
-+    1, // llvm.x86.avx512.mask.permvar.hi.256
-+    1, // llvm.x86.avx512.mask.permvar.hi.512
-+    1, // llvm.x86.avx512.mask.permvar.qi.128
-+    1, // llvm.x86.avx512.mask.permvar.qi.256
-+    1, // llvm.x86.avx512.mask.permvar.qi.512
-+    1, // llvm.x86.avx512.mask.permvar.sf.256
-+    1, // llvm.x86.avx512.mask.permvar.sf.512
-+    1, // llvm.x86.avx512.mask.permvar.si.256
-+    1, // llvm.x86.avx512.mask.permvar.si.512
-+    1, // llvm.x86.avx512.mask.pmaddubs.w.128
-+    1, // llvm.x86.avx512.mask.pmaddubs.w.256
-+    1, // llvm.x86.avx512.mask.pmaddubs.w.512
-+    1, // llvm.x86.avx512.mask.pmaddw.d.128
-+    1, // llvm.x86.avx512.mask.pmaddw.d.256
-+    1, // llvm.x86.avx512.mask.pmaddw.d.512
-+    1, // llvm.x86.avx512.mask.pmov.db.128
-+    1, // llvm.x86.avx512.mask.pmov.db.256
-+    1, // llvm.x86.avx512.mask.pmov.db.512
-+    18, // llvm.x86.avx512.mask.pmov.db.mem.128
-+    18, // llvm.x86.avx512.mask.pmov.db.mem.256
-+    18, // llvm.x86.avx512.mask.pmov.db.mem.512
-+    1, // llvm.x86.avx512.mask.pmov.dw.128
-+    1, // llvm.x86.avx512.mask.pmov.dw.256
-+    1, // llvm.x86.avx512.mask.pmov.dw.512
-+    18, // llvm.x86.avx512.mask.pmov.dw.mem.128
-+    18, // llvm.x86.avx512.mask.pmov.dw.mem.256
-+    18, // llvm.x86.avx512.mask.pmov.dw.mem.512
-+    1, // llvm.x86.avx512.mask.pmov.qb.128
-+    1, // llvm.x86.avx512.mask.pmov.qb.256
-+    1, // llvm.x86.avx512.mask.pmov.qb.512
-+    18, // llvm.x86.avx512.mask.pmov.qb.mem.128
-+    18, // llvm.x86.avx512.mask.pmov.qb.mem.256
-+    18, // llvm.x86.avx512.mask.pmov.qb.mem.512
-+    1, // llvm.x86.avx512.mask.pmov.qd.128
-+    1, // llvm.x86.avx512.mask.pmov.qd.256
-+    1, // llvm.x86.avx512.mask.pmov.qd.512
-+    18, // llvm.x86.avx512.mask.pmov.qd.mem.128
-+    18, // llvm.x86.avx512.mask.pmov.qd.mem.256
-+    18, // llvm.x86.avx512.mask.pmov.qd.mem.512
-+    1, // llvm.x86.avx512.mask.pmov.qw.128
-+    1, // llvm.x86.avx512.mask.pmov.qw.256
-+    1, // llvm.x86.avx512.mask.pmov.qw.512
-+    18, // llvm.x86.avx512.mask.pmov.qw.mem.128
-+    18, // llvm.x86.avx512.mask.pmov.qw.mem.256
-+    18, // llvm.x86.avx512.mask.pmov.qw.mem.512
-+    1, // llvm.x86.avx512.mask.pmov.wb.128
-+    1, // llvm.x86.avx512.mask.pmov.wb.256
-+    1, // llvm.x86.avx512.mask.pmov.wb.512
-+    18, // llvm.x86.avx512.mask.pmov.wb.mem.128
-+    18, // llvm.x86.avx512.mask.pmov.wb.mem.256
-+    18, // llvm.x86.avx512.mask.pmov.wb.mem.512
-+    1, // llvm.x86.avx512.mask.pmovs.db.128
-+    1, // llvm.x86.avx512.mask.pmovs.db.256
-+    1, // llvm.x86.avx512.mask.pmovs.db.512
-+    18, // llvm.x86.avx512.mask.pmovs.db.mem.128
-+    18, // llvm.x86.avx512.mask.pmovs.db.mem.256
-+    18, // llvm.x86.avx512.mask.pmovs.db.mem.512
-+    1, // llvm.x86.avx512.mask.pmovs.dw.128
-+    1, // llvm.x86.avx512.mask.pmovs.dw.256
-+    1, // llvm.x86.avx512.mask.pmovs.dw.512
-+    18, // llvm.x86.avx512.mask.pmovs.dw.mem.128
-+    18, // llvm.x86.avx512.mask.pmovs.dw.mem.256
-+    18, // llvm.x86.avx512.mask.pmovs.dw.mem.512
-+    1, // llvm.x86.avx512.mask.pmovs.qb.128
-+    1, // llvm.x86.avx512.mask.pmovs.qb.256
-+    1, // llvm.x86.avx512.mask.pmovs.qb.512
-+    18, // llvm.x86.avx512.mask.pmovs.qb.mem.128
-+    18, // llvm.x86.avx512.mask.pmovs.qb.mem.256
-+    18, // llvm.x86.avx512.mask.pmovs.qb.mem.512
-+    1, // llvm.x86.avx512.mask.pmovs.qd.128
-+    1, // llvm.x86.avx512.mask.pmovs.qd.256
-+    1, // llvm.x86.avx512.mask.pmovs.qd.512
-+    18, // llvm.x86.avx512.mask.pmovs.qd.mem.128
-+    18, // llvm.x86.avx512.mask.pmovs.qd.mem.256
-+    18, // llvm.x86.avx512.mask.pmovs.qd.mem.512
-+    1, // llvm.x86.avx512.mask.pmovs.qw.128
-+    1, // llvm.x86.avx512.mask.pmovs.qw.256
-+    1, // llvm.x86.avx512.mask.pmovs.qw.512
-+    18, // llvm.x86.avx512.mask.pmovs.qw.mem.128
-+    18, // llvm.x86.avx512.mask.pmovs.qw.mem.256
-+    18, // llvm.x86.avx512.mask.pmovs.qw.mem.512
-+    1, // llvm.x86.avx512.mask.pmovs.wb.128
-+    1, // llvm.x86.avx512.mask.pmovs.wb.256
-+    1, // llvm.x86.avx512.mask.pmovs.wb.512
-+    18, // llvm.x86.avx512.mask.pmovs.wb.mem.128
-+    18, // llvm.x86.avx512.mask.pmovs.wb.mem.256
-+    18, // llvm.x86.avx512.mask.pmovs.wb.mem.512
-+    1, // llvm.x86.avx512.mask.pmovus.db.128
-+    1, // llvm.x86.avx512.mask.pmovus.db.256
-+    1, // llvm.x86.avx512.mask.pmovus.db.512
-+    18, // llvm.x86.avx512.mask.pmovus.db.mem.128
-+    18, // llvm.x86.avx512.mask.pmovus.db.mem.256
-+    18, // llvm.x86.avx512.mask.pmovus.db.mem.512
-+    1, // llvm.x86.avx512.mask.pmovus.dw.128
-+    1, // llvm.x86.avx512.mask.pmovus.dw.256
-+    1, // llvm.x86.avx512.mask.pmovus.dw.512
-+    18, // llvm.x86.avx512.mask.pmovus.dw.mem.128
-+    18, // llvm.x86.avx512.mask.pmovus.dw.mem.256
-+    18, // llvm.x86.avx512.mask.pmovus.dw.mem.512
-+    1, // llvm.x86.avx512.mask.pmovus.qb.128
-+    1, // llvm.x86.avx512.mask.pmovus.qb.256
-+    1, // llvm.x86.avx512.mask.pmovus.qb.512
-+    18, // llvm.x86.avx512.mask.pmovus.qb.mem.128
-+    18, // llvm.x86.avx512.mask.pmovus.qb.mem.256
-+    18, // llvm.x86.avx512.mask.pmovus.qb.mem.512
-+    1, // llvm.x86.avx512.mask.pmovus.qd.128
-+    1, // llvm.x86.avx512.mask.pmovus.qd.256
-+    1, // llvm.x86.avx512.mask.pmovus.qd.512
-+    18, // llvm.x86.avx512.mask.pmovus.qd.mem.128
-+    18, // llvm.x86.avx512.mask.pmovus.qd.mem.256
-+    18, // llvm.x86.avx512.mask.pmovus.qd.mem.512
-+    1, // llvm.x86.avx512.mask.pmovus.qw.128
-+    1, // llvm.x86.avx512.mask.pmovus.qw.256
-+    1, // llvm.x86.avx512.mask.pmovus.qw.512
-+    18, // llvm.x86.avx512.mask.pmovus.qw.mem.128
-+    18, // llvm.x86.avx512.mask.pmovus.qw.mem.256
-+    18, // llvm.x86.avx512.mask.pmovus.qw.mem.512
-+    1, // llvm.x86.avx512.mask.pmovus.wb.128
-+    1, // llvm.x86.avx512.mask.pmovus.wb.256
-+    1, // llvm.x86.avx512.mask.pmovus.wb.512
-+    18, // llvm.x86.avx512.mask.pmovus.wb.mem.128
-+    18, // llvm.x86.avx512.mask.pmovus.wb.mem.256
-+    18, // llvm.x86.avx512.mask.pmovus.wb.mem.512
-+    1, // llvm.x86.avx512.mask.pmul.dq.128
-+    1, // llvm.x86.avx512.mask.pmul.dq.256
-+    1, // llvm.x86.avx512.mask.pmul.dq.512
-+    1, // llvm.x86.avx512.mask.pmul.hr.sw.128
-+    1, // llvm.x86.avx512.mask.pmul.hr.sw.256
-+    1, // llvm.x86.avx512.mask.pmul.hr.sw.512
-+    1, // llvm.x86.avx512.mask.pmulh.w.128
-+    1, // llvm.x86.avx512.mask.pmulh.w.256
-+    1, // llvm.x86.avx512.mask.pmulh.w.512
-+    1, // llvm.x86.avx512.mask.pmulhu.w.128
-+    1, // llvm.x86.avx512.mask.pmulhu.w.256
-+    1, // llvm.x86.avx512.mask.pmulhu.w.512
-+    1, // llvm.x86.avx512.mask.pmultishift.qb.128
-+    1, // llvm.x86.avx512.mask.pmultishift.qb.256
-+    1, // llvm.x86.avx512.mask.pmultishift.qb.512
-+    1, // llvm.x86.avx512.mask.pmulu.dq.128
-+    1, // llvm.x86.avx512.mask.pmulu.dq.256
-+    1, // llvm.x86.avx512.mask.pmulu.dq.512
-+    1, // llvm.x86.avx512.mask.prol.d.128
-+    1, // llvm.x86.avx512.mask.prol.d.256
-+    1, // llvm.x86.avx512.mask.prol.d.512
-+    1, // llvm.x86.avx512.mask.prol.q.128
-+    1, // llvm.x86.avx512.mask.prol.q.256
-+    1, // llvm.x86.avx512.mask.prol.q.512
-+    1, // llvm.x86.avx512.mask.prolv.d.128
-+    1, // llvm.x86.avx512.mask.prolv.d.256
-+    1, // llvm.x86.avx512.mask.prolv.d.512
-+    1, // llvm.x86.avx512.mask.prolv.q.128
-+    1, // llvm.x86.avx512.mask.prolv.q.256
-+    1, // llvm.x86.avx512.mask.prolv.q.512
-+    1, // llvm.x86.avx512.mask.pror.d.128
-+    1, // llvm.x86.avx512.mask.pror.d.256
-+    1, // llvm.x86.avx512.mask.pror.d.512
-+    1, // llvm.x86.avx512.mask.pror.q.128
-+    1, // llvm.x86.avx512.mask.pror.q.256
-+    1, // llvm.x86.avx512.mask.pror.q.512
-+    1, // llvm.x86.avx512.mask.prorv.d.128
-+    1, // llvm.x86.avx512.mask.prorv.d.256
-+    1, // llvm.x86.avx512.mask.prorv.d.512
-+    1, // llvm.x86.avx512.mask.prorv.q.128
-+    1, // llvm.x86.avx512.mask.prorv.q.256
-+    1, // llvm.x86.avx512.mask.prorv.q.512
-+    1, // llvm.x86.avx512.mask.psubs.b.128
-+    1, // llvm.x86.avx512.mask.psubs.b.256
-+    1, // llvm.x86.avx512.mask.psubs.b.512
-+    1, // llvm.x86.avx512.mask.psubs.w.128
-+    1, // llvm.x86.avx512.mask.psubs.w.256
-+    1, // llvm.x86.avx512.mask.psubs.w.512
-+    1, // llvm.x86.avx512.mask.psubus.b.128
-+    1, // llvm.x86.avx512.mask.psubus.b.256
-+    1, // llvm.x86.avx512.mask.psubus.b.512
-+    1, // llvm.x86.avx512.mask.psubus.w.128
-+    1, // llvm.x86.avx512.mask.psubus.w.256
-+    1, // llvm.x86.avx512.mask.psubus.w.512
-+    1, // llvm.x86.avx512.mask.pternlog.d.128
-+    1, // llvm.x86.avx512.mask.pternlog.d.256
-+    1, // llvm.x86.avx512.mask.pternlog.d.512
-+    1, // llvm.x86.avx512.mask.pternlog.q.128
-+    1, // llvm.x86.avx512.mask.pternlog.q.256
-+    1, // llvm.x86.avx512.mask.pternlog.q.512
-+    1, // llvm.x86.avx512.mask.range.pd.128
-+    1, // llvm.x86.avx512.mask.range.pd.256
-+    1, // llvm.x86.avx512.mask.range.pd.512
-+    1, // llvm.x86.avx512.mask.range.ps.128
-+    1, // llvm.x86.avx512.mask.range.ps.256
-+    1, // llvm.x86.avx512.mask.range.ps.512
-+    1, // llvm.x86.avx512.mask.range.sd
-+    1, // llvm.x86.avx512.mask.range.ss
-+    1, // llvm.x86.avx512.mask.reduce.pd.128
-+    1, // llvm.x86.avx512.mask.reduce.pd.256
-+    1, // llvm.x86.avx512.mask.reduce.pd.512
-+    1, // llvm.x86.avx512.mask.reduce.ps.128
-+    1, // llvm.x86.avx512.mask.reduce.ps.256
-+    1, // llvm.x86.avx512.mask.reduce.ps.512
-+    1, // llvm.x86.avx512.mask.reduce.sd
-+    1, // llvm.x86.avx512.mask.reduce.ss
-+    1, // llvm.x86.avx512.mask.rndscale.pd.128
-+    1, // llvm.x86.avx512.mask.rndscale.pd.256
-+    1, // llvm.x86.avx512.mask.rndscale.pd.512
-+    1, // llvm.x86.avx512.mask.rndscale.ps.128
-+    1, // llvm.x86.avx512.mask.rndscale.ps.256
-+    1, // llvm.x86.avx512.mask.rndscale.ps.512
-+    1, // llvm.x86.avx512.mask.rndscale.sd
-+    1, // llvm.x86.avx512.mask.rndscale.ss
-+    1, // llvm.x86.avx512.mask.scalef.pd.128
-+    1, // llvm.x86.avx512.mask.scalef.pd.256
-+    1, // llvm.x86.avx512.mask.scalef.pd.512
-+    1, // llvm.x86.avx512.mask.scalef.ps.128
-+    1, // llvm.x86.avx512.mask.scalef.ps.256
-+    1, // llvm.x86.avx512.mask.scalef.ps.512
-+    1, // llvm.x86.avx512.mask.scalef.sd
-+    1, // llvm.x86.avx512.mask.scalef.ss
-+    1, // llvm.x86.avx512.mask.shuf.f32x4
-+    1, // llvm.x86.avx512.mask.shuf.f32x4.256
-+    1, // llvm.x86.avx512.mask.shuf.f64x2
-+    1, // llvm.x86.avx512.mask.shuf.f64x2.256
-+    1, // llvm.x86.avx512.mask.shuf.i32x4
-+    1, // llvm.x86.avx512.mask.shuf.i32x4.256
-+    1, // llvm.x86.avx512.mask.shuf.i64x2
-+    1, // llvm.x86.avx512.mask.shuf.i64x2.256
-+    1, // llvm.x86.avx512.mask.sqrt.pd.128
-+    1, // llvm.x86.avx512.mask.sqrt.pd.256
-+    1, // llvm.x86.avx512.mask.sqrt.pd.512
-+    1, // llvm.x86.avx512.mask.sqrt.ps.128
-+    1, // llvm.x86.avx512.mask.sqrt.ps.256
-+    1, // llvm.x86.avx512.mask.sqrt.ps.512
-+    1, // llvm.x86.avx512.mask.sqrt.sd
-+    1, // llvm.x86.avx512.mask.sqrt.ss
-+    18, // llvm.x86.avx512.mask.store.ss
-+    1, // llvm.x86.avx512.mask.sub.pd.512
-+    1, // llvm.x86.avx512.mask.sub.ps.512
-+    1, // llvm.x86.avx512.mask.sub.sd.round
-+    1, // llvm.x86.avx512.mask.sub.ss.round
-+    1, // llvm.x86.avx512.mask.ucmp.b.128
-+    1, // llvm.x86.avx512.mask.ucmp.b.256
-+    1, // llvm.x86.avx512.mask.ucmp.b.512
-+    1, // llvm.x86.avx512.mask.ucmp.d.128
-+    1, // llvm.x86.avx512.mask.ucmp.d.256
-+    1, // llvm.x86.avx512.mask.ucmp.d.512
-+    1, // llvm.x86.avx512.mask.ucmp.q.128
-+    1, // llvm.x86.avx512.mask.ucmp.q.256
-+    1, // llvm.x86.avx512.mask.ucmp.q.512
-+    1, // llvm.x86.avx512.mask.ucmp.w.128
-+    1, // llvm.x86.avx512.mask.ucmp.w.256
-+    1, // llvm.x86.avx512.mask.ucmp.w.512
-+    1, // llvm.x86.avx512.mask.vcvtph2ps.128
-+    1, // llvm.x86.avx512.mask.vcvtph2ps.256
-+    1, // llvm.x86.avx512.mask.vcvtph2ps.512
-+    1, // llvm.x86.avx512.mask.vcvtps2ph.128
-+    1, // llvm.x86.avx512.mask.vcvtps2ph.256
-+    1, // llvm.x86.avx512.mask.vcvtps2ph.512
-+    1, // llvm.x86.avx512.mask.vextractf32x4.256
-+    1, // llvm.x86.avx512.mask.vextractf32x4.512
-+    1, // llvm.x86.avx512.mask.vextractf32x8.512
-+    1, // llvm.x86.avx512.mask.vextractf64x2.256
-+    1, // llvm.x86.avx512.mask.vextractf64x2.512
-+    1, // llvm.x86.avx512.mask.vextractf64x4.512
-+    1, // llvm.x86.avx512.mask.vextracti32x4.256
-+    1, // llvm.x86.avx512.mask.vextracti32x4.512
-+    1, // llvm.x86.avx512.mask.vextracti32x8.512
-+    1, // llvm.x86.avx512.mask.vextracti64x2.256
-+    1, // llvm.x86.avx512.mask.vextracti64x2.512
-+    1, // llvm.x86.avx512.mask.vextracti64x4.512
-+    1, // llvm.x86.avx512.mask.vfmadd.pd.128
-+    1, // llvm.x86.avx512.mask.vfmadd.pd.256
-+    1, // llvm.x86.avx512.mask.vfmadd.pd.512
-+    1, // llvm.x86.avx512.mask.vfmadd.ps.128
-+    1, // llvm.x86.avx512.mask.vfmadd.ps.256
-+    1, // llvm.x86.avx512.mask.vfmadd.ps.512
-+    1, // llvm.x86.avx512.mask.vfmadd.sd
-+    1, // llvm.x86.avx512.mask.vfmadd.ss
-+    1, // llvm.x86.avx512.mask.vfmaddsub.pd.128
-+    1, // llvm.x86.avx512.mask.vfmaddsub.pd.256
-+    1, // llvm.x86.avx512.mask.vfmaddsub.pd.512
-+    1, // llvm.x86.avx512.mask.vfmaddsub.ps.128
-+    1, // llvm.x86.avx512.mask.vfmaddsub.ps.256
-+    1, // llvm.x86.avx512.mask.vfmaddsub.ps.512
-+    1, // llvm.x86.avx512.mask.vfnmadd.pd.128
-+    1, // llvm.x86.avx512.mask.vfnmadd.pd.256
-+    1, // llvm.x86.avx512.mask.vfnmadd.pd.512
-+    1, // llvm.x86.avx512.mask.vfnmadd.ps.128
-+    1, // llvm.x86.avx512.mask.vfnmadd.ps.256
-+    1, // llvm.x86.avx512.mask.vfnmadd.ps.512
-+    1, // llvm.x86.avx512.mask.vfnmsub.pd.128
-+    1, // llvm.x86.avx512.mask.vfnmsub.pd.256
-+    1, // llvm.x86.avx512.mask.vfnmsub.pd.512
-+    1, // llvm.x86.avx512.mask.vfnmsub.ps.128
-+    1, // llvm.x86.avx512.mask.vfnmsub.ps.256
-+    1, // llvm.x86.avx512.mask.vfnmsub.ps.512
-+    1, // llvm.x86.avx512.mask.vpermi2var.d.128
-+    1, // llvm.x86.avx512.mask.vpermi2var.d.256
-+    1, // llvm.x86.avx512.mask.vpermi2var.d.512
-+    1, // llvm.x86.avx512.mask.vpermi2var.hi.128
-+    1, // llvm.x86.avx512.mask.vpermi2var.hi.256
-+    1, // llvm.x86.avx512.mask.vpermi2var.hi.512
-+    1, // llvm.x86.avx512.mask.vpermi2var.pd.128
-+    1, // llvm.x86.avx512.mask.vpermi2var.pd.256
-+    1, // llvm.x86.avx512.mask.vpermi2var.pd.512
-+    1, // llvm.x86.avx512.mask.vpermi2var.ps.128
-+    1, // llvm.x86.avx512.mask.vpermi2var.ps.256
-+    1, // llvm.x86.avx512.mask.vpermi2var.ps.512
-+    1, // llvm.x86.avx512.mask.vpermi2var.q.128
-+    1, // llvm.x86.avx512.mask.vpermi2var.q.256
-+    1, // llvm.x86.avx512.mask.vpermi2var.q.512
-+    1, // llvm.x86.avx512.mask.vpermi2var.qi.128
-+    1, // llvm.x86.avx512.mask.vpermi2var.qi.256
-+    1, // llvm.x86.avx512.mask.vpermi2var.qi.512
-+    1, // llvm.x86.avx512.mask.vpermt2var.d.128
-+    1, // llvm.x86.avx512.mask.vpermt2var.d.256
-+    1, // llvm.x86.avx512.mask.vpermt2var.d.512
-+    1, // llvm.x86.avx512.mask.vpermt2var.hi.128
-+    1, // llvm.x86.avx512.mask.vpermt2var.hi.256
-+    1, // llvm.x86.avx512.mask.vpermt2var.hi.512
-+    1, // llvm.x86.avx512.mask.vpermt2var.pd.128
-+    1, // llvm.x86.avx512.mask.vpermt2var.pd.256
-+    1, // llvm.x86.avx512.mask.vpermt2var.pd.512
-+    1, // llvm.x86.avx512.mask.vpermt2var.ps.128
-+    1, // llvm.x86.avx512.mask.vpermt2var.ps.256
-+    1, // llvm.x86.avx512.mask.vpermt2var.ps.512
-+    1, // llvm.x86.avx512.mask.vpermt2var.q.128
-+    1, // llvm.x86.avx512.mask.vpermt2var.q.256
-+    1, // llvm.x86.avx512.mask.vpermt2var.q.512
-+    1, // llvm.x86.avx512.mask.vpermt2var.qi.128
-+    1, // llvm.x86.avx512.mask.vpermt2var.qi.256
-+    1, // llvm.x86.avx512.mask.vpermt2var.qi.512
-+    1, // llvm.x86.avx512.mask.vpmadd52h.uq.128
-+    1, // llvm.x86.avx512.mask.vpmadd52h.uq.256
-+    1, // llvm.x86.avx512.mask.vpmadd52h.uq.512
-+    1, // llvm.x86.avx512.mask.vpmadd52l.uq.128
-+    1, // llvm.x86.avx512.mask.vpmadd52l.uq.256
-+    1, // llvm.x86.avx512.mask.vpmadd52l.uq.512
-+    1, // llvm.x86.avx512.mask3.vfmadd.pd.128
-+    1, // llvm.x86.avx512.mask3.vfmadd.pd.256
-+    1, // llvm.x86.avx512.mask3.vfmadd.pd.512
-+    1, // llvm.x86.avx512.mask3.vfmadd.ps.128
-+    1, // llvm.x86.avx512.mask3.vfmadd.ps.256
-+    1, // llvm.x86.avx512.mask3.vfmadd.ps.512
-+    1, // llvm.x86.avx512.mask3.vfmadd.sd
-+    1, // llvm.x86.avx512.mask3.vfmadd.ss
-+    1, // llvm.x86.avx512.mask3.vfmaddsub.pd.128
-+    1, // llvm.x86.avx512.mask3.vfmaddsub.pd.256
-+    1, // llvm.x86.avx512.mask3.vfmaddsub.pd.512
-+    1, // llvm.x86.avx512.mask3.vfmaddsub.ps.128
-+    1, // llvm.x86.avx512.mask3.vfmaddsub.ps.256
-+    1, // llvm.x86.avx512.mask3.vfmaddsub.ps.512
-+    1, // llvm.x86.avx512.mask3.vfmsub.pd.128
-+    1, // llvm.x86.avx512.mask3.vfmsub.pd.256
-+    1, // llvm.x86.avx512.mask3.vfmsub.pd.512
-+    1, // llvm.x86.avx512.mask3.vfmsub.ps.128
-+    1, // llvm.x86.avx512.mask3.vfmsub.ps.256
-+    1, // llvm.x86.avx512.mask3.vfmsub.ps.512
-+    1, // llvm.x86.avx512.mask3.vfmsub.sd
-+    1, // llvm.x86.avx512.mask3.vfmsub.ss
-+    1, // llvm.x86.avx512.mask3.vfmsubadd.pd.128
-+    1, // llvm.x86.avx512.mask3.vfmsubadd.pd.256
-+    1, // llvm.x86.avx512.mask3.vfmsubadd.pd.512
-+    1, // llvm.x86.avx512.mask3.vfmsubadd.ps.128
-+    1, // llvm.x86.avx512.mask3.vfmsubadd.ps.256
-+    1, // llvm.x86.avx512.mask3.vfmsubadd.ps.512
-+    1, // llvm.x86.avx512.mask3.vfnmsub.pd.128
-+    1, // llvm.x86.avx512.mask3.vfnmsub.pd.256
-+    1, // llvm.x86.avx512.mask3.vfnmsub.pd.512
-+    1, // llvm.x86.avx512.mask3.vfnmsub.ps.128
-+    1, // llvm.x86.avx512.mask3.vfnmsub.ps.256
-+    1, // llvm.x86.avx512.mask3.vfnmsub.ps.512
-+    1, // llvm.x86.avx512.mask3.vfnmsub.sd
-+    1, // llvm.x86.avx512.mask3.vfnmsub.ss
-+    1, // llvm.x86.avx512.maskz.fixupimm.pd.128
-+    1, // llvm.x86.avx512.maskz.fixupimm.pd.256
-+    1, // llvm.x86.avx512.maskz.fixupimm.pd.512
-+    1, // llvm.x86.avx512.maskz.fixupimm.ps.128
-+    1, // llvm.x86.avx512.maskz.fixupimm.ps.256
-+    1, // llvm.x86.avx512.maskz.fixupimm.ps.512
-+    1, // llvm.x86.avx512.maskz.fixupimm.sd
-+    1, // llvm.x86.avx512.maskz.fixupimm.ss
-+    1, // llvm.x86.avx512.maskz.pternlog.d.128
-+    1, // llvm.x86.avx512.maskz.pternlog.d.256
-+    1, // llvm.x86.avx512.maskz.pternlog.d.512
-+    1, // llvm.x86.avx512.maskz.pternlog.q.128
-+    1, // llvm.x86.avx512.maskz.pternlog.q.256
-+    1, // llvm.x86.avx512.maskz.pternlog.q.512
-+    1, // llvm.x86.avx512.maskz.vfmadd.pd.128
-+    1, // llvm.x86.avx512.maskz.vfmadd.pd.256
-+    1, // llvm.x86.avx512.maskz.vfmadd.pd.512
-+    1, // llvm.x86.avx512.maskz.vfmadd.ps.128
-+    1, // llvm.x86.avx512.maskz.vfmadd.ps.256
-+    1, // llvm.x86.avx512.maskz.vfmadd.ps.512
-+    1, // llvm.x86.avx512.maskz.vfmadd.sd
-+    1, // llvm.x86.avx512.maskz.vfmadd.ss
-+    1, // llvm.x86.avx512.maskz.vfmaddsub.pd.128
-+    1, // llvm.x86.avx512.maskz.vfmaddsub.pd.256
-+    1, // llvm.x86.avx512.maskz.vfmaddsub.pd.512
-+    1, // llvm.x86.avx512.maskz.vfmaddsub.ps.128
-+    1, // llvm.x86.avx512.maskz.vfmaddsub.ps.256
-+    1, // llvm.x86.avx512.maskz.vfmaddsub.ps.512
-+    1, // llvm.x86.avx512.maskz.vpermt2var.d.128
-+    1, // llvm.x86.avx512.maskz.vpermt2var.d.256
-+    1, // llvm.x86.avx512.maskz.vpermt2var.d.512
-+    1, // llvm.x86.avx512.maskz.vpermt2var.hi.128
-+    1, // llvm.x86.avx512.maskz.vpermt2var.hi.256
-+    1, // llvm.x86.avx512.maskz.vpermt2var.hi.512
-+    1, // llvm.x86.avx512.maskz.vpermt2var.pd.128
-+    1, // llvm.x86.avx512.maskz.vpermt2var.pd.256
-+    1, // llvm.x86.avx512.maskz.vpermt2var.pd.512
-+    1, // llvm.x86.avx512.maskz.vpermt2var.ps.128
-+    1, // llvm.x86.avx512.maskz.vpermt2var.ps.256
-+    1, // llvm.x86.avx512.maskz.vpermt2var.ps.512
-+    1, // llvm.x86.avx512.maskz.vpermt2var.q.128
-+    1, // llvm.x86.avx512.maskz.vpermt2var.q.256
-+    1, // llvm.x86.avx512.maskz.vpermt2var.q.512
-+    1, // llvm.x86.avx512.maskz.vpermt2var.qi.128
-+    1, // llvm.x86.avx512.maskz.vpermt2var.qi.256
-+    1, // llvm.x86.avx512.maskz.vpermt2var.qi.512
-+    1, // llvm.x86.avx512.maskz.vpmadd52h.uq.128
-+    1, // llvm.x86.avx512.maskz.vpmadd52h.uq.256
-+    1, // llvm.x86.avx512.maskz.vpmadd52h.uq.512
-+    1, // llvm.x86.avx512.maskz.vpmadd52l.uq.128
-+    1, // llvm.x86.avx512.maskz.vpmadd52l.uq.256
-+    1, // llvm.x86.avx512.maskz.vpmadd52l.uq.512
-+    13, // llvm.x86.avx512.movntdqa
-+    1, // llvm.x86.avx512.psad.bw.512
-+    1, // llvm.x86.avx512.pshuf.b.512
-+    1, // llvm.x86.avx512.psll.d.512
-+    1, // llvm.x86.avx512.psll.q.512
-+    1, // llvm.x86.avx512.psll.w.512
-+    1, // llvm.x86.avx512.pslli.d.512
-+    1, // llvm.x86.avx512.pslli.q.512
-+    1, // llvm.x86.avx512.pslli.w.512
-+    1, // llvm.x86.avx512.psllv.d.512
-+    1, // llvm.x86.avx512.psllv.q.512
-+    1, // llvm.x86.avx512.psllv.w.128
-+    1, // llvm.x86.avx512.psllv.w.256
-+    1, // llvm.x86.avx512.psllv.w.512
-+    1, // llvm.x86.avx512.psra.d.512
-+    1, // llvm.x86.avx512.psra.q.128
-+    1, // llvm.x86.avx512.psra.q.256
-+    1, // llvm.x86.avx512.psra.q.512
-+    1, // llvm.x86.avx512.psra.w.512
-+    1, // llvm.x86.avx512.psrai.d.512
-+    1, // llvm.x86.avx512.psrai.q.128
-+    1, // llvm.x86.avx512.psrai.q.256
-+    1, // llvm.x86.avx512.psrai.q.512
-+    1, // llvm.x86.avx512.psrai.w.512
-+    1, // llvm.x86.avx512.psrav.d.512
-+    1, // llvm.x86.avx512.psrav.q.128
-+    1, // llvm.x86.avx512.psrav.q.256
-+    1, // llvm.x86.avx512.psrav.q.512
-+    1, // llvm.x86.avx512.psrav.w.128
-+    1, // llvm.x86.avx512.psrav.w.256
-+    1, // llvm.x86.avx512.psrav.w.512
-+    1, // llvm.x86.avx512.psrl.d.512
-+    1, // llvm.x86.avx512.psrl.q.512
-+    1, // llvm.x86.avx512.psrl.w.512
-+    1, // llvm.x86.avx512.psrli.d.512
-+    1, // llvm.x86.avx512.psrli.q.512
-+    1, // llvm.x86.avx512.psrli.w.512
-+    1, // llvm.x86.avx512.psrlv.d.512
-+    1, // llvm.x86.avx512.psrlv.q.512
-+    1, // llvm.x86.avx512.psrlv.w.128
-+    1, // llvm.x86.avx512.psrlv.w.256
-+    1, // llvm.x86.avx512.psrlv.w.512
-+    1, // llvm.x86.avx512.ptestm.b.128
-+    1, // llvm.x86.avx512.ptestm.b.256
-+    1, // llvm.x86.avx512.ptestm.b.512
-+    1, // llvm.x86.avx512.ptestm.d.128
-+    1, // llvm.x86.avx512.ptestm.d.256
-+    1, // llvm.x86.avx512.ptestm.d.512
-+    1, // llvm.x86.avx512.ptestm.q.128
-+    1, // llvm.x86.avx512.ptestm.q.256
-+    1, // llvm.x86.avx512.ptestm.q.512
-+    1, // llvm.x86.avx512.ptestm.w.128
-+    1, // llvm.x86.avx512.ptestm.w.256
-+    1, // llvm.x86.avx512.ptestm.w.512
-+    1, // llvm.x86.avx512.ptestnm.b.128
-+    1, // llvm.x86.avx512.ptestnm.b.256
-+    1, // llvm.x86.avx512.ptestnm.b.512
-+    1, // llvm.x86.avx512.ptestnm.d.128
-+    1, // llvm.x86.avx512.ptestnm.d.256
-+    1, // llvm.x86.avx512.ptestnm.d.512
-+    1, // llvm.x86.avx512.ptestnm.q.128
-+    1, // llvm.x86.avx512.ptestnm.q.256
-+    1, // llvm.x86.avx512.ptestnm.q.512
-+    1, // llvm.x86.avx512.ptestnm.w.128
-+    1, // llvm.x86.avx512.ptestnm.w.256
-+    1, // llvm.x86.avx512.ptestnm.w.512
-+    1, // llvm.x86.avx512.rcp14.pd.128
-+    1, // llvm.x86.avx512.rcp14.pd.256
-+    1, // llvm.x86.avx512.rcp14.pd.512
-+    1, // llvm.x86.avx512.rcp14.ps.128
-+    1, // llvm.x86.avx512.rcp14.ps.256
-+    1, // llvm.x86.avx512.rcp14.ps.512
-+    1, // llvm.x86.avx512.rcp14.sd
-+    1, // llvm.x86.avx512.rcp14.ss
-+    1, // llvm.x86.avx512.rcp28.pd
-+    1, // llvm.x86.avx512.rcp28.ps
-+    1, // llvm.x86.avx512.rcp28.sd
-+    1, // llvm.x86.avx512.rcp28.ss
-+    1, // llvm.x86.avx512.rsqrt14.pd.128
-+    1, // llvm.x86.avx512.rsqrt14.pd.256
-+    1, // llvm.x86.avx512.rsqrt14.pd.512
-+    1, // llvm.x86.avx512.rsqrt14.ps.128
-+    1, // llvm.x86.avx512.rsqrt14.ps.256
-+    1, // llvm.x86.avx512.rsqrt14.ps.512
-+    1, // llvm.x86.avx512.rsqrt14.sd
-+    1, // llvm.x86.avx512.rsqrt14.ss
-+    1, // llvm.x86.avx512.rsqrt28.pd
-+    1, // llvm.x86.avx512.rsqrt28.ps
-+    1, // llvm.x86.avx512.rsqrt28.sd
-+    1, // llvm.x86.avx512.rsqrt28.ss
-+    18, // llvm.x86.avx512.scatter.dpd.512
-+    18, // llvm.x86.avx512.scatter.dpi.512
-+    18, // llvm.x86.avx512.scatter.dpq.512
-+    18, // llvm.x86.avx512.scatter.dps.512
-+    18, // llvm.x86.avx512.scatter.qpd.512
-+    18, // llvm.x86.avx512.scatter.qpi.512
-+    18, // llvm.x86.avx512.scatter.qpq.512
-+    18, // llvm.x86.avx512.scatter.qps.512
-+    18, // llvm.x86.avx512.scatterdiv2.df
-+    18, // llvm.x86.avx512.scatterdiv2.di
-+    18, // llvm.x86.avx512.scatterdiv4.df
-+    18, // llvm.x86.avx512.scatterdiv4.di
-+    18, // llvm.x86.avx512.scatterdiv4.sf
-+    18, // llvm.x86.avx512.scatterdiv4.si
-+    18, // llvm.x86.avx512.scatterdiv8.sf
-+    18, // llvm.x86.avx512.scatterdiv8.si
-+    18, // llvm.x86.avx512.scatterpf.dpd.512
-+    18, // llvm.x86.avx512.scatterpf.dps.512
-+    18, // llvm.x86.avx512.scatterpf.qpd.512
-+    18, // llvm.x86.avx512.scatterpf.qps.512
-+    18, // llvm.x86.avx512.scattersiv2.df
-+    18, // llvm.x86.avx512.scattersiv2.di
-+    18, // llvm.x86.avx512.scattersiv4.df
-+    18, // llvm.x86.avx512.scattersiv4.di
-+    18, // llvm.x86.avx512.scattersiv4.sf
-+    18, // llvm.x86.avx512.scattersiv4.si
-+    18, // llvm.x86.avx512.scattersiv8.sf
-+    18, // llvm.x86.avx512.scattersiv8.si
-+    2, // llvm.x86.avx512.vbroadcast.sd.512
-+    2, // llvm.x86.avx512.vbroadcast.ss.512
-+    1, // llvm.x86.avx512.vcomi.sd
-+    1, // llvm.x86.avx512.vcomi.ss
-+    1, // llvm.x86.avx512.vcvtsd2si32
-+    1, // llvm.x86.avx512.vcvtsd2si64
-+    1, // llvm.x86.avx512.vcvtsd2usi32
-+    1, // llvm.x86.avx512.vcvtsd2usi64
-+    1, // llvm.x86.avx512.vcvtss2si32
-+    1, // llvm.x86.avx512.vcvtss2si64
-+    1, // llvm.x86.avx512.vcvtss2usi32
-+    1, // llvm.x86.avx512.vcvtss2usi64
-+    1, // llvm.x86.avx512.vpermilvar.pd.512
-+    1, // llvm.x86.avx512.vpermilvar.ps.512
-+    1, // llvm.x86.bmi.bextr.32
-+    1, // llvm.x86.bmi.bextr.64
-+    1, // llvm.x86.bmi.bzhi.32
-+    1, // llvm.x86.bmi.bzhi.64
-+    1, // llvm.x86.bmi.pdep.32
-+    1, // llvm.x86.bmi.pdep.64
-+    1, // llvm.x86.bmi.pext.32
-+    1, // llvm.x86.bmi.pext.64
-+    3, // llvm.x86.clflushopt
-+    3, // llvm.x86.flags.read.u32
-+    3, // llvm.x86.flags.read.u64
-+    3, // llvm.x86.flags.write.u32
-+    3, // llvm.x86.flags.write.u64
-+    1, // llvm.x86.fma.vfmadd.pd
-+    1, // llvm.x86.fma.vfmadd.pd.256
-+    1, // llvm.x86.fma.vfmadd.ps
-+    1, // llvm.x86.fma.vfmadd.ps.256
-+    1, // llvm.x86.fma.vfmadd.sd
-+    1, // llvm.x86.fma.vfmadd.ss
-+    1, // llvm.x86.fma.vfmaddsub.pd
-+    1, // llvm.x86.fma.vfmaddsub.pd.256
-+    1, // llvm.x86.fma.vfmaddsub.ps
-+    1, // llvm.x86.fma.vfmaddsub.ps.256
-+    1, // llvm.x86.fma.vfmsub.pd
-+    1, // llvm.x86.fma.vfmsub.pd.256
-+    1, // llvm.x86.fma.vfmsub.ps
-+    1, // llvm.x86.fma.vfmsub.ps.256
-+    1, // llvm.x86.fma.vfmsub.sd
-+    1, // llvm.x86.fma.vfmsub.ss
-+    1, // llvm.x86.fma.vfmsubadd.pd
-+    1, // llvm.x86.fma.vfmsubadd.pd.256
-+    1, // llvm.x86.fma.vfmsubadd.ps
-+    1, // llvm.x86.fma.vfmsubadd.ps.256
-+    1, // llvm.x86.fma.vfnmadd.pd
-+    1, // llvm.x86.fma.vfnmadd.pd.256
-+    1, // llvm.x86.fma.vfnmadd.ps
-+    1, // llvm.x86.fma.vfnmadd.ps.256
-+    1, // llvm.x86.fma.vfnmadd.sd
-+    1, // llvm.x86.fma.vfnmadd.ss
-+    1, // llvm.x86.fma.vfnmsub.pd
-+    1, // llvm.x86.fma.vfnmsub.pd.256
-+    1, // llvm.x86.fma.vfnmsub.ps
-+    1, // llvm.x86.fma.vfnmsub.ps.256
-+    1, // llvm.x86.fma.vfnmsub.sd
-+    1, // llvm.x86.fma.vfnmsub.ss
-+    3, // llvm.x86.fxrstor
-+    3, // llvm.x86.fxrstor64
-+    3, // llvm.x86.fxsave
-+    3, // llvm.x86.fxsave64
-+    3, // llvm.x86.int
-+    3, // llvm.x86.mmx.emms
-+    3, // llvm.x86.mmx.femms
-+    3, // llvm.x86.mmx.maskmovq
-+    3, // llvm.x86.mmx.movnt.dq
-+    1, // llvm.x86.mmx.packssdw
-+    1, // llvm.x86.mmx.packsswb
-+    1, // llvm.x86.mmx.packuswb
-+    1, // llvm.x86.mmx.padd.b
-+    1, // llvm.x86.mmx.padd.d
-+    1, // llvm.x86.mmx.padd.q
-+    1, // llvm.x86.mmx.padd.w
-+    1, // llvm.x86.mmx.padds.b
-+    1, // llvm.x86.mmx.padds.w
-+    1, // llvm.x86.mmx.paddus.b
-+    1, // llvm.x86.mmx.paddus.w
-+    1, // llvm.x86.mmx.palignr.b
-+    1, // llvm.x86.mmx.pand
-+    1, // llvm.x86.mmx.pandn
-+    1, // llvm.x86.mmx.pavg.b
-+    1, // llvm.x86.mmx.pavg.w
-+    1, // llvm.x86.mmx.pcmpeq.b
-+    1, // llvm.x86.mmx.pcmpeq.d
-+    1, // llvm.x86.mmx.pcmpeq.w
-+    1, // llvm.x86.mmx.pcmpgt.b
-+    1, // llvm.x86.mmx.pcmpgt.d
-+    1, // llvm.x86.mmx.pcmpgt.w
-+    1, // llvm.x86.mmx.pextr.w
-+    1, // llvm.x86.mmx.pinsr.w
-+    1, // llvm.x86.mmx.pmadd.wd
-+    1, // llvm.x86.mmx.pmaxs.w
-+    1, // llvm.x86.mmx.pmaxu.b
-+    1, // llvm.x86.mmx.pmins.w
-+    1, // llvm.x86.mmx.pminu.b
-+    1, // llvm.x86.mmx.pmovmskb
-+    1, // llvm.x86.mmx.pmulh.w
-+    1, // llvm.x86.mmx.pmulhu.w
-+    1, // llvm.x86.mmx.pmull.w
-+    1, // llvm.x86.mmx.pmulu.dq
-+    1, // llvm.x86.mmx.por
-+    1, // llvm.x86.mmx.psad.bw
-+    1, // llvm.x86.mmx.psll.d
-+    1, // llvm.x86.mmx.psll.q
-+    1, // llvm.x86.mmx.psll.w
-+    1, // llvm.x86.mmx.pslli.d
-+    1, // llvm.x86.mmx.pslli.q
-+    1, // llvm.x86.mmx.pslli.w
-+    1, // llvm.x86.mmx.psra.d
-+    1, // llvm.x86.mmx.psra.w
-+    1, // llvm.x86.mmx.psrai.d
-+    1, // llvm.x86.mmx.psrai.w
-+    1, // llvm.x86.mmx.psrl.d
-+    1, // llvm.x86.mmx.psrl.q
-+    1, // llvm.x86.mmx.psrl.w
-+    1, // llvm.x86.mmx.psrli.d
-+    1, // llvm.x86.mmx.psrli.q
-+    1, // llvm.x86.mmx.psrli.w
-+    1, // llvm.x86.mmx.psub.b
-+    1, // llvm.x86.mmx.psub.d
-+    1, // llvm.x86.mmx.psub.q
-+    1, // llvm.x86.mmx.psub.w
-+    1, // llvm.x86.mmx.psubs.b
-+    1, // llvm.x86.mmx.psubs.w
-+    1, // llvm.x86.mmx.psubus.b
-+    1, // llvm.x86.mmx.psubus.w
-+    1, // llvm.x86.mmx.punpckhbw
-+    1, // llvm.x86.mmx.punpckhdq
-+    1, // llvm.x86.mmx.punpckhwd
-+    1, // llvm.x86.mmx.punpcklbw
-+    1, // llvm.x86.mmx.punpckldq
-+    1, // llvm.x86.mmx.punpcklwd
-+    1, // llvm.x86.mmx.pxor
-+    3, // llvm.x86.monitorx
-+    3, // llvm.x86.mwaitx
-+    1, // llvm.x86.pclmulqdq
-+    3, // llvm.x86.rdfsbase.32
-+    3, // llvm.x86.rdfsbase.64
-+    3, // llvm.x86.rdgsbase.32
-+    3, // llvm.x86.rdgsbase.64
-+    3, // llvm.x86.rdpkru
-+    3, // llvm.x86.rdpmc
-+    3, // llvm.x86.rdrand.16
-+    3, // llvm.x86.rdrand.32
-+    3, // llvm.x86.rdrand.64
-+    3, // llvm.x86.rdseed.16
-+    3, // llvm.x86.rdseed.32
-+    3, // llvm.x86.rdseed.64
-+    3, // llvm.x86.rdtsc
-+    18, // llvm.x86.rdtscp
-+    3, // llvm.x86.seh.ehguard
-+    3, // llvm.x86.seh.ehregnode
-+    1, // llvm.x86.seh.lsda
-+    1, // llvm.x86.seh.recoverfp
-+    1, // llvm.x86.sha1msg1
-+    1, // llvm.x86.sha1msg2
-+    1, // llvm.x86.sha1nexte
-+    1, // llvm.x86.sha1rnds4
-+    1, // llvm.x86.sha256msg1
-+    1, // llvm.x86.sha256msg2
-+    1, // llvm.x86.sha256rnds2
-+    1, // llvm.x86.sse.cmp.ps
-+    1, // llvm.x86.sse.cmp.ss
-+    1, // llvm.x86.sse.comieq.ss
-+    1, // llvm.x86.sse.comige.ss
-+    1, // llvm.x86.sse.comigt.ss
-+    1, // llvm.x86.sse.comile.ss
-+    1, // llvm.x86.sse.comilt.ss
-+    1, // llvm.x86.sse.comineq.ss
-+    1, // llvm.x86.sse.cvtpd2pi
-+    1, // llvm.x86.sse.cvtpi2pd
-+    1, // llvm.x86.sse.cvtpi2ps
-+    1, // llvm.x86.sse.cvtps2pi
-+    1, // llvm.x86.sse.cvtsi2ss
-+    1, // llvm.x86.sse.cvtsi642ss
-+    1, // llvm.x86.sse.cvtss2si
-+    1, // llvm.x86.sse.cvtss2si64
-+    1, // llvm.x86.sse.cvttpd2pi
-+    1, // llvm.x86.sse.cvttps2pi
-+    1, // llvm.x86.sse.cvttss2si
-+    1, // llvm.x86.sse.cvttss2si64
-+    3, // llvm.x86.sse.ldmxcsr
-+    1, // llvm.x86.sse.max.ps
-+    1, // llvm.x86.sse.max.ss
-+    1, // llvm.x86.sse.min.ps
-+    1, // llvm.x86.sse.min.ss
-+    1, // llvm.x86.sse.movmsk.ps
-+    1, // llvm.x86.sse.pshuf.w
-+    1, // llvm.x86.sse.rcp.ps
-+    1, // llvm.x86.sse.rcp.ss
-+    1, // llvm.x86.sse.rsqrt.ps
-+    1, // llvm.x86.sse.rsqrt.ss
-+    3, // llvm.x86.sse.sfence
-+    1, // llvm.x86.sse.sqrt.ps
-+    1, // llvm.x86.sse.sqrt.ss
-+    3, // llvm.x86.sse.stmxcsr
-+    1, // llvm.x86.sse.ucomieq.ss
-+    1, // llvm.x86.sse.ucomige.ss
-+    1, // llvm.x86.sse.ucomigt.ss
-+    1, // llvm.x86.sse.ucomile.ss
-+    1, // llvm.x86.sse.ucomilt.ss
-+    1, // llvm.x86.sse.ucomineq.ss
-+    3, // llvm.x86.sse2.clflush
-+    1, // llvm.x86.sse2.cmp.pd
-+    1, // llvm.x86.sse2.cmp.sd
-+    1, // llvm.x86.sse2.comieq.sd
-+    1, // llvm.x86.sse2.comige.sd
-+    1, // llvm.x86.sse2.comigt.sd
-+    1, // llvm.x86.sse2.comile.sd
-+    1, // llvm.x86.sse2.comilt.sd
-+    1, // llvm.x86.sse2.comineq.sd
-+    1, // llvm.x86.sse2.cvtdq2ps
-+    1, // llvm.x86.sse2.cvtpd2dq
-+    1, // llvm.x86.sse2.cvtpd2ps
-+    1, // llvm.x86.sse2.cvtps2dq
-+    1, // llvm.x86.sse2.cvtsd2si
-+    1, // llvm.x86.sse2.cvtsd2si64
-+    1, // llvm.x86.sse2.cvtsd2ss
-+    1, // llvm.x86.sse2.cvtsi2sd
-+    1, // llvm.x86.sse2.cvtsi642sd
-+    1, // llvm.x86.sse2.cvtss2sd
-+    1, // llvm.x86.sse2.cvttpd2dq
-+    1, // llvm.x86.sse2.cvttps2dq
-+    1, // llvm.x86.sse2.cvttsd2si
-+    1, // llvm.x86.sse2.cvttsd2si64
-+    3, // llvm.x86.sse2.lfence
-+    3, // llvm.x86.sse2.maskmov.dqu
-+    1, // llvm.x86.sse2.max.pd
-+    1, // llvm.x86.sse2.max.sd
-+    3, // llvm.x86.sse2.mfence
-+    1, // llvm.x86.sse2.min.pd
-+    1, // llvm.x86.sse2.min.sd
-+    1, // llvm.x86.sse2.movmsk.pd
-+    1, // llvm.x86.sse2.packssdw.128
-+    1, // llvm.x86.sse2.packsswb.128
-+    1, // llvm.x86.sse2.packuswb.128
-+    1, // llvm.x86.sse2.padds.b
-+    1, // llvm.x86.sse2.padds.w
-+    1, // llvm.x86.sse2.paddus.b
-+    1, // llvm.x86.sse2.paddus.w
-+    3, // llvm.x86.sse2.pause
-+    1, // llvm.x86.sse2.pavg.b
-+    1, // llvm.x86.sse2.pavg.w
-+    1, // llvm.x86.sse2.pmadd.wd
-+    1, // llvm.x86.sse2.pmovmskb.128
-+    1, // llvm.x86.sse2.pmulh.w
-+    1, // llvm.x86.sse2.pmulhu.w
-+    1, // llvm.x86.sse2.pmulu.dq
-+    1, // llvm.x86.sse2.psad.bw
-+    1, // llvm.x86.sse2.psll.d
-+    1, // llvm.x86.sse2.psll.q
-+    1, // llvm.x86.sse2.psll.w
-+    1, // llvm.x86.sse2.pslli.d
-+    1, // llvm.x86.sse2.pslli.q
-+    1, // llvm.x86.sse2.pslli.w
-+    1, // llvm.x86.sse2.psra.d
-+    1, // llvm.x86.sse2.psra.w
-+    1, // llvm.x86.sse2.psrai.d
-+    1, // llvm.x86.sse2.psrai.w
-+    1, // llvm.x86.sse2.psrl.d
-+    1, // llvm.x86.sse2.psrl.q
-+    1, // llvm.x86.sse2.psrl.w
-+    1, // llvm.x86.sse2.psrli.d
-+    1, // llvm.x86.sse2.psrli.q
-+    1, // llvm.x86.sse2.psrli.w
-+    1, // llvm.x86.sse2.psubs.b
-+    1, // llvm.x86.sse2.psubs.w
-+    1, // llvm.x86.sse2.psubus.b
-+    1, // llvm.x86.sse2.psubus.w
-+    1, // llvm.x86.sse2.sqrt.pd
-+    1, // llvm.x86.sse2.sqrt.sd
-+    1, // llvm.x86.sse2.ucomieq.sd
-+    1, // llvm.x86.sse2.ucomige.sd
-+    1, // llvm.x86.sse2.ucomigt.sd
-+    1, // llvm.x86.sse2.ucomile.sd
-+    1, // llvm.x86.sse2.ucomilt.sd
-+    1, // llvm.x86.sse2.ucomineq.sd
-+    1, // llvm.x86.sse3.addsub.pd
-+    1, // llvm.x86.sse3.addsub.ps
-+    1, // llvm.x86.sse3.hadd.pd
-+    1, // llvm.x86.sse3.hadd.ps
-+    1, // llvm.x86.sse3.hsub.pd
-+    1, // llvm.x86.sse3.hsub.ps
-+    13, // llvm.x86.sse3.ldu.dq
-+    3, // llvm.x86.sse3.monitor
-+    3, // llvm.x86.sse3.mwait
-+    1, // llvm.x86.sse41.blendvpd
-+    1, // llvm.x86.sse41.blendvps
-+    1, // llvm.x86.sse41.dppd
-+    1, // llvm.x86.sse41.dpps
-+    1, // llvm.x86.sse41.insertps
-+    13, // llvm.x86.sse41.movntdqa
-+    1, // llvm.x86.sse41.mpsadbw
-+    1, // llvm.x86.sse41.packusdw
-+    1, // llvm.x86.sse41.pblendvb
-+    1, // llvm.x86.sse41.phminposuw
-+    1, // llvm.x86.sse41.pmuldq
-+    1, // llvm.x86.sse41.ptestc
-+    1, // llvm.x86.sse41.ptestnzc
-+    1, // llvm.x86.sse41.ptestz
-+    1, // llvm.x86.sse41.round.pd
-+    1, // llvm.x86.sse41.round.ps
-+    1, // llvm.x86.sse41.round.sd
-+    1, // llvm.x86.sse41.round.ss
-+    1, // llvm.x86.sse42.crc32.32.16
-+    1, // llvm.x86.sse42.crc32.32.32
-+    1, // llvm.x86.sse42.crc32.32.8
-+    1, // llvm.x86.sse42.crc32.64.64
-+    1, // llvm.x86.sse42.pcmpestri128
-+    1, // llvm.x86.sse42.pcmpestria128
-+    1, // llvm.x86.sse42.pcmpestric128
-+    1, // llvm.x86.sse42.pcmpestrio128
-+    1, // llvm.x86.sse42.pcmpestris128
-+    1, // llvm.x86.sse42.pcmpestriz128
-+    1, // llvm.x86.sse42.pcmpestrm128
-+    1, // llvm.x86.sse42.pcmpistri128
-+    1, // llvm.x86.sse42.pcmpistria128
-+    1, // llvm.x86.sse42.pcmpistric128
-+    1, // llvm.x86.sse42.pcmpistrio128
-+    1, // llvm.x86.sse42.pcmpistris128
-+    1, // llvm.x86.sse42.pcmpistriz128
-+    1, // llvm.x86.sse42.pcmpistrm128
-+    1, // llvm.x86.sse4a.extrq
-+    1, // llvm.x86.sse4a.extrqi
-+    1, // llvm.x86.sse4a.insertq
-+    1, // llvm.x86.sse4a.insertqi
-+    1, // llvm.x86.ssse3.pabs.b
-+    1, // llvm.x86.ssse3.pabs.b.128
-+    1, // llvm.x86.ssse3.pabs.d
-+    1, // llvm.x86.ssse3.pabs.d.128
-+    1, // llvm.x86.ssse3.pabs.w
-+    1, // llvm.x86.ssse3.pabs.w.128
-+    1, // llvm.x86.ssse3.phadd.d
-+    1, // llvm.x86.ssse3.phadd.d.128
-+    1, // llvm.x86.ssse3.phadd.sw
-+    1, // llvm.x86.ssse3.phadd.sw.128
-+    1, // llvm.x86.ssse3.phadd.w
-+    1, // llvm.x86.ssse3.phadd.w.128
-+    1, // llvm.x86.ssse3.phsub.d
-+    1, // llvm.x86.ssse3.phsub.d.128
-+    1, // llvm.x86.ssse3.phsub.sw
-+    1, // llvm.x86.ssse3.phsub.sw.128
-+    1, // llvm.x86.ssse3.phsub.w
-+    1, // llvm.x86.ssse3.phsub.w.128
-+    1, // llvm.x86.ssse3.pmadd.ub.sw
-+    1, // llvm.x86.ssse3.pmadd.ub.sw.128
-+    1, // llvm.x86.ssse3.pmul.hr.sw
-+    1, // llvm.x86.ssse3.pmul.hr.sw.128
-+    1, // llvm.x86.ssse3.pshuf.b
-+    1, // llvm.x86.ssse3.pshuf.b.128
-+    1, // llvm.x86.ssse3.psign.b
-+    1, // llvm.x86.ssse3.psign.b.128
-+    1, // llvm.x86.ssse3.psign.d
-+    1, // llvm.x86.ssse3.psign.d.128
-+    1, // llvm.x86.ssse3.psign.w
-+    1, // llvm.x86.ssse3.psign.w.128
-+    18, // llvm.x86.subborrow.u32
-+    18, // llvm.x86.subborrow.u64
-+    1, // llvm.x86.tbm.bextri.u32
-+    1, // llvm.x86.tbm.bextri.u64
-+    1, // llvm.x86.vcvtph2ps.128
-+    1, // llvm.x86.vcvtph2ps.256
-+    1, // llvm.x86.vcvtps2ph.128
-+    1, // llvm.x86.vcvtps2ph.256
-+    3, // llvm.x86.wrfsbase.32
-+    3, // llvm.x86.wrfsbase.64
-+    3, // llvm.x86.wrgsbase.32
-+    3, // llvm.x86.wrgsbase.64
-+    3, // llvm.x86.wrpkru
-+    3, // llvm.x86.xabort
-+    3, // llvm.x86.xbegin
-+    3, // llvm.x86.xend
-+    3, // llvm.x86.xgetbv
-+    1, // llvm.x86.xop.vfrcz.pd
-+    1, // llvm.x86.xop.vfrcz.pd.256
-+    1, // llvm.x86.xop.vfrcz.ps
-+    1, // llvm.x86.xop.vfrcz.ps.256
-+    1, // llvm.x86.xop.vfrcz.sd
-+    1, // llvm.x86.xop.vfrcz.ss
-+    1, // llvm.x86.xop.vpcmov
-+    1, // llvm.x86.xop.vpcmov.256
-+    1, // llvm.x86.xop.vpcomb
-+    1, // llvm.x86.xop.vpcomd
-+    1, // llvm.x86.xop.vpcomq
-+    1, // llvm.x86.xop.vpcomub
-+    1, // llvm.x86.xop.vpcomud
-+    1, // llvm.x86.xop.vpcomuq
-+    1, // llvm.x86.xop.vpcomuw
-+    1, // llvm.x86.xop.vpcomw
-+    1, // llvm.x86.xop.vpermil2pd
-+    1, // llvm.x86.xop.vpermil2pd.256
-+    1, // llvm.x86.xop.vpermil2ps
-+    1, // llvm.x86.xop.vpermil2ps.256
-+    1, // llvm.x86.xop.vphaddbd
-+    1, // llvm.x86.xop.vphaddbq
-+    1, // llvm.x86.xop.vphaddbw
-+    1, // llvm.x86.xop.vphadddq
-+    1, // llvm.x86.xop.vphaddubd
-+    1, // llvm.x86.xop.vphaddubq
-+    1, // llvm.x86.xop.vphaddubw
-+    1, // llvm.x86.xop.vphaddudq
-+    1, // llvm.x86.xop.vphadduwd
-+    1, // llvm.x86.xop.vphadduwq
-+    1, // llvm.x86.xop.vphaddwd
-+    1, // llvm.x86.xop.vphaddwq
-+    1, // llvm.x86.xop.vphsubbw
-+    1, // llvm.x86.xop.vphsubdq
-+    1, // llvm.x86.xop.vphsubwd
-+    1, // llvm.x86.xop.vpmacsdd
-+    1, // llvm.x86.xop.vpmacsdqh
-+    1, // llvm.x86.xop.vpmacsdql
-+    1, // llvm.x86.xop.vpmacssdd
-+    1, // llvm.x86.xop.vpmacssdqh
-+    1, // llvm.x86.xop.vpmacssdql
-+    1, // llvm.x86.xop.vpmacsswd
-+    1, // llvm.x86.xop.vpmacssww
-+    1, // llvm.x86.xop.vpmacswd
-+    1, // llvm.x86.xop.vpmacsww
-+    1, // llvm.x86.xop.vpmadcsswd
-+    1, // llvm.x86.xop.vpmadcswd
-+    1, // llvm.x86.xop.vpperm
-+    1, // llvm.x86.xop.vprotb
-+    1, // llvm.x86.xop.vprotbi
-+    1, // llvm.x86.xop.vprotd
-+    1, // llvm.x86.xop.vprotdi
-+    1, // llvm.x86.xop.vprotq
-+    1, // llvm.x86.xop.vprotqi
-+    1, // llvm.x86.xop.vprotw
-+    1, // llvm.x86.xop.vprotwi
-+    1, // llvm.x86.xop.vpshab
-+    1, // llvm.x86.xop.vpshad
-+    1, // llvm.x86.xop.vpshaq
-+    1, // llvm.x86.xop.vpshaw
-+    1, // llvm.x86.xop.vpshlb
-+    1, // llvm.x86.xop.vpshld
-+    1, // llvm.x86.xop.vpshlq
-+    1, // llvm.x86.xop.vpshlw
-+    3, // llvm.x86.xrstor
-+    3, // llvm.x86.xrstor64
-+    3, // llvm.x86.xrstors
-+    3, // llvm.x86.xrstors64
-+    3, // llvm.x86.xsave
-+    3, // llvm.x86.xsave64
-+    3, // llvm.x86.xsavec
-+    3, // llvm.x86.xsavec64
-+    3, // llvm.x86.xsaveopt
-+    3, // llvm.x86.xsaveopt64
-+    3, // llvm.x86.xsaves
-+    3, // llvm.x86.xsaves64
-+    3, // llvm.x86.xsetbv
-+    3, // llvm.x86.xtest
-+    1, // llvm.xcore.bitrev
-+    3, // llvm.xcore.checkevent
-+    32, // llvm.xcore.chkct
-+    3, // llvm.xcore.clre
-+    32, // llvm.xcore.clrpt
-+    3, // llvm.xcore.clrsr
-+    1, // llvm.xcore.crc32
-+    1, // llvm.xcore.crc8
-+    32, // llvm.xcore.edu
-+    32, // llvm.xcore.eeu
-+    32, // llvm.xcore.endin
-+    32, // llvm.xcore.freer
-+    3, // llvm.xcore.geted
-+    3, // llvm.xcore.getet
-+    1, // llvm.xcore.getid
-+    3, // llvm.xcore.getps
-+    3, // llvm.xcore.getr
-+    32, // llvm.xcore.getst
-+    32, // llvm.xcore.getts
-+    32, // llvm.xcore.in
-+    32, // llvm.xcore.inct
-+    32, // llvm.xcore.initcp
-+    32, // llvm.xcore.initdp
-+    32, // llvm.xcore.initlr
-+    32, // llvm.xcore.initpc
-+    32, // llvm.xcore.initsp
-+    32, // llvm.xcore.inshr
-+    32, // llvm.xcore.int
-+    32, // llvm.xcore.mjoin
-+    32, // llvm.xcore.msync
-+    32, // llvm.xcore.out
-+    32, // llvm.xcore.outct
-+    32, // llvm.xcore.outshr
-+    32, // llvm.xcore.outt
-+    32, // llvm.xcore.peek
-+    32, // llvm.xcore.setc
-+    33, // llvm.xcore.setclk
-+    32, // llvm.xcore.setd
-+    32, // llvm.xcore.setev
-+    3, // llvm.xcore.setps
-+    32, // llvm.xcore.setpsc
-+    32, // llvm.xcore.setpt
-+    33, // llvm.xcore.setrdy
-+    3, // llvm.xcore.setsr
-+    32, // llvm.xcore.settw
-+    32, // llvm.xcore.setv
-+    1, // llvm.xcore.sext
-+    3, // llvm.xcore.ssync
-+    32, // llvm.xcore.syncr
-+    32, // llvm.xcore.testct
-+    32, // llvm.xcore.testwct
-+    13, // llvm.xcore.waitevent
-+    1, // llvm.xcore.zext
-+  };
-+
-+  AttributeSet AS[5];
-+  unsigned NumAttrs = 0;
-+  if (id != 0) {
-+    switch(IntrinsicsToAttributesMap[id - 1]) {
-+    default: llvm_unreachable("Invalid attribute number");
-+    case 3: {
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-+      AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 1;
-+      break;
-+      }
-+    case 32: {
-+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-+      AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 33: {
-+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-+      AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
-+      AS[1] = AttributeSet::get(C, 2, AttrParam2);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-+      AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 3;
-+      break;
-+      }
-+    case 4: {
-+      const Attribute::AttrKind AttrParam2[]= {Attribute::WriteOnly};
-+      AS[0] = AttributeSet::get(C, 2, AttrParam2);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 18: {
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+      AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 1;
-+      break;
-+      }
-+    case 15: {
-+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-+      AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 6: {
-+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
-+      AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 21: {
-+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::WriteOnly};
-+      AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 19: {
-+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::WriteOnly};
-+      AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
-+      AS[1] = AttributeSet::get(C, 2, AttrParam2);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+      AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 3;
-+      break;
-+      }
-+    case 20: {
-+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-+      AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
-+      AS[1] = AttributeSet::get(C, 2, AttrParam2);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+      AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 3;
-+      break;
-+      }
-+    case 17: {
-+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
-+      AS[0] = AttributeSet::get(C, 2, AttrParam2);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 14: {
-+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture};
-+      AS[0] = AttributeSet::get(C, 2, AttrParam2);
-+      const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture};
-+      AS[1] = AttributeSet::get(C, 3, AttrParam3);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+      AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 3;
-+      break;
-+      }
-+    case 16: {
-+      const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture};
-+      AS[0] = AttributeSet::get(C, 3, AttrParam3);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 22: {
-+      const Attribute::AttrKind AttrParam4[]= {Attribute::NoCapture};
-+      AS[0] = AttributeSet::get(C, 4, AttrParam4);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 23: {
-+      const Attribute::AttrKind AttrParam5[]= {Attribute::NoCapture};
-+      AS[0] = AttributeSet::get(C, 5, AttrParam5);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 24: {
-+      const Attribute::AttrKind AttrParam6[]= {Attribute::NoCapture};
-+      AS[0] = AttributeSet::get(C, 6, AttrParam6);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 25: {
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly};
-+      AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 1;
-+      break;
-+      }
-+    case 13: {
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly};
-+      AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 1;
-+      break;
-+      }
-+    case 2: {
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-+      AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 1;
-+      break;
-+      }
-+    case 29: {
-+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-+      AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 11: {
-+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture,Attribute::ReadOnly};
-+      AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 7: {
-+      const Attribute::AttrKind AttrParam2[]= {Attribute::NoCapture,Attribute::ReadOnly};
-+      AS[0] = AttributeSet::get(C, 2, AttrParam2);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 8: {
-+      const Attribute::AttrKind AttrParam2[]= {Attribute::ReadNone};
-+      AS[0] = AttributeSet::get(C, 2, AttrParam2);
-+      const Attribute::AttrKind AttrParam3[]= {Attribute::NoCapture,Attribute::ReadOnly};
-+      AS[1] = AttributeSet::get(C, 3, AttrParam3);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly,Attribute::ArgMemOnly};
-+      AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 3;
-+      break;
-+      }
-+    case 1: {
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
-+      AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 1;
-+      break;
-+      }
-+    case 10: {
-+      const Attribute::AttrKind AttrParam1[]= {Attribute::NoCapture};
-+      AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
-+      AS[1] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 2;
-+      break;
-+      }
-+    case 9: {
-+      const Attribute::AttrKind AttrParam1[]= {Attribute::ReadNone};
-+      AS[0] = AttributeSet::get(C, 1, AttrParam1);
-+      const Attribute::AttrKind AttrParam2[]= {Attribute::ReadNone};
-+      AS[1] = AttributeSet::get(C, 2, AttrParam2);
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
-+      AS[2] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 3;
-+      break;
-+      }
-+    case 27: {
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Convergent};
-+      AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 1;
-+      break;
-+      }
-+    case 26: {
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Convergent,Attribute::ReadNone};
-+      AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 1;
-+      break;
-+      }
-+    case 12: {
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoReturn};
-+      AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 1;
-+      break;
-+      }
-+    case 31: {
-+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoDuplicate};
-+      AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 1;
-+      break;
-+      }
-+    case 5: {
-+      return AttributeSet();
-+      }
-+    case 28: {
-+      const Attribute::AttrKind Atts[] = {Attribute::ReadNone};
-+      AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 1;
-+      break;
-+      }
-+    case 30: {
-+      const Attribute::AttrKind Atts[] = {Attribute::NoReturn};
-+      AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
-+      NumAttrs = 1;
-+      break;
-+      }
-+    }
-+  }
-+  return AttributeSet::get(C, makeArrayRef(AS, NumAttrs));
-+}
-+#endif // GET_INTRINSIC_ATTRIBUTES
-+
-+// Get the LLVM intrinsic that corresponds to a builtin.
-+// This is used by the C front-end.  The builtin name is passed
-+// in as BuiltinName, and a target prefix (e.g. 'ppc') is passed
-+// in as TargetPrefix.  The result is assigned to 'IntrinsicID'.
-+#ifdef GET_LLVM_INTRINSIC_FOR_GCC_BUILTIN
-+Intrinsic::ID Intrinsic::getIntrinsicForGCCBuiltin(const char *TargetPrefixStr, StringRef BuiltinNameStr) {
-+  static const char BuiltinNames[] = {
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'd', 'j', 'u', 's',
-+  't', '_', 't', 'r', 'a', 'm', 'p', 'o', 'l', 'i', 'n', 'e', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'e', 'b', 'u', 'g', 't', 'r',
-+  'a', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'u', 'n',
-+  'w', 'i', 'n', 'd', '_', 'i', 'n', 'i', 't', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'f', 'l', 't', '_', 'r', 'o', 'u', 'n', 'd', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'n', 'i', 't',
-+  '_', 't', 'r', 'a', 'm', 'p', 'o', 'l', 'i', 'n', 'e', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'o', 'b', 'j', 'e', 'c', 't', '_', 's',
-+  'i', 'z', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  't', 'a', 'c', 'k', '_', 'r', 'e', 's', 't', 'o', 'r', 'e', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', 't', 'a', 'c', 'k', '_', 's',
-+  'a', 'v', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't',
-+  'h', 'r', 'e', 'a', 'd', '_', 'p', 'o', 'i', 'n', 't', 'e', 'r', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'r', 'a', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'd', 'm',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm',
-+  '_', 'd', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'r', 'm', '_', 'i', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'b', 'u', 'f', 'f', 'e',
-+  'r', '_', 'w', 'b', 'i', 'n', 'v', 'l', '1', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'b', 'u', 'f',
-+  'f', 'e', 'r', '_', 'w', 'b', 'i', 'n', 'v', 'l', '1', '_', 's', 'c', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+  'n', '_', 'b', 'u', 'f', 'f', 'e', 'r', '_', 'w', 'b', 'i', 'n', 'v', 'l',
-+  '1', '_', 'v', 'o', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'c', 'u', 'b', 'e', 'i', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+  'n', '_', 'c', 'u', 'b', 'e', 'm', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'c', 'u', 'b', 'e',
-+  's', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
-+  'd', 'g', 'c', 'n', '_', 'c', 'u', 'b', 'e', 't', 'c', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'c',
-+  'v', 't', '_', 'p', 'k', '_', 'u', '8', '_', 'f', '3', '2', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-+  'd', 'i', 's', 'p', 'a', 't', 'c', 'h', '_', 'i', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd',
-+  'i', 's', 'p', 'a', 't', 'c', 'h', '_', 'p', 't', 'r', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'd',
-+  's', '_', 's', 'w', 'i', 'z', 'z', 'l', 'e', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'f', 'm', 'u',
-+  'l', '_', 'l', 'e', 'g', 'a', 'c', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'g', 'r', 'o', 'u',
-+  'p', 's', 't', 'a', 't', 'i', 'c', 's', 'i', 'z', 'e', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'i',
-+  'm', 'p', 'l', 'i', 'c', 'i', 't', 'a', 'r', 'g', '_', 'p', 't', 'r', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+  'n', '_', 'i', 'n', 't', 'e', 'r', 'p', '_', 'm', 'o', 'v', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-+  'i', 'n', 't', 'e', 'r', 'p', '_', 'p', '1', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'i', 'n', 't',
-+  'e', 'r', 'p', '_', 'p', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'k', 'e', 'r', 'n', 'a', 'r',
-+  'g', '_', 's', 'e', 'g', 'm', 'e', 'n', 't', '_', 'p', 't', 'r', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n',
-+  '_', 'l', 'e', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'm', 'b', 'c', 'n', 't', '_', 'h',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd',
-+  'g', 'c', 'n', '_', 'm', 'b', 'c', 'n', 't', '_', 'l', 'o', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-+  'm', 'q', 's', 'a', 'd', '_', 'p', 'k', '_', 'u', '1', '6', '_', 'u', '8',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g',
-+  'c', 'n', '_', 'm', 'q', 's', 'a', 'd', '_', 'u', '3', '2', '_', 'u', '8',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g',
-+  'c', 'n', '_', 'm', 's', 'a', 'd', '_', 'u', '8', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'q', 's',
-+  'a', 'd', '_', 'p', 'k', '_', 'u', '1', '6', '_', 'u', '8', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_',
-+  'q', 'u', 'e', 'u', 'e', '_', 'p', 't', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'r', 'c', 'p',
-+  '_', 'l', 'e', 'g', 'a', 'c', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'r', 'e', 'a', 'd', 'f',
-+  'i', 'r', 's', 't', 'l', 'a', 'n', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 'r', 'e', 'a', 'd',
-+  'l', 'a', 'n', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'm', 'd', 'g', 'c', 'n', '_', 'r', 's', 'q', '_', 'l', 'e', 'g', 'a',
-+  'c', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
-+  'd', 'g', 'c', 'n', '_', 's', '_', 'b', 'a', 'r', 'r', 'i', 'e', 'r', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+  'n', '_', 's', '_', 'd', 'c', 'a', 'c', 'h', 'e', '_', 'i', 'n', 'v', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+  'n', '_', 's', '_', 'd', 'c', 'a', 'c', 'h', 'e', '_', 'i', 'n', 'v', '_',
-+  'v', 'o', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'd', 'c', 'a', 'c', 'h', 'e', '_',
-+  'w', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm',
-+  'd', 'g', 'c', 'n', '_', 's', '_', 'd', 'c', 'a', 'c', 'h', 'e', '_', 'w',
-+  'b', '_', 'v', 'o', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'd', 'e', 'c', 'p', 'e',
-+  'r', 'f', 'l', 'e', 'v', 'e', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'g', 'e', 't',
-+  'r', 'e', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'i', 'n', 'c', 'p', 'e', 'r', 'f',
-+  'l', 'e', 'v', 'e', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'm', 'e', 'm', 'r', 'e',
-+  'a', 'l', 't', 'i', 'm', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', '_', 'm', 'e', 'm', 't',
-+  'i', 'm', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'm', 'd', 'g', 'c', 'n', '_', 's', '_', 's', 'l', 'e', 'e', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n',
-+  '_', 's', 'a', 'd', '_', 'h', 'i', '_', 'u', '8', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', 'a',
-+  'd', '_', 'u', '1', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'm', 'd', 'g', 'c', 'n', '_', 's', 'a', 'd', '_', 'u', '8', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+  'n', '_', 'w', 'a', 'v', 'e', '_', 'b', 'a', 'r', 'r', 'i', 'e', 'r', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd', 'g', 'c',
-+  'n', '_', 'w', 'o', 'r', 'k', 'g', 'r', 'o', 'u', 'p', '_', 'i', 'd', '_',
-+  'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'm', 'd',
-+  'g', 'c', 'n', '_', 'w', 'o', 'r', 'k', 'g', 'r', 'o', 'u', 'p', '_', 'i',
-+  'd', '_', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'm', 'd', 'g', 'c', 'n', '_', 'w', 'o', 'r', 'k', 'g', 'r', 'o', 'u', 'p',
-+  '_', 'i', 'd', '_', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'r', 'm', '_', 'c', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'c', 'd', 'p', '2', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'g', 'e', 't',
-+  '_', 'f', 'p', 's', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'r', 'm', '_', 'l', 'd', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'l', 'd', 'c', '2', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'l', 'd',
-+  'c', '2', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'r', 'm', '_', 'l', 'd', 'c', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'r', 'm', '_', 'm', 'c', 'r', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'm', 'c', 'r', '2', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'm',
-+  'r', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r',
-+  'm', '_', 'm', 'r', 'c', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'r', 'm', '_', 'q', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'q', 's', 'u', 'b', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's',
-+  'e', 't', '_', 'f', 'p', 's', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 's', 'a', 't', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 't', 'c',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_',
-+  's', 't', 'c', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'r', 'm', '_', 's', 't', 'c', '2', 'l', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 's', 't', 'c', 'l', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'r', 'm', '_', 'u', 's',
-+  'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p',
-+  'f', '_', 'l', 'o', 'a', 'd', '_', 'b', 'y', 't', 'e', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p', 'f', '_', 'l', 'o', 'a', 'd',
-+  '_', 'h', 'a', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'b', 'p', 'f', '_', 'l', 'o', 'a', 'd', '_', 'w', 'o', 'r', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'p', 'f', '_', 'p',
-+  's', 'e', 'u', 'd', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'b', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'b', 's', 'p', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 'a', 'b', 's', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+  '_', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h',
-+  '_', 'h', '1', '6', '_', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a',
-+  'd', 'd', 'h', '_', 'h', '1', '6', '_', 'h', 'l', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-+  '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 'l', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 'l',
-+  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1',
-+  '6', '_', 's', 'a', 't', '_', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+  'a', 'd', 'd', 'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'h', 'l',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'h', '1', '6',
-+  '_', 's', 'a', 't', '_', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a',
-+  'd', 'd', 'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'l', 'l', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'l', '1', '6', '_',
-+  'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'l',
-+  '1', '6', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd',
-+  'h', '_', 'l', '1', '6', '_', 's', 'a', 't', '_', 'h', 'l', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '2', '_', 'a', 'd', 'd', 'h', '_', 'l', '1', '6', '_', 's', 'a',
-+  't', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'i',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'd', 'd', 'p', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 'a', 'd', 'd', 'p', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-+  '2', '_', 'a', 'd', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+  'a', 'd', 'd', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'n', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 'a', 'n', 'd', 'i', 'r', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '2', '_', 'a', 'n', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+  'a', 's', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'a', 's', 'r', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o', 'm', 'b', 'i', 'n', 'e', '_',
-+  'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o', 'm', 'b', 'i', 'n',
-+  'e', '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o', 'm', 'b',
-+  'i', 'n', 'e', '_', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'c', 'o',
-+  'm', 'b', 'i', 'n', 'e', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+  'c', 'o', 'm', 'b', 'i', 'n', 'e', 'i', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+  '_', 'c', 'o', 'm', 'b', 'i', 'n', 'e', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+  '_', 'm', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'a', 'x', 'p',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'a', 'x', 'u', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 'm', 'a', 'x', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+  'm', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'm', 'i', 'n', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '2', '_', 'm', 'i', 'n', 'u', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-+  '2', '_', 'm', 'i', 'n', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'n',
-+  'e', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'n', 'e', 'g', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'A', '2', '_', 'n', 'e', 'g', 's', 'a', 't', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'n', 'o',
-+  't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'o', 'r', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 'o', 'r', 'i', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'o',
-+  'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'r', 'o', 'u', 'n', 'd', 's',
-+  'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'a', 't', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '2', '_', 's', 'a', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+  's', 'a', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'a', 't', 'u',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'a', 't', 'u', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'A', '2', '_', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+  's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 'h', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 'h', 'l', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_',
-+  'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h',
-+  '1', '6', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b',
-+  'h', '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'h', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 's', 'a',
-+  't', '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h',
-+  '_', 'h', '1', '6', '_', 's', 'a', 't', '_', 'l', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 's', 'u', 'b', 'h', '_', 'h', '1', '6', '_', 's', 'a', 't',
-+  '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_',
-+  'l', '1', '6', '_', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u',
-+  'b', 'h', '_', 'l', '1', '6', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+  '_', 's', 'u', 'b', 'h', '_', 'l', '1', '6', '_', 's', 'a', 't', '_', 'h',
-+  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'h', '_', 'l', '1',
-+  '6', '_', 's', 'a', 't', '_', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+  's', 'u', 'b', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 'r',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'u', 'b', 's', 'a', 't', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '2', '_', 's', 'v', 'a', 'd', 'd', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '2', '_', 's', 'v', 'a', 'd', 'd', 'h', 's', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 's', 'v', 'a', 'd', 'd', 'u', 'h', 's', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 's', 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+  '_', 's', 'v', 'a', 'v', 'g', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+  's', 'v', 'n', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's',
-+  'v', 's', 'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'v', 's',
-+  'u', 'b', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'v', 's', 'u',
-+  'b', 'u', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's', 'w', 'i', 'z',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 's', 'x', 't', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 's', 'x', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 's',
-+  'x', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'A', '2', '_', 't', 'f', 'r', 'i', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-+  '2', '_', 't', 'f', 'r', 'i', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 't',
-+  'f', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', 'p', 'i',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 't', 'f', 'r', 's', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '2', '_', 'v', 'a', 'b', 's', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+  '_', 'v', 'a', 'b', 's', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+  '_', 'v', 'a', 'b', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a',
-+  'b', 's', 'w', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a',
-+  'd', 'd', 'b', '_', 'm', 'a', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-+  'a', 'd', 'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd',
-+  'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'u', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'u', 'h', 's', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'A', '2', '_', 'v', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-+  '2', '_', 'v', 'a', 'd', 'd', 'w', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+  'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v',
-+  'g', 'h', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g',
-+  'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'b', 'r', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'h', 'r', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 'v', 'a', 'v', 'g', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+  '_', 'v', 'a', 'v', 'g', 'u', 'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+  'v', 'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v',
-+  'g', 'w', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'a', 'v', 'g',
-+  'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'b', 'e',
-+  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'b', 'g', 't',
-+  'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'h', 'e', 'q',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'h', 'g', 't', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'h', 'g', 't', 'u', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'w', 'e', 'q', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'w', 'g', 't', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '2', '_', 'v', 'c', 'm', 'p', 'w', 'g', 't', 'u', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '2', '_', 'v', 'c', 'o', 'n', 'j', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+  '_', 'v', 'm', 'a', 'x', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm',
-+  'a', 'x', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'u',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'u', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'u', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '2', '_', 'v', 'm', 'a', 'x', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+  '_', 'v', 'm', 'i', 'n', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm',
-+  'i', 'n', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'u',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'u', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'u', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '2', '_', 'v', 'm', 'i', 'n', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+  '_', 'v', 'n', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-+  'n', 'a', 'v', 'g', 'h', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-+  'n', 'a', 'v', 'g', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'n',
-+  'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'n', 'a', 'v',
-+  'g', 'w', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'n', 'a', 'v',
-+  'g', 'w', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 'a', 'd', 'd',
-+  'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 'a', 'd', 'd', 'u',
-+  'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 's',
-+  'a', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 'r', 's', 'a',
-+  'd', 'u', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v',
-+  's', 'u', 'b', 'b', '_', 'm', 'a', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_',
-+  'v', 's', 'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u',
-+  'b', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'u',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'u', 'b', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'u', 'h', 's', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '2', '_', 'v', 's', 'u', 'b', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 'v', 's', 'u', 'b', 'w', 's', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2',
-+  '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '2', '_', 'x', 'o', 'r', 'p',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '2', '_', 'z', 'x', 't', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '2', '_', 'z', 'x', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'a',
-+  'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'a', 'n', 'd', 'n', 'p',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '4', '_', 'b', 'i', 't', 's', 'p', 'l', 'i', 't',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '4', '_', 'b', 'i', 't', 's', 'p', 'l', 'i', 't',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'b', 'o', 'u', 'n', 'd', 's', 'c',
-+  'h', 'e', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b',
-+  'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'e', 'q',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', 'i', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', 'u', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '4', '_', 'c', 'm', 'p', 'b', 'g', 't', 'u', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '4', '_', 'c', 'm', 'p', 'h', 'e', 'q', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A',
-+  '4', '_', 'c', 'm', 'p', 'h', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
-+  '_', 'c', 'm', 'p', 'h', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c',
-+  'm', 'p', 'h', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm',
-+  'p', 'h', 'g', 't', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'm', 'p',
-+  'h', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'o', 'm',
-+  'b', 'i', 'n', 'e', 'i', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c', 'o',
-+  'm', 'b', 'i', 'n', 'e', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'c',
-+  'r', 'o', 'u', 'n', 'd', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-+  'c', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
-+  '_', 'm', 'o', 'd', 'w', 'r', 'a', 'p', 'u', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
-+  '_', 'o', 'r', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'o', 'r', 'n', 'p',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'e', 'q', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'e', 'q', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '4', '_', 'r', 'c', 'm', 'p', 'n', 'e', 'q', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '4', '_', 'r', 'c', 'm', 'p', 'n', 'e', 'q', 'i', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'i', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'i', '_', 's', 'a', 't',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'r',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '4', '_', 'r', 'o', 'u', 'n', 'd', '_', 'r', 'r',
-+  '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 't', 'l', 'b', 'm',
-+  'a', 't', 'c', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'c', 'm', 'p',
-+  'b', 'e', 'q', '_', 'a', 'n', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-+  'c', 'm', 'p', 'b', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-+  'c', 'm', 'p', 'b', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'c',
-+  'm', 'p', 'b', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'c',
-+  'm', 'p', 'b', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-+  'c', 'm', 'p', 'h', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-+  'c', 'm', 'p', 'h', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-+  'c', 'm', 'p', 'h', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-+  'v', 'c', 'm', 'p', 'w', 'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-+  'v', 'c', 'm', 'p', 'w', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_',
-+  'v', 'c', 'm', 'p', 'w', 'g', 't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4',
-+  '_', 'v', 'r', 'm', 'a', 'x', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v',
-+  'r', 'm', 'a', 'x', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r',
-+  'm', 'a', 'x', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm',
-+  'a', 'x', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n', 'u', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n', 'u', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'A', '4', '_', 'v', 'r', 'm', 'i', 'n', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'A', '5', '_', 'v', 'a', 'd', 'd', 'h', 'u', 'b', 's', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'C', '2', '_', 'a', 'l', 'l', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
-+  'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'a', 'n', 'd', 'n', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'C', '2', '_', 'a', 'n', 'y', '8', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
-+  '2', '_', 'b', 'i', 't', 's', 'c', 'l', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2',
-+  '_', 'b', 'i', 't', 's', 'c', 'l', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2',
-+  '_', 'b', 'i', 't', 's', 's', 'e', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
-+  'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p',
-+  'e', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'e', 'q',
-+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 'e', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 'e', 'u', 'i', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 't', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C',
-+  '2', '_', 'c', 'm', 'p', 'g', 't', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
-+  'c', 'm', 'p', 'g', 't', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm',
-+  'p', 'g', 't', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g',
-+  't', 'u', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'g', 't',
-+  'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'l', 't', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'C', '2', '_', 'c', 'm', 'p', 'l', 't', 'u', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'C', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
-+  'm', 'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'm', 'u', 'x', 'i', 'i',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'C', '2', '_', 'm', 'u', 'x', 'i', 'r', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'C', '2', '_', 'm', 'u', 'x', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2',
-+  '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'o', 'r', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'C', '2', '_', 'o', 'r', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_',
-+  'p', 'x', 'f', 'e', 'r', '_', 'm', 'a', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2',
-+  '_', 't', 'f', 'r', 'p', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 't', 'f',
-+  'r', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'v', 'i', 't', 'p', 'a',
-+  'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'C', '2', '_', 'v', 'm', 'u', 'x', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'C', '2', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_',
-+  'a', 'n', 'd', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'a',
-+  'n', 'd', '_', 'a', 'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'a',
-+  'n', 'd', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'a', 'n', 'd',
-+  '_', 'o', 'r', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l',
-+  't', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l', 't', 'e',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l', 't', 'e', 'u',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'l', 't', 'e', 'u', 'i',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'n', 'e', 'q', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'C', '4', '_', 'c', 'm', 'p', 'n', 'e', 'q', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'C', '4', '_', 'f', 'a', 's', 't', 'c', 'o', 'r', 'n', 'e', 'r', '9',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'C', '4', '_', 'f', 'a', 's', 't', 'c', 'o', 'r', 'n',
-+  'e', 'r', '9', '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'n',
-+  'b', 'i', 't', 's', 'c', 'l', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'n',
-+  'b', 'i', 't', 's', 'c', 'l', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_',
-+  'n', 'b', 'i', 't', 's', 's', 'e', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_',
-+  'o', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'o', 'r',
-+  '_', 'a', 'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'o', 'r', '_',
-+  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'C', '4', '_', 'o', 'r', '_', 'o', 'r', 'n',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', '2', 'd',
-+  'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', '2',
-+  's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd',
-+  'f', '2', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_',
-+  'd', 'f', '2', 'd', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2',
-+  '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 's', 'f', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 'u', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 'u', 'd',
-+  '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n',
-+  'v', '_', 'd', 'f', '2', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c',
-+  'o', 'n', 'v', '_', 'd', 'f', '2', 'u', 'w', '_', 'c', 'h', 'o', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'd', 'f', '2',
-+  'w', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o',
-+  'n', 'v', '_', 's', 'f', '2', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c',
-+  'o', 'n', 'v', '_', 's', 'f', '2', 'd', '_', 'c', 'h', 'o', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'd', 'f',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2',
-+  'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's',
-+  'f', '2', 'u', 'd', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2',
-+  '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'u', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'F', '2', '_', 'c', 'o', 'n', 'v', '_', 's', 'f', '2', 'u', 'w', '_', 'c',
-+  'h', 'o', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_',
-+  's', 'f', '2', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v',
-+  '_', 's', 'f', '2', 'w', '_', 'c', 'h', 'o', 'p', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F',
-+  '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'd', '2', 'd', 'f', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'd', '2', 's', 'f', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'w', '2', 'd',
-+  'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_', 'u', 'w',
-+  '2', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v', '_',
-+  'w', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'c', 'o', 'n', 'v',
-+  '_', 'w', '2', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c',
-+  'l', 'a', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c', 'm',
-+  'p', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c', 'm', 'p',
-+  'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c', 'm', 'p', 'g',
-+  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'c', 'm', 'p', 'u', 'o',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'i', 'm', 'm', '_', 'n', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'F', '2', '_', 'd', 'f', 'i', 'm', 'm', '_', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'F', '2', '_', 's', 'f', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F',
-+  '2', '_', 's', 'f', 'c', 'l', 'a', 's', 's', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2',
-+  '_', 's', 'f', 'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
-+  's', 'f', 'c', 'm', 'p', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's',
-+  'f', 'c', 'm', 'p', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f',
-+  'c', 'm', 'p', 'u', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f',
-+  'i', 'x', 'u', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f',
-+  'i', 'x', 'u', 'p', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f',
-+  'i', 'x', 'u', 'p', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f',
-+  'm', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f', 'm', 'a', '_',
-+  'l', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f', 'm', 'a',
-+  '_', 's', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f', 'm', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'f', 'm', 's', '_', 'l', 'i',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'i', 'm', 'm', '_', 'n',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 'i', 'm', 'm', '_', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'F', '2', '_', 's', 'f', 'm', 'a', 'x', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'F', '2', '_', 's', 'f', 'm', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_',
-+  's', 'f', 'm', 'p', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'F', '2', '_', 's', 'f', 's',
-+  'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'L', '2', '_', 'l', 'o', 'a', 'd', 'w', '_',
-+  'l', 'o', 'c', 'k', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'L', '4', '_', 'l', 'o',
-+  'a', 'd', 'd', '_', 'l', 'o', 'c', 'k', 'e', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'a', 'c', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'a', 'c',
-+  'c', 'i', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a', 'c', 'i',
-+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a', 'c', 'r',
-+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a', 'c', 's',
-+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a', 'c', 's',
-+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a', 'c', 's',
-+  'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'a', 'c',
-+  's', 'c', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'p',
-+  'y', 'i', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'p',
-+  'y', 'r', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm', 'p',
-+  'y', 'r', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c', 'm',
-+  'p', 'y', 'r', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'c',
-+  'm', 'p', 'y', 'r', 's', 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'c', 'm', 'p', 'y', 'r', 's', 'c', '_', 's', '1', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '2', '_', 'c', 'm', 'p', 'y', 's', '_', 's', '0', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '2', '_', 'c', 'm', 'p', 'y', 's', '_', 's', '1', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '2', '_', 'c', 'm', 'p', 'y', 's', 'c', '_', 's', '0', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'c', 'm', 'p', 'y', 's', 'c', '_', 's', '1', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', '_', 's', '0', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', '_', 's', '1', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', 'c', '_', 's', '0', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'c', 'n', 'a', 'c', 's', 'c', '_', 's', '1',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 's', 's', '_',
-+  'a', 'c', 'c', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p',
-+  'm', 'p', 'y', 's', 's', '_', 'n', 'a', 'c', '_', 's', '0', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 's', 's', '_', 'r', 'n', 'd',
-+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y',
-+  's', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm',
-+  'p', 'y', 'u', 'u', '_', 'a', 'c', 'c', '_', 's', '0', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 'u', 'u', '_', 'n', 'a', 'c', '_',
-+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'd', 'p', 'm', 'p', 'y', 'u',
-+  'u', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'h', 'm', 'm', 'p',
-+  'y', 'h', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'h', 'm',
-+  'm', 'p', 'y', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'h',
-+  'm', 'm', 'p', 'y', 'l', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'h', 'm', 'm', 'p', 'y', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'a', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'a',
-+  'c', 's', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'a', 'c', 's',
-+  'i', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'h', 's',
-+  '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c',
-+  'h', 's', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm',
-+  'a', 'c', 'h', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'm', 'a', 'c', 'h', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+  'm', 'm', 'a', 'c', 'l', 's', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 'r', 's', '1', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 's', '0', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'l', 's', '_', 's', '1', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'h', 's', '_', 'r',
-+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'h',
-+  's', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a',
-+  'c', 'u', 'h', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'm', 'a', 'c', 'u', 'h', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'm', 'm', 'a', 'c', 'u', 'l', 's', '_', 'r', 's', '0', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'l', 's', '_', 'r', 's', '1',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'l', 's', '_',
-+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'a', 'c', 'u', 'l',
-+  's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y',
-+  'h', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p',
-+  'y', 'h', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm',
-+  'p', 'y', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm',
-+  'p', 'y', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm',
-+  'p', 'y', 'l', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'm', 'p', 'y', 'l', '_', 'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+  'm', 'm', 'p', 'y', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+  'm', 'm', 'p', 'y', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+  'm', 'm', 'p', 'y', 'u', 'h', '_', 'r', 's', '0', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 'r', 's', '1', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 's', '0', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'h', '_', 's', '1', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'l', '_', 'r', 's',
-+  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u', 'l', '_',
-+  'r', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y', 'u',
-+  'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'm', 'p', 'y',
-+  'u', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+  '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '1',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_',
-+  'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+  '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '0',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_',
-+  'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+  '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '1',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_',
-+  's', 'a', 't', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_', 'h', 'h',
-+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a',
-+  'c', 'c', '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't',
-+  '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-+  'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_', 'l', 'h', '_', 's', '0',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_',
-+  's', 'a', 't', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'm', 'p', 'y', '_', 'a', 'c', 'c', '_', 's', 'a', 't', '_', 'l', 'l',
-+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'a',
-+  'c', 'c', '_', 's', 'a', 't', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'h', '_', 's', '0', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'h', '_', 's', '1', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'l', '_', 's', '0',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'h', 'l', '_', 's',
-+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'l', 'h', '_',
-+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'l', 'h',
-+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'l',
-+  'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_',
-+  'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+  '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '1',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_',
-+  'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+  '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '0',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_',
-+  'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+  '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '1',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_',
-+  's', 'a', 't', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_', 'h', 'h',
-+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n',
-+  'a', 'c', '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't',
-+  '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-+  'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_', 'l', 'h', '_', 's', '0',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_',
-+  's', 'a', 't', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'm', 'p', 'y', '_', 'n', 'a', 'c', '_', 's', 'a', 't', '_', 'l', 'l',
-+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'n',
-+  'a', 'c', '_', 's', 'a', 't', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'h', 'h', '_',
-+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n',
-+  'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'h', 'l', '_',
-+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n',
-+  'd', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n', 'd', '_', 'l', 'l', '_',
-+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'r', 'n',
-+  'd', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', '_', 's', 'a', 't', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'h', 'h', '_',
-+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a',
-+  't', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', '_', 's', 'a', 't', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'l', 'h', '_',
-+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a',
-+  't', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', '_', 's', 'a', 't', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'l', 'l', '_',
-+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a',
-+  't', '_', 'r', 'n', 'd', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_',
-+  'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+  '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's', '0', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r',
-+  'n', 'd', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+  'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'l', 'h', '_',
-+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a',
-+  't', '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '2', '_', 'm', 'p', 'y', '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_',
-+  'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+  '_', 's', 'a', 't', '_', 'r', 'n', 'd', '_', 'l', 'l', '_', 's', '1', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'u', 'p', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'u', 'p', '_', 's', '1', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', '_', 'u', 'p', '_', 's', '1', '_',
-+  's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_',
-+  'a', 'c', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '1',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c',
-+  '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-+  'y', 'd', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_', 'l', 'h',
-+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_',
-+  'a', 'c', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '0',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'a', 'c', 'c',
-+  '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-+  'y', 'd', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+  'm', 'p', 'y', 'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', 'd', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'h', 'l', '_', 's', '1', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'l', 'h', '_', 's',
-+  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'l', 'h',
-+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_',
-+  'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+  'd', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'h',
-+  'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd',
-+  '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's',
-+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a',
-+  'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'n', 'a', 'c', '_', 'l',
-+  'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd',
-+  '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'h', 'h', '_', 's',
-+  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n',
-+  'd', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'h', 'l', '_', 's', '0', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'h',
-+  'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd',
-+  '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'l', 'h', '_', 's',
-+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'd', '_', 'r', 'n',
-+  'd', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', 'd', '_', 'r', 'n', 'd', '_', 'l', 'l', '_', 's', '1', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'm', 'p', 'y', 's', 'm', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', 's', 'u', '_', 'u', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'h',
-+  'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
-+  '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's',
-+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c',
-+  'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'a', 'c', 'c', '_', 'l',
-+  'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
-+  '_', 'a', 'c', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'h', '_', 's', '1', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'l', '_', 's',
-+  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'h', 'l',
-+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_',
-+  'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+  'u', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', 'u', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'm', 'p', 'y', 'u', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'h', 'h', '_',
-+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n',
-+  'a', 'c', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+  'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's', '0', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_',
-+  'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+  'u', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'l', 'h', '_',
-+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'n',
-+  'a', 'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+  'm', 'p', 'y', 'u', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '1', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', '_', 'u', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_',
-+  'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y',
-+  'u', 'd', '_', 'a', 'c', 'c', '_', 'h', 'h', '_', 's', '1', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_', 'h',
-+  'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u',
-+  'd', '_', 'a', 'c', 'c', '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_', 'l', 'h',
-+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd',
-+  '_', 'a', 'c', 'c', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'a', 'c', 'c', '_', 'l', 'l', '_',
-+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_',
-+  'a', 'c', 'c', '_', 'l', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'm', 'p', 'y', 'u', 'd', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'h', 'h', '_', 's', '1',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'h', 'l',
-+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd',
-+  '_', 'h', 'l', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p',
-+  'y', 'u', 'd', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'm', 'p', 'y', 'u', 'd', '_', 'l', 'h', '_', 's', '1', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'l', 'l', '_', 's', '0',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'l', 'l',
-+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd',
-+  '_', 'n', 'a', 'c', '_', 'h', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'h', 'h', '_',
-+  's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_',
-+  'n', 'a', 'c', '_', 'h', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'h', 'l', '_', 's',
-+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n',
-+  'a', 'c', '_', 'l', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+  'm', 'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'l', 'h', '_', 's', '1',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'd', '_', 'n', 'a',
-+  'c', '_', 'l', 'l', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'm',
-+  'p', 'y', 'u', 'd', '_', 'n', 'a', 'c', '_', 'l', 'l', '_', 's', '1', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'm', 'p', 'y', 'u', 'i', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '2', '_', 'n', 'a', 'c', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+  'n', 'a', 'c', 'c', 'i', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 's', 'u',
-+  'b', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'a', 'b', 's',
-+  'd', 'i', 'f', 'f', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'a', 'b',
-+  's', 'd', 'i', 'f', 'f', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c',
-+  'm', 'a', 'c', '_', 's', '0', '_', 's', 'a', 't', '_', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'v', 'c', 'm', 'a', 'c', '_', 's', '0', '_', 's', 'a',
-+  't', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c', 'm', 'p', 'y',
-+  '_', 's', '0', '_', 's', 'a', 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'v', 'c', 'm', 'p', 'y', '_', 's', '0', '_', 's', 'a', 't', '_', 'r',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c', 'm', 'p', 'y', '_', 's', '1',
-+  '_', 's', 'a', 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'c',
-+  'm', 'p', 'y', '_', 's', '1', '_', 's', 'a', 't', '_', 'r', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'v', 'd', 'm', 'a', 'c', 's', '_', 's', '0', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'a', 'c', 's', '_', 's', '1', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'p', 'y', 'r', 's', '_', 's',
-+  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'p', 'y', 'r', 's',
-+  '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'p', 'y',
-+  's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'd', 'm', 'p',
-+  'y', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a',
-+  'c', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a', 'c', '2', 'e',
-+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a', 'c', '2', 'e', 's',
-+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a', 'c', '2',
-+  'e', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'a',
-+  'c', '2', 's', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm',
-+  'a', 'c', '2', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v',
-+  'm', 'a', 'c', '2', 's', 'u', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'v', 'm', 'a', 'c', '2', 's', 'u', '_', 's', '1', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '2', '_', 'v', 'm', 'p', 'y', '2', 'e', 's', '_', 's', '0', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 'e', 's', '_', 's', '1',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's', '_', 's',
-+  '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's', '_',
-+  's', '0', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'm',
-+  'p', 'y', '2', 's', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v',
-+  'm', 'p', 'y', '2', 's', '_', 's', '1', 'p', 'a', 'c', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's', 'u', '_', 's', '0', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'v', 'm', 'p', 'y', '2', 's', 'u', '_', 's',
-+  '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'a', 'd', 'd', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'a', 'd', 'd', 'u', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'a', 'c', 'i', '_', 's', '0',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'a', 'c', 'i', '_',
-+  's', '0', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'a',
-+  'c', 'r', '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c',
-+  'm', 'a', 'c', 'r', '_', 's', '0', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_',
-+  'v', 'r', 'c', 'm', 'p', 'y', 'i', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 'i', '_', 's', '0', 'c', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 'r', '_', 's', '0',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 'r', '_',
-+  's', '0', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'c', 'm', 'p',
-+  'y', 's', '_', 'a', 'c', 'c', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '2',
-+  '_', 'v', 'r', 'c', 'm', 'p', 'y', 's', '_', 's', '1', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '2', '_', 'v', 'r', 'c', 'm', 'p', 'y', 's', '_', 's', '1', 'r', 'p',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'm', 'a', 'c', '_', 's', '0',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'v', 'r', 'm', 'p', 'y', '_', 's', '0',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '2', '_', 'x', 'o', 'r', '_', 'x', 'a', 'c', 'c',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'a', 'n', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'a', 'n', 'd', 'n', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'o', 'r', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '4', '_', 'a', 'n', 'd', '_', 'x', 'o', 'r', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '4', '_', 'c', 'm', 'p', 'y', 'i', '_', 'w', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '4', '_', 'c', 'm', 'p', 'y', 'i', '_', 'w', 'h', 'c', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '4', '_', 'c', 'm', 'p', 'y', 'r', '_', 'w', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '4', '_', 'c', 'm', 'p', 'y', 'r', '_', 'w', 'h', 'c', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '4', '_', 'm', 'a', 'c', '_', 'u', 'p', '_', 's', '1', '_',
-+  's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'm', 'p', 'y', 'r', 'i',
-+  '_', 'a', 'd', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'm', 'p', 'y',
-+  'r', 'i', '_', 'a', 'd', 'd', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'm',
-+  'p', 'y', 'r', 'i', '_', 'a', 'd', 'd', 'r', '_', 'u', '2', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '4', '_', 'm', 'p', 'y', 'r', 'r', '_', 'a', 'd', 'd', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'M', '4', '_', 'm', 'p', 'y', 'r', 'r', '_', 'a', 'd', 'd',
-+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'n', 'a', 'c', '_', 'u', 'p', '_',
-+  's', '1', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r',
-+  '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r', '_', 'a',
-+  'n', 'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r', '_', 'o', 'r',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'M', '4', '_', 'o', 'r', '_', 'x', 'o', 'r', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '4', '_', 'p', 'm', 'p', 'y', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '4', '_', 'p', 'm', 'p', 'y', 'w', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '4', '_', 'v', 'p', 'm', 'p', 'y', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4',
-+  '_', 'v', 'p', 'm', 'p', 'y', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'e', 'h', '_', 'a', 'c', 'c', '_',
-+  's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'e',
-+  'h', '_', 'a', 'c', 'c', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_',
-+  'v', 'r', 'm', 'p', 'y', 'e', 'h', '_', 's', '0', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '4', '_', 'v', 'r', 'm', 'p', 'y', 'e', 'h', '_', 's', '1', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'o', 'h', '_', 'a', 'c', 'c',
-+  '_', 's', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4', '_', 'v', 'r', 'm', 'p', 'y',
-+  'o', 'h', '_', 'a', 'c', 'c', '_', 's', '1', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '4',
-+  '_', 'v', 'r', 'm', 'p', 'y', 'o', 'h', '_', 's', '0', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'M', '4', '_', 'v', 'r', 'm', 'p', 'y', 'o', 'h', '_', 's', '1', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'a', 'n', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'a', 'n', 'd', 'n', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'M', '4', '_', 'x', 'o', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '4', '_', 'x', 'o', 'r', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '5', '_', 'v', 'd', 'm', 'a', 'c', 'b', 's', 'u', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '5', '_', 'v', 'd', 'm', 'p', 'y', 'b', 's', 'u', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M',
-+  '5', '_', 'v', 'm', 'a', 'c', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5',
-+  '_', 'v', 'm', 'a', 'c', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_',
-+  'v', 'm', 'p', 'y', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_', 'v',
-+  'm', 'p', 'y', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_', 'v', 'r',
-+  'm', 'a', 'c', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_', 'v', 'r',
-+  'm', 'a', 'c', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_', 'v', 'r',
-+  'm', 'p', 'y', 'b', 's', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '5', '_', 'v', 'r',
-+  'm', 'p', 'y', 'b', 'u', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '6', '_', 'v', 'a',
-+  'b', 's', 'd', 'i', 'f', 'f', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'M', '6', '_', 'v',
-+  'a', 'b', 's', 'd', 'i', 'f', 'f', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'a', 'd', 'd', 'a', 's', 'l', '_', 'r', 'r', 'r', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'p', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'p', '_', 'a', 'c', 'c', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'p', '_', 'a',
-+  'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_',
-+  'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l',
-+  '_', 'i', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
-+  's', 'l', '_', 'i', '_', 'p', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '_', 'a', 'c', 'c', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r', '_', 'a', 'n',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'r',
-+  '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_',
-+  'i', '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
-+  'l', '_', 'i', '_', 'r', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'a', 's', 'l', '_', 'i', '_', 'r', '_', 'x', 'a', 'c', 'c', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'v', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'i', '_', 'v', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'p', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'p', '_', 'a', 'c', 'c',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'p', '_',
-+  'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r',
-+  '_', 'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
-+  'l', '_', 'r', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+  'a', 's', 'l', '_', 'r', '_', 'p', '_', 'x', 'o', 'r', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r', '_', 'a', 'c', 'c', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r', '_', 'a', 'n',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_', 'r', '_', 'r',
-+  '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'l', '_',
-+  'r', '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
-+  'l', '_', 'r', '_', 'r', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'a', 's', 'l', '_', 'r', '_', 'v', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'a', 's', 'l', '_', 'r', '_', 'v', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'a', 's', 'r', '_', 'i', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+  'a', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'n', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'p', '_', 'n',
-+  'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_',
-+  'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_',
-+  'i', '_', 'p', '_', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
-+  's', 'r', '_', 'i', '_', 'p', '_', 'r', 'n', 'd', '_', 'g', 'o', 'o', 'd',
-+  's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
-+  'r', '_', 'i', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r',
-+  '_', 'i', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+  'a', 's', 'r', '_', 'i', '_', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'r', '_', 'n', 'a', 'c', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'r', '_', 'o',
-+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i', '_', 'r',
-+  '_', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_',
-+  'i', '_', 'r', '_', 'r', 'n', 'd', '_', 'g', 'o', 'o', 'd', 's', 'y', 'n',
-+  't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'i',
-+  '_', 's', 'v', 'w', '_', 't', 'r', 'u', 'n', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'a', 's', 'r', '_', 'i', '_', 'v', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'a', 's', 'r', '_', 'i', '_', 'v', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'a', 's', 'r', '_', 'r', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+  'a', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'n', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'p', '_', 'n',
-+  'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_',
-+  'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_',
-+  'r', '_', 'p', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a',
-+  's', 'r', '_', 'r', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's',
-+  'r', '_', 'r', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'a', 's', 'r', '_', 'r', '_', 'r', '_', 'a', 'n', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'r', '_', 'n', 'a', 'c',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'r', '_',
-+  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r', '_', 'r', '_',
-+  'r', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'a', 's', 'r',
-+  '_', 'r', '_', 's', 'v', 'w', '_', 't', 'r', 'u', 'n', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'v', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'a', 's', 'r', '_', 'r', '_', 'v', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'b', 'r', 'e', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'b',
-+  'r', 'e', 'v', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'a', 'b', 'a',
-+  'c', 'e', 'n', 'c', 'b', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c',
-+  'l', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l', '0', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 'c', 'l', '1', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+  'c', 'l', '1', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 'l', 'b', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '2', '_', 'c', 'l', 'b', 'n', 'o', 'r', 'm', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 'c', 'l', 'b', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'c', 'l', 'r', 'b', 'i', 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'c', 'l', 'r', 'b', 'i', 't', '_', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'c', 't', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'c', 't', '0', 'p',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'S', '2', '_', 'c', 't', '1', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '2', '_', 'c', 't', '1', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'd', 'e',
-+  'i', 'n', 't', 'e', 'r', 'l', 'e', 'a', 'v', 'e', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u', '_', 'r', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'u', 'p',
-+  '_', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e', 'r',
-+  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e', 'r', 't', '_',
-+  'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e', 'r', 't',
-+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'p',
-+  '_', 'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'i', 'n', 't', 'e', 'r',
-+  'l', 'e', 'a', 'v', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 'f', 's',
-+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'p',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'p', '_',
-+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r',
-+  '_', 'p', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's',
-+  'l', '_', 'r', '_', 'p', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'l', 's', 'l', '_', 'r', '_', 'p', '_', 'o', 'r', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'p', '_', 'x', 'o', 'r', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'r', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'r', '_', 'a', 'c',
-+  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_', 'r', '_', 'r',
-+  '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'l', '_',
-+  'r', '_', 'r', '_', 'n', 'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-+  's', 'l', '_', 'r', '_', 'r', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'l', 's', 'l', '_', 'r', '_', 'v', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'l', 's', 'l', '_', 'r', '_', 'v', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'l', 's', 'r', '_', 'i', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+  'l', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'p', '_', 'a', 'n', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'p', '_', 'n',
-+  'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_',
-+  'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_',
-+  'i', '_', 'p', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+  'l', 's', 'r', '_', 'i', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-+  's', 'r', '_', 'i', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r', '_', 'a', 'n', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r', '_', 'n', 'a',
-+  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i', '_', 'r',
-+  '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'i',
-+  '_', 'r', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-+  's', 'r', '_', 'i', '_', 'v', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-+  's', 'r', '_', 'i', '_', 'v', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-+  's', 'r', '_', 'r', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's',
-+  'r', '_', 'r', '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'l', 's', 'r', '_', 'r', '_', 'p', '_', 'a', 'n', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'p', '_', 'n', 'a', 'c',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'p', '_',
-+  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_',
-+  'p', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r',
-+  '_', 'r', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_',
-+  'r', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'l',
-+  's', 'r', '_', 'r', '_', 'r', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '2', '_', 'l', 's', 'r', '_', 'r', '_', 'r', '_', 'n', 'a', 'c', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'r', '_', 'o', 'r',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'v', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'S', '2', '_', 'l', 's', 'r', '_', 'r', '_', 'v', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'S', '2', '_', 'p', 'a', 'c', 'k', 'h', 'l', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 'p', 'a', 'r', 'i', 't', 'y', 'p', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '2', '_', 's', 'e', 't', 'b', 'i', 't', '_', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '2', '_', 's', 'e', 't', 'b', 'i', 't', '_', 'r', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '2', '_', 's', 'h', 'u', 'f', 'f', 'e', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 's', 'h', 'u', 'f', 'f', 'e', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '2', '_', 's', 'h', 'u', 'f', 'f', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 's', 'h', 'u', 'f', 'f', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+  's', 't', 'o', 'r', 'e', 'w', '_', 'l', 'o', 'c', 'k', 'e', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '2', '_', 's', 'v', 's', 'a', 't', 'h', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '2', '_', 's', 'v', 's', 'a', 't', 'h', 'u', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '2', '_', 't', 'a', 'b', 'l', 'e', 'i', 'd', 'x', 'b', '_', 'g',
-+  'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 't', 'a', 'b', 'l', 'e', 'i', 'd', 'x', 'd', '_', 'g', 'o', 'o', 'd',
-+  's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 'a',
-+  'b', 'l', 'e', 'i', 'd', 'x', 'h', '_', 'g', 'o', 'o', 'd', 's', 'y', 'n',
-+  't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 'a', 'b', 'l', 'e',
-+  'i', 'd', 'x', 'w', '_', 'g', 'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'S', '2', '_', 't', 'o', 'g', 'g', 'l', 'e', 'b', 'i',
-+  't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 'o', 'g', 'g', 'l',
-+  'e', 'b', 'i', 't', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 's',
-+  't', 'b', 'i', 't', '_', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 't', 's',
-+  't', 'b', 'i', 't', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'a',
-+  'l', 'i', 'g', 'n', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'a',
-+  'l', 'i', 'g', 'n', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'c',
-+  'n', 'e', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'c', 'r', 'o',
-+  't', 'a', 't', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'r', 'c', 'n',
-+  'e', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'r', 'n', 'd', 'p',
-+  'a', 'c', 'k', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'r', 'n',
-+  'd', 'p', 'a', 'c', 'k', 'w', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_',
-+  'v', 's', 'a', 't', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's',
-+  'a', 't', 'h', 'b', '_', 'n', 'o', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'v', 's', 'a', 't', 'h', 'u', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '2', '_', 'v', 's', 'a', 't', 'h', 'u', 'b', '_', 'n', 'o', 'p', 'a', 'c',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'w', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'w', 'h', '_', 'n', 'o',
-+  'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't',
-+  'w', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 's', 'a', 't', 'w',
-+  'u', 'h', '_', 'n', 'o', 'p', 'a', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'v', 's', 'p', 'l', 'a', 't', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'v', 's', 'p', 'l', 'a', 't', 'r', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'v', 's', 'p', 'l', 'i', 'c', 'e', 'i', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '2', '_', 'v', 's', 'p', 'l', 'i', 'c', 'e', 'r', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '2', '_', 'v', 's', 'x', 't', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2',
-+  '_', 'v', 's', 'x', 't', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v',
-+  't', 'r', 'u', 'n', 'e', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v',
-+  't', 'r', 'u', 'n', 'e', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v',
-+  't', 'r', 'u', 'n', 'o', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v',
-+  't', 'r', 'u', 'n', 'o', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v',
-+  'z', 'x', 't', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '2', '_', 'v', 'z', 'x',
-+  't', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'a', 'd', 'd', 'a', 'd',
-+  'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'a', 'd', 'd', 'i', '_', 'a',
-+  's', 'l', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'a', 'd', 'd',
-+  'i', '_', 'l', 's', 'r', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_',
-+  'a', 'n', 'd', 'i', '_', 'a', 's', 'l', '_', 'r', 'i', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '4', '_', 'a', 'n', 'd', 'i', '_', 'l', 's', 'r', '_', 'r', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '4', '_', 'c', 'l', 'b', 'a', 'd', 'd', 'i', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '4', '_', 'c', 'l', 'b', 'p', 'a', 'd', 'd', 'i', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '4', '_', 'c', 'l', 'b', 'p', 'n', 'o', 'r', 'm', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '4', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '4', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', '_', 'r', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '4', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '4', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'p', '_',
-+  'r', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'l', 's', 'l', 'i', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '4', '_', 'n', 't', 's', 't', 'b', 'i', 't', '_', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '4', '_', 'n', 't', 's', 't', 'b', 'i', 't', '_', 'r',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'S', '4', '_', 'o', 'r', '_', 'a', 'n', 'd', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '4', '_', 'o', 'r', '_', 'a', 'n', 'd', 'i', 'x', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '4', '_', 'o', 'r', '_', 'o', 'r', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '4', '_', 'o', 'r', 'i', '_', 'a', 's', 'l', '_', 'r', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '4', '_', 'o', 'r', 'i', '_', 'l', 's', 'r', '_', 'r',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'p', 'a', 'r', 'i', 't', 'y', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '4', '_', 's', 't', 'o', 'r', 'e', 'd', '_', 'l', 'o',
-+  'c', 'k', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 's', 'u', 'b', 'a',
-+  'd', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 's', 'u', 'b', 'i', '_',
-+  'a', 's', 'l', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 's', 'u',
-+  'b', 'i', '_', 'l', 's', 'r', '_', 'r', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4',
-+  '_', 'v', 'r', 'c', 'r', 'o', 't', 'a', 't', 'e', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '4', '_', 'v', 'r', 'c', 'r', 'o', 't', 'a', 't', 'e', '_', 'a', 'c', 'c',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 'a', 'd', 'd', 's', 'u', 'b',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 'a', 'd', 'd', 's', 'u',
-+  'b', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 'a', 'd', 'd',
-+  's', 'u', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 's', 'u',
-+  'b', 'a', 'd', 'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v', 'x', 's',
-+  'u', 'b', 'a', 'd', 'd', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '4', '_', 'v',
-+  'x', 's', 'u', 'b', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '5', '_',
-+  'a', 's', 'r', 'h', 'u', 'b', '_', 'r', 'n', 'd', '_', 's', 'a', 't', '_',
-+  'g', 'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '5', '_', 'a', 's', 'r', 'h', 'u', 'b', '_', 's', 'a', 't', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '5', '_', 'p', 'o', 'p', 'c', 'o', 'u', 'n', 't', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '5', '_', 'v', 'a', 's', 'r', 'h', 'r', 'n', 'd', '_', 'g',
-+  'o', 'o', 'd', 's', 'y', 'n', 't', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6',
-+  '_', 'r', 'o', 'l', '_', 'i', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_',
-+  'r', 'o', 'l', '_', 'i', '_', 'p', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'p', '_', 'a', 'n', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'p', '_', 'n',
-+  'a', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_',
-+  'p', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_',
-+  'i', '_', 'p', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_',
-+  'r', 'o', 'l', '_', 'i', '_', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r',
-+  'o', 'l', '_', 'i', '_', 'r', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S',
-+  '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'r', '_', 'a', 'n', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'r', '_', 'n', 'a',
-+  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i', '_', 'r',
-+  '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'r', 'o', 'l', '_', 'i',
-+  '_', 'r', '_', 'x', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_', 'v',
-+  's', 'p', 'l', 'a', 't', 'r', 'b', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'S', '6', '_',
-+  'v', 't', 'r', 'u', 'n', 'e', 'h', 'b', '_', 'p', 'p', 'p', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'S', '6', '_', 'v', 't', 'r', 'u', 'n', 'o', 'h', 'b', '_', 'p', 'p',
-+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'S', 'I', '_',
-+  't', 'o', '_', 'S', 'X', 'T', 'H', 'I', '_', 'a', 's', 'r', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'w', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'h', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'h', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'l', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'o', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'v', 's', 'p',
-+  'l', 'a', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'l', 'v', 's', 'p',
-+  'l', 'a', 't', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'p', 'r', 'e', 'd', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'p', 'r', 'e', 'd', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'a', 'n', 'd', '_',
-+  'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'a', 'n',
-+  'd', '_', 'n', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'p', 'r', 'e', 'd', '_', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'p', 'r', 'e', 'd', '_', 'n', 'o', 't', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'o', 'r', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'o', 'r', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'o', 'r',
-+  '_', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 'o',
-+  'r', '_', 'n', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'p', 'r', 'e', 'd', '_', 's', 'c', 'a', 'l', 'a', 'r', '2', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'p', 'r', 'e', 'd', '_', 's', 'c', 'a', 'l', 'a', 'r',
-+  '2', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r',
-+  'e', 'd', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'p', 'r',
-+  'e', 'd', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'h', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd',
-+  'i', 'f', 'f', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b',
-+  's', 'd', 'i', 'f', 'f', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'u', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'd', 'i', 'f', 'f', 'u',
-+  'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-+  'b', 's', 'd', 'i', 'f', 'f', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'a', 'b', 's', 'd', 'i', 'f', 'f', 'w', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'a', 'b', 's', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h', '_', 's', 'a', 't', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'h', '_', 's', 'a', 't', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'w', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's', 'w',
-+  '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'b', 's',
-+  'w', '_', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'a', 'd', 'd', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'a', 'd', 'd', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'a', 'd', 'd', 'b', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'a', 'd', 'd', 'b', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 'n', 'q', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 'n', 'q', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 'q',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'b', 'q', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', '_',
-+  'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', '_',
-+  'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'a', 'd', 'd', 'h', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-+  'd', 'd', 'h', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'a', 'd', 'd', 'h', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'a', 'd', 'd', 'h', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 's', 'a', 't', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 's', 'a', 't', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 's', 'a',
-+  't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
-+  'h', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'h', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'a', 'd', 'd', 'h', 'w', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 'h', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's',
-+  'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b',
-+  's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'a', 'd', 'd', 'u', 'b', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', 'a', 't', '_', 'd',
-+  'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-+  'd', 'd', 'u', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'a', 'd', 'd', 'u', 'h', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 's', 'a', 't', '_',
-+  'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h',
-+  's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'a', 'd', 'd', 'u', 'h', 'w', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '_', 'd', 'v', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', '_', 'd', 'v', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w',
-+  'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 'n',
-+  'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-+  'd', 'd', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd',
-+  'w', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'a', 'd', 'd', 'w', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'a', 'd', 'd', 'w', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 's', 'a', 't', '_', 'd', 'v',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'd', 'd', 'w', 's', 'a', 't',
-+  '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'a', 'l', 'i', 'g', 'n', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'a', 'l', 'i', 'g', 'n', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'a', 'l', 'i', 'g', 'n', 'b', 'i', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'a', 'l', 'i', 'g', 'n', 'b', 'i', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'q', 'r', 't', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'q', 'r', 't', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'q', 'r', 't',
-+  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd',
-+  'q', 'r', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'r', 't', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'r', 't', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v', 'r', 't', '_',
-+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'n', 'd', 'v',
-+  'r', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'a', 's', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'a', 's', 'l', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'a', 's', 'l', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'a', 's', 'l', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'a', 's', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'a', 's', 'l', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'a', 's', 'l', 'w', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'a', 's', 'l', 'w', '_', 'a', 'c', 'c', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'w', 'v',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'l', 'w', 'v', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'b',
-+  'r', 'n', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-+  's', 'r', 'h', 'b', 'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'u', 'b', 'r',
-+  'n', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
-+  'r', 'h', 'u', 'b', 'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'u', 'b', 's',
-+  'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'h', 'u',
-+  'b', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'a', 's', 'r', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'a', 's', 'r', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'a', 's', 'r', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'a', 's', 'r', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'a', 's', 'r', 'w', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'a', 's', 'r', 'w', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h',
-+  'r', 'n', 'd', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a',
-+  's', 'r', 'w', 'h', 'r', 'n', 'd', 's', 'a', 't', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', 's', 'a',
-+  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'h', 's',
-+  'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'a', 's', 'r', 'w', 'u', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'a', 's', 'r', 'w', 'u', 'h', 's', 'a', 't', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'v', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 'r', 'w', 'v', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 's', 'i', 'g',
-+  'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's', 's', 'i', 'g', 'n',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
-+  's', 'i', 'g', 'n', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 's',
-+  's', 'i', 'g', 'n', 'p', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'a', 'v', 'g', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'a', 'v', 'g', 'h', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'a', 'v', 'g', 'h', 'r', 'n', 'd', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', 'r', 'n',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'u', 'b', 'r',
-+  'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'a', 'v', 'g', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v',
-+  'g', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'a', 'v', 'g', 'u', 'h', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'a', 'v', 'g', 'u', 'h', 'r', 'n', 'd', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'w', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'w', 'r', 'n', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'a', 'v', 'g', 'w', 'r', 'n', 'd', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'c', 'l', '0',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'c', 'l', '0', 'h', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'c', 'l', '0', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'c', 'l', '0', 'w', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'c', 'o', 'm', 'b', 'i',
-+  'n', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'c', 'o', 'm', 'b', 'i',
-+  'n', 'e', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'd', '0', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', '0', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l', 'b', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l',
-+  'b', '4', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'a', 'l',
-+  'b', '4', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'd', 'e', 'a', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-+  'e', 'a', 'l', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'd', 'e', 'a', 'l', 'v', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'd', 'e', 'a', 'l', 'v', 'd', 'd', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'e', 'l', 't', 'a', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'd', 'e', 'l', 't', 'a', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-+  'p', 'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y',
-+  'b', 'u', 's', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-+  'm', 'p', 'y', 'b', 'u', 's', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'b', 'u', 's', '_',
-+  'd', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-+  'm', 'p', 'y', 'b', 'u', 's', '_', 'd', 'v', '_', 'a', 'c', 'c', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y',
-+  'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h',
-+  'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-+  'm', 'p', 'y', 'h', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'd', 'm', 'p', 'y', 'h', 'b', '_', 'a', 'c', 'c', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h',
-+  'b', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p',
-+  'y', 'h', 'b', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'b', '_', 'd', 'v', '_', 'a',
-+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h',
-+  'b', '_', 'd', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'i', 's', 'a', 't',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'i', 's',
-+  'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'd', 'm', 'p', 'y', 'h', 'i', 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'i', 's', 'a', 't',
-+  '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'a', 't', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's',
-+  'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd',
-+  'm', 'p', 'y', 'h', 's', 'a', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's',
-+  'u', 'i', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-+  'p', 'y', 'h', 's', 'u', 'i', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 'i',
-+  's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'd', 'm', 'p', 'y', 'h', 's', 'u', 'i', 's', 'a', 't', '_', 'a', 'c', 'c',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-+  'p', 'y', 'h', 's', 'u', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 's', 'a', 't', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 's',
-+  'u', 's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'd', 'm', 'p', 'y', 'h', 's', 'u', 's', 'a', 't', '_', 'a', 'c', 'c',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-+  'p', 'y', 'h', 'v', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'd', 'm', 'p', 'y', 'h', 'v', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm', 'p', 'y', 'h', 'v', 's', 'a',
-+  't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 'm',
-+  'p', 'y', 'h', 'v', 's', 'a', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 's', 'a', 'd', 'u', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 's', 'a', 'd', 'u', 'h', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'd', 's', 'a',
-+  'd', 'u', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'd', 's', 'a', 'd', 'u', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'e', 'q', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_', 'a', 'n', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_', 'a', 'n', 'd', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_', 'o',
-+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'b', '_', 'o', 'r',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q',
-+  'b', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q',
-+  'b', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'e', 'q', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e',
-+  'q', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'e', 'q', 'h', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'e', 'q', 'h', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'o', 'r', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'o', 'r', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'x', 'o', 'r',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'h', '_', 'x', 'o', 'r',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', 'a',
-+  'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e', 'q', 'w', '_', 'a',
-+  'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'e', 'q', 'w', '_', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'e',
-+  'q', 'w', '_', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'e', 'q', 'w', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'e', 'q', 'w', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'g', 't', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'a', 'n', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'a', 'n', 'd', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'o',
-+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'b', '_', 'o', 'r',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-+  'b', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-+  'b', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'g', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g',
-+  't', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'g', 't', 'h', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'g', 't', 'h', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'g', 't', 'h', '_', 'o', 'r', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'g', 't', 'h', '_', 'o', 'r', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'h', '_', 'x', 'o', 'r',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'h', '_', 'x', 'o', 'r',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-+  'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u',
-+  'b', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-+  'u', 'b', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', 'o', 'r', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', 'o', 'r', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_', 'x',
-+  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'b', '_',
-+  'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'g', 't', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-+  'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'g', 't', 'u', 'h', '_', 'a', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'g', 't', 'u', 'h', '_', 'a', 'n', 'd', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'h', '_', 'o', 'r', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'h', '_', 'o', 'r', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u',
-+  'h', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't',
-+  'u', 'h', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'g', 't', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'g', 't', 'u', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'g', 't', 'u', 'w', '_', 'a', 'n', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'g', 't', 'u', 'w', '_', 'a', 'n', 'd', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'w', '_',
-+  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'u', 'w', '_',
-+  'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'g', 't', 'u', 'w', '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'g', 't', 'u', 'w', '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'g', 't', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'g', 't', 'w', '_', 'a', 'n', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'g', 't', 'w', '_', 'a', 'n', 'd', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'o', 'r',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w', '_', 'o', 'r', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w',
-+  '_', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'g', 't', 'w',
-+  '_', 'x', 'o', 'r', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'i', 'n', 's', 'e', 'r', 't', 'w', 'r', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'i', 'n', 's', 'e', 'r', 't', 'w', 'r', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'a', 'l', 'i', 'g', 'n',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'a', 'l', 'i', 'g', 'n',
-+  'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l',
-+  'a', 'l', 'i', 'g', 'n', 'b', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'l', 'a', 'l', 'i', 'g', 'n', 'b', 'i', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'l', 's', 'r', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'l', 's', 'r', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'l', 's', 'r', 'h', 'v', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'l', 's', 'r', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'l', 's', 'r', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'l', 's', 'r', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'l', 's', 'r', 'w', 'v', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'l', 's', 'r', 'w', 'v', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'l', 'u', 't', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'b', '_', 'a', 'c', 'c', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'b', '_', 'a', 'c', 'c', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't',
-+  'b', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't',
-+  'b', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'l', 'u', 't', 'b', '_', 'd', 'v', '_', 'a', 'c', 'c', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'b', '_', 'd', 'v', '_', 'a',
-+  'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'l', 'u', 't', 'v', 'v', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l',
-+  'u', 't', 'v', 'v', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '_', 'o', 'r', 'a', 'c', 'c',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'v', 'b', '_',
-+  'o', 'r', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v', 'w', 'h', '_', 'o', 'r',
-+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', 'v',
-+  'w', 'h', '_', 'o', 'r', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'm', 'a', 'x', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'u', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'm', 'a', 'x', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'u', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'm', 'a', 'x', 'u', 'h', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'a', 'x', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'm', 'a', 'x', 'w', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'm', 'i', 'n', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'u', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'm', 'i', 'n', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'u', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'm', 'i', 'n', 'u', 'h', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'i', 'n', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'm', 'i', 'n', 'w', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's',
-+  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a',
-+  'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', 'v', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u', 's', 'v', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u',
-+  'u', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'a', 'b', 'u',
-+  'u', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'm', 'p', 'a', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+  'a', 'h', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'm', 'p', 'a', 'h', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'm', 'p', 'a', 'h', 'b', '_', 'a', 'c', 'c', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u',
-+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+  'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'm', 'p', 'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's',
-+  'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's',
-+  'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+  'p', 'y', 'b', 'u', 's', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'm', 'p', 'y', 'b', 'u', 's', 'v', '_', 'a', 'c', 'c', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-+  'b', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'b', 'v',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+  'y', 'b', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'm', 'p', 'y', 'b', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'e', 'w', 'u', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'e', 'w', 'u', 'h', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h',
-+  's', 'a', 't', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'm', 'p', 'y', 'h', 's', 'a', 't', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 's', 'r',
-+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 's', 'r',
-+  's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+  'p', 'y', 'h', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+  'y', 'h', 's', 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'm', 'p', 'y', 'h', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'm', 'p', 'y', 'h', 'u', 's', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 'u', 's', '_', 'a', 'c', 'c',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 'u', 's', '_',
-+  'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'm', 'p', 'y', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+  'p', 'y', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'm', 'p', 'y', 'h', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'm', 'p', 'y', 'h', 'v', '_', 'a', 'c', 'c', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'h',
-+  'v', 's', 'r', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-+  'h', 'v', 's', 'r', 's', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'o', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'o', 'h', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'h',
-+  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-+  'i', 'e', 'w', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'u', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'u', 'h',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+  'y', 'i', 'e', 'w', 'u', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'm', 'p', 'y', 'i', 'e', 'w', 'u', 'h', '_', 'a', 'c', 'c',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+  'y', 'i', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i',
-+  'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+  'p', 'y', 'i', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'm', 'p', 'y', 'i', 'h', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'h', 'b', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'h', 'b', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i',
-+  'h', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+  'p', 'y', 'i', 'h', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'o', 'w', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'o', 'w', 'h', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y',
-+  'i', 'w', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i',
-+  'w', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'm', 'p', 'y', 'i', 'w', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'm', 'p', 'y', 'i', 'w', 'b', '_', 'a', 'c', 'c', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i',
-+  'w', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'i', 'w',
-+  'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+  'p', 'y', 'i', 'w', 'h', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'm', 'p', 'y', 'i', 'w', 'h', '_', 'a', 'c', 'c', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+  'y', 'o', 'w', 'h', '_', 'r', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 'r', 'n', 'd', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h',
-+  '_', 'r', 'n', 'd', '_', 's', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 'r', 'n', 'd', '_', 's', 'a',
-+  'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'm', 'p', 'y', 'o', 'w', 'h', '_', 's', 'a', 'c', 'c', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'm', 'p', 'y', 'o', 'w', 'h', '_', 's', 'a', 'c', 'c',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p',
-+  'y', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u',
-+  'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+  'p', 'y', 'u', 'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'm', 'p', 'y', 'u', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'b', 'v', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'b', 'v', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u',
-+  'b', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm',
-+  'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', '_', 'a',
-+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h',
-+  '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'm', 'p', 'y', 'u', 'h', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'm', 'p', 'y', 'u', 'h', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'v', '_', 'a', 'c', 'c',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'p', 'y', 'u', 'h', 'v', '_',
-+  'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'm', 'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'm', 'u', 'x',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'a',
-+  'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'a', 'v', 'g',
-+  'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n',
-+  'a', 'v', 'g', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'a',
-+  'v', 'g', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'n', 'a', 'v', 'g', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'n', 'a', 'v', 'g', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'n', 'o', 'r', 'm', 'a', 'm', 't', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'n', 'o', 'r', 'm', 'a', 'm', 't', 'h', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'o', 'r', 'm', 'a',
-+  'm', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'o', 'r', 'm',
-+  'a', 'm', 't', 'w', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'n', 'o', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'n', 'o',
-+  't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'o',
-+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'o', 'r', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'e', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'e', 'b', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c',
-+  'k', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k',
-+  'e', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'p', 'a', 'c', 'k', 'h', 'b', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'p', 'a', 'c', 'k', 'h', 'b', '_', 's', 'a', 't', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k',
-+  'h', 'u', 'b', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'p', 'a', 'c', 'k', 'h', 'u', 'b', '_', 's', 'a', 't', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'o', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k', 'o', 'b', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c',
-+  'k', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k',
-+  'o', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'p', 'a', 'c', 'k', 'w', 'h', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'p', 'a', 'c', 'k', 'w', 'h', '_', 's', 'a', 't', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'a', 'c', 'k',
-+  'w', 'u', 'h', '_', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'p', 'a', 'c', 'k', 'w', 'u', 'h', '_', 's', 'a', 't', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'o', 'p', 'c', 'o', 'u',
-+  'n', 't', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'p', 'o', 'p', 'c',
-+  'o', 'u', 'n', 't', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'r', 'd', 'e', 'l', 't', 'a', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'r', 'd', 'e', 'l', 't', 'a', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y',
-+  'b', 'u', 's', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'r', 'm', 'p', 'y', 'b', 'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u',
-+  's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b',
-+  'u', 's', 'i', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'i', '_', 'a', 'c', 'c', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'i', '_',
-+  'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'v', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's', 'v', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'u', 's',
-+  'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm',
-+  'p', 'y', 'b', 'u', 's', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'v', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'b', 'v', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y',
-+  'b', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-+  'm', 'p', 'y', 'b', 'v', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u',
-+  'b', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm',
-+  'p', 'y', 'u', 'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'i', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'i', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y',
-+  'u', 'b', 'i', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'r', 'm', 'p', 'y', 'u', 'b', 'i', '_', 'a', 'c', 'c', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b',
-+  'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b',
-+  'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-+  'm', 'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'r', 'm', 'p', 'y', 'u', 'b', 'v', '_', 'a', 'c', 'c', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'r',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'r', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'h',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'h',
-+  'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r',
-+  'o', 'u', 'n', 'd', 'h', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  'r', 'o', 'u', 'n', 'd', 'h', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'w', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n', 'd', 'w', 'h', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u', 'n',
-+  'd', 'w', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 'o', 'u',
-+  'n', 'd', 'w', 'u', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'r', 's', 'a', 'd', 'u', 'b', 'i', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'r', 's', 'a', 'd', 'u', 'b', 'i', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 's', 'a', 'd', 'u', 'b', 'i',
-+  '_', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'r', 's', 'a',
-+  'd', 'u', 'b', 'i', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'h', 'u', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 's', 'a', 't', 'h', 'u', 'b', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'w', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'a', 't', 'w', 'h', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 's', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  's', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  's', 'h', 'u', 'f', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-+  'h', 'u', 'f', 'e', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 's', 'h', 'u', 'f', 'f', 'b', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'e', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'e', 'b', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f',
-+  'f', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f',
-+  'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-+  'h', 'u', 'f', 'f', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-+  'h', 'u', 'f', 'f', 'o', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'v', 'd', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'f', 'v', 'd', 'd', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f',
-+  'o', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f',
-+  'o', 'e', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 's', 'h', 'u', 'f', 'o', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 's', 'h', 'u', 'f', 'o', 'e', 'h', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'o', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 's', 'h', 'u', 'f', 'o', 'h', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', '_', 'd', 'v',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'b', '_', 'd', 'v',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
-+  'b', 'b', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-+  'b', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 's', 'u', 'b', 'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-+  'u', 'b', 'b', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 's', 'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-+  'u', 'b', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 's', 'u', 'b', 'h', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 's', 'u', 'b', 'h', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'n', 'q', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'n', 'q', '_', '1', '2', '8',
-+  'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'q', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'q', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 's',
-+  'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 's',
-+  'a', 't', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  's', 'u', 'b', 'h', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 's', 'u', 'b', 'h', 's', 'a', 't', '_', 'd', 'v', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'h', 'w', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-+  'u', 'b', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u',
-+  'b', 'h', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v',
-+  's', 'u', 'b', 'u', 'b', 's', 'a', 't', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 's', 'u', 'b', 'u', 'b', 's', 'a', 't', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'b', 's', 'a', 't',
-+  '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u',
-+  'b', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 's', 'a', 't', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 's', 'a', 't', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-+  'u', 'h', 's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 's', 'u', 'b', 'u', 'h', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2',
-+  '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'u', 'h', 'w',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u',
-+  'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-+  'w', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b',
-+  'w', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
-+  '_', 'v', 's', 'u', 'b', 'w', 'n', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 's', 'u', 'b', 'w', 'n', 'q', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 'q', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 's', 'u', 'b', 'w', 'q', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 's', 'a', 't', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w', 's', 'a', 't', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's', 'u', 'b', 'w',
-+  's', 'a', 't', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 's',
-+  'u', 'b', 'w', 's', 'a', 't', '_', 'd', 'v', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 's', 'w', 'a', 'p', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 's', 'w', 'a', 'p', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '_', 'a', 'c',
-+  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X',
-+  'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', '_',
-+  'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 't', 'm', 'p', 'y', 'b', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_',
-+  'v', 't', 'm', 'p', 'y', 'b', 'u', 's', '_', '1', '2', '8', 'B', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b', 'u', 's', '_', 'a',
-+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'b',
-+  'u', 's', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'h', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 't', 'm', 'p', 'y', 'h', 'b', '_', '1', '2', '8', 'B', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'h', 'b', '_', 'a',
-+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E',
-+  'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 't', 'm', 'p', 'y', 'h',
-+  'b', '_', 'a', 'c', 'c', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'b', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'h',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n',
-+  'p', 'a', 'c', 'k', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u',
-+  'n', 'p', 'a', 'c', 'k', 'o', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'o', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O',
-+  'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'o', 'h', '_',
-+  '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n', 'p',
-+  'a', 'c', 'k', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'u', 'n',
-+  'p', 'a', 'c', 'k', 'u', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_',
-+  'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'u', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N',
-+  '_', 'V', '6', '_', 'v', 'u', 'n', 'p', 'a', 'c', 'k', 'u', 'h', '_', '1',
-+  '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
-+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'x', 'o', 'r', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G',
-+  'O', 'N', '_', 'V', '6', '_', 'v', 'x', 'o', 'r', '_', '1', '2', '8', 'B',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
-+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'z', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'z', 'b', '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V',
-+  '6', '_', 'v', 'z', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'z', 'h',
-+  '_', '1', '2', '8', 'B', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'b', 'r', 'e', 'v', '_', 'l', 'd', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 'l', 'd', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 'l',
-+  'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r',
-+  'e', 'v', '_', 'l', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 'l', 'd', 'u', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 'l', 'd',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e',
-+  'v', '_', 's', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'b', 'r', 'e', 'v', '_', 's', 't', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 's', 't', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 's',
-+  't', 'h', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'b', 'r', 'e', 'v', '_', 's', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r',
-+  'c', '_', 'l', 'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'c', 'i', 'r', 'c', '_', 'l', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 'l', 'd', 'u', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c',
-+  '_', 'l', 'd', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'c', 'i', 'r', 'c', '_', 's', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 's', 't', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 's', 't',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'c', 'i', 'r',
-+  'c', '_', 's', 't', 'h', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'c', 'i', 'r', 'c', '_', 's', 't', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', '_', 'm', 'm', '2', '5', '6', 'i', '_',
-+  'v', 'a', 'd', 'd', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'p', 'r', 'e', 'f', 'e', 't',
-+  'c', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 'a', 'b', 's', 'q', '_', 's', '_', 'p', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'b',
-+  's', 'q', '_', 's', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'b', 's', 'q', '_', 's', '_',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'a', 'd', 'd', '_', 'a', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', '_', 'a', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'a', 'd', 'd', '_', 'a', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', '_', 'a', '_', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-+  'a', 'd', 'd', 'q', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'q', '_', 's', '_',
-+  'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 'a', 'd', 'd', 'q', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd',
-+  'q', 'h', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'q', 'h', '_', 'r', '_', 'p',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 'a', 'd', 'd', 'q', 'h', '_', 'r', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd',
-+  'q', 'h', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'a', '_', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd',
-+  's', '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'a', '_', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd',
-+  'd', 's', '_', 'a', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 's', '_', 'b', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a',
-+  'd', 'd', 's', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 's', '_', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'a', 'd', 'd', 's', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'u', '_',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'a', 'd', 'd', 's', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 's', '_', 'u',
-+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'a', 'd', 'd', 's', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 's',
-+  'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 'a', 'd', 'd', 'u', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'u', '_',
-+  'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 'a', 'd', 'd', 'u', '_', 's', '_', 'p', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd',
-+  'd', 'u', '_', 's', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'u', 'h', '_', 'q',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 'a', 'd', 'd', 'u', 'h', '_', 'r', '_', 'q', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd',
-+  'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'a', 'd', 'd', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', '_', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'a', 'd', 'd', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', 'i', '_', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd',
-+  'd', 'v', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'a', 'd', 'd', 'v', 'i', '_', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'd', 'd',
-+  'v', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 'i', 'p', 's', '_', 'a', 'd', 'd', 'w', 'c', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'n', 'd', '_', 'v',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'a', 'n', 'd', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 'i', 'p', 's', '_', 'a', 'p', 'p', 'e', 'n', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's',
-+  'u', 'b', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 's', '_', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a',
-+  's', 'u', 'b', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 's', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'a', 's', 'u', 'b', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 'u', '_',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'a', 's', 'u', 'b', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 's', 'u', 'b', '_', 'u',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'a', 'v', 'e', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_', 's', '_',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'a', 'v', 'e', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_', 's', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'a', 'v', 'e', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_', 'u', '_', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a',
-+  'v', 'e', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', '_', 'u', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v',
-+  'e', 'r', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 's', '_', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a',
-+  'v', 'e', 'r', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 's', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'a', 'v', 'e', 'r', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 'u', '_',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'a', 'v', 'e', 'r', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'a', 'v', 'e', 'r', '_', 'u',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 'b', 'a', 'l', 'i', 'g', 'n', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', '_', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'b', 'c', 'l', 'r', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', '_', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l',
-+  'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'b', 'c', 'l', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', 'i',
-+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'b', 'c', 'l', 'r', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'c', 'l', 'r', 'i', '_',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'b', 'i', 'n', 's', 'l', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'b', 'i', 'n', 's', 'l', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', '_', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+  'i', 'n', 's', 'l', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', 'i', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'b', 'i', 'n', 's', 'l', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'l', 'i', '_',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'b', 'i', 'n', 's', 'r', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'b', 'i', 'n', 's', 'r', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', '_', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+  'i', 'n', 's', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', 'i', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'b', 'i', 'n', 's', 'r', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'i', 'n', 's', 'r', 'i', '_',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 'b', 'i', 't', 'r', 'e', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'm', 'n', 'z', '_', 'v', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+  'm', 'n', 'z', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'b', 'm', 'z', '_', 'v', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'm', 'z', 'i',
-+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'b', 'n', 'e', 'g', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g', '_', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+  'n', 'e', 'g', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g',
-+  'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'b', 'n', 'e', 'g', 'i', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'e', 'g', 'i',
-+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'b', 'n', 'e', 'g', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'z', '_', 'b', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+  'n', 'z', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'b', 'n', 'z', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'n', 'z', '_', 'v', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+  'n', 'z', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 'i', 'p', 's', '_', 'b', 'p', 'o', 's', 'g', 'e', '3', '2', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's',
-+  'e', 'l', '_', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'b', 's', 'e', 'l', 'i', '_', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't',
-+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'b', 's', 'e', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't', '_', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b',
-+  's', 'e', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't', 'i', '_', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e',
-+  't', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'b', 's', 'e', 't', 'i', '_', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 's', 'e', 't',
-+  'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'b', 'z', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'z', '_', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'b', 'z', '_', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'b', 'z', '_', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'b', 'z', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q', '_', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e',
-+  'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'c', 'e', 'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e',
-+  'q', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'c', 'e', 'q', 'i', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'e', 'q', 'i', '_',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'c', 'e', 'q', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'f', 'c', 'm', 's', 'a', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l',
-+  'e', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 's', '_', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e',
-+  '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'c', 'l', 'e', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_',
-+  'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'c', 'l', 'e', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', '_', 'u',
-+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'c', 'l', 'e', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 's',
-+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'c', 'l', 'e', 'i', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_',
-+  's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'c', 'l', 'e', 'i', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i',
-+  '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 'u', '_', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 'e',
-+  'i', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'c', 'l', 'e', 'i', '_', 'u', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l',
-+  't', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_', 's', '_', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't',
-+  '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'c', 'l', 't', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_',
-+  'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'c', 'l', 't', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', '_', 'u',
-+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'c', 'l', 't', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 's',
-+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'c', 'l', 't', 'i', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_',
-+  's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'c', 'l', 't', 'i', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i',
-+  '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 'u', '_', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'l', 't',
-+  'i', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'c', 'l', 't', 'i', '_', 'u', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c',
-+  'm', 'p', '_', 'e', 'q', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', '_', 'l', 'e',
-+  '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  'i', 'p', 's', '_', 'c', 'm', 'p', '_', 'l', 't', '_', 'p', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c',
-+  'm', 'p', 'g', 'd', 'u', '_', 'e', 'q', '_', 'q', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p',
-+  'g', 'd', 'u', '_', 'l', 'e', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'd',
-+  'u', '_', 'l', 't', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'u', '_', 'e',
-+  'q', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'g', 'u', '_', 'l', 'e', '_', 'q',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 'c', 'm', 'p', 'g', 'u', '_', 'l', 't', '_', 'q', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c',
-+  'm', 'p', 'u', '_', 'e', 'q', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'u', '_',
-+  'l', 'e', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 'i', 'p', 's', '_', 'c', 'm', 'p', 'u', '_', 'l', 't', '_', 'q',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'c', 'o', 'p', 'y', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 's',
-+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'c', 'o', 'p', 'y', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_',
-+  's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'c', 'o', 'p', 'y', '_', 'u', '_', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p', 'y',
-+  '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'c', 'o', 'p', 'y', '_', 'u', '_', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'c', 'o', 'p',
-+  'y', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'c', 't', 'c', 'm', 's', 'a', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_',
-+  's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'd', 'i', 'v', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 's',
-+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'd', 'i', 'v', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 'u', '_',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'd', 'i', 'v', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'i', 'v', '_', 'u', '_', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'd', 'i', 'v', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'l', 's', 'a', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'o', 't',
-+  'p', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'd', 'o', 't', 'p', '_', 's', '_', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'o',
-+  't', 'p', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'd', 'o', 't', 'p', '_', 'u', '_', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd',
-+  'o', 't', 'p', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'o', 't', 'p', '_', 'u', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+  '_', 'd', 'p', 'a', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_',
-+  's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_', 's', '_', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a',
-+  'd', 'd', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_', 'u', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'd', 'p', 'a', 'd', 'd', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 'a', 'd', 'd', '_',
-+  'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  'i', 'p', 's', '_', 'd', 'p', 'a', 'q', '_', 's', '_', 'w', '_', 'p', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+  '_', 'd', 'p', 'a', 'q', '_', 's', 'a', '_', 'l', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p',
-+  'a', 'q', 'x', '_', 's', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a', 'q',
-+  'x', '_', 's', 'a', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a', 'u', '_',
-+  'h', '_', 'q', 'b', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 'a', 'u', '_', 'h', '_', 'q', 'b',
-+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 'd', 'p', 'a', 'x', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's',
-+  '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', 'q', '_', 's', '_', 'w', '_',
-+  'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 'd', 'p', 's', 'q', '_', 's', 'a', '_', 'l', '_', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-+  'd', 'p', 's', 'q', 'x', '_', 's', '_', 'w', '_', 'p', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p',
-+  's', 'q', 'x', '_', 's', 'a', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's',
-+  'u', '_', 'h', '_', 'q', 'b', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p', 's', 'u', '_', 'h', '_',
-+  'q', 'b', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_', 's', '_', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 's',
-+  'u', 'b', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_', 's', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'd', 'p', 's', 'u', 'b', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_',
-+  'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'd', 'p', 's', 'u', 'b', '_', 'u', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'd', 'p',
-+  's', 'x', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'p', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e', 'x',
-+  't', 'p', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'r', '_', 'r', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e',
-+  'x', 't', 'r', '_', 'r', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'e', 'x', 't', 'r', '_', 's',
-+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 'e', 'x', 't', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'a', 'd', 'd', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'f', 'a', 'd', 'd', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'a', 'f', '_', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'a',
-+  'f', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'f', 'c', 'e', 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'e', 'q', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'f', 'c', 'l', 'a', 's', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'l', 'a', 's', 's', '_',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'f', 'c', 'l', 'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'l', 'e', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c',
-+  'l', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'f', 'c', 'l', 't', '_', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'n', 'e', '_',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'f', 'c', 'n', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'o', 'r', '_', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c',
-+  'o', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'f', 'c', 'u', 'e', 'q', '_', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'e',
-+  'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'f', 'c', 'u', 'l', 'e', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'l', 'e',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'f', 'c', 'u', 'l', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'l', 't', '_',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'f', 'c', 'u', 'n', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'n', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'c',
-+  'u', 'n', 'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'f', 'c', 'u', 'n', 'e', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'd', 'i',
-+  'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'f', 'd', 'i', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'd', 'o', '_',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'f', 'e', 'x', 'd', 'o', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'p', '2', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'f', 'e', 'x', 'p', '2', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'u', 'p', 'l', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'f', 'e', 'x', 'u', 'p', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'e', 'x', 'u', 'p', 'r', '_',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'f', 'e', 'x', 'u', 'p', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'i', 'n', 't', '_',
-+  's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'f', 'f', 'i', 'n', 't', '_', 's', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'i',
-+  'n', 't', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'i', 'n', 't', '_', 'u', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'f', 'f', 'q', 'l', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'q', 'l', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'f', 'q',
-+  'r', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'f', 'f', 'q', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'i', 'l', 'l', '_', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'f', 'i', 'l', 'l', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'f', 'i', 'l', 'l', '_', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'i', 'l',
-+  'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'f', 'l', 'o', 'g', '2', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'l', 'o', 'g', '2',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'f', 'm', 'a', 'd', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'a', 'd', 'd', '_',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'f', 'm', 'a', 'x', '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'a', 'x', '_', 'a',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'f', 'm', 'a', 'x', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'a', 'x', '_', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-+  'm', 'i', 'n', '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'i', 'n', '_', 'a', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'f', 'm', 'i', 'n', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'i', 'n', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 's',
-+  'u', 'b', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'f', 'm', 's', 'u', 'b', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'm', 'u', 'l',
-+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'f', 'm', 'u', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'r', 'c', 'p', '_', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-+  'r', 'c', 'p', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'f', 'r', 'i', 'n', 't', '_', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'r', 'i',
-+  'n', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'f', 'r', 's', 'q', 'r', 't', '_', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 'r', 's',
-+  'q', 'r', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'f', 's', 'a', 'f', '_', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'a', 'f',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'f', 's', 'e', 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'e', 'q', '_', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-+  's', 'l', 'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'f', 's', 'l', 'e', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'l', 't',
-+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'f', 's', 'l', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'n', 'e', '_', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-+  's', 'n', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'f', 's', 'o', 'r', '_', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'o', 'r',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'f', 's', 'q', 'r', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'q', 'r', 't', '_',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'f', 's', 'u', 'b', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'b', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's',
-+  'u', 'e', 'q', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'e', 'q', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u',
-+  'l', 'e', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'f', 's', 'u', 'l', 'e', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'l',
-+  't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'f', 's', 'u', 'l', 't', '_', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'n', '_',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'f', 's', 'u', 'n', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 's', 'u', 'n', 'e', '_', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f',
-+  's', 'u', 'n', 'e', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'f', 't', 'i', 'n', 't', '_', 's', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'f', 't', 'i', 'n', 't', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'i', 'n', 't', '_',
-+  'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'f', 't', 'i', 'n', 't', '_', 'u', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'q',
-+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'f', 't', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'r', 'u', 'n', 'c', '_', 's',
-+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'f', 't', 'r', 'u', 'n', 'c', '_', 's', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'r',
-+  'u', 'n', 'c', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'f', 't', 'r', 'u', 'n', 'c', '_', 'u',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'h', 'a', 'd', 'd', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 'a', 'd', 'd', '_',
-+  's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'h', 'a', 'd', 'd', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 'a', 'd', 'd',
-+  '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'h', 'a', 'd', 'd', '_', 'u', '_', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 'a', 'd',
-+  'd', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'h', 's', 'u', 'b', '_', 's', '_', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h', 's',
-+  'u', 'b', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'h', 's', 'u', 'b', '_', 's', '_', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'h',
-+  's', 'u', 'b', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'h', 's', 'u', 'b', '_', 'u', '_', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'h', 's', 'u', 'b', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'e', 'v', '_', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'i', 'l', 'v', 'e', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'e', 'v', '_', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i',
-+  'l', 'v', 'e', 'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'l', '_', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v',
-+  'l', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'i', 'l', 'v', 'l', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'l', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'i', 'l', 'v', 'o', 'd', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'o', 'd', '_', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i',
-+  'l', 'v', 'o', 'd', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'o', 'd', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l',
-+  'v', 'r', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'i', 'l', 'v', 'r', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'l', 'v', 'r', '_',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'i', 'l', 'v', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'e', 'r', 't', '_', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'i', 'n', 's', 'e', 'r', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'e', 'r', 't', '_',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'i', 'n', 's', 'e', 'r', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'i', 'n', 's', 'v', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i',
-+  'n', 's', 'v', 'e', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'v', 'e', '_', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'i', 'n',
-+  's', 'v', 'e', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'i', 'n', 's', 'v', 'e', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'l', 'b',
-+  'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'l', 'd', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'l', 'd', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l', 'd', '_', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l',
-+  'd', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'l', 'd', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l', 'd', 'i', '_', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'l', 'd',
-+  'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'l', 'd', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'l', 'h', 'x', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'l', 's',
-+  'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 'l', 'w', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 'i', 'p', 's', '_', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', '_',
-+  'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'm', 'a', 'd', 'd', '_', 'q', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd',
-+  'r', '_', 'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', 'r', '_', 'q', '_', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-+  'm', 'a', 'd', 'd', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd', 'v', '_', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd',
-+  'd', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'm', 'a', 'd', 'd', 'v', '_', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'd', 'd',
-+  'v', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  'i', 'p', 's', '_', 'm', 'a', 'q', '_', 's', '_', 'w', '_', 'p', 'h', 'l',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+  '_', 'm', 'a', 'q', '_', 's', '_', 'w', '_', 'p', 'h', 'r', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'a',
-+  'q', '_', 's', 'a', '_', 'w', '_', 'p', 'h', 'l', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'a', 'q', '_',
-+  's', 'a', '_', 'w', '_', 'p', 'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'a', '_', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'm', 'a', 'x', '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'a', '_', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm',
-+  'a', 'x', '_', 'a', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 's', '_', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a',
-+  'x', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 's', '_', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x',
-+  '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'u', '_', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_',
-+  'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'm', 'a', 'x', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', '_', 'u',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'm', 'a', 'x', 'i', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_',
-+  's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'm', 'a', 'x', 'i', '_', 's', '_', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i',
-+  '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_', 'u', '_', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a', 'x',
-+  'i', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'm', 'a', 'x', 'i', '_', 'u', '_', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'a',
-+  'x', 'i', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'a', '_', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i',
-+  'n', '_', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'a', '_', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n',
-+  '_', 'a', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'm', 'i', 'n', '_', 's', '_', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_',
-+  's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'm', 'i', 'n', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 's',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'm', 'i', 'n', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'u', '_',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'm', 'i', 'n', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', '_', 'u', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'm', 'i', 'n', 'i', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 's', '_',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'm', 'i', 'n', 'i', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_', 's',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'm', 'i', 'n', 'i', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i', '_',
-+  'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'm', 'i', 'n', 'i', '_', 'u', '_', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'i', 'n', 'i',
-+  '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'm', 'o', 'd', '_', 's', '_', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_',
-+  's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'm', 'o', 'd', '_', 's', '_', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 's',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'm', 'o', 'd', '_', 'u', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 'u', '_',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 'm', 'o', 'd', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'd', '_', 'u', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+  '_', 'm', 'o', 'd', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'o', 'v', 'e', '_', 'v', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm',
-+  's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'm', 's', 'u', 'b', '_', 'q', '_', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's', 'u', 'b',
-+  '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'm', 's', 'u', 'b', 'r', '_', 'q', '_', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's',
-+  'u', 'b', 'r', '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 's', 'u', 'b', 'u', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's',
-+  'u', 'b', 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'm', 's', 'u', 'b', 'v', '_', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 's', 'u',
-+  'b', 'v', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'm', 's', 'u', 'b', 'v', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 't', 'h',
-+  'l', 'i', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  'i', 'p', 's', '_', 'm', 'u', 'l', '_', 'p', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', '_', 'q',
-+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'm', 'u', 'l', '_', 'q', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', '_', 's',
-+  '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  'i', 'p', 's', '_', 'm', 'u', 'l', 'e', 'q', '_', 's', '_', 'w', '_', 'p',
-+  'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 'm', 'u', 'l', 'e', 'q', '_', 's', '_', 'w', '_', 'p', 'h',
-+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 'm', 'u', 'l', 'e', 'u', '_', 's', '_', 'p', 'h', '_', 'q', 'b',
-+  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 'm', 'u', 'l', 'e', 'u', '_', 's', '_', 'p', 'h', '_', 'q', 'b',
-+  'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 'm', 'u', 'l', 'q', '_', 'r', 's', '_', 'p', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u',
-+  'l', 'q', '_', 'r', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 'q', '_', 's', '_',
-+  'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 'm', 'u', 'l', 'q', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', 'r',
-+  '_', 'q', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'm', 'u', 'l', 'r', '_', 'q', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u',
-+  'l', 's', 'a', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 's', 'a', 'q',
-+  '_', 's', '_', 'w', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u', 'l', 't', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'm', 'u',
-+  'l', 't', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'm', 'u', 'l', 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', 'v', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'm', 'u', 'l', 'v', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'm', 'u', 'l', 'v', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'o',
-+  'c', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'n', 'l', 'o', 'c', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'o', 'c', '_', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'n', 'l', 'o', 'c', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'z', 'c', '_', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'z',
-+  'c', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 'n', 'l', 'z', 'c', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'n', 'l', 'z', 'c', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'n', 'o', 'r', '_', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'n', 'o', 'r', 'i', '_', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'o', 'r', '_', 'v',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'o', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 'i', 'p', 's', '_', 'p', 'a', 'c', 'k', 'r', 'l', '_', 'p', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  'p', 'c', 'k', 'e', 'v', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'e', 'v', '_', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p',
-+  'c', 'k', 'e', 'v', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'e', 'v', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c',
-+  'k', 'o', 'd', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'p', 'c', 'k', 'o', 'd', '_', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'k',
-+  'o', 'd', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'p', 'c', 'k', 'o', 'd', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'n', 't',
-+  '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'p', 'c', 'n', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p', 'c', 'n', 't', '_', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'p',
-+  'c', 'n', 't', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 'i', 'p', 's', '_', 'p', 'i', 'c', 'k', '_', 'p', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p',
-+  'i', 'c', 'k', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', '_', 'w',
-+  '_', 'p', 'h', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', '_', 'w', '_', 'p',
-+  'h', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_', 'q',
-+  'b', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_', 'q',
-+  'b', 'l', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_',
-+  'q', 'b', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'q', 'u', '_', 'p', 'h', '_',
-+  'q', 'b', 'r', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_',
-+  'q', 'b', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q',
-+  'b', 'l', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  'i', 'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q',
-+  'b', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 'p', 'r', 'e', 'c', 'e', 'u', '_', 'p', 'h', '_', 'q', 'b',
-+  'r', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 'p', 'r', 'e', 'c', 'r', '_', 'q', 'b', '_', 'p', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-+  'p', 'r', 'e', 'c', 'r', '_', 's', 'r', 'a', '_', 'p', 'h', '_', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-+  'p', 'r', 'e', 'c', 'r', '_', 's', 'r', 'a', '_', 'r', '_', 'p', 'h', '_',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 'p', 'r', 'e', 'c', 'r', 'q', '_', 'p', 'h', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p',
-+  'r', 'e', 'c', 'r', 'q', '_', 'q', 'b', '_', 'p', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e',
-+  'c', 'r', 'q', '_', 'r', 's', '_', 'p', 'h', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r', 'e',
-+  'c', 'r', 'q', 'u', '_', 's', '_', 'q', 'b', '_', 'p', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'p', 'r',
-+  'e', 'p', 'e', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 'i', 'p', 's', '_', 'r', 'a', 'd', 'd', 'u', '_', 'w', '_', 'q',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 'r', 'd', 'd', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'r', 'e', 'p', 'l', '_', 'p', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+  '_', 'r', 'e', 'p', 'l', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 's', '_', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  's', 'a', 't', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 's', '_', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-+  'a', 't', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 'u', '_', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a',
-+  't', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 's', 'a', 't', '_', 'u', '_', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'a', 't',
-+  '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 's', 'h', 'f', '_', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'h', 'f', '_', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-+  'h', 'f', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 'i', 'p', 's', '_', 's', 'h', 'i', 'l', 'o', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'l', 'l',
-+  '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  'i', 'p', 's', '_', 's', 'h', 'l', 'l', '_', 'q', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'l',
-+  'l', '_', 's', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'l', 'l', '_', 's', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+  '_', 's', 'h', 'r', 'a', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r', 'a', '_', 'q',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p',
-+  's', '_', 's', 'h', 'r', 'a', '_', 'r', '_', 'p', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r',
-+  'a', '_', 'r', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r', 'a', '_', 'r', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+  '_', 's', 'h', 'r', 'l', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'h', 'r', 'l', '_', 'q',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 's', 'l', 'd', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', '_', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', '_',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 's', 'l', 'd', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', 'i', '_', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd',
-+  'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 's', 'l', 'd', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'd', 'i', '_', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  's', 'l', 'l', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 's', 'l', 'l', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l', '_', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  's', 'l', 'l', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 's', 'l', 'l', 'i', '_', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l', 'i',
-+  '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 's', 'l', 'l', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'l', 'l', 'i', '_', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-+  'p', 'l', 'a', 't', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't', '_', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p',
-+  'l', 'a', 't', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l',
-+  'a', 't', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't', 'i', '_', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'p',
-+  'l', 'a', 't', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 's', 'p', 'l', 'a', 't', 'i', '_', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-+  'r', 'a', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 's', 'r', 'a', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', '_', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-+  'r', 'a', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 's', 'r', 'a', 'i', '_', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'i', '_',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 's', 'r', 'a', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'i', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r',
-+  'a', 'r', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 's', 'r', 'a', 'r', '_', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', '_',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 's', 'r', 'a', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', 'i', '_', 'b', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's',
-+  'r', 'a', 'r', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 's', 'r', 'a', 'r', 'i', '_', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r',
-+  'a', 'r', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 's', 'r', 'l', '_', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  's', 'r', 'l', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 's', 'r', 'l', '_', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'i', '_',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 's', 'r', 'l', 'i', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'i', '_', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r',
-+  'l', 'i', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 's', 'r', 'l', 'r', '_', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'r', '_',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 's', 'r', 'l', 'r', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'r', '_', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r',
-+  'l', 'r', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 's', 'r', 'l', 'r', 'i', '_', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'r', 'l',
-+  'r', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 's', 'r', 'l', 'r', 'i', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 't', '_', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  's', 't', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 's', 't', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 't', '_', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u',
-+  'b', 'q', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q', '_', 's', '_', 'p', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's',
-+  '_', 's', 'u', 'b', 'q', '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q', 'h',
-+  '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  'i', 'p', 's', '_', 's', 'u', 'b', 'q', 'h', '_', 'r', '_', 'p', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_',
-+  's', 'u', 'b', 'q', 'h', '_', 'r', '_', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'q', 'h',
-+  '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 's', 'u', 'b', 's', '_', 's', '_', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_',
-+  's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm',
-+  's', 'a', '_', 's', 'u', 'b', 's', '_', 's', '_', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's',
-+  '_', 's', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 's', 'u', 'b', 's', '_', 'u', '_', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b',
-+  's', '_', 'u', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', '_', 'u', '_', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u',
-+  'b', 's', '_', 'u', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', 'u', 's', '_', 'u', '_',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 's', 'u', 'b', 's', 'u', 's', '_', 'u', '_', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's',
-+  'u', 's', '_', 'u', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', 'u', 's', '_', 'u', '_',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 's', 'u', 'b', 's', 'u', 'u', '_', 's', '_', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's',
-+  'u', 'u', '_', 's', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 's', 'u', 'u', '_', 's', '_',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 's', 'u', 'b', 's', 'u', 'u', '_', 's', '_', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b',
-+  'u', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'u', '_', 'q', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u',
-+  'b', 'u', '_', 's', '_', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b', 'u', '_', 's', '_',
-+  'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i',
-+  'p', 's', '_', 's', 'u', 'b', 'u', 'h', '_', 'q', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 's', 'u', 'b',
-+  'u', 'h', '_', 'r', '_', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', '_', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u',
-+  'b', 'v', '_', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 's', 'u', 'b', 'v', '_', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', '_',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a',
-+  '_', 's', 'u', 'b', 'v', 'i', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', 'i', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_',
-+  's', 'u', 'b', 'v', 'i', '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'm', 's', 'a', '_', 's', 'u', 'b', 'v', 'i', '_', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'v',
-+  's', 'h', 'f', '_', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'm', 's', 'a', '_', 'v', 's', 'h', 'f', '_', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'v', 's', 'h', 'f',
-+  '_', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's',
-+  'a', '_', 'v', 's', 'h', 'f', '_', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'm', 'i', 'p', 's', '_', 'w', 'r', 'd', 's', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'm', 's', 'a', '_', 'x',
-+  'o', 'r', '_', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'm', 's', 'a', '_', 'x', 'o', 'r', 'i', '_', 'b', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'a', 'b', 's', '_', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'a', 'b', 's', '_', 'l', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'a', 'd', 'd', '_', 'r', 'm', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'a', 'd', 'd', '_', 'r', 'm', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'a', 'd', 'd', '_', 'r', 'm', '_', 'f', 't', 'z', '_', 'f', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'n', '_', 'd',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'n', '_',
-+  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'n',
-+  '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a',
-+  'd', 'd', '_', 'r', 'p', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'a', 'd', 'd', '_', 'r', 'p', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'a', 'd', 'd', '_', 'r', 'p', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'z', '_', 'd', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'z', '_', 'f',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'a', 'd', 'd', '_', 'r', 'z', '_',
-+  'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a',
-+  'r', '_', 's', 'y', 'n', 'c', '\000', '_', '_', 's', 'y', 'n', 'c', 't', 'h',
-+  'r', 'e', 'a', 'd', 's', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'a',
-+  'r', '0', '_', 'a', 'n', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b',
-+  'a', 'r', '0', '_', 'o', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b',
-+  'a', 'r', '0', '_', 'p', 'o', 'p', 'c', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'b', 'i', 't', 'c', 'a', 's', 't', '_', 'd', '2', 'l', 'l', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'b', 'i', 't', 'c', 'a', 's', 't', '_', 'f',
-+  '2', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b', 'i', 't', 'c', 'a',
-+  's', 't', '_', 'i', '2', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b',
-+  'i', 't', 'c', 'a', 's', 't', '_', 'l', 'l', '2', 'd', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'b', 'r', 'e', 'v', '3', '2', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'b', 'r', 'e', 'v', '6', '4', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'c', 'e', 'i', 'l', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'c', 'e', 'i', 'l', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'c', 'e', 'i', 'l', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'c', 'l', 'z', '_', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'c', 'l', 'z', '_', 'l', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'c', 'o', 's', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'c', 'o', 's', '_', 'a', 'p', 'p', 'r', 'o', 'x',
-+  '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd',
-+  '2', 'f', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2',
-+  'f', '_', 'r', 'm', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'd', '2', 'f', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'd', '2', 'f', '_', 'r', 'n', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'd', '2', 'f', '_', 'r', 'p', '_', 'f', 't', 'z', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'z', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'd', '2', 'f', '_', 'r', 'z', '_', 'f', 't', 'z', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'h', 'i', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'l', 'o', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'm', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'n', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'd', '2', 'i', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'd', '2', 'i', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'd', '2', 'l', 'l', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'd', '2', 'l', 'l', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'd', '2', 'l', 'l', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'd', '2', 'l', 'l', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'd', '2', 'u', 'i', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'd', '2', 'u', 'i', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'd', '2', 'u', 'i', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'd', '2', 'u', 'i', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'n', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'd', '2', 'u', 'l', 'l', '_', 'r', 'z', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'a', 'p', 'p', 'r', 'o', 'x',
-+  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'a',
-+  'p', 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'm', '_', 'd', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'm', '_', 'f', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'm', '_', 'f', 't',
-+  'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_',
-+  'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v',
-+  '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i',
-+  'v', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'p', '_', 'd', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'p', '_', 'f', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r', 'p', '_', 'f', 't', 'z',
-+  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_', 'r',
-+  'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v', '_',
-+  'r', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'd', 'i', 'v',
-+  '_', 'r', 'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'e', 'x', '2', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'd', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 'e', 'x', '2', '_', 'a', 'p', 'p', 'r',
-+  'o', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'e', 'x', '2',
-+  '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'h', '_', 'r', 'n', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'f', '2', 'h', '_', 'r', 'n', '_', 'f', 't', 'z',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_', 'r', 'm', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_', 'r', 'm', '_', 'f',
-+  't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_', 'r',
-+  'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_', 'r', 'n',
-+  '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i',
-+  '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'i', '_',
-+  'r', 'p', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-+  '2', 'i', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
-+  'i', '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'f', '2', 'l', 'l', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'f', '2', 'l', 'l', '_', 'r', 'm', '_', 'f', 't', 'z', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r', 'n', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r', 'n', '_', 'f', 't',
-+  'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r',
-+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'l', 'l', '_', 'r',
-+  'p', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
-+  'l', 'l', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2',
-+  'l', 'l', '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'm', '_', 'f', 't', 'z', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'n', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_', 'r', 'n', '_', 'f',
-+  't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_',
-+  'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'i', '_',
-+  'r', 'p', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-+  '2', 'u', 'i', '_', 'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-+  '2', 'u', 'i', '_', 'r', 'z', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'm', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'm', '_', 'f', 't',
-+  'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_',
-+  'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l',
-+  '_', 'r', 'n', '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'f', '2', 'u', 'l', 'l', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'p', '_', 'f', 't', 'z', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'z', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 'f', '2', 'u', 'l', 'l', '_', 'r', 'z',
-+  '_', 'f', 't', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'a', 'b',
-+  's', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'a', 'b', 's',
-+  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'a', 'b', 's', '_',
-+  'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'l',
-+  'o', 'o', 'r', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'l',
-+  'o', 'o', 'r', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'l',
-+  'o', 'o', 'r', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'f', 'm', 'a', '_', 'r', 'm', '_', 'd', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'm', '_', 'f', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'm', '_', 'f', 't', 'z', '_',
-+  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'n',
-+  '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r',
-+  'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_',
-+  'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'f', 'm', 'a', '_', 'r', 'p', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'f', 'm', 'a', '_', 'r', 'p', '_', 'f', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'p', '_', 'f', 't', 'z', '_', 'f',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'z', '_',
-+  'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r', 'z',
-+  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm', 'a', '_', 'r',
-+  'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'f', 'm', 'a', 'x', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-+  'm', 'a', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f', 'm',
-+  'a', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'f', 'm', 'i', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'f', 'm', 'i', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'f',
-+  'm', 'i', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'h', '2', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2',
-+  'd', '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'd',
-+  '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'd', '_',
-+  'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'd', '_', 'r',
-+  'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_', 'r', 'm',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_', 'r', 'n', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_', 'r', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'i', '2', 'f', '_', 'r', 'z', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'i', 's', 's', 'p', 'a', 'c', 'e', 'p', '_', 'c',
-+  'o', 'n', 's', 't', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 's',
-+  'p', 'a', 'c', 'e', 'p', '_', 'g', 'l', 'o', 'b', 'a', 'l', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'i', 's', 's', 'p', 'a', 'c', 'e', 'p', '_', 'l',
-+  'o', 'c', 'a', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 's',
-+  'p', 'a', 'c', 'e', 'p', '_', 's', 'h', 'a', 'r', 'e', 'd', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'i', 's', 't', 'y', 'p', 'e', 'p', '_', 's', 'a',
-+  'm', 'p', 'l', 'e', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'i', 's',
-+  't', 'y', 'p', 'e', 'p', '_', 's', 'u', 'r', 'f', 'a', 'c', 'e', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'i', 's', 't', 'y', 'p', 'e', 'p', '_', 't',
-+  'e', 'x', 't', 'u', 'r', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'l',
-+  'g', '2', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'd', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'l', 'g', '2', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_',
-+  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'l', 'g', '2', '_', 'a', 'p',
-+  'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'm', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'n', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'p', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'l', 'l', '2', 'd', '_', 'r', 'z', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'm', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'n', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'p', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'l', 'l', '2', 'f', '_', 'r', 'z', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'l', 'o', 'h', 'i', '_', 'i', '2', 'd', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'm', 'a', 'x', '_', 'i', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'm', 'a', 'x', '_', 'l', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'm', 'a', 'x', '_', 'u', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'm', 'a', 'x', '_', 'u', 'l', 'l', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'm', 'e', 'm', 'b', 'a', 'r', '_', 'c', 't', 'a', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'm', 'e', 'm', 'b', 'a', 'r', '_', 'g', 'l', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'm', 'e', 'm', 'b', 'a', 'r', '_', 's', 'y', 's',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'i', 'n', '_', 'i', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'm', 'i', 'n', '_', 'l', 'l', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'm', 'i', 'n', '_', 'u', 'i', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'm', 'i', 'n', '_', 'u', 'l', 'l', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'm', '_', 'd', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'm', '_', 'f', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'm', '_', 'f', 't',
-+  'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_',
-+  'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l',
-+  '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u',
-+  'l', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'p', '_', 'd', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'p', '_', 'f', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r', 'p', '_', 'f', 't', 'z',
-+  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_', 'r',
-+  'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', '_',
-+  'r', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'm', 'u', 'l',
-+  '_', 'r', 'z', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'm', 'u', 'l', '2', '4', '_', 'i', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'm', 'u', 'l', '2', '4', '_', 'u', 'i', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'i', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'l', 'l', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'u', 'i', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'm', 'u', 'l', 'h', 'i', '_', 'u', 'l', 'l', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 'p', 'o', 'p', 'c', '_', 'i', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'p', 'o', 'p', 'c', '_', 'l', 'l', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'p', 'r', 'm', 't', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'r', 'c', 'p', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f',
-+  't', 'z', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p',
-+  '_', 'r', 'm', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c',
-+  'p', '_', 'r', 'm', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+  'c', 'p', '_', 'r', 'm', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'n', '_', 'd', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'n', '_', 'f', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'n', '_', 'f', 't',
-+  'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_',
-+  'r', 'p', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c', 'p',
-+  '_', 'r', 'p', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'c',
-+  'p', '_', 'r', 'p', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'z', '_', 'd', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'z', '_', 'f', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'r', 'c', 'p', '_', 'r', 'z', '_', 'f', 't', 'z',
-+  '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_',
-+  'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'c', 'l', 'o', 'c', 'k', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
-+  '_', 's', 'r', 'e', 'g', '_', 'c', 'l', 'o', 'c', 'k', '6', '4', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-+  's', 'r', 'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'w', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-+  'r', 'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'x', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r',
-+  'e', 'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'y', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+  'g', '_', 'c', 't', 'a', 'i', 'd', '_', 'z', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g',
-+  '_', 'e', 'n', 'v', 'r', 'e', 'g', '0', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_',
-+  'e', 'n', 'v', 'r', 'e', 'g', '1', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+  'n', 'v', 'r', 'e', 'g', '1', '0', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+  'n', 'v', 'r', 'e', 'g', '1', '1', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+  'n', 'v', 'r', 'e', 'g', '1', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+  'n', 'v', 'r', 'e', 'g', '1', '3', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+  'n', 'v', 'r', 'e', 'g', '1', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+  'n', 'v', 'r', 'e', 'g', '1', '5', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+  'n', 'v', 'r', 'e', 'g', '1', '6', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+  'n', 'v', 'r', 'e', 'g', '1', '7', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+  'n', 'v', 'r', 'e', 'g', '1', '8', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+  'n', 'v', 'r', 'e', 'g', '1', '9', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e',
-+  'n', 'v', 'r', 'e', 'g', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+  'v', 'r', 'e', 'g', '2', '0', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+  'v', 'r', 'e', 'g', '2', '1', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+  'v', 'r', 'e', 'g', '2', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+  'v', 'r', 'e', 'g', '2', '3', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+  'v', 'r', 'e', 'g', '2', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+  'v', 'r', 'e', 'g', '2', '5', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+  'v', 'r', 'e', 'g', '2', '6', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+  'v', 'r', 'e', 'g', '2', '7', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+  'v', 'r', 'e', 'g', '2', '8', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+  'v', 'r', 'e', 'g', '2', '9', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r',
-+  'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n',
-+  'v', 'r', 'e', 'g', '3', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
-+  'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v',
-+  'r', 'e', 'g', '3', '0', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
-+  'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v',
-+  'r', 'e', 'g', '3', '1', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
-+  'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v',
-+  'r', 'e', 'g', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a',
-+  'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r',
-+  'e', 'g', '5', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
-+  '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e',
-+  'g', '6', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_',
-+  'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g',
-+  '7', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p',
-+  't', 'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '8',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't',
-+  'x', '_', 's', 'r', 'e', 'g', '_', 'e', 'n', 'v', 'r', 'e', 'g', '9', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
-+  '_', 's', 'r', 'e', 'g', '_', 'g', 'r', 'i', 'd', 'i', 'd', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's',
-+  'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'i', 'd', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+  'g', '_', 'l', 'a', 'n', 'e', 'm', 'a', 's', 'k', '_', 'e', 'q', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-+  's', 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'm', 'a', 's', 'k', '_', 'g',
-+  'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p',
-+  't', 'x', '_', 's', 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e', 'm', 'a', 's',
-+  'k', '_', 'g', 't', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a',
-+  'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'l', 'a', 'n', 'e',
-+  'm', 'a', 's', 'k', '_', 'l', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'l',
-+  'a', 'n', 'e', 'm', 'a', 's', 'k', '_', 'l', 't', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+  'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'w', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+  'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'x', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+  'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'y', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+  'g', '_', 'n', 'c', 't', 'a', 'i', 'd', '_', 'z', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+  'g', '_', 'n', 's', 'm', 'i', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n',
-+  't', 'i', 'd', '_', 'w', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
-+  'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n', 't', 'i',
-+  'd', '_', 'x', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
-+  '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n', 't', 'i', 'd', '_',
-+  'y', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p',
-+  't', 'x', '_', 's', 'r', 'e', 'g', '_', 'n', 't', 'i', 'd', '_', 'z', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x',
-+  '_', 's', 'r', 'e', 'g', '_', 'n', 'w', 'a', 'r', 'p', 'i', 'd', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-+  's', 'r', 'e', 'g', '_', 'p', 'm', '0', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_',
-+  'p', 'm', '1', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd',
-+  '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'p', 'm', '2', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-+  's', 'r', 'e', 'g', '_', 'p', 'm', '3', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_',
-+  's', 'm', 'i', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a',
-+  'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 't', 'i', 'd', '_',
-+  'w', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p',
-+  't', 'x', '_', 's', 'r', 'e', 'g', '_', 't', 'i', 'd', '_', 'x', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_',
-+  's', 'r', 'e', 'g', '_', 't', 'i', 'd', '_', 'y', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e',
-+  'g', '_', 't', 'i', 'd', '_', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  'r', 'e', 'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'w',
-+  'a', 'r', 'p', 'i', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'e',
-+  'a', 'd', '_', 'p', 't', 'x', '_', 's', 'r', 'e', 'g', '_', 'w', 'a', 'r',
-+  'p', 's', 'i', 'z', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'o',
-+  't', 'a', 't', 'e', '_', 'b', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'r', 'o', 't', 'a', 't', 'e', '_', 'b', '6', '4', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 'r', 'o', 't', 'a', 't', 'e', '_', 'r', 'i', 'g', 'h',
-+  't', '_', 'b', '6', '4', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'o',
-+  'u', 'n', 'd', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'o',
-+  'u', 'n', 'd', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 'o',
-+  'u', 'n', 'd', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 'r', 's', 'q', 'r', 't', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_',
-+  'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'r', 's', 'q', 'r', 't', '_',
-+  'a', 'p', 'p', 'r', 'o', 'x', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 'r', 's', 'q', 'r', 't', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_', 'f',
-+  't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'a', 'd',
-+  '_', 'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'a', 'd', '_', 'u',
-+  'i', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'a', 't', 'u', 'r', 'a',
-+  't', 'e', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'a', 't',
-+  'u', 'r', 'a', 't', 'e', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'a', 't', 'u', 'r', 'a', 't', 'e', '_', 'f', 't', 'z', '_', 'f', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'b', 'f', 'l',
-+  'y', '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h',
-+  'f', 'l', '_', 'b', 'f', 'l', 'y', '_', 'i', '3', '2', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'd', 'o', 'w', 'n', '_', 'f',
-+  '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_',
-+  'd', 'o', 'w', 'n', '_', 'i', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'h', 'f', 'l', '_', 'i', 'd', 'x', '_', 'f', '3', '2', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l', '_', 'i', 'd', 'x', '_',
-+  'i', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'h', 'f', 'l',
-+  '_', 'u', 'p', '_', 'f', '3', '2', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'h', 'f', 'l', '_', 'u', 'p', '_', 'i', '3', '2', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'i', 'n', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_',
-+  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'i', 'n', '_', 'a', 'p',
-+  'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'q', 'r', 't', '_', 'a', 'p', 'p', 'r', 'o', 'x', '_',
-+  'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'a',
-+  'p', 'p', 'r', 'o', 'x', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'f', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'm', '_', 'd', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'm', '_', 'f', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'm', '_',
-+  'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q',
-+  'r', 't', '_', 'r', 'n', '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'q', 'r', 't', '_', 'r', 'n', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'q', 'r', 't', '_', 'r', 'n', '_', 'f', 't', 'z', '_', 'f',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'p',
-+  '_', 'd', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_',
-+  'r', 'p', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r',
-+  't', '_', 'r', 'p', '_', 'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'z', '_', 'd', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'z', '_', 'f', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'q', 'r', 't', '_', 'r', 'z', '_',
-+  'f', 't', 'z', '_', 'f', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  'q', '_', 'a', 'r', 'r', 'a', 'y', '_', 's', 'i', 'z', 'e', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 'q', '_', 'c', 'h', 'a', 'n', 'n', 'e',
-+  'l', '_', 'd', 'a', 't', 'a', '_', 't', 'y', 'p', 'e', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 'q', '_', 'c', 'h', 'a', 'n', 'n', 'e', 'l',
-+  '_', 'o', 'r', 'd', 'e', 'r', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+  'u', 'q', '_', 'd', 'e', 'p', 't', 'h', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 'q', '_', 'h', 'e', 'i', 'g', 'h', 't', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 'q', '_', 'w', 'i', 'd', 't', 'h', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 'c', 'l', 'a', 'm',
-+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+  '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 't',
-+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6',
-+  '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i',
-+  '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
-+  'y', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r',
-+  'r', 'a', 'y', '_', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-+  'a', 'r', 'r', 'a', 'y', '_', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '6', '4', '_', 't', 'r',
-+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '6', '4', '_',
-+  'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8',
-+  '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+  'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-+  'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-+  '_', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
-+  'y', '_', 'v', '2', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6', '_', 't', 'r',
-+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1',
-+  '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+  'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-+  'v', '2', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a',
-+  'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '3', '2', '_',
-+  'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2',
-+  'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r',
-+  'a', 'y', '_', 'v', '2', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '6', '4', '_', 'z', 'e',
-+  'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8',
-+  '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+  'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-+  'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r',
-+  'a', 'y', '_', 'v', '2', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-+  'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 'c', 'l', 'a',
-+  'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1',
-+  '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+  'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_',
-+  'v', '4', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r',
-+  'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_',
-+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
-+  'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
-+  'y', '_', 'v', '4', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_',
-+  'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '8', '_', 'z',
-+  'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'b', '_', '1', 'd', '_', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '1', 'd', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i',
-+  '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '3', '2', '_', 'c',
-+  'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'b', '_', '1', 'd', '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '1', 'd', '_', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i',
-+  '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '6', '4', '_',
-+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'b', '_', '1', 'd', '_', 'i', '6', '4', '_', 'z', 'e', 'r', 'o',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '1', 'd', '_', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i',
-+  '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+  'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'i', '8', '_', 'z', 'e', 'r',
-+  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+  '_', '1', 'd', '_', 'v', '2', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '1', 'd', '_', 'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-+  '_', 'v', '2', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v',
-+  '2', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2',
-+  'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '3',
-+  '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+  'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '6', '4', '_',
-+  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '6', '4', '_', 't',
-+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'b', '_', '1', 'd', '_', 'v', '2', 'i', '6', '4', '_', 'z', 'e', 'r',
-+  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+  '_', '1', 'd', '_', 'v', '2', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1',
-+  'd', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v',
-+  '2', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '1',
-+  '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6',
-+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6', '_', 'z',
-+  'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '3', '2', '_', 'c', 'l', 'a',
-+  'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'b', '_', '1', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '1', 'd', '_', 'v', '4', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd',
-+  '_', 'v', '4', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v',
-+  '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'b', '_', '1', 'd', '_', 'v', '4', 'i', '8',
-+  '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i',
-+  '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a',
-+  'y', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r',
-+  'r', 'a', 'y', '_', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-+  'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 't', 'r',
-+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_',
-+  'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '6',
-+  '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-+  '_', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
-+  'a', 'y', '_', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a',
-+  'r', 'r', 'a', 'y', '_', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
-+  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_', 'z', 'e', 'r', 'o',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '1', '6', '_',
-+  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
-+  '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
-+  'a', 'y', '_', 'v', '2', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '3', '2', '_', 'c', 'l',
-+  'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i',
-+  '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-+  '_', 'v', '2', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a',
-+  'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '6', '4', '_', 'c', 'l', 'a', 'm',
-+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+  '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '6', '4',
-+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v',
-+  '2', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
-+  'a', 'y', '_', 'v', '2', 'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a',
-+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+  '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_',
-+  'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
-+  'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r',
-+  'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-+  '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_', 'z', 'e',
-+  'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3',
-+  '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-+  '_', 'v', '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a',
-+  'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '3', '2', '_', 'z', 'e', 'r', 'o',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '8', '_', 'c',
-+  'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
-+  'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y',
-+  '_', 'v', '4', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '1',
-+  '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '1', '6', '_', 't',
-+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'b', '_', '2', 'd', '_', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
-+  'd', '_', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i',
-+  '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '3', '2', '_', 'z',
-+  'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'b', '_', '2', 'd', '_', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '2', 'd', '_', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i',
-+  '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'i', '8', '_', 'c', 'l',
-+  'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'b', '_', '2', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-+  '_', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '1',
-+  '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '1', '6',
-+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '1', '6', '_', 'z',
-+  'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'c', 'l', 'a',
-+  'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'b', '_', '2', 'd', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '2', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd',
-+  '_', 'v', '2', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-+  'v', '2', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2',
-+  'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '8',
-+  '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+  'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '8', '_', 't',
-+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'b', '_', '2', 'd', '_', 'v', '2', 'i', '8', '_', 'z', 'e', 'r', 'o',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '2', 'd', '_', 'v', '4', 'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2',
-+  'd', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_',
-+  'v', '4', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4',
-+  'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i',
-+  '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '3', '2',
-+  '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '8', '_', 'c', 'l',
-+  'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'b', '_', '2', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '2', 'd', '_', 'v', '4', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_',
-+  'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '1', '6',
-+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '1', '6', '_', 'z', 'e', 'r',
-+  'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+  '_', '3', 'd', '_', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd',
-+  '_', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '3', '2',
-+  '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '6', '4', '_', 'c', 'l', 'a',
-+  'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'b', '_', '3', 'd', '_', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd',
-+  '_', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '8', '_',
-+  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '3', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '3', 'd', '_', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2',
-+  'i', '1', '6', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i',
-+  '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '1', '6',
-+  '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'c',
-+  'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r',
-+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'b', '_', '3', 'd', '_', 'v', '2', 'i', '3', '2', '_', 'z', 'e', 'r', 'o',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_',
-+  '3', 'd', '_', 'v', '2', 'i', '6', '4', '_', 'c', 'l', 'a', 'm', 'p', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3',
-+  'd', '_', 'v', '2', 'i', '6', '4', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_',
-+  'v', '2', 'i', '6', '4', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2',
-+  'i', '8', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '8',
-+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '2', 'i', '8', '_', 'z', 'e',
-+  'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'b', '_', '3', 'd', '_', 'v', '4', 'i', '1', '6', '_', 'c', 'l', 'a', 'm',
-+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b',
-+  '_', '3', 'd', '_', 'v', '4', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3',
-+  'd', '_', 'v', '4', 'i', '1', '6', '_', 'z', 'e', 'r', 'o', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_',
-+  'v', '4', 'i', '3', '2', '_', 'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v',
-+  '4', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i',
-+  '3', '2', '_', 'z', 'e', 'r', 'o', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i', '8', '_',
-+  'c', 'l', 'a', 'm', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'b', '_', '3', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r',
-+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'b', '_', '3', 'd', '_', 'v', '4', 'i', '8', '_', 'z', 'e', 'r', 'o', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1',
-+  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 't', 'r', 'a',
-+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
-+  '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 't',
-+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_',
-+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2',
-+  'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
-+  'y', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_',
-+  'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
-+  '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_',
-+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
-+  'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'a', 'r', 'r', 'a',
-+  'y', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'i',
-+  '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'i', '3', '2', '_', 't',
-+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'p', '_', '1', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd',
-+  '_', 'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'v',
-+  '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'v', '2', 'i',
-+  '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+  'u', 's', 't', '_', 'p', '_', '1', 'd', '_', 'v', '4', 'i', '1', '6', '_',
-+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'p', '_', '1', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r',
-+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'p', '_', '1', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2',
-+  'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '1', '6', '_', 't', 'r', 'a',
-+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
-+  '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '3', '2', '_', 't',
-+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'i', '8', '_',
-+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '2',
-+  'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a',
-+  'y', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_',
-+  'a', 'r', 'r', 'a', 'y', '_', 'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_',
-+  '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4', 'i', '1', '6', '_',
-+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a', 'y', '_', 'v', '4',
-+  'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm',
-+  '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'a', 'r', 'r', 'a',
-+  'y', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'i',
-+  '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'i', '3', '2', '_', 't',
-+  'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't',
-+  '_', 'p', '_', '2', 'd', '_', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd',
-+  '_', 'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'v',
-+  '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'v', '2', 'i',
-+  '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+  'u', 's', 't', '_', 'p', '_', '2', 'd', '_', 'v', '4', 'i', '1', '6', '_',
-+  't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's',
-+  't', '_', 'p', '_', '2', 'd', '_', 'v', '4', 'i', '3', '2', '_', 't', 'r',
-+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_',
-+  'p', '_', '2', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r', 'a', 'p', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3',
-+  'd', '_', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v',
-+  'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'i', '3',
-+  '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's',
-+  'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'i', '8', '_', 't', 'r', 'a',
-+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p',
-+  '_', '3', 'd', '_', 'v', '2', 'i', '1', '6', '_', 't', 'r', 'a', 'p', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3',
-+  'd', '_', 'v', '2', 'i', '3', '2', '_', 't', 'r', 'a', 'p', '\000', '_', '_',
-+  'n', 'v', 'v', 'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_',
-+  'v', '2', 'i', '8', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'v', '4', 'i',
-+  '1', '6', '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_',
-+  's', 'u', 's', 't', '_', 'p', '_', '3', 'd', '_', 'v', '4', 'i', '3', '2',
-+  '_', 't', 'r', 'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'u',
-+  's', 't', '_', 'p', '_', '3', 'd', '_', 'v', '4', 'i', '8', '_', 't', 'r',
-+  'a', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 's', 'w', 'a', 'p', '_',
-+  'l', 'o', '_', 'h', 'i', '_', 'b', '6', '4', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 't', 'r', 'u', 'n', 'c', '_', 'd', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 't', 'r', 'u', 'n', 'c', '_', 'f', '\000', '_', '_', 'n', 'v', 'v',
-+  'm', '_', 't', 'r', 'u', 'n', 'c', '_', 'f', 't', 'z', '_', 'f', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'a', 'r', 'r', 'a', 'y',
-+  '_', 's', 'i', 'z', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x',
-+  'q', '_', 'c', 'h', 'a', 'n', 'n', 'e', 'l', '_', 'd', 'a', 't', 'a', '_',
-+  't', 'y', 'p', 'e', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q',
-+  '_', 'c', 'h', 'a', 'n', 'n', 'e', 'l', '_', 'o', 'r', 'd', 'e', 'r', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'd', 'e', 'p', 't',
-+  'h', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'h', 'e',
-+  'i', 'g', 'h', 't', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q',
-+  '_', 'n', 'u', 'm', '_', 'm', 'i', 'p', 'm', 'a', 'p', '_', 'l', 'e', 'v',
-+  'e', 'l', 's', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 't', 'x', 'q', '_',
-+  'n', 'u', 'm', '_', 's', 'a', 'm', 'p', 'l', 'e', 's', '\000', '_', '_', 'n',
-+  'v', 'v', 'm', '_', 't', 'x', 'q', '_', 'w', 'i', 'd', 't', 'h', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'm', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'n', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'd', '_', 'r', 'z', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'm', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'n', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'p', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'u', 'i', '2', 'f', '_', 'r', 'z', '\000', '_',
-+  '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r', 'm', '\000',
-+  '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r', 'n',
-+  '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_', 'r',
-+  'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'd', '_',
-+  'r', 'z', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2', 'f',
-+  '_', 'r', 'm', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l', '2',
-+  'f', '_', 'r', 'n', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l', 'l',
-+  '2', 'f', '_', 'r', 'p', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'u', 'l',
-+  'l', '2', 'f', '_', 'r', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't',
-+  'o', '_', 'v', 'c', 'i', 'p', 'h', 'e', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r',
-+  'y', 'p', 't', 'o', '_', 'v', 'c', 'i', 'p', 'h', 'e', 'r', 'l', 'a', 's',
-+  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+  'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'n', 'c',
-+  'i', 'p', 'h', 'e', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o',
-+  '_', 'v', 'n', 'c', 'i', 'p', 'h', 'e', 'r', 'l', 'a', 's', 't', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'p', 'e', 'r', 'm', 'x',
-+  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+  't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'p',
-+  'm', 's', 'u', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o',
-+  '_', 'v', 'p', 'm', 's', 'u', 'm', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y',
-+  'p', 't', 'o', '_', 'v', 'p', 'm', 's', 'u', 'm', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+  'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 'p', 'm', 's', 'u', 'm', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 's', 'b', 'o', 'x',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't', 'o', '_', 'v', 's', 'h', 'a',
-+  's', 'i', 'g', 'm', 'a', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'c', 'r', 'y', 'p', 't',
-+  'o', '_', 'v', 's', 'h', 'a', 's', 'i', 'g', 'm', 'a', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'd', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'd', 's', 's', 'a', 'l', 'l', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'd', 's', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'd', 's', 't', 's', 't',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'd', 's', 't', 's', 't', 't', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'd',
-+  's', 't', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'm', 'f', 'v', 's', 'c', 'r', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'm', 't', 'v', 's', 'c', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'b',
-+  's', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'b', 's', 'd', 'u', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'a', 'b', 's', 'd', 'u', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+  'v', 'a', 'd', 'd', 'c', 'u', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd',
-+  'c', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 'e', 'c', 'u', 'q',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 'e', 'u', 'q', 'm', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'v', 'a', 'd', 'd', 's', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd',
-+  'd', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 's', 'w', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'a', 'd', 'd', 'u', 'b', 's', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+  'v', 'a', 'd', 'd', 'u', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'd', 'd',
-+  'u', 'w', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'v', 'g', 's', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'a', 'v', 'g', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'v',
-+  'g', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'v', 'g', 'u', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'a', 'v', 'g', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'a', 'v',
-+  'g', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'b', 'p', 'e', 'r', 'm', 'q', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'v', 'c', 'f', 's', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'f',
-+  'u', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+  't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'l', 'z', 'l', 's', 'b', 'b', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'v', 'c', 'm', 'p', 'b', 'f', 'p', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  'c', 'm', 'p', 'b', 'f', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm',
-+  'p', 'e', 'q', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q',
-+  'f', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+  'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'b', '_', 'p',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u', 'd', '_', 'p', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+  'v', 'c', 'm', 'p', 'e', 'q', 'u', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm',
-+  'p', 'e', 'q', 'u', 'h', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p',
-+  'e', 'q', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'e', 'q', 'u',
-+  'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 'e', 'f', 'p',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 'e', 'f', 'p', '_', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'f', 'p', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+  'v', 'c', 'm', 'p', 'g', 't', 'f', 'p', '_', 'p', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  'c', 'm', 'p', 'g', 't', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p',
-+  'g', 't', 's', 'b', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g',
-+  't', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'd',
-+  '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+  't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'h', '_', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 's', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  'c', 'm', 'p', 'g', 't', 's', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
-+  'm', 'p', 'g', 't', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g',
-+  't', 'u', 'b', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't',
-+  'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+  't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'd', '_',
-+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+  'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'h', '_', 'p', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'v', 'c', 'm', 'p', 'g', 't', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
-+  'm', 'p', 'g', 't', 'u', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm',
-+  'p', 'n', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'b',
-+  '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+  't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'h', '_', 'p', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+  'v', 'c', 'm', 'p', 'n', 'e', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p',
-+  'n', 'e', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e',
-+  'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+  't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'b', '_',
-+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+  'i', 'v', 'e', 'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'h', '_', 'p', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'v', 'c', 'm', 'p', 'n', 'e', 'z', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c',
-+  'm', 'p', 'n', 'e', 'z', 'w', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 't',
-+  's', 'x', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'c', 't', 'u', 'x', 's', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'c', 't', 'z', 'l', 's', 'b', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  'e', 'x', 'p', 't', 'e', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'g', 'b', 'b',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+  'i', 'v', 'e', 'c', '_', 'v', 'l', 'o', 'g', 'e', 'f', 'p', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'v', 'm', 'a', 'd', 'd', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a',
-+  'x', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a', 'x', 's', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'm', 'a', 'x', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a',
-+  'x', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a', 'x', 's', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'm', 'a', 'x', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a',
-+  'x', 'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'a', 'x', 'u', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'm', 'a', 'x', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'h',
-+  'a', 'd', 'd', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'h', 'r', 'a',
-+  'd', 'd', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 'f', 'p',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 's', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  'm', 'i', 'n', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 's', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 's', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  'm', 'i', 'n', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 'u', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'm', 'i', 'n', 'u', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  'm', 'i', 'n', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'l', 'a', 'd', 'd',
-+  'u', 'h', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm', 'm', 'b', 'm',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm', 's', 'h', 'm', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'v', 'm', 's', 'u', 'm', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm',
-+  's', 'u', 'm', 'u', 'b', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm',
-+  'u', 'h', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 's', 'u', 'm', 'u', 'h', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'e', 's', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+  'v', 'm', 'u', 'l', 'e', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l',
-+  'e', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'e', 'u', 'b', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'v', 'm', 'u', 'l', 'e', 'u', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  'm', 'u', 'l', 'e', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o',
-+  's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+  't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o', 's', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'm', 'u', 'l', 'o', 's', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm',
-+  'u', 'l', 'o', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o', 'u',
-+  'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+  'i', 'v', 'e', 'c', '_', 'v', 'm', 'u', 'l', 'o', 'u', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'v', 'n', 'm', 's', 'u', 'b', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p',
-+  'e', 'r', 'm', '_', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 'p',
-+  'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+  'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 's', 'd', 's', 's', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'v', 'p', 'k', 's', 'd', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k',
-+  's', 'h', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 's', 'h', 'u', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'p', 'k', 's', 'w', 's', 's', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+  'v', 'p', 'k', 's', 'w', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 'u',
-+  'd', 'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'k', 'u', 'h', 'u', 's', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'v', 'p', 'k', 'u', 'w', 'u', 's', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  'p', 'r', 't', 'y', 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'r', 't', 'y',
-+  'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+  't', 'i', 'v', 'e', 'c', '_', 'v', 'p', 'r', 't', 'y', 'b', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'r', 'e', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'f', 'i',
-+  'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+  'i', 'v', 'e', 'c', '_', 'v', 'r', 'f', 'i', 'n', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  'r', 'f', 'i', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'f', 'i', 'z', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 'r', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'v', 'r', 'l', 'd', 'm', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r',
-+  'l', 'd', 'n', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'v', 'r', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'r', 'l', 'w', 'm', 'i',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'r', 'l', 'w', 'n', 'm', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  'r', 's', 'q', 'r', 't', 'e', 'f', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'e',
-+  'l', '_', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'l', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'v', 's', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'l', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 's', 'l', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'l', 'v', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'v', 's', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'v', 's', 'r', 'a', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r',
-+  'a', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+  't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', 'a', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+  'v', 's', 'r', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'v', 's', 'r', 'o', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'r', 'v', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 's', 'r', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 'c',
-+  'u', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+  't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 'c', 'u', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 's', 'u', 'b', 'e', 'c', 'u', 'q', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  's', 'u', 'b', 'e', 'u', 'q', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b',
-+  's', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 's', 'h', 's', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'v', 's', 'u', 'b', 's', 'w', 's', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  's', 'u', 'b', 'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 'u',
-+  'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l',
-+  't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'b', 'u', 'w', 's', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e',
-+  'c', '_', 'v', 's', 'u', 'm', '2', 's', 'w', 's', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v',
-+  's', 'u', 'm', '4', 's', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'm',
-+  '4', 's', 'h', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'm', '4', 'u', 'b',
-+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't',
-+  'i', 'v', 'e', 'c', '_', 'v', 's', 'u', 'm', 's', 'w', 's', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c',
-+  '_', 'v', 'u', 'p', 'k', 'h', 'p', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p',
-+  'k', 'h', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'h', 's', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i',
-+  'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'h', 's', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_',
-+  'v', 'u', 'p', 'k', 'l', 'p', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'a', 'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k',
-+  'l', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a',
-+  'l', 't', 'i', 'v', 'e', 'c', '_', 'v', 'u', 'p', 'k', 'l', 's', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'a', 'l', 't', 'i', 'v',
-+  'e', 'c', '_', 'v', 'u', 'p', 'k', 'l', 's', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'b', 'p', 'e', 'r', 'm', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v', 'd', 'e', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v', 'd', 'e', 'u',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v', 'w',
-+  'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'd', 'i', 'v',
-+  'w', 'e', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'g',
-+  'e', 't', '_', 't', 'e', 'x', 'a', 's', 'r', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'g', 'e', 't', '_', 't', 'e', 'x', 'a', 's', 'r',
-+  'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'g', 'e', 't',
-+  '_', 't', 'f', 'h', 'a', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'g', 'e', 't', '_', 't', 'f', 'i', 'a', 'r', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'a',
-+  'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-+  'x', '_', 'q', 'v', 'f', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'a', 'd', 'd', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+  'q', 'v', 'f', 'c', 'f', 'i', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'f', 'i', 'd', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+  'q', 'v', 'f', 'c', 'f', 'i', 'd', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'f', 'i', 'd',
-+  'u', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-+  'x', '_', 'q', 'v', 'f', 'c', 'm', 'p', 'e', 'q', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 'm',
-+  'p', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+  'p', 'x', '_', 'q', 'v', 'f', 'c', 'm', 'p', 'l', 't', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c',
-+  'p', 's', 'g', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c',
-+  't', 'i', 'd', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'd', 'u', 'z', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
-+  'f', 'c', 't', 'i', 'd', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
-+  'f', 'c', 't', 'i', 'w', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'c', 't', 'i', 'w', 'u', 'z',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+  'q', 'v', 'f', 'c', 't', 'i', 'w', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'l', 'o', 'g', 'i',
-+  'c', 'a', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+  'p', 'x', '_', 'q', 'v', 'f', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 'a',
-+  'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+  'p', 'x', '_', 'q', 'v', 'f', 'm', 's', 'u', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 's',
-+  'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+  'p', 'x', '_', 'q', 'v', 'f', 'm', 'u', 'l', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'm', 'u', 'l',
-+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-+  '_', 'q', 'v', 'f', 'n', 'a', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'n', 'e', 'g', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-+  'v', 'f', 'n', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'n', 'm', 'a', 'd', 'd',
-+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-+  '_', 'q', 'v', 'f', 'n', 'm', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'n', 'm', 's',
-+  'u', 'b', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+  'p', 'x', '_', 'q', 'v', 'f', 'p', 'e', 'r', 'm', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 'e',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+  'q', 'v', 'f', 'r', 'e', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 'i', 'm', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f',
-+  'r', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+  'p', 'x', '_', 'q', 'v', 'f', 'r', 'i', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 'i', 'z',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+  'q', 'v', 'f', 'r', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'r', 's', 'q', 'r', 't', 'e',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+  'q', 'v', 'f', 'r', 's', 'q', 'r', 't', 'e', 's', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 's', 'e',
-+  'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-+  '_', 'q', 'v', 'f', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 's', 'u', 'b', 's', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-+  'v', 'f', 't', 's', 't', 'n', 'a', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'm', 'a', 'd',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-+  '_', 'q', 'v', 'f', 'x', 'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'm',
-+  'u', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-+  'x', '_', 'q', 'v', 'f', 'x', 'm', 'u', 'l', 's', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x',
-+  'c', 'p', 'n', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'c', 'p', 'n',
-+  'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'm', 'a', 'd', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-+  'v', 'f', 'x', 'x', 'm', 'a', 'd', 'd', 's', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'n',
-+  'p', 'm', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'q', 'p', 'x', '_', 'q', 'v', 'f', 'x', 'x', 'n', 'p', 'm', 'a', 'd',
-+  'd', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-+  'x', '_', 'q', 'v', 'g', 'p', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'c', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-+  'v', 'l', 'f', 'c', 'd', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'c', 's', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l',
-+  'f', 'c', 's', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'd', 'a',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+  'q', 'v', 'l', 'f', 'i', 'w', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'i', 'w', 'a', 'a',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+  'q', 'v', 'l', 'f', 'i', 'w', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 'i', 'w', 'z', 'a',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+  'q', 'v', 'l', 'f', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'f', 's', 'a', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'p',
-+  'c', 'l', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q',
-+  'p', 'x', '_', 'q', 'v', 'l', 'p', 'c', 'l', 's', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 'l', 'p', 'c',
-+  'r', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p',
-+  'x', '_', 'q', 'v', 'l', 'p', 'c', 'r', 's', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'c',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-+  '_', 'q', 'v', 's', 't', 'f', 'c', 'd', 'a', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'c',
-+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x',
-+  '_', 'q', 'v', 's', 't', 'f', 'c', 's', 'a', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_',
-+  'q', 'v', 's', 't', 'f', 'd', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 'i', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q',
-+  'v', 's', 't', 'f', 'i', 'w', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v', 's', 't', 'f', 's', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'q', 'p', 'x', '_', 'q', 'v',
-+  's', 't', 'f', 's', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 's', 'e', 't', '_', 't', 'e', 'x', 'a', 's', 'r', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', 'e', 't', '_', 't', 'e', 'x', 'a',
-+  's', 'r', 'u', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  'e', 't', '_', 't', 'f', 'h', 'a', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 's', 'e', 't', '_', 't', 'f', 'i', 'a', 'r', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'a', 'b', 'o', 'r', 't',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'a', 'b', 'o',
-+  'r', 't', 'd', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  't', 'a', 'b', 'o', 'r', 't', 'd', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 't', 'a', 'b', 'o', 'r', 't', 'w', 'c', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'a', 'b', 'o', 'r', 't',
-+  'w', 'c', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't',
-+  'b', 'e', 'g', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 't', 'c', 'h', 'e', 'c', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 't', 'e', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 't', 'e', 'n', 'd', 'a', 'l', 'l', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 't', 'r', 'e', 'c', 'h', 'k', 'p', 't', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'r', 'e', 'c', 'l',
-+  'a', 'i', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't',
-+  'r', 'e', 's', 'u', 'm', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 't', 's', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 't', 's', 'u', 's', 'p', 'e', 'n', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 't', 't', 'e', 's', 't', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 's', 'm', 'a', 'x',
-+  'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
-+  'x', '_', 'x', 's', 'm', 'i', 'n', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'e',
-+  'q', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
-+  's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'e', 'q', 'd', 'p', '_', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-+  'v', 'c', 'm', 'p', 'e', 'q', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'e', 'q',
-+  's', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 'e', 'd', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
-+  'c', 'm', 'p', 'g', 'e', 'd', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g',
-+  'e', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
-+  's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 'e', 's', 'p', '_', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-+  'v', 'c', 'm', 'p', 'g', 't', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 't',
-+  'd', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'v', 's', 'x', '_', 'x', 'v', 'c', 'm', 'p', 'g', 't', 's', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
-+  'c', 'm', 'p', 'g', 't', 's', 'p', '_', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 'd', 'p',
-+  's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
-+  'x', '_', 'x', 'v', 'c', 'v', 'd', 'p', 's', 'x', 'w', 's', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c',
-+  'v', 'd', 'p', 'u', 'x', 'w', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 'h', 'p', 's', 'p',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_',
-+  'x', 'v', 'c', 'v', 's', 'p', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 's', 'p', 'h',
-+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x',
-+  '_', 'x', 'v', 'c', 'v', 's', 'x', 'd', 's', 'p', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 's',
-+  'x', 'w', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'v', 's', 'x', '_', 'x', 'v', 'c', 'v', 'u', 'x', 'd', 's', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
-+  'c', 'v', 'u', 'x', 'w', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'd', 'i', 'v', 'd', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-+  'v', 'd', 'i', 'v', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'i', 'e', 'x', 'p', 'd', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-+  'v', 'i', 'e', 'x', 'p', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'm', 'a', 'x', 'd', 'p', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x',
-+  'v', 'm', 'a', 'x', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'm', 'i', 'n', 'd', 'p', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v',
-+  'm', 'i', 'n', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'v', 's', 'x', '_', 'x', 'v', 'r', 'e', 'd', 'p', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'r', 'e',
-+  's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
-+  'x', '_', 'x', 'v', 'r', 's', 'q', 'r', 't', 'e', 'd', 'p', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'r',
-+  's', 'q', 'r', 't', 'e', 's', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 't', 's', 't', 'd', 'c', 'd',
-+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x',
-+  '_', 'x', 'v', 't', 's', 't', 'd', 'c', 's', 'p', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'x', 'e', 'x',
-+  'p', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v',
-+  's', 'x', '_', 'x', 'v', 'x', 'e', 'x', 'p', 's', 'p', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'v', 'x', 's',
-+  'i', 'g', 'd', 'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'v', 's', 'x', '_', 'x', 'v', 'x', 's', 'i', 'g', 's', 'p', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'x', 'e',
-+  'x', 't', 'r', 'a', 'c', 't', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'v', 's', 'x', '_', 'x', 'x', 'i', 'n', 's', 'e', 'r',
-+  't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'v', 's',
-+  'x', '_', 'x', 'x', 'l', 'e', 'q', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'g', 'r', 'o', 'u', 'p', '_',
-+  'b', 'a', 'r', 'r', 'i', 'e', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'r', '6', '0', '0', '_', 'i', 'm', 'p', 'l', 'i', 'c', 'i',
-+  't', 'a', 'r', 'g', '_', 'p', 't', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'a', 't', '_', 's', 't',
-+  'o', 'r', 'e', '_', 't', 'y', 'p', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_',
-+  'g', 'l', 'o', 'b', 'a', 'l', '_', 's', 'i', 'z', 'e', '_', 'x', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0', '0', '_', 'r',
-+  'e', 'a', 'd', '_', 'g', 'l', 'o', 'b', 'a', 'l', '_', 's', 'i', 'z', 'e',
-+  '_', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6',
-+  '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'g', 'l', 'o', 'b', 'a', 'l', '_',
-+  's', 'i', 'z', 'e', '_', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'n', 'g', 'r',
-+  'o', 'u', 'p', 's', '_', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'n', 'g', 'r',
-+  'o', 'u', 'p', 's', '_', 'y', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 'n', 'g', 'r',
-+  'o', 'u', 'p', 's', '_', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'r', '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 't', 'g', 'i',
-+  'd', '_', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r',
-+  '6', '0', '0', '_', 'r', 'e', 'a', 'd', '_', 't', 'g', 'i', 'd', '_', 'y',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'r', '6', '0', '0',
-+  '_', 'r', 'e', 'a', 'd', '_', 't', 'g', 'i', 'd', '_', 'z', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'e', 'f',
-+  'p', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 't', 'x',
-+  '_', 'n', 'e', 's', 't', 'i', 'n', 'g', '_', 'd', 'e', 'p', 't', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+  'l', 'c', 'b', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  't', 'x', '_', 'a', 's', 's', 'i', 's', 't', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 's', 'f', 'p', 'c', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+  'v', 'a', 'c', 'c', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 's', '3', '9', '0', '_', 'v', 'a', 'c', 'c', 'c', 'q', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a',
-+  'c', 'c', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'a', 'c', 'c', 'g', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'c', 'c', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 'a', 'c', 'c', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'c', 'q', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'q',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 'a', 'v', 'g', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'f', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a',
-+  'v', 'g', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'l',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-+  '0', '_', 'v', 'a', 'v', 'g', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'a', 'v', 'g', 'l', 'g',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 'a', 'v', 'g', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'c', 'k', 's', 'm', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+  'e', 'r', 'i', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'i', 'm', 'f', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e',
-+  'r', 'i', 'm', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  's', '3', '9', '0', '_', 'v', 'e', 'r', 'i', 'm', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r',
-+  'l', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'f', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'l',
-+  'l', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+  '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l',
-+  'v', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+  '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'v', 'f', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'e', 'r', 'l',
-+  'l', 'v', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'e', 'r', 'l', 'l', 'v', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'a',
-+  'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+  '9', '0', '_', 'v', 'f', 'a', 'e', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'a', 'e', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+  'v', 'f', 'a', 'e', 'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'a', 'e', 'z', 'f', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+  'f', 'a', 'e', 'z', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'e', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e',
-+  'e', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+  '9', '0', '_', 'v', 'f', 'e', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'e', 'z', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 'f', 'e', 'e', 'z', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'e', 'z', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+  'v', 'f', 'e', 'n', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'n', 'e', 'f', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+  'f', 'e', 'n', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'n', 'e', 'z', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+  'f', 'e', 'n', 'e', 'z', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'f', 'e', 'n', 'e', 'z', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+  'v', 'g', 'f', 'm', 'a', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'a', 'f', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+  'g', 'f', 'm', 'a', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'a', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'g',
-+  'f', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'f', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'g', 'f', 'm', 'g',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 'g', 'f', 'm', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'i', 's', 't', 'r', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+  'i', 's', 't', 'r', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 's', '3', '9', '0', '_', 'v', 'i', 's', 't', 'r', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'l',
-+  'b', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+  '9', '0', '_', 'v', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'e', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm',
-+  'a', 'e', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'm', 'a', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'h', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 'm', 'a', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'h', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm',
-+  'a', 'l', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'e', 'f', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a',
-+  'l', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'h', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l',
-+  'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+  '9', '0', '_', 'v', 'm', 'a', 'l', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'o',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-+  '0', '_', 'v', 'm', 'a', 'l', 'o', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'l', 'o', 'h',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 'm', 'a', 'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'a', 'o', 'f', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm',
-+  'a', 'o', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'm', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'e', 'f', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+  'm', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'm', 'h', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'h', 'f', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+  'm', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'm', 'l', 'e', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'e', 'f',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 'm', 'l', 'e', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'h', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm',
-+  'l', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'm', 'l', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'o', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 'm', 'l', 'o', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'l', 'o', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm',
-+  'o', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+  '9', '0', '_', 'v', 'm', 'o', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'm', 'o', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p',
-+  'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+  '9', '0', '_', 'v', 'p', 'e', 'r', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p', 'k', 'l', 's', 'f',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 'p', 'k', 'l', 's', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p', 'k', 'l', 's', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+  'v', 'p', 'k', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 's', '3', '9', '0', '_', 'v', 'p', 'k', 's', 'g', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'p', 'k',
-+  's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+  '9', '0', '_', 'v', 's', 'b', 'c', 'b', 'i', 'q', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'b', 'i',
-+  'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9',
-+  '0', '_', 'v', 's', 'c', 'b', 'i', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'c', 'b', 'i', 'f',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 's', 'c', 'b', 'i', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'c', 'b', 'i', 'h', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+  'v', 's', 'c', 'b', 'i', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'l', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'l', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 's', 'l', 'd', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'q', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'r', 'a',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 's', 'r', 'a', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'r', 'l', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'r',
-+  'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+  '9', '0', '_', 'v', 's', 't', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 't', 'r', 'c', 'b', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+  'v', 's', 't', 'r', 'c', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 's', 't', 'r', 'c', 'h', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+  's', 't', 'r', 'c', 'z', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 's', 't', 'r', 'c', 'z', 'f', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_',
-+  'v', 's', 't', 'r', 'c', 'z', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'u', 'm', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+  's', 'u', 'm', 'g', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 's', '3', '9', '0', '_', 'v', 's', 'u', 'm', 'g', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's',
-+  'u', 'm', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 's', 'u', 'm', 'q', 'f', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 's', 'u', 'm',
-+  'q', 'g', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3',
-+  '9', '0', '_', 'v', 't', 'm', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'h', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u',
-+  'p', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'u', 'p', 'h', 'h', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'b',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0',
-+  '_', 'v', 'u', 'p', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'h', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v',
-+  'u', 'p', 'l', 'h', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'h', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u',
-+  'p', 'l', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  's', '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'l', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 's', '3', '9', '0', '_', 'v', 'u', 'p',
-+  'l', 'l', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 's',
-+  '3', '9', '0', '_', 'v', 'u', 'p', 'l', 'l', 'h', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v', 'g',
-+  'u', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'f', '2', 'i', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'a', 'c', 'c',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'f', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'c', 'm', 'p', 'e', 'q', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'f', 'c', 'm', 'p', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'c', 'm', 'p', 'g', 't',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'f', 'm', 'a', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'm', 'i', 'n', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f',
-+  'm', 'u', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'f', 'r', 'c', 'p', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'r', 'c', 'p',
-+  'i', 't', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'f', 'r', 'c', 'p', 'i', 't', '2', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f',
-+  'r', 's', 'q', 'i', 't', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'r', 's', 'q', 'r', 't', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'f', 's', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'f', 's', 'u', 'b', 'r', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'i',
-+  '2', 'f', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', '2',
-+  'i', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'f', 'n', 'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'f', 'p', 'n', 'a',
-+  'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'i', '2', 'f', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 'c', 'a', 'r',
-+  'r', 'y', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y',
-+  '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y', 'x', '_',
-+  'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'a', 'd', 'd', 'c', 'a', 'r', 'r', 'y', 'x', '_', 'u',
-+  '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'a', 'e', 's', 'd', 'e', 'c', '1', '2', '8', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e',
-+  's', 'd', 'e', 'c', 'l', 'a', 's', 't', '1', '2', '8', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's',
-+  'e', 'n', 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'e', 'n', 'c', 'l', 'a',
-+  's', 't', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'a', 'e', 's', 'i', 'm', 'c', '1', '2', '8',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'a', 'e', 's', 'k', 'e', 'y', 'g', 'e', 'n', 'a', 's', 's', 'i', 's',
-+  't', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '2', '5',
-+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5', '6', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b',
-+  'l', 'e', 'n', 'd', 'v', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'l', 'e', 'n',
-+  'd', 'v', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'p',
-+  's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'd', 'q', '2', '5',
-+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'c', 'v', 't', 'p', 's', '2', 'd', 'q', '2', '5', '6', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'v', 't', 'd', 'q', '2', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't',
-+  'p', 'd', '2', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's',
-+  '2', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'd', 'p', 'p', 's', '2', '5', '6', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'h', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 'a', 'd', 'd', 'p',
-+  's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'h', 's', 'u', 'b', 'p', 'd', '2', '5', '6', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'h', 's', 'u', 'b', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'd', 'd', 'q', 'u',
-+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'p', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'p', 'd', '2', '5', '6', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm',
-+  'a', 's', 'k', 'l', 'o', 'a', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l',
-+  'o', 'a', 'd', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't',
-+  'o', 'r', 'e', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e',
-+  'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e',
-+  'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e', 'p', 's', '2',
-+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'm', 'a', 'x', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x',
-+  'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 'd', '2', '5', '6', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'm', 'i', 'n', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'v', 'm', 's', 'k',
-+  'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'v', 'm', 's', 'k', 'p', 's', '2',
-+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 't', 'e', 's', 't', 'c', '2', '5', '6', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't',
-+  'e', 's', 't', 'n', 'z', 'c', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't',
-+  'z', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'r', 'c', 'p', 'p', 's', '2', '5', '6', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+  'o', 'u', 'n', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'o', 'u', 'n', 'd',
-+  'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', 'p', 's', '2', '5',
-+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 's', 'q', 'r', 't', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+  't', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', '2', 'f', '1',
-+  '2', '8', '_', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', '2',
-+  'f', '1', '2', '8', '_', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
-+  'm', '2', 'f', '1', '2', '8', '_', 's', 'i', '2', '5', '6', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+  'e', 'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
-+  'm', 'i', 'l', 'v', 'a', 'r', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+  'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
-+  'i', 'l', 'v', 'a', 'r', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's',
-+  't', 'c', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'c', 'p', 'd', '2', '5',
-+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 't', 'e', 's', 't', 'c', 'p', 's', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's',
-+  't', 'c', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'n', 'z',
-+  'c', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'n', 'z', 'c', 'p', 'd', '2',
-+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 't', 'e', 's', 't', 'n', 'z', 'c', 'p', 's', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  't', 'e', 's', 't', 'n', 'z', 'c', 'p', 's', '2', '5', '6', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't',
-+  'e', 's', 't', 'z', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'z', 'p', 'd',
-+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 't', 'e', 's', 't', 'z', 'p', 's', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 't',
-+  'e', 's', 't', 'z', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'z', 'e', 'r', 'o',
-+  'a', 'l', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'z', 'e', 'r', 'o', 'u', 'p', 'p', 'e', 'r', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
-+  'r', 'd', '_', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd',
-+  '_', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'p', 'd', '2',
-+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd', '_', 'p', 's', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-+  'a', 't', 'h', 'e', 'r', 'd', '_', 'p', 's', '2', '5', '6', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a',
-+  't', 'h', 'e', 'r', 'd', '_', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'd',
-+  '_', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'd', '2', '5', '6', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-+  'a', 't', 'h', 'e', 'r', 'q', '_', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
-+  'r', 'q', '_', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
-+  'q', '_', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'p', 's',
-+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'q', '_', 'q', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-+  'a', 't', 'h', 'e', 'r', 'q', '_', 'q', '2', '5', '6', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's',
-+  'k', 'l', 'o', 'a', 'd', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd',
-+  'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'q', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'm', 'a', 's', 'k', 'l', 'o', 'a', 'd', 'q', '2', '5', '6', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a',
-+  's', 'k', 's', 't', 'o', 'r', 'e', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't',
-+  'o', 'r', 'e', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o',
-+  'r', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'm', 'a', 's', 'k', 's', 't', 'o', 'r', 'e', 'q', '2',
-+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'm', 'o', 'v', 'n', 't', 'd', 'q', 'a', '2', '5', '6', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'm', 'p', 's', 'a', 'd', 'b', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's',
-+  'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd', '2', '5', '6', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'a', 'b', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd',
-+  'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'w', 'b', '2', '5',
-+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'd', 'w', '2', '5', '6', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'a', 'c', 'k', 'u', 's', 'w', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+  's', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 's', 'w', '2', '5', '6',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'a', 'd', 'd', 'u', 's', 'b', '2', '5', '6', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd',
-+  'd', 'u', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v', 'g', 'b', '2', '5',
-+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'a', 'v', 'g', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'l', 'e',
-+  'n', 'd', 'v', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r',
-+  's', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 's', 'f',
-+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 'd', '2', '5', '6', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'h', 'a', 'd', 'd', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd',
-+  'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 'd', '2', '5', '6', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'h', 's', 'u', 'b', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u',
-+  'b', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's', 'w',
-+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'w', 'd', '2', '5', '6', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'm', 'o', 'v', 'm', 's', 'k', 'b', '2', '5', '6', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u',
-+  'l', 'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w',
-+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'w', '2', '5', '6', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'u', 'l', 'h', 'u', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u',
-+  'd', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'a', 'd', 'b', 'w', '2', '5', '6',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 's', 'h', 'u', 'f', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g',
-+  'n', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'd', '2', '5', '6',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 's', 'i', 'g', 'n', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l',
-+  'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'q', '2', '5', '6', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  's', 'l', 'l', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', 'i', '2',
-+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 's', 'l', 'l', 'q', 'i', '2', '5', '6', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+  'l', 'l', 'w', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '4', 's',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 's', 'l', 'l', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l',
-+  'v', '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '4', 'd', 'i', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  's', 'r', 'a', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', '2', '5',
-+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 's', 'r', 'a', 'd', 'i', '2', '5', '6', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-+  'a', 'w', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '4', 's', 'i',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 's', 'r', 'a', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'd',
-+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', '2', '5', '6', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+  'r', 'l', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'd', 'i', '2', '5',
-+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 's', 'r', 'l', 'q', 'i', '2', '5', '6', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-+  'l', 'w', 'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '4', 's', 'i',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 's', 'r', 'l', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v',
-+  '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '4', 'd', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+  'u', 'b', 's', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's', 'w', '2',
-+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 's', 'u', 'b', 'u', 's', 'b', '2', '5', '6', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  's', 'u', 'b', 'u', 's', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 't',
-+  'i', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'm',
-+  'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'm',
-+  'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'm',
-+  'b', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'm',
-+  'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'm',
-+  'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'm',
-+  'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'b', '2', 'm', 'a', 's', 'k', '1',
-+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'c', 'v', 't', 'b', '2', 'm', 'a', 's', 'k', '2', '5', '6',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'v', 't', 'b', '2', 'm', 'a', 's', 'k', '5', '1', '2', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'v', 't', 'd', '2', 'm', 'a', 's', 'k', '1', '2', '8', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+  'd', '2', 'm', 'a', 's', 'k', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'd', '2',
-+  'm', 'a', 's', 'k', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k',
-+  '2', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'b',
-+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'b', '5', '1',
-+  '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'd', '1', '2', '8', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'd', '2', '5', '6', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+  't', 'm', 'a', 's', 'k', '2', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'm',
-+  'a', 's', 'k', '2', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's',
-+  'k', '2', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2',
-+  'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'w', '1',
-+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'w', '2', '5', '6',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'v', 't', 'm', 'a', 's', 'k', '2', 'w', '5', '1', '2', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'v', 't', 'q', '2', 'm', 'a', 's', 'k', '1', '2', '8', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+  'q', '2', 'm', 'a', 's', 'k', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', '2',
-+  'm', 'a', 's', 'k', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 'i', '2', 's',
-+  'd', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'c', 'v', 't', 's', 'i', '2', 's', 's', '3', '2', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'c', 'v', 't', 's', 'i', '2', 's', 's', '6', '4', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't',
-+  't', 's', 'd', '2', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's',
-+  'd', '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 'd', '2',
-+  'u', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 'd', '2', 'u',
-+  's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 's', '2', 's', 'i',
-+  '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'c', 'v', 't', 't', 's', 's', '2', 's', 'i', '6', '4',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'c', 'v', 't', 't', 's', 's', '2', 'u', 's', 'i', '3', '2', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'c', 'v', 't', 't', 's', 's', '2', 'u', 's', 'i', '6', '4', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'v', 't', 'u', 's', 'i', '2', 's', 'd', '3', '2', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u',
-+  's', 'i', '2', 's', 's', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 's', 'i', '2',
-+  's', 'd', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 's', 'i', '2', 's', 's', '6',
-+  '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'c', 'v', 't', 'w', '2', 'm', 'a', 's', 'k', '1', '2', '8', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'c', 'v', 't', 'w', '2', 'm', 'a', 's', 'k', '2', '5', '6', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+  't', 'w', '2', 'm', 'a', 's', 'k', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', '2',
-+  'p', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', '2', 'p', 's', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 's', 'i', 'v', '8',
-+  'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 's', 'i', 'v', '1', '6', 's',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 's', 'i', 'v', '8', 'd', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'g', 'a', 't', 'h', 'e', 'r', 's', 'i', 'v', '1', '6', 's', 'f', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-+  'a', 't', 'h', 'e', 'r', 'd', 'i', 'v', '8', 'd', 'f', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't',
-+  'h', 'e', 'r', 'd', 'i', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h',
-+  'e', 'r', 'd', 'i', 'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
-+  'd', 'i', 'v', '1', '6', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3',
-+  'd', 'i', 'v', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd',
-+  'i', 'v', '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i',
-+  'v', '4', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v',
-+  '4', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '4',
-+  's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '4', 's',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '8', 's', 'f',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'g', 'a', 't', 'h', 'e', 'r', '3', 'd', 'i', 'v', '8', 's', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'g', 'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '2', 'd', 'f', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-+  'a', 't', 'h', 'e', 'r', '3', 's', 'i', 'v', '2', 'd', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a',
-+  't', 'h', 'e', 'r', '3', 's', 'i', 'v', '4', 'd', 'f', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't',
-+  'h', 'e', 'r', '3', 's', 'i', 'v', '4', 'd', 'i', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h',
-+  'e', 'r', '3', 's', 'i', 'v', '4', 's', 'f', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e',
-+  'r', '3', 's', 'i', 'v', '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r',
-+  '3', 's', 'i', 'v', '8', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', '3',
-+  's', 'i', 'v', '8', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'p', 'f',
-+  'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'g', 'a', 't', 'h', 'e', 'r', 'p', 'f', 'd', 'p', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'g', 'a', 't', 'h', 'e', 'r', 'p', 'f', 'q', 'p', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'a',
-+  't', 'h', 'e', 'r', 'p', 'f', 'q', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'a', 'n', 'd', 'h',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'k', 'a', 'n', 'd', 'n', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'n', 'o', 't', 'h',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'k', 'o', 'r', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'o', 'r', 't', 'e', 's', 't',
-+  'c', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'k', 'o', 'r', 't', 'e', 's', 't', 'z', 'h', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'k', 'u', 'n', 'p', 'c', 'k', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'u', 'n', 'p', 'c', 'k',
-+  'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'k', 'u', 'n', 'p', 'c', 'k', 's', 'i', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'x', 'n',
-+  'o', 'r', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'k', 'x', 'o', 'r', 'h', 'i', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd',
-+  'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 'p',
-+  's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 's', 'd',
-+  '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd',
-+  's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b',
-+  'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'f', '3', '2', 'x', '2', '_', '2',
-+  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a',
-+  's', 't', 'f', '3', '2', 'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'f', '3', '2', 'x',
-+  '4', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a',
-+  'd', 'c', 'a', 's', 't', 'f', '3', '2', 'x', '4', '_', '5', '1', '2', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'f', '3', '2', 'x', '8', '_',
-+  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c',
-+  'a', 's', 't', 'f', '6', '4', 'x', '2', '_', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'f', '6', '4',
-+  'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o',
-+  'a', 'd', 'c', 'a', 's', 't', 'f', '6', '4', 'x', '4', '_', '5', '1', '2',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i', '3', '2', 'x', '2',
-+  '_', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd',
-+  'c', 'a', 's', 't', 'i', '3', '2', 'x', '2', '_', '2', '5', '6', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i', '3',
-+  '2', 'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r',
-+  'o', 'a', 'd', 'c', 'a', 's', 't', 'i', '3', '2', 'x', '4', '_', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's',
-+  't', 'i', '3', '2', 'x', '4', '_', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a',
-+  'd', 'c', 'a', 's', 't', 'i', '3', '2', 'x', '8', '_', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i',
-+  '6', '4', 'x', '2', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b',
-+  'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i', '6', '4', 'x', '2', '_', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a',
-+  's', 't', 'i', '6', '4', 'x', '4', '_', '5', '1', '2', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p',
-+  'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p',
-+  'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p', 'd',
-+  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p', 's', '1',
-+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p', 's', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p', 's', '5', '1', '2',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 's', 'd', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'c', 'm', 'p', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-+  'm', 'p', 'r', 'e', 's', 's', 's', 'i', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 'i', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's',
-+  'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-+  'e', 's', 's', 'd', 'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'o', 'm', 'p', 'r', 'e', 's', 's', 'd', 'f', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'd', 'f', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's',
-+  's', 'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p',
-+  'r', 'e', 's', 's', 's', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 'f', '5', '1', '2', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 'd', 'i', '1',
-+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's',
-+  's', 'd', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm',
-+  'p', 'r', 'e', 's', 's', 'd', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 's',
-+  'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-+  'e', 's', 's', 's', 't', 'o', 'r', 'e', 's', 'i', '2', '5', '6', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o',
-+  'r', 'e', 's', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-+  'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 'd', 'f', '1', '2',
-+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's',
-+  's', 't', 'o', 'r', 'e', 'd', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 'd',
-+  'f', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-+  'e', 's', 's', 's', 't', 'o', 'r', 'e', 's', 'f', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o',
-+  'r', 'e', 's', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-+  'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 's', 'f', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's',
-+  's', 't', 'o', 'r', 'e', 'd', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'o', 'm', 'p', 'r', 'e', 's', 's', 's', 't', 'o', 'r', 'e', 'd',
-+  'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'p', 'r',
-+  'e', 's', 's', 's', 't', 'o', 'r', 'e', 'd', 'i', '5', '1', '2', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'n', 'f', 'l', 'i', 'c', 't', 's',
-+  'i', '_', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o',
-+  'n', 'f', 'l', 'i', 'c', 't', 's', 'i', '_', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'p', 'c', 'o', 'n', 'f', 'l', 'i', 'c', 't', 's', 'i',
-+  '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'n',
-+  'f', 'l', 'i', 'c', 't', 'd', 'i', '_', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'p', 'c', 'o', 'n', 'f', 'l', 'i', 'c', 't', 'd', 'i', '_',
-+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'n', 'f',
-+  'l', 'i', 'c', 't', 'd', 'i', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'v', 't', 'd', 'q', '2', 'p', 's', '1', '2', '8', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'c', 'v', 't', 'd', 'q', '2', 'p', 's', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'd', 'q', '2', 'p', 's', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'd', 'q',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2',
-+  'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p',
-+  'd', '2', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+  't', 'p', 'd', '2', 'p', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+  'p', 'd', '2', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'v', 't', 'p', 'd', '2', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'v', 't', 'p', 'd', '2', 'q', 'q', '1', '2', '8', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'q', 'q', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'q', 'q', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'd',
-+  'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd',
-+  '2', 'u', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+  't', 'p', 'd', '2', 'u', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'q', 'q', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'q', 'q', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'u', 'q',
-+  'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's',
-+  '2', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+  'p', 's', '2', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'v', 't', 'p', 's', '2', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'v', 't', 'p', 's', '2', 'p', 'd', '1', '2', '8', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'p', 'd', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'p', 'd', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'q', 'q',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2',
-+  'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p',
-+  's', '2', 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+  't', 'p', 's', '2', 'u', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'd', 'q', '2', '5', '6', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'd', 'q', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'u', 'q',
-+  'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's',
-+  '2', 'u', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+  't', 'p', 's', '2', 'u', 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'v', 't', 'q', 'q', '2', 'p', 'd', '1', '2', '8', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'c', 'v', 't', 'q', 'q', '2', 'p', 'd', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', 'q', '2', 'p', 'd', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', 'q', '2', 'p', 's',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', 'q', '2',
-+  'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q',
-+  'q', '2', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+  't', 's', 'd', '2', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'c', 'v', 't', 's', 's', '2', 's', 'd', '_', 'r', 'o', 'u',
-+  'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2',
-+  'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't',
-+  'p', 'd', '2', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'v', 't', 't', 'p', 'd', '2', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'q', 'q', '1', '2', '8', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'q', 'q', '2',
-+  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2',
-+  'q', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't',
-+  'p', 'd', '2', 'u', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'c', 'v', 't', 't', 'p', 'd', '2', 'u', 'd', 'q', '2', '5', '6', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'u', 'd', 'q', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 'd', '2',
-+  'u', 'q', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+  't', 'p', 'd', '2', 'u', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'v', 't', 't', 'p', 'd', '2', 'u', 'q', 'q', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'd', 'q', '1',
-+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2',
-+  'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't',
-+  'p', 's', '2', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'v', 't', 't', 'p', 's', '2', 'q', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'q', 'q', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'q', 'q', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2',
-+  'u', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+  't', 'p', 's', '2', 'u', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'v', 't', 't', 'p', 's', '2', 'u', 'd', 'q', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2', 'u', 'q', 'q',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's',
-+  '2', 'u', 'q', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+  't', 't', 'p', 's', '2', 'u', 'q', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'c', 'v', 't', 'u', 'd', 'q', '2', 'p', 's', '1', '2', '8', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'd', 'q', '2', 'p', 's', '2',
-+  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'd', 'q', '2',
-+  'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u',
-+  'q', 'q', '2', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'v', 't', 'u', 'q', 'q', '2', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'c', 'v', 't', 'u', 'q', 'q', '2', 'p', 'd', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'q', 'q', '2', 'p', 's', '1',
-+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u', 'q', 'q', '2',
-+  'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'u',
-+  'q', 'q', '2', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd',
-+  'b', 'p', 's', 'a', 'd', 'b', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'd', 'b', 'p', 's', 'a', 'd', 'b', 'w', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'd', 'b', 'p', 's', 'a', 'd', 'b', 'w', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'd', 'i', 'v', 'p', 'd', '5', '1', '2', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'd', 'i', 'v', 'p', 's', '5', '1', '2', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'd', 'i', 'v', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'd', 'i', 'v', 's', 's', '_', 'r', 'o', 'u', 'n',
-+  'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 's', 'i',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd',
-+  's', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a',
-+  'n', 'd', 's', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-+  'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 's', 'i', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 's',
-+  'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n',
-+  'd', 'l', 'o', 'a', 'd', 's', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'd', 'f', '1', '2',
-+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o',
-+  'a', 'd', 'd', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-+  'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'd', 'f', '5', '1', '2', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 's',
-+  'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n',
-+  'd', 'l', 'o', 'a', 'd', 's', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 's', 'f', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o',
-+  'a', 'd', 'd', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-+  'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'd', 'i', '2', '5', '6', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'l', 'o', 'a', 'd', 'd',
-+  'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n',
-+  'd', 'd', 'f', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p',
-+  'a', 'n', 'd', 'd', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e',
-+  'x', 'p', 'a', 'n', 'd', 'd', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'e', 'x', 'p', 'a', 'n', 'd', 's', 'f', '1', '2', '8', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 's', 'f', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 's', 'f', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd', 'd', 'i',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a', 'n', 'd',
-+  'd', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 'p', 'a',
-+  'n', 'd', 'd', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i',
-+  'x', 'u', 'p', 'i', 'm', 'm', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 'd', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p',
-+  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p',
-+  'i', 'm', 'm', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f',
-+  'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 's', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 's', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm',
-+  's', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm',
-+  'm', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's',
-+  's', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c',
-+  'l', 'a', 's', 's', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'f', 'p', 'c', 'l', 'a', 's', 's', 'p', 'd', '5', '1', '2', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's', 's', 'p', 's', '1', '2', '8',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's', 's', 'p', 's',
-+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c', 'l', 'a', 's',
-+  's', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c',
-+  'l', 'a', 's', 's', 's', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'p', 'c',
-+  'l', 'a', 's', 's', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't',
-+  'e', 'x', 'p', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g',
-+  'e', 't', 'e', 'x', 'p', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'g', 'e', 't', 'e', 'x', 'p', 'p', 'd', '5', '1', '2', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 'p', 's', '1', '2', '8', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 'p', 's', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 'p', 's',
-+  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'e', 'x', 'p',
-+  's', 'd', '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'g', 'e', 't', 'e', 'x', 'p', 's', 's', '1', '2', '8', '_', 'r',
-+  'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a',
-+  'n', 't', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e',
-+  't', 'm', 'a', 'n', 't', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p', 'd', '5', '1', '2', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p', 's', '1', '2',
-+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 'p',
-+  's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a',
-+  'n', 't', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'g', 'e',
-+  't', 'm', 'a', 'n', 't', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'g', 'e', 't', 'm', 'a', 'n', 't', 's', 's', '_', 'r',
-+  'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r',
-+  't', 'f', '3', '2', 'x', '4', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'i', 'n', 's', 'e', 'r', 't', 'f', '3', '2', 'x', '4', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'f', '3', '2', 'x', '8', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'f', '6', '4', 'x',
-+  '2', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e',
-+  'r', 't', 'f', '6', '4', 'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'f', '6', '4', 'x', '4', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'i', '3', '2', 'x', '4',
-+  '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r',
-+  't', 'i', '3', '2', 'x', '4', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's',
-+  'e', 'r', 't', 'i', '3', '2', 'x', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i',
-+  'n', 's', 'e', 'r', 't', 'i', '6', '4', 'x', '2', '_', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'i', '6', '4', 'x',
-+  '2', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's', 'e',
-+  'r', 't', 'i', '6', '4', 'x', '4', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a',
-+  'x', 'p', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 'p', 'd', '2',
-+  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 'p', 'd', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 'p', 's', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'm', 'a', 'x', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'm', 'a', 'x', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'm', 'a', 'x', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'm', 'a', 'x', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 'd', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'm', 'i', 'n', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'm', 'i', 'n', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm',
-+  'i', 'n', 'p', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 's',
-+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 's', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 's', 'd', '_', 'r',
-+  'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 's', 's',
-+  '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l',
-+  'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l', 'p',
-+  's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l', 's', 'd',
-+  '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'u', 'l',
-+  's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'a', 'b', 's', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-+  'b', 's', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b',
-+  's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's',
-+  'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd',
-+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'q', '1', '2',
-+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'q', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'q', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'w', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'a', 'b', 's', 'w', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'a', 'b', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd', 'w', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd', 'w', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd', 'w', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'w',
-+  'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's',
-+  's', 'w', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c',
-+  'k', 's', 's', 'w', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'a', 'c', 'k', 'u', 's', 'd', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'a', 'c', 'k', 'u', 's', 'd', 'w', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'd', 'w', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'w', 'b', '1', '2',
-+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'w', 'b',
-+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 'u', 's',
-+  'w', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+  's', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+  's', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+  's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+  's', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+  's', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+  's', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+  'u', 's', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd',
-+  'd', 'u', 's', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-+  'd', 'd', 'u', 's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'a', 'd', 'd', 'u', 's', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'a', 'd', 'd', 'u', 's', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'a', 'd', 'd', 'u', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'a', 'v', 'g', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'a', 'v', 'g', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'a', 'v', 'g', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'a', 'v', 'g', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-+  'v', 'g', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v',
-+  'g', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o',
-+  'a', 'd', 'c', 'a', 's', 't', 'b', '1', '2', '8', '_', 'g', 'p', 'r', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't',
-+  'b', '2', '5', '6', '_', 'g', 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'b', '5', '1', '2', '_', 'g',
-+  'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c',
-+  'a', 's', 't', 'd', '1', '2', '8', '_', 'g', 'p', 'r', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'd', '2', '5',
-+  '6', '_', 'g', 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o',
-+  'a', 'd', 'c', 'a', 's', 't', 'd', '5', '1', '2', '_', 'g', 'p', 'r', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't',
-+  'q', '1', '2', '8', '_', 'g', 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'q', '2', '5', '6', '_', 'g',
-+  'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c',
-+  'a', 's', 't', 'q', '5', '1', '2', '_', 'g', 'p', 'r', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'q', '5', '1',
-+  '2', '_', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o',
-+  'a', 'd', 'c', 'a', 's', 't', 'w', '1', '2', '8', '_', 'g', 'p', 'r', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't',
-+  'w', '2', '5', '6', '_', 'g', 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'w', '5', '1', '2', '_', 'g',
-+  'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r',
-+  'd', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm',
-+  'v', 'a', 'r', 'd', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'e', 'r', 'm', 'v', 'a', 'r', 'd', 'i', '2', '5', '6', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'd', 'i', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'h', 'i', '1',
-+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r',
-+  'h', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm',
-+  'v', 'a', 'r', 'h', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'e', 'r', 'm', 'v', 'a', 'r', 'q', 'i', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'q', 'i', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 'q', 'i', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r',
-+  's', 'f', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'r', 'm',
-+  'v', 'a', 'r', 's', 'f', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'e', 'r', 'm', 'v', 'a', 'r', 's', 'i', '2', '5', '6', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'e', 'r', 'm', 'v', 'a', 'r', 's', 'i', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's', 'w', '1',
-+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b',
-+  's', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd',
-+  'd', 'u', 'b', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'a', 'd', 'd', 'w', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'm', 'a', 'd', 'd', 'w', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'm', 'a', 'd', 'd', 'w', 'd', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '2', '5', '6', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '1', '2', '8', 'm', 'e', 'm', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '2', '5', '6', 'm',
-+  'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'd', 'b', '5',
-+  '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  'd', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  'd', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  'd', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  'd', 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 'd', 'w', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'd', 'w', '5', '1', '2', 'm', 'e', 'm', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '1', '2', '8', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '1', '2', '8', 'm',
-+  'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'b', '2',
-+  '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  'q', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 'q', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 'q', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 'q', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 'q', 'd', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'q', 'd', '2', '5', '6', 'm', 'e', 'm', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'd', '5', '1', '2', 'm',
-+  'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '1',
-+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '2',
-+  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'q', 'w', '1',
-+  '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  'q', 'w', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 'q', 'w', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '2', '5', '6', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '1', '2', '8', 'm', 'e', 'm', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '2', '5', '6', 'm',
-+  'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'w', 'b', '5',
-+  '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  's', 'd', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+  'v', 's', 'd', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+  'o', 'v', 's', 'd', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 's', 'd', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'b', '2', '5', '6', 'm', 'e',
-+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'b', '5',
-+  '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  's', 'd', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+  'v', 's', 'd', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+  'o', 'v', 's', 'd', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 's', 'd', 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'w', '2', '5', '6', 'm', 'e',
-+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'd', 'w', '5',
-+  '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  's', 'q', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+  'v', 's', 'q', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+  'o', 'v', 's', 'q', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 's', 'q', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'b', '2', '5', '6', 'm', 'e',
-+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'b', '5',
-+  '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  's', 'q', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+  'v', 's', 'q', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+  'o', 'v', 's', 'q', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 's', 'q', 'd', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'd', '2', '5', '6', 'm', 'e',
-+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'd', '5',
-+  '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  's', 'q', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+  'v', 's', 'q', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+  'o', 'v', 's', 'q', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 's', 'q', 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'w', '2', '5', '6', 'm', 'e',
-+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'q', 'w', '5',
-+  '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  's', 'w', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+  'v', 's', 'w', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+  'o', 'v', 's', 'w', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 's', 'w', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'w', 'b', '2', '5', '6', 'm', 'e',
-+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 's', 'w', 'b', '5',
-+  '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  'u', 's', 'd', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+  'o', 'v', 'u', 's', 'd', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'm', 'o', 'v', 'u', 's', 'd', 'b', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'b', '1', '2', '8', 'm', 'e',
-+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'b',
-+  '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+  'v', 'u', 's', 'd', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd',
-+  'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+  'o', 'v', 'u', 's', 'd', 'w', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'd', 'w', '5', '1', '2', 'm',
-+  'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q',
-+  'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u',
-+  's', 'q', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+  'v', 'u', 's', 'q', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 'u', 's', 'q', 'b', '1', '2', '8', 'm', 'e', 'm', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'b', '2', '5', '6',
-+  'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's',
-+  'q', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'o', 'v', 'u', 's', 'q', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'd', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'd', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'd', '1', '2',
-+  '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u',
-+  's', 'q', 'd', '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'm', 'o', 'v', 'u', 's', 'q', 'd', '5', '1', '2', 'm', 'e', 'm', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '1', '2',
-+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w',
-+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's',
-+  'q', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  'u', 's', 'q', 'w', '1', '2', '8', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '2', '5', '6', 'm', 'e', 'm',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'q', 'w', '5',
-+  '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v',
-+  'u', 's', 'w', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+  'o', 'v', 'u', 's', 'w', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'm', 'o', 'v', 'u', 's', 'w', 'b', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'w', 'b', '1', '2', '8', 'm', 'e',
-+  'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'u', 's', 'w', 'b',
-+  '2', '5', '6', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'o',
-+  'v', 'u', 's', 'w', 'b', '5', '1', '2', 'm', 'e', 'm', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'u', 'l', 'd', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'u', 'l', 'd', 'q', '2', '5', '6', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'u', 'l', 'd', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'w', '1',
-+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'w', '2',
-+  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'w', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u', 'w',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u',
-+  'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h',
-+  'u', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'u',
-+  'l', 't', 'i', 's', 'h', 'i', 'f', 't', 'q', 'b', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'p', 'm', 'u', 'l', 't', 'i', 's', 'h', 'i', 'f',
-+  't', 'q', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
-+  'u', 'l', 't', 'i', 's', 'h', 'i', 'f', 't', 'q', 'b', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '1', '2', '8',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'd', '1', '2',
-+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'd', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'd', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'q', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'r', 'o', 'l', 'q', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'r', 'o', 'l', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'r', 'o', 'l', 'v', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'r', 'o', 'l', 'v', 'd', '2', '5', '6', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'r', 'o', 'l', 'v', 'd', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'r', 'o', 'l', 'v', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'r', 'o', 'l', 'v', 'q', '2', '5', '6', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'r', 'o', 'l', 'v', 'q', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'r', 'o', 'r', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'r', 'o', 'r', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'r', 'o', 'r', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'r', 'o', 'r', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r',
-+  'o', 'r', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o',
-+  'r', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-+  'v', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-+  'v', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-+  'v', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-+  'v', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-+  'v', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'r', 'o', 'r',
-+  'v', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+  's', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+  's', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+  's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+  's', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+  's', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+  's', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
-+  'u', 's', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u',
-+  'b', 'u', 's', 'b', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+  'u', 'b', 'u', 's', 'b', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  's', 'u', 'b', 'u', 's', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 's', 'u', 'b', 'u', 's', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 's', 'u', 'b', 'u', 's', 'w', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'd', '1', '2', '8', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'd', '2',
-+  '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o',
-+  'g', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r',
-+  'n', 'l', 'o', 'g', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  't', 'e', 'r', 'n', 'l', 'o', 'g', 'q', '2', '5', '6', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'q', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 'p', 'd', '1', '2', '8',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 'p', 'd', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 'p', 'd', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 'p', 's',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 'p',
-+  's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g', 'e',
-+  'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'a', 'n', 'g',
-+  'e', 's', 'd', '1', '2', '8', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'r', 'a', 'n', 'g', 'e', 's', 's', '1', '2', '8', '_', 'r',
-+  'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c',
-+  'e', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd',
-+  'u', 'c', 'e', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+  'e', 'd', 'u', 'c', 'e', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p', 's', '1', '2', '8', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p', 's', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 'p', 's', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 's', 'd',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'r', 'e', 'd', 'u', 'c', 'e', 's', 's', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 'p', 'd',
-+  '_', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c',
-+  'a', 'l', 'e', 'p', 'd', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 'p', 'd', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 'p', 's', '_', '1', '2', '8',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 'p',
-+  's', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd', 's',
-+  'c', 'a', 'l', 'e', 'p', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'n', 'd',
-+  's', 'c', 'a', 'l', 'e', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'r', 'n', 'd', 's', 'c', 'a', 'l', 'e', 's', 's', '_',
-+  'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l',
-+  'e', 'f', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-+  'a', 'l', 'e', 'f', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  's', 'c', 'a', 'l', 'e', 'f', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 'p', 's', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 'p', 's', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 'p', 's', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 'l', 'e', 'f', 's',
-+  'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-+  'a', 'l', 'e', 'f', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 's', 'h', 'u', 'f', '_', 'f', '3', '2', 'x', '4', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 's', 'h', 'u', 'f', '_', 'f', '3', '2', 'x', '4', '_',
-+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_', 'f',
-+  '6', '4', 'x', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_',
-+  'f', '6', '4', 'x', '2', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  's', 'h', 'u', 'f', '_', 'i', '3', '2', 'x', '4', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 's', 'h', 'u', 'f', '_', 'i', '3', '2', 'x', '4', '_', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_', 'i', '6', '4', 'x',
-+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_', 'i', '6', '4',
-+  'x', '2', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+  't', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+  't', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+  't', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+  't', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+  't', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+  't', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r',
-+  't', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  's', 'q', 'r', 't', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 's', 't', 'o', 'r', 'e', 's', 's', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 's', 'u', 'b', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  's', 'u', 'b', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
-+  'u', 'b', 's', 'd', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 's', 'u', 'b', 's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's',
-+  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's',
-+  '2', 'p', 'h', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's',
-+  '2', 'p', 'h', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v',
-+  't', 'p', 's', '2', 'p', 'h', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'e', 'x', 't', 'r', 'a', 'c', 't', 'f', '3', '2', 'x', '4', '_', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'f',
-+  '3', '2', 'x', '4', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'a',
-+  'c', 't', 'f', '3', '2', 'x', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-+  't', 'r', 'a', 'c', 't', 'f', '6', '4', 'x', '2', '_', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'f', '6', '4',
-+  'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't',
-+  'r', 'a', 'c', 't', 'f', '6', '4', 'x', '4', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'e', 'x', 't', 'r', 'a', 'c', 't', 'i', '3', '2', 'x', '4', '_', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'i',
-+  '3', '2', 'x', '4', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'a',
-+  'c', 't', 'i', '3', '2', 'x', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x',
-+  't', 'r', 'a', 'c', 't', 'i', '6', '4', 'x', '2', '_', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'a', 'c', 't', 'i', '6', '4',
-+  'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't',
-+  'r', 'a', 'c', 't', 'i', '6', '4', 'x', '4', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '5', '1', '2',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's', '1',
-+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p',
-+  's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd',
-+  'd', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+  'a', 'd', 'd', 's', 'd', '3', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+  'a', 'd', 'd', 's', 's', '3', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+  'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u',
-+  'b', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+  'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u',
-+  'b', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n',
-+  'm', 'a', 'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 'd', '5', '1', '2',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 's',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd',
-+  'd', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n',
-+  'm', 'a', 'd', 'd', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '1', '2', '8', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd',
-+  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u',
-+  'b', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n',
-+  'm', 's', 'u', 'b', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 's', '5', '1', '2', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'd', '1',
-+  '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2',
-+  'v', 'a', 'r', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+  'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'd', '5', '1', '2', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'h', 'i',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i',
-+  '2', 'v', 'a', 'r', 'h', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'h', 'i', '5', '1', '2',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a',
-+  'r', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+  'r', 'm', 'i', '2', 'v', 'a', 'r', 'p', 'd', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'p', 'd',
-+  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i',
-+  '2', 'v', 'a', 'r', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'p', 's', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a',
-+  'r', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+  'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v',
-+  'a', 'r', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+  'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', 'i', '1', '2', '8', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', '2', 'v', 'a', 'r', 'q', 'i',
-+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i',
-+  '2', 'v', 'a', 'r', 'q', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'd', '1', '2', '8', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r',
-+  'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
-+  't', '2', 'v', 'a', 'r', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'h', 'i', '1', '2', '8',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a',
-+  'r', 'h', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+  'r', 'm', 't', '2', 'v', 'a', 'r', 'h', 'i', '5', '1', '2', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 'd',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't',
-+  '2', 'v', 'a', 'r', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 'd', '5', '1', '2',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a',
-+  'r', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+  'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 's', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 's',
-+  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't',
-+  '2', 'v', 'a', 'r', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q', '2', '5', '6', '_', 'm',
-+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q',
-+  '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't',
-+  '2', 'v', 'a', 'r', 'q', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q', 'i', '2', '5', '6',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a',
-+  'r', 'q', 'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
-+  'a', 'd', 'd', '5', '2', 'h', 'u', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'h', 'u', 'q', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2',
-+  'h', 'u', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
-+  'a', 'd', 'd', '5', '2', 'l', 'u', 'q', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'l', 'u', 'q', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2',
-+  'l', 'u', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+  'a', 'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '3', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's',
-+  'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '5', '1', '2', '_',
-+  'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's', '1',
-+  '2', '8', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd',
-+  'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+  'a', 'd', 'd', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'f', 'm', 'a', 'd', 'd', 's', 'd', '3', '_', 'm', 'a', 's', 'k', '3',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 's', '3', '_', 'm', 'a', 's', 'k',
-+  '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '1', '2',
-+  '8', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's',
-+  'u', 'b', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '5', '1', '2', '_', 'm',
-+  'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p',
-+  's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a',
-+  'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+  '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p',
-+  'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's',
-+  'u', 'b', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'f', 'm', 's', 'u', 'b', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 's', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 's', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p',
-+  's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's',
-+  'u', 'b', 's', 'd', '3', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+  's', 'u', 'b', 's', 's', '3', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+  'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a',
-+  's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 'd',
-+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u',
-+  'b', 'a', 'd', 'd', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'f', 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 's', '1', '2', '8',
-+  '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'a', 'd',
-+  'd', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+  'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 's', '5', '1', '2', '_', 'm', 'a',
-+  's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '1', '2',
-+  '8', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b',
-+  'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n',
-+  'm', 's', 'u', 'b', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 's', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 's', '2',
-+  '5', '6', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u',
-+  'b', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '3', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+  'n', 'm', 's', 'u', 'b', 's', 'd', '3', '_', 'm', 'a', 's', 'k', '3', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'f', 'n', 'm', 's', 'u', 'b', 's', 's', '3', '_', 'm', 'a', 's', 'k',
-+  '3', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 'd', '1', '2', '8',
-+  '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm',
-+  'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x',
-+  'u', 'p', 'i', 'm', 'm', 'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 'p', 's', '1', '2', '8',
-+  '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm',
-+  'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'i', 'x',
-+  'u', 'p', 'i', 'm', 'm', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 's', 'd', '_', 'm', 'a',
-+  's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'f', 'i', 'x', 'u', 'p', 'i', 'm', 'm', 's', 's', '_',
-+  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'd',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n',
-+  'l', 'o', 'g', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  't', 'e', 'r', 'n', 'l', 'o', 'g', 'd', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g', 'q', '1', '2', '8',
-+  '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r', 'n', 'l', 'o', 'g',
-+  'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 'r',
-+  'n', 'l', 'o', 'g', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd',
-+  'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm',
-+  'a', 'd', 'd', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'f', 'm', 'a', 'd', 'd', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'd', '3', '_', 'm', 'a',
-+  's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 's', '3', '_', 'm',
-+  'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p',
-+  'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a',
-+  'd', 'd', 's', 'u', 'b', 'p', 'd', '2', '5', '6', '_', 'm', 'a', 's', 'k',
-+  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd', '5', '1',
-+  '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's',
-+  'u', 'b', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5', '6', '_', 'm',
-+  'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p',
-+  's', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
-+  'm', 't', '2', 'v', 'a', 'r', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'd', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2',
-+  'v', 'a', 'r', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'h', 'i', '1', '2', '8', '_',
-+  'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a',
-+  'r', 'h', 'i', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+  'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'h', 'i', '5', '1', '2', '_', 'm',
-+  'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r',
-+  'p', 'd', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+  'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 'd', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p',
-+  'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r',
-+  'm', 't', '2', 'v', 'a', 'r', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'p', 's',
-+  '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
-+  't', '2', 'v', 'a', 'r', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q', '1', '2',
-+  '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2',
-+  'v', 'a', 'r', 'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q', '5', '1', '2', '_', 'm',
-+  'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r',
-+  'q', 'i', '1', '2', '8', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+  'r', 'm', 't', '2', 'v', 'a', 'r', 'q', 'i', '2', '5', '6', '_', 'm', 'a',
-+  's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 't', '2', 'v', 'a', 'r', 'q',
-+  'i', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a',
-+  'd', 'd', '5', '2', 'h', 'u', 'q', '1', '2', '8', '_', 'm', 'a', 's', 'k',
-+  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'h', 'u', 'q', '2', '5',
-+  '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5',
-+  '2', 'h', 'u', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k', 'z', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'p', 'm', 'a', 'd', 'd', '5', '2', 'l', 'u', 'q', '1', '2', '8', '_', 'm',
-+  'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'd', 'd', '5', '2', 'l', 'u',
-+  'q', '2', '5', '6', '_', 'm', 'a', 's', 'k', 'z', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a',
-+  'd', 'd', '5', '2', 'l', 'u', 'q', '5', '1', '2', '_', 'm', 'a', 's', 'k',
-+  'z', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'm', 'o', 'v', 'n', 't', 'd', 'q', 'a', '5', '1', '2', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  's', 'a', 'd', 'b', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'h', 'u', 'f', 'b',
-+  '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', '5', '1', '2', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+  'l', 'l', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'w', '5', '1', '2',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 's', 'l', 'l', 'd', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l',
-+  'q', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'w', 'i', '5', '1', '2',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 's', 'l', 'l', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l',
-+  'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '8', 'h', 'i', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  's', 'l', 'l', 'v', '1', '6', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'v', '3',
-+  '2', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd', '5', '1', '2', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+  'r', 'a', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'q', '2', '5', '6',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 's', 'r', 'a', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w',
-+  '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd', 'i', '5', '1', '2', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  's', 'r', 'a', 'q', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'q', 'i',
-+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 's', 'r', 'a', 'q', 'i', '5', '1', '2', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  's', 'r', 'a', 'w', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '1',
-+  '6', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', 'q', '1', '2', '8', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  's', 'r', 'a', 'v', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '8',
-+  'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 's', 'r', 'a', 'v', '8', 'h', 'i', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-+  'a', 'v', '1', '6', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'v', '3', '2', 'h',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 's', 'r', 'l', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l',
-+  'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'w', '5', '1', '2', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  's', 'r', 'l', 'd', 'i', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', 'i',
-+  '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 's', 'r', 'l', 'w', 'i', '5', '1', '2', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  's', 'r', 'l', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '8',
-+  'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 's', 'r', 'l', 'v', '8', 'h', 'i', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-+  'l', 'v', '1', '6', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'v', '3', '2', 'h',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 't', 'e', 's', 't', 'm', 'b', '1', '2', '8', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't',
-+  'e', 's', 't', 'm', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm',
-+  'b', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'd', '1', '2', '8',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 't', 'e', 's', 't', 'm', 'd', '2', '5', '6', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e',
-+  's', 't', 'm', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'q',
-+  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'q', '2', '5', '6', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 't', 'e', 's', 't', 'm', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
-+  't', 'm', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'w', '2',
-+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'w', '5', '1', '2', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  't', 'e', 's', 't', 'n', 'm', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
-+  't', 'n', 'm', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm',
-+  'b', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'd', '1', '2',
-+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'd', '2', '5', '6', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  't', 'e', 's', 't', 'n', 'm', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
-+  't', 'n', 'm', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm',
-+  'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'q', '5', '1',
-+  '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'w', '1', '2', '8', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  't', 'e', 's', 't', 'n', 'm', 'w', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
-+  't', 'n', 'm', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1', '4', 'p', 'd',
-+  '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1', '4', 'p',
-+  'd', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1', '4',
-+  'p', 'd', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '1',
-+  '4', 'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p',
-+  '1', '4', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c',
-+  'p', '1', '4', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+  'c', 'p', '1', '4', 's', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p',
-+  '1', '4', 's', 's', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '2', '8',
-+  'p', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '2', '8', 'p', 's',
-+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '2', '8', 's', 'd', '_', 'r',
-+  'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', '2', '8',
-+  's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+  's', 'q', 'r', 't', '1', '4', 'p', 'd', '1', '2', '8', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 'p', 'd', '2', '5', '6', '_',
-+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 'p', 'd', '5',
-+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '1', '4',
-+  'p', 's', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r',
-+  't', '1', '4', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+  's', 'q', 'r', 't', '1', '4', 'p', 's', '5', '1', '2', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 's', 'd', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'r', 's', 'q', 'r', 't', '1', '4', 's', 's', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'r', 's', 'q', 'r', 't', '2', '8', 'p', 'd', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'r', 's', 'q', 'r', 't', '2', '8', 'p', 's', '_', 'm', 'a', 's',
-+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'r', 's', 'q', 'r', 't', '2', '8', 's', 'd', '_', 'r', 'o', 'u',
-+  'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r', 't', '2', '8',
-+  's', 's', '_', 'r', 'o', 'u', 'n', 'd', '_', 'm', 'a', 's', 'k', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
-+  'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '8', 'd', 'f', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-+  'a', 't', 't', 'e', 'r', 's', 'i', 'v', '1', '6', 's', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-+  'a', 't', 't', 'e', 'r', 's', 'i', 'v', '8', 'd', 'i', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a',
-+  't', 't', 'e', 'r', 's', 'i', 'v', '1', '6', 's', 'f', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a',
-+  't', 't', 'e', 'r', 'd', 'i', 'v', '8', 'd', 'f', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't',
-+  't', 'e', 'r', 'd', 'i', 'v', '1', '6', 's', 'i', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't',
-+  't', 'e', 'r', 'd', 'i', 'v', '8', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't',
-+  'e', 'r', 'd', 'i', 'v', '1', '6', 's', 'f', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't',
-+  'e', 'r', 'd', 'i', 'v', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e',
-+  'r', 'd', 'i', 'v', '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r',
-+  'd', 'i', 'v', '4', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd',
-+  'i', 'v', '4', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i',
-+  'v', '4', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v',
-+  '4', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '8',
-+  's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'd', 'i', 'v', '8', 's',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 'p', 'f', 'd', 'p', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  's', 'c', 'a', 't', 't', 'e', 'r', 'p', 'f', 'd', 'p', 's', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c',
-+  'a', 't', 't', 'e', 'r', 'p', 'f', 'q', 'p', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't',
-+  't', 'e', 'r', 'p', 'f', 'q', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e',
-+  'r', 's', 'i', 'v', '2', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r',
-+  's', 'i', 'v', '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's',
-+  'i', 'v', '4', 'd', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i',
-+  'v', '4', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v',
-+  '4', 's', 'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '4',
-+  's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '8', 's',
-+  'f', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 's', 'c', 'a', 't', 't', 'e', 'r', 's', 'i', 'v', '8', 's', 'i',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 's', 'd', '5', '1',
-+  '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 's', 's', '5',
-+  '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'c', 'o', 'm', 'i', 's', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'o', 'm',
-+  'i', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 'd', '2', 's', 'i', '3', '2',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'c', 'v', 't', 's', 'd', '2', 's', 'i', '6', '4', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c',
-+  'v', 't', 's', 'd', '2', 'u', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't',
-+  's', 'd', '2', 'u', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 's',
-+  '2', 's', 'i', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 's', 's', '2', 's', 'i',
-+  '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'c', 'v', 't', 's', 's', '2', 'u', 's', 'i', '3', '2',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'c', 'v', 't', 's', 's', '2', 'u', 's', 'i', '6', '4', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'p', 'e', 'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 'd', '5', '1', '2', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'p', 'e', 'r', 'm', 'i', 'l', 'v', 'a', 'r', 'p', 's', '5', '1', '2',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'b', 'e', 'x', 't', 'r', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'e', 'x', 't',
-+  'r', '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'b', 'z', 'h', 'i', '_', 's', 'i', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b',
-+  'z', 'h', 'i', '_', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'd', 'e', 'p', '_', 's', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'd', 'e', 'p', '_', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'e', 'x', 't', '_', 's', 'i',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'e', 'x', 't', '_', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'l', 'f', 'l', 'u', 's',
-+  'h', 'o', 'p', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'r', 'e', 'a', 'd', 'e', 'f', 'l', 'a', 'g', 's',
-+  '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'r', 'e', 'a', 'd', 'e', 'f', 'l', 'a', 'g', 's',
-+  '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'w', 'r', 'i', 't', 'e', 'e', 'f', 'l', 'a', 'g',
-+  's', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'i', 't', 'e', 'e', 'f', 'l', 'a',
-+  'g', 's', '_', 'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+  'm', 'a', 'd', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 'p', 's',
-+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+  'm', 'a', 'd', 'd', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u',
-+  'b', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 'd',
-+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'f', 'm', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '2', '5', '6',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u',
-+  'b', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 's', '2', '5', '6', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+  'm', 's', 'u', 'b', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 's', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'f', 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+  'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 'd', '2', '5', '6', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+  'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u',
-+  'b', 'a', 'd', 'd', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a',
-+  'd', 'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 'd', '2',
-+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 's', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
-+  'n', 'm', 'a', 'd', 'd', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm',
-+  'a', 'd', 'd', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 's', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm',
-+  's', 'u', 'b', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u',
-+  'b', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 's', '2', '5',
-+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 's', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n',
-+  'm', 's', 'u', 'b', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'f', 'x', 'r', 's', 't', 'o', 'r', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'f', 'x', 'r', 's', 't', 'o', 'r', '6', '4', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'f', 'x', 's', 'a', 'v',
-+  'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'f', 'x', 's', 'a', 'v', 'e', '6', '4', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'm', 'm', 's',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'f', 'e', 'm', 'm', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 's', 'k', 'm', 'o', 'v', 'q',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'm', 'o', 'v', 'n', 't', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'w', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k',
-+  'u', 's', 'w', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'a', 'd', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'a', 'd', 'd', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 's', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a',
-+  'd', 'd', 'u', 's', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'u', 's', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'a', 'l', 'i', 'g', 'n', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'n', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'n',
-+  'd', 'n', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'a', 'v', 'g', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v', 'g', 'w', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'c', 'm', 'p', 'e', 'q', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 'q', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'c', 'm', 'p', 'e', 'q', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'g', 't',
-+  'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'c', 'm', 'p', 'g', 't', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'g',
-+  't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'e', 'c', '_', 'e', 'x', 't', '_', 'v', '4', 'h', 'i',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'e', 'c', '_', 's', 'e', 't', '_', 'v', '4', 'h', 'i', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'a', 'd', 'd', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'x', 's', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'a', 'x', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'i', 'n', 's', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+  'i', 'n', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'o', 'v', 'm', 's', 'k', 'b', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'u', 'l', 'h', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'm', 'u', 'l', 'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 's', 'a', 'd', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 's', 'l', 'l', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+  'l', 'l', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'q', 'i', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l',
-+  'l', 'w', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 's', 'r', 'a', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 's', 'r', 'l', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-+  'l', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 's', 'r', 'l', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q',
-+  'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 's', 'r', 'l', 'w', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'b', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 's', 'u', 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'q', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u',
-+  'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 's', 'u', 'b', 's', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 's', 'u', 'b', 'u', 's', 'b', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 'u',
-+  's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'h', 'b', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u',
-+  'n', 'p', 'c', 'k', 'h', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'h',
-+  'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'l', 'b', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u',
-+  'n', 'p', 'c', 'k', 'l', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'u', 'n', 'p', 'c', 'k', 'l',
-+  'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'x', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'n', 'i', 't', 'o', 'r',
-+  'x', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'm', 'w', 'a', 'i', 't', 'x', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'l', 'm', 'u', 'l',
-+  'q', 'd', 'q', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 'f', 's', 'b', 'a', 's', 'e',
-+  '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'r', 'd', 'f', 's', 'b', 'a', 's', 'e', '6', '4', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+  'd', 'g', 's', 'b', 'a', 's', 'e', '3', '2', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 'g', 's', 'b',
-+  'a', 's', 'e', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'r', 'd', 'p', 'k', 'r', 'u', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd',
-+  'p', 'm', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'r', 'd', 't', 's', 'c', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'd', 't', 's', 'c',
-+  'p', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 's', 'h', 'a', '1', 'm', 's', 'g', '1', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'a', '1',
-+  'm', 's', 'g', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 's', 'h', 'a', '1', 'n', 'e', 'x', 't', 'e', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  's', 'h', 'a', '1', 'r', 'n', 'd', 's', '4', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'a', '2', '5',
-+  '6', 'm', 's', 'g', '1', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 's', 'h', 'a', '2', '5', '6', 'm', 's', 'g',
-+  '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 's', 'h', 'a', '2', '5', '6', 'r', 'n', 'd', 's', '2', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'm', 'p', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 'e', 'q', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm',
-+  'i', 'g', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'c', 'o', 'm', 'i', 'g', 't', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i',
-+  'l', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'c', 'o', 'm', 'i', 'l', 't', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 'n',
-+  'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'p', 'i', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't',
-+  'p', 'i', '2', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 'i', '2', 'p', 's', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'c', 'v', 't', 'p', 's', '2', 'p', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 's', '2',
-+  's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'c', 'v', 't', 's', 's', '2', 's', 'i', '6', '4', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'v', 't', 't', 'p', 'd', '2', 'p', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's',
-+  '2', 'p', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'c', 'v', 't', 't', 's', 's', '2', 's', 'i', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'v', 't', 't', 's', 's', '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a', 'x', 'p',
-+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'm', 'a', 'x', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 'p', 's', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm',
-+  'i', 'n', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'm', 'o', 'v', 'm', 's', 'k', 'p', 's', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  's', 'h', 'u', 'f', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p', 'p', 's', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'c', 'p',
-+  's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'r', 's', 'q', 'r', 't', 'p', 's', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 's', 'q', 'r',
-+  't', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 's', 'f', 'e', 'n', 'c', 'e', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't',
-+  'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 's', 'q', 'r', 't', 's', 's', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i',
-+  'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 'g', 'e', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm',
-+  'i', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 'l', 'e', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o',
-+  'm', 'i', 'l', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 'n', 'e', 'q', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'l', 'f', 'l', 'u', 's', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 's', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-+  'm', 'i', 's', 'd', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 's', 'd', 'g', 'e',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'o', 'm', 'i', 's', 'd', 'g', 't', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o', 'm', 'i', 's',
-+  'd', 'l', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'c', 'o', 'm', 'i', 's', 'd', 'l', 't', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'o',
-+  'm', 'i', 's', 'd', 'n', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'd', 'q', '2', 'p',
-+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'c', 'v', 't', 'p', 'd', '2', 'd', 'q', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p',
-+  'd', '2', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'p', 's', '2', 'd', 'q', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c',
-+  'v', 't', 's', 'd', '2', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 's', 'd', '2', 's',
-+  'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'c', 'v', 't', 's', 'd', '2', 's', 's', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+  't', 't', 'p', 'd', '2', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 't', 'p', 's', '2',
-+  'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'c', 'v', 't', 't', 's', 'd', '2', 's', 'i', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
-+  't', 't', 's', 'd', '2', 's', 'i', '6', '4', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'f', 'e', 'n', 'c',
-+  'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'm', 'a', 's', 'k', 'm', 'o', 'v', 'd', 'q', 'u', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'a',
-+  'x', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'm', 'a', 'x', 's', 'd', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'f', 'e', 'n', 'c',
-+  'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'm', 'i', 'n', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'i', 'n', 's', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm',
-+  'o', 'v', 'm', 's', 'k', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'd',
-+  'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'a', 'c', 'k', 's', 's', 'w', 'b', '1', '2',
-+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'a', 'c', 'k', 'u', 's', 'w', 'b', '1', '2', '8', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'a', 'd', 'd', 's', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'd', 'd', 's', 'w',
-+  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'a', 'd', 'd', 'u', 's', 'b', '1', '2', '8', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'a', 'd', 'd', 'u', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'u', 's',
-+  'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'a', 'v', 'g', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v', 'g',
-+  'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'w', 'd', '1', '2', '8',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'm', 'o', 'v', 'm', 's', 'k', 'b', '1', '2', '8', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
-+  'u', 'l', 'h', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'u', 'w',
-+  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'u', 'd', 'q', '1', '2', '8', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 's', 'a', 'd', 'b', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd',
-+  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 's', 'l', 'l', 'q', '1', '2', '8', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+  'l', 'l', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l', 'l', 'd', 'i', '1', '2',
-+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 's', 'l', 'l', 'q', 'i', '1', '2', '8', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'l',
-+  'l', 'w', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd', '1', '2', '8',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 's', 'r', 'a', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'd',
-+  'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 's', 'r', 'a', 'w', 'i', '1', '2', '8', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 's', 'r', 'l', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', '1',
-+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 's', 'r', 'l', 'w', '1', '2', '8', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r',
-+  'l', 'd', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'r', 'l', 'q', 'i', '1', '2',
-+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 's', 'r', 'l', 'w', 'i', '1', '2', '8', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u',
-+  'b', 's', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b', 's', 'w', '1', '2',
-+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 's', 'u', 'b', 'u', 's', 'b', '1', '2', '8', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+  'u', 'b', 'u', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'q', 'r', 't', 'p', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 's', 'q', 'r', 't', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's', 'd',
-+  'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's', 'd', 'g', 'e', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c',
-+  'o', 'm', 'i', 's', 'd', 'g', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's', 'd',
-+  'l', 'e', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'u', 'c', 'o', 'm', 'i', 's', 'd', 'l', 't', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'u', 'c',
-+  'o', 'm', 'i', 's', 'd', 'n', 'e', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'a', 'd', 'd', 's', 'u', 'b',
-+  'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'a', 'd', 'd', 's', 'u', 'b', 'p', 's', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 'a', 'd',
-+  'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'h', 'a', 'd', 'd', 'p', 's', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'h', 's', 'u', 'b',
-+  'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'h', 's', 'u', 'b', 'p', 's', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'l', 'd', 'd', 'q', 'u',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'm', 'o', 'n', 'i', 't', 'o', 'r', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'w', 'a', 'i', 't', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'b', 'l', 'e', 'n', 'd', 'v', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'l', 'e', 'n', 'd', 'v',
-+  'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'd', 'p', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'd', 'p', 'p', 's', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n',
-+  's', 'e', 'r', 't', 'p', 's', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'm', 'o', 'v', 'n', 't',
-+  'd', 'q', 'a', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'm', 'p', 's', 'a', 'd', 'b', 'w', '1', '2', '8', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'a', 'c', 'k', 'u', 's', 'd', 'w', '1', '2', '8', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'l',
-+  'e', 'n', 'd', 'v', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'm', 'i', 'n', 'p',
-+  'o', 's', 'u', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'd', 'q', '1',
-+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 't', 'e', 's', 't', 'c', '1', '2', '8', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't',
-+  'e', 's', 't', 'n', 'z', 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't',
-+  'z', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'r', 'o', 'u', 'n', 'd', 'p', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r', 'o',
-+  'u', 'n', 'd', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'r', 'o', 'u', 'n', 'd', 's', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'r',
-+  'o', 'u', 'n', 'd', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'r', 'c', '3', '2', 'h', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'c', 'r', 'c', '3', '2', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'r', 'c', '3', '2', 'q', 'i',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'c', 'r', 'c', '3', '2', 'd', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's',
-+  't', 'r', 'i', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r',
-+  'i', 'a', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i',
-+  'c', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 'o',
-+  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 's', '1',
-+  '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'i', 'z', '1', '2',
-+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'c', 'm', 'p', 'e', 's', 't', 'r', 'm', '1', '2', '8', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'c', 'm', 'p', 'i', 's', 't', 'r', 'i', '1', '2', '8', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c',
-+  'm', 'p', 'i', 's', 't', 'r', 'i', 'a', '1', '2', '8', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm',
-+  'p', 'i', 's', 't', 'r', 'i', 'c', '1', '2', '8', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p',
-+  'i', 's', 't', 'r', 'i', 'o', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i',
-+  's', 't', 'r', 'i', 's', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's',
-+  't', 'r', 'i', 'z', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'c', 'm', 'p', 'i', 's', 't',
-+  'r', 'm', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't', 'r', 'q', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'e', 'x', 't',
-+  'r', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'i', 'n', 's', 'e', 'r', 't', 'q', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'i', 'n', 's',
-+  'e', 'r', 't', 'q', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'b', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b',
-+  's', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b',
-+  's', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b',
-+  's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h',
-+  'a', 'd', 'd', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 's', 'w',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'h', 'a', 'd', 'd', 's', 'w', '1', '2', '8', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 'a',
-+  'd', 'd', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 'h', 'a', 'd', 'd', 'w', '1', '2', '8', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
-+  'h', 's', 'u', 'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 'd', '1', '2', '8',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'p', 'h', 's', 'u', 'b', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 's',
-+  'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'p', 'h', 's', 'u', 'b', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'h', 's',
-+  'u', 'b', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 'm', 'a', 'd', 'd', 'u', 'b', 's', 'w', '1', '2', '8', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r',
-+  's', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'p', 's', 'h', 'u', 'f', 'b', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's',
-+  'h', 'u', 'f', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'b', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'p', 's', 'i', 'g', 'n', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'p', 's', 'i', 'g', 'n', 'd', '1', '2', '8', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'i',
-+  'g', 'n', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'p', 's', 'i', 'g', 'n', 'w', '1', '2', '8', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's',
-+  'u', 'b', 'b', 'o', 'r', 'r', 'o', 'w', '_', 'u', '3', '2', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'u',
-+  'b', 'b', 'o', 'r', 'r', 'o', 'w', '_', 'u', '6', '4', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'e', 'x',
-+  't', 'r', 'i', '_', 'u', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'e', 'x', 't', 'r', 'i', '_',
-+  'u', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 'h', '2', 'p', 's', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'c', 'v', 't', 'p', 'h', '2', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v',
-+  't', 'p', 's', '2', 'p', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'c', 'v', 't', 'p', 's', '2', 'p',
-+  'h', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'w', 'r', 'f', 's', 'b', 'a', 's', 'e', '3', '2',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'w', 'r', 'f', 's', 'b', 'a', 's', 'e', '6', '4', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'g',
-+  's', 'b', 'a', 's', 'e', '3', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'w', 'r', 'g', 's', 'b', 'a', 's',
-+  'e', '6', '4', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'w', 'r', 'p', 'k', 'r', 'u', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'x', 'a', 'b', 'o',
-+  'r', 't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'x', 'b', 'e', 'g', 'i', 'n', '\000', '_', '_', 'b', 'u', 'i',
-+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'x', 'e', 'n', 'd', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'f', 'r', 'c', 'z', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'r', 'c', 'z', 'p', 'd',
-+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'f', 'r', 'c', 'z', 'p', 's', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'r',
-+  'c', 'z', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'r', 'c', 'z', 's', 'd',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'f', 'r', 'c', 'z', 's', 's', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'm', 'o', 'v',
-+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
-+  '_', 'v', 'p', 'c', 'm', 'o', 'v', '_', '2', '5', '6', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c',
-+  'o', 'm', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o',
-+  'm', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'u', 'b', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o',
-+  'm', 'u', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'u', 'q', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'c',
-+  'o', 'm', 'u', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'p', 'c', 'o', 'm', 'w', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
-+  'r', 'm', 'i', 'l', '2', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l',
-+  '2', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', '2',
-+  'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'p', 'e', 'r', 'm', 'i', 'l', '2', 'p', 's', '2', '5',
-+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'b', 'd', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a',
-+  'd', 'd', 'b', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'b', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'p', 'h', 'a', 'd', 'd', 'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u',
-+  'b', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u', 'b', 'q', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+  'h', 'a', 'd', 'd', 'u', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u',
-+  'd', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
-+  '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'u', 'w', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+  'h', 'a', 'd', 'd', 'u', 'w', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'w',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'p', 'h', 'a', 'd', 'd', 'w', 'q', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'h', 's',
-+  'u', 'b', 'b', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'p', 'h', 's', 'u', 'b', 'd', 'q', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'p', 'h', 's', 'u', 'b', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 'd',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 'd', 'q', 'h', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm',
-+  'a', 'c', 's', 'd', 'q', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 's', 'd',
-+  'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 's', 'd', 'q', 'h', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+  'm', 'a', 'c', 's', 's', 'd', 'q', 'l', '\000', '_', '_', 'b', 'u', 'i', 'l',
-+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's',
-+  's', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 's', 'w', 'w', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'p', 'm', 'a', 'c', 's', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'm', 'a', 'c', 's', 'w',
-+  'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
-+  '2', '_', 'v', 'p', 'm', 'a', 'd', 'c', 's', 's', 'w', 'd', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+  'm', 'a', 'd', 'c', 's', 'w', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
-+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'p', 'e', 'r', 'm', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'p', 'r', 'o', 't', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't', 'b', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'p', 'r', 'o', 't', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't', 'd', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'p', 'r', 'o', 't', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't', 'q', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'p', 'r', 'o', 't', 'w', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'r', 'o', 't', 'w', 'i', '\000',
-+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
-+  'v', 'p', 's', 'h', 'a', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
-+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'a', 'd', '\000', '_',
-+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
-+  'p', 's', 'h', 'a', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'a', 'w', '\000', '_', '_',
-+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p',
-+  's', 'h', 'l', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'i', 'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'd', '\000', '_', '_', 'b',
-+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 's',
-+  'h', 'l', 'q', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
-+  'a', '3', '2', '_', 'v', 'p', 's', 'h', 'l', 'w', '\000', '_', '_', 'b', 'u',
-+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'x', 't', 'e', 's',
-+  't', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'i', 't',
-+  'r', 'e', 'v', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'g',
-+  'e', 't', 'i', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
-+  'g', 'e', 't', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
-+  '_', 's', 'e', 't', 'p', 's', '\000',
-+  };
-+
-+  struct BuiltinEntry {
-+    Intrinsic::ID IntrinID;
-+    unsigned StrTabOffset;
-+    const char *getName() const {
-+      return &BuiltinNames[StrTabOffset];
-+    }
-+    bool operator<(StringRef RHS) const {
-+      return strncmp(getName(), RHS.data(), RHS.size()) < 0;
-+    }
-+  };
-+  StringRef TargetPrefix(TargetPrefixStr);
-+
-+  /* Target Independent Builtins */ {
-+    static const BuiltinEntry Names[] = {
-+      {Intrinsic::adjust_trampoline, 0}, // __builtin_adjust_trampoline
-+      {Intrinsic::debugtrap, 28}, // __builtin_debugtrap
-+      {Intrinsic::flt_rounds, 70}, // __builtin_flt_rounds
-+      {Intrinsic::init_trampoline, 91}, // __builtin_init_trampoline
-+      {Intrinsic::objectsize, 117}, // __builtin_object_size
-+      {Intrinsic::stackrestore, 139}, // __builtin_stack_restore
-+      {Intrinsic::stacksave, 163}, // __builtin_stack_save
-+      {Intrinsic::thread_pointer, 184}, // __builtin_thread_pointer
-+      {Intrinsic::trap, 209}, // __builtin_trap
-+      {Intrinsic::eh_unwind_init, 48}, // __builtin_unwind_init
-+    };
-+    auto I = std::lower_bound(std::begin(Names),
-+                              std::end(Names),
-+                              BuiltinNameStr);
-+    if (I != std::end(Names) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  if (TargetPrefix == "aarch64") {
-+    static const BuiltinEntry aarch64Names[] = {
-+      {Intrinsic::aarch64_dmb, 224}, // __builtin_arm_dmb
-+      {Intrinsic::aarch64_dsb, 242}, // __builtin_arm_dsb
-+      {Intrinsic::aarch64_isb, 260}, // __builtin_arm_isb
-+    };
-+    auto I = std::lower_bound(std::begin(aarch64Names),
-+                              std::end(aarch64Names),
-+                              BuiltinNameStr);
-+    if (I != std::end(aarch64Names) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  if (TargetPrefix == "amdgcn") {
-+    static const BuiltinEntry amdgcnNames[] = {
-+      {Intrinsic::amdgcn_buffer_wbinvl1, 278}, // __builtin_amdgcn_buffer_wbinvl1
-+      {Intrinsic::amdgcn_buffer_wbinvl1_sc, 310}, // __builtin_amdgcn_buffer_wbinvl1_sc
-+      {Intrinsic::amdgcn_buffer_wbinvl1_vol, 345}, // __builtin_amdgcn_buffer_wbinvl1_vol
-+      {Intrinsic::amdgcn_cubeid, 381}, // __builtin_amdgcn_cubeid
-+      {Intrinsic::amdgcn_cubema, 405}, // __builtin_amdgcn_cubema
-+      {Intrinsic::amdgcn_cubesc, 429}, // __builtin_amdgcn_cubesc
-+      {Intrinsic::amdgcn_cubetc, 453}, // __builtin_amdgcn_cubetc
-+      {Intrinsic::amdgcn_cvt_pk_u8_f32, 477}, // __builtin_amdgcn_cvt_pk_u8_f32
-+      {Intrinsic::amdgcn_dispatch_id, 508}, // __builtin_amdgcn_dispatch_id
-+      {Intrinsic::amdgcn_dispatch_ptr, 537}, // __builtin_amdgcn_dispatch_ptr
-+      {Intrinsic::amdgcn_ds_swizzle, 567}, // __builtin_amdgcn_ds_swizzle
-+      {Intrinsic::amdgcn_fmul_legacy, 595}, // __builtin_amdgcn_fmul_legacy
-+      {Intrinsic::amdgcn_groupstaticsize, 624}, // __builtin_amdgcn_groupstaticsize
-+      {Intrinsic::amdgcn_implicitarg_ptr, 657}, // __builtin_amdgcn_implicitarg_ptr
-+      {Intrinsic::amdgcn_interp_mov, 690}, // __builtin_amdgcn_interp_mov
-+      {Intrinsic::amdgcn_interp_p1, 718}, // __builtin_amdgcn_interp_p1
-+      {Intrinsic::amdgcn_interp_p2, 745}, // __builtin_amdgcn_interp_p2
-+      {Intrinsic::amdgcn_kernarg_segment_ptr, 772}, // __builtin_amdgcn_kernarg_segment_ptr
-+      {Intrinsic::amdgcn_lerp, 809}, // __builtin_amdgcn_lerp
-+      {Intrinsic::amdgcn_mbcnt_hi, 831}, // __builtin_amdgcn_mbcnt_hi
-+      {Intrinsic::amdgcn_mbcnt_lo, 857}, // __builtin_amdgcn_mbcnt_lo
-+      {Intrinsic::amdgcn_mqsad_pk_u16_u8, 883}, // __builtin_amdgcn_mqsad_pk_u16_u8
-+      {Intrinsic::amdgcn_mqsad_u32_u8, 916}, // __builtin_amdgcn_mqsad_u32_u8
-+      {Intrinsic::amdgcn_msad_u8, 946}, // __builtin_amdgcn_msad_u8
-+      {Intrinsic::amdgcn_qsad_pk_u16_u8, 971}, // __builtin_amdgcn_qsad_pk_u16_u8
-+      {Intrinsic::amdgcn_queue_ptr, 1003}, // __builtin_amdgcn_queue_ptr
-+      {Intrinsic::amdgcn_rcp_legacy, 1030}, // __builtin_amdgcn_rcp_legacy
-+      {Intrinsic::amdgcn_readfirstlane, 1058}, // __builtin_amdgcn_readfirstlane
-+      {Intrinsic::amdgcn_readlane, 1089}, // __builtin_amdgcn_readlane
-+      {Intrinsic::amdgcn_rsq_legacy, 1115}, // __builtin_amdgcn_rsq_legacy
-+      {Intrinsic::amdgcn_s_barrier, 1143}, // __builtin_amdgcn_s_barrier
-+      {Intrinsic::amdgcn_s_dcache_inv, 1170}, // __builtin_amdgcn_s_dcache_inv
-+      {Intrinsic::amdgcn_s_dcache_inv_vol, 1200}, // __builtin_amdgcn_s_dcache_inv_vol
-+      {Intrinsic::amdgcn_s_dcache_wb, 1234}, // __builtin_amdgcn_s_dcache_wb
-+      {Intrinsic::amdgcn_s_dcache_wb_vol, 1263}, // __builtin_amdgcn_s_dcache_wb_vol
-+      {Intrinsic::amdgcn_s_decperflevel, 1296}, // __builtin_amdgcn_s_decperflevel
-+      {Intrinsic::amdgcn_s_getreg, 1328}, // __builtin_amdgcn_s_getreg
-+      {Intrinsic::amdgcn_s_incperflevel, 1354}, // __builtin_amdgcn_s_incperflevel
-+      {Intrinsic::amdgcn_s_memrealtime, 1386}, // __builtin_amdgcn_s_memrealtime
-+      {Intrinsic::amdgcn_s_memtime, 1417}, // __builtin_amdgcn_s_memtime
-+      {Intrinsic::amdgcn_s_sleep, 1444}, // __builtin_amdgcn_s_sleep
-+      {Intrinsic::amdgcn_sad_hi_u8, 1469}, // __builtin_amdgcn_sad_hi_u8
-+      {Intrinsic::amdgcn_sad_u16, 1496}, // __builtin_amdgcn_sad_u16
-+      {Intrinsic::amdgcn_sad_u8, 1521}, // __builtin_amdgcn_sad_u8
-+      {Intrinsic::amdgcn_wave_barrier, 1545}, // __builtin_amdgcn_wave_barrier
-+      {Intrinsic::amdgcn_workgroup_id_x, 1575}, // __builtin_amdgcn_workgroup_id_x
-+      {Intrinsic::amdgcn_workgroup_id_y, 1607}, // __builtin_amdgcn_workgroup_id_y
-+      {Intrinsic::amdgcn_workgroup_id_z, 1639}, // __builtin_amdgcn_workgroup_id_z
-+    };
-+    auto I = std::lower_bound(std::begin(amdgcnNames),
-+                              std::end(amdgcnNames),
-+                              BuiltinNameStr);
-+    if (I != std::end(amdgcnNames) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  if (TargetPrefix == "arm") {
-+    static const BuiltinEntry armNames[] = {
-+      {Intrinsic::arm_cdp, 1671}, // __builtin_arm_cdp
-+      {Intrinsic::arm_cdp2, 1689}, // __builtin_arm_cdp2
-+      {Intrinsic::arm_dmb, 224}, // __builtin_arm_dmb
-+      {Intrinsic::arm_dsb, 242}, // __builtin_arm_dsb
-+      {Intrinsic::arm_get_fpscr, 1708}, // __builtin_arm_get_fpscr
-+      {Intrinsic::arm_isb, 260}, // __builtin_arm_isb
-+      {Intrinsic::arm_ldc, 1732}, // __builtin_arm_ldc
-+      {Intrinsic::arm_ldc2, 1750}, // __builtin_arm_ldc2
-+      {Intrinsic::arm_ldc2l, 1769}, // __builtin_arm_ldc2l
-+      {Intrinsic::arm_ldcl, 1789}, // __builtin_arm_ldcl
-+      {Intrinsic::arm_mcr, 1808}, // __builtin_arm_mcr
-+      {Intrinsic::arm_mcr2, 1826}, // __builtin_arm_mcr2
-+      {Intrinsic::arm_mrc, 1845}, // __builtin_arm_mrc
-+      {Intrinsic::arm_mrc2, 1863}, // __builtin_arm_mrc2
-+      {Intrinsic::arm_qadd, 1882}, // __builtin_arm_qadd
-+      {Intrinsic::arm_qsub, 1901}, // __builtin_arm_qsub
-+      {Intrinsic::arm_set_fpscr, 1920}, // __builtin_arm_set_fpscr
-+      {Intrinsic::arm_ssat, 1944}, // __builtin_arm_ssat
-+      {Intrinsic::arm_stc, 1963}, // __builtin_arm_stc
-+      {Intrinsic::arm_stc2, 1981}, // __builtin_arm_stc2
-+      {Intrinsic::arm_stc2l, 2000}, // __builtin_arm_stc2l
-+      {Intrinsic::arm_stcl, 2020}, // __builtin_arm_stcl
-+      {Intrinsic::arm_usat, 2039}, // __builtin_arm_usat
-+    };
-+    auto I = std::lower_bound(std::begin(armNames),
-+                              std::end(armNames),
-+                              BuiltinNameStr);
-+    if (I != std::end(armNames) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  if (TargetPrefix == "bpf") {
-+    static const BuiltinEntry bpfNames[] = {
-+      {Intrinsic::bpf_load_byte, 2058}, // __builtin_bpf_load_byte
-+      {Intrinsic::bpf_load_half, 2082}, // __builtin_bpf_load_half
-+      {Intrinsic::bpf_load_word, 2106}, // __builtin_bpf_load_word
-+      {Intrinsic::bpf_pseudo, 2130}, // __builtin_bpf_pseudo
-+    };
-+    auto I = std::lower_bound(std::begin(bpfNames),
-+                              std::end(bpfNames),
-+                              BuiltinNameStr);
-+    if (I != std::end(bpfNames) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  if (TargetPrefix == "hexagon") {
-+    static const BuiltinEntry hexagonNames[] = {
-+      {Intrinsic::hexagon_A2_abs, 2151}, // __builtin_HEXAGON_A2_abs
-+      {Intrinsic::hexagon_A2_absp, 2176}, // __builtin_HEXAGON_A2_absp
-+      {Intrinsic::hexagon_A2_abssat, 2202}, // __builtin_HEXAGON_A2_abssat
-+      {Intrinsic::hexagon_A2_add, 2230}, // __builtin_HEXAGON_A2_add
-+      {Intrinsic::hexagon_A2_addh_h16_hh, 2255}, // __builtin_HEXAGON_A2_addh_h16_hh
-+      {Intrinsic::hexagon_A2_addh_h16_hl, 2288}, // __builtin_HEXAGON_A2_addh_h16_hl
-+      {Intrinsic::hexagon_A2_addh_h16_lh, 2321}, // __builtin_HEXAGON_A2_addh_h16_lh
-+      {Intrinsic::hexagon_A2_addh_h16_ll, 2354}, // __builtin_HEXAGON_A2_addh_h16_ll
-+      {Intrinsic::hexagon_A2_addh_h16_sat_hh, 2387}, // __builtin_HEXAGON_A2_addh_h16_sat_hh
-+      {Intrinsic::hexagon_A2_addh_h16_sat_hl, 2424}, // __builtin_HEXAGON_A2_addh_h16_sat_hl
-+      {Intrinsic::hexagon_A2_addh_h16_sat_lh, 2461}, // __builtin_HEXAGON_A2_addh_h16_sat_lh
-+      {Intrinsic::hexagon_A2_addh_h16_sat_ll, 2498}, // __builtin_HEXAGON_A2_addh_h16_sat_ll
-+      {Intrinsic::hexagon_A2_addh_l16_hl, 2535}, // __builtin_HEXAGON_A2_addh_l16_hl
-+      {Intrinsic::hexagon_A2_addh_l16_ll, 2568}, // __builtin_HEXAGON_A2_addh_l16_ll
-+      {Intrinsic::hexagon_A2_addh_l16_sat_hl, 2601}, // __builtin_HEXAGON_A2_addh_l16_sat_hl
-+      {Intrinsic::hexagon_A2_addh_l16_sat_ll, 2638}, // __builtin_HEXAGON_A2_addh_l16_sat_ll
-+      {Intrinsic::hexagon_A2_addi, 2675}, // __builtin_HEXAGON_A2_addi
-+      {Intrinsic::hexagon_A2_addp, 2701}, // __builtin_HEXAGON_A2_addp
-+      {Intrinsic::hexagon_A2_addpsat, 2727}, // __builtin_HEXAGON_A2_addpsat
-+      {Intrinsic::hexagon_A2_addsat, 2756}, // __builtin_HEXAGON_A2_addsat
-+      {Intrinsic::hexagon_A2_addsp, 2784}, // __builtin_HEXAGON_A2_addsp
-+      {Intrinsic::hexagon_A2_and, 2811}, // __builtin_HEXAGON_A2_and
-+      {Intrinsic::hexagon_A2_andir, 2836}, // __builtin_HEXAGON_A2_andir
-+      {Intrinsic::hexagon_A2_andp, 2863}, // __builtin_HEXAGON_A2_andp
-+      {Intrinsic::hexagon_A2_aslh, 2889}, // __builtin_HEXAGON_A2_aslh
-+      {Intrinsic::hexagon_A2_asrh, 2915}, // __builtin_HEXAGON_A2_asrh
-+      {Intrinsic::hexagon_A2_combine_hh, 2941}, // __builtin_HEXAGON_A2_combine_hh
-+      {Intrinsic::hexagon_A2_combine_hl, 2973}, // __builtin_HEXAGON_A2_combine_hl
-+      {Intrinsic::hexagon_A2_combine_lh, 3005}, // __builtin_HEXAGON_A2_combine_lh
-+      {Intrinsic::hexagon_A2_combine_ll, 3037}, // __builtin_HEXAGON_A2_combine_ll
-+      {Intrinsic::hexagon_A2_combineii, 3069}, // __builtin_HEXAGON_A2_combineii
-+      {Intrinsic::hexagon_A2_combinew, 3100}, // __builtin_HEXAGON_A2_combinew
-+      {Intrinsic::hexagon_A2_max, 3130}, // __builtin_HEXAGON_A2_max
-+      {Intrinsic::hexagon_A2_maxp, 3155}, // __builtin_HEXAGON_A2_maxp
-+      {Intrinsic::hexagon_A2_maxu, 3181}, // __builtin_HEXAGON_A2_maxu
-+      {Intrinsic::hexagon_A2_maxup, 3207}, // __builtin_HEXAGON_A2_maxup
-+      {Intrinsic::hexagon_A2_min, 3234}, // __builtin_HEXAGON_A2_min
-+      {Intrinsic::hexagon_A2_minp, 3259}, // __builtin_HEXAGON_A2_minp
-+      {Intrinsic::hexagon_A2_minu, 3285}, // __builtin_HEXAGON_A2_minu
-+      {Intrinsic::hexagon_A2_minup, 3311}, // __builtin_HEXAGON_A2_minup
-+      {Intrinsic::hexagon_A2_neg, 3338}, // __builtin_HEXAGON_A2_neg
-+      {Intrinsic::hexagon_A2_negp, 3363}, // __builtin_HEXAGON_A2_negp
-+      {Intrinsic::hexagon_A2_negsat, 3389}, // __builtin_HEXAGON_A2_negsat
-+      {Intrinsic::hexagon_A2_not, 3417}, // __builtin_HEXAGON_A2_not
-+      {Intrinsic::hexagon_A2_notp, 3442}, // __builtin_HEXAGON_A2_notp
-+      {Intrinsic::hexagon_A2_or, 3468}, // __builtin_HEXAGON_A2_or
-+      {Intrinsic::hexagon_A2_orir, 3492}, // __builtin_HEXAGON_A2_orir
-+      {Intrinsic::hexagon_A2_orp, 3518}, // __builtin_HEXAGON_A2_orp
-+      {Intrinsic::hexagon_A2_roundsat, 3543}, // __builtin_HEXAGON_A2_roundsat
-+      {Intrinsic::hexagon_A2_sat, 3573}, // __builtin_HEXAGON_A2_sat
-+      {Intrinsic::hexagon_A2_satb, 3598}, // __builtin_HEXAGON_A2_satb
-+      {Intrinsic::hexagon_A2_sath, 3624}, // __builtin_HEXAGON_A2_sath
-+      {Intrinsic::hexagon_A2_satub, 3650}, // __builtin_HEXAGON_A2_satub
-+      {Intrinsic::hexagon_A2_satuh, 3677}, // __builtin_HEXAGON_A2_satuh
-+      {Intrinsic::hexagon_A2_sub, 3704}, // __builtin_HEXAGON_A2_sub
-+      {Intrinsic::hexagon_A2_subh_h16_hh, 3729}, // __builtin_HEXAGON_A2_subh_h16_hh
-+      {Intrinsic::hexagon_A2_subh_h16_hl, 3762}, // __builtin_HEXAGON_A2_subh_h16_hl
-+      {Intrinsic::hexagon_A2_subh_h16_lh, 3795}, // __builtin_HEXAGON_A2_subh_h16_lh
-+      {Intrinsic::hexagon_A2_subh_h16_ll, 3828}, // __builtin_HEXAGON_A2_subh_h16_ll
-+      {Intrinsic::hexagon_A2_subh_h16_sat_hh, 3861}, // __builtin_HEXAGON_A2_subh_h16_sat_hh
-+      {Intrinsic::hexagon_A2_subh_h16_sat_hl, 3898}, // __builtin_HEXAGON_A2_subh_h16_sat_hl
-+      {Intrinsic::hexagon_A2_subh_h16_sat_lh, 3935}, // __builtin_HEXAGON_A2_subh_h16_sat_lh
-+      {Intrinsic::hexagon_A2_subh_h16_sat_ll, 3972}, // __builtin_HEXAGON_A2_subh_h16_sat_ll
-+      {Intrinsic::hexagon_A2_subh_l16_hl, 4009}, // __builtin_HEXAGON_A2_subh_l16_hl
-+      {Intrinsic::hexagon_A2_subh_l16_ll, 4042}, // __builtin_HEXAGON_A2_subh_l16_ll
-+      {Intrinsic::hexagon_A2_subh_l16_sat_hl, 4075}, // __builtin_HEXAGON_A2_subh_l16_sat_hl
-+      {Intrinsic::hexagon_A2_subh_l16_sat_ll, 4112}, // __builtin_HEXAGON_A2_subh_l16_sat_ll
-+      {Intrinsic::hexagon_A2_subp, 4149}, // __builtin_HEXAGON_A2_subp
-+      {Intrinsic::hexagon_A2_subri, 4175}, // __builtin_HEXAGON_A2_subri
-+      {Intrinsic::hexagon_A2_subsat, 4202}, // __builtin_HEXAGON_A2_subsat
-+      {Intrinsic::hexagon_A2_svaddh, 4230}, // __builtin_HEXAGON_A2_svaddh
-+      {Intrinsic::hexagon_A2_svaddhs, 4258}, // __builtin_HEXAGON_A2_svaddhs
-+      {Intrinsic::hexagon_A2_svadduhs, 4287}, // __builtin_HEXAGON_A2_svadduhs
-+      {Intrinsic::hexagon_A2_svavgh, 4317}, // __builtin_HEXAGON_A2_svavgh
-+      {Intrinsic::hexagon_A2_svavghs, 4345}, // __builtin_HEXAGON_A2_svavghs
-+      {Intrinsic::hexagon_A2_svnavgh, 4374}, // __builtin_HEXAGON_A2_svnavgh
-+      {Intrinsic::hexagon_A2_svsubh, 4403}, // __builtin_HEXAGON_A2_svsubh
-+      {Intrinsic::hexagon_A2_svsubhs, 4431}, // __builtin_HEXAGON_A2_svsubhs
-+      {Intrinsic::hexagon_A2_svsubuhs, 4460}, // __builtin_HEXAGON_A2_svsubuhs
-+      {Intrinsic::hexagon_A2_swiz, 4490}, // __builtin_HEXAGON_A2_swiz
-+      {Intrinsic::hexagon_A2_sxtb, 4516}, // __builtin_HEXAGON_A2_sxtb
-+      {Intrinsic::hexagon_A2_sxth, 4542}, // __builtin_HEXAGON_A2_sxth
-+      {Intrinsic::hexagon_A2_sxtw, 4568}, // __builtin_HEXAGON_A2_sxtw
-+      {Intrinsic::hexagon_A2_tfr, 4594}, // __builtin_HEXAGON_A2_tfr
-+      {Intrinsic::hexagon_A2_tfrih, 4619}, // __builtin_HEXAGON_A2_tfrih
-+      {Intrinsic::hexagon_A2_tfril, 4646}, // __builtin_HEXAGON_A2_tfril
-+      {Intrinsic::hexagon_A2_tfrp, 4673}, // __builtin_HEXAGON_A2_tfrp
-+      {Intrinsic::hexagon_A2_tfrpi, 4699}, // __builtin_HEXAGON_A2_tfrpi
-+      {Intrinsic::hexagon_A2_tfrsi, 4726}, // __builtin_HEXAGON_A2_tfrsi
-+      {Intrinsic::hexagon_A2_vabsh, 4753}, // __builtin_HEXAGON_A2_vabsh
-+      {Intrinsic::hexagon_A2_vabshsat, 4780}, // __builtin_HEXAGON_A2_vabshsat
-+      {Intrinsic::hexagon_A2_vabsw, 4810}, // __builtin_HEXAGON_A2_vabsw
-+      {Intrinsic::hexagon_A2_vabswsat, 4837}, // __builtin_HEXAGON_A2_vabswsat
-+      {Intrinsic::hexagon_A2_vaddb_map, 4867}, // __builtin_HEXAGON_A2_vaddb_map
-+      {Intrinsic::hexagon_A2_vaddh, 4898}, // __builtin_HEXAGON_A2_vaddh
-+      {Intrinsic::hexagon_A2_vaddhs, 4925}, // __builtin_HEXAGON_A2_vaddhs
-+      {Intrinsic::hexagon_A2_vaddub, 4953}, // __builtin_HEXAGON_A2_vaddub
-+      {Intrinsic::hexagon_A2_vaddubs, 4981}, // __builtin_HEXAGON_A2_vaddubs
-+      {Intrinsic::hexagon_A2_vadduhs, 5010}, // __builtin_HEXAGON_A2_vadduhs
-+      {Intrinsic::hexagon_A2_vaddw, 5039}, // __builtin_HEXAGON_A2_vaddw
-+      {Intrinsic::hexagon_A2_vaddws, 5066}, // __builtin_HEXAGON_A2_vaddws
-+      {Intrinsic::hexagon_A2_vavgh, 5094}, // __builtin_HEXAGON_A2_vavgh
-+      {Intrinsic::hexagon_A2_vavghcr, 5121}, // __builtin_HEXAGON_A2_vavghcr
-+      {Intrinsic::hexagon_A2_vavghr, 5150}, // __builtin_HEXAGON_A2_vavghr
-+      {Intrinsic::hexagon_A2_vavgub, 5178}, // __builtin_HEXAGON_A2_vavgub
-+      {Intrinsic::hexagon_A2_vavgubr, 5206}, // __builtin_HEXAGON_A2_vavgubr
-+      {Intrinsic::hexagon_A2_vavguh, 5235}, // __builtin_HEXAGON_A2_vavguh
-+      {Intrinsic::hexagon_A2_vavguhr, 5263}, // __builtin_HEXAGON_A2_vavguhr
-+      {Intrinsic::hexagon_A2_vavguw, 5292}, // __builtin_HEXAGON_A2_vavguw
-+      {Intrinsic::hexagon_A2_vavguwr, 5320}, // __builtin_HEXAGON_A2_vavguwr
-+      {Intrinsic::hexagon_A2_vavgw, 5349}, // __builtin_HEXAGON_A2_vavgw
-+      {Intrinsic::hexagon_A2_vavgwcr, 5376}, // __builtin_HEXAGON_A2_vavgwcr
-+      {Intrinsic::hexagon_A2_vavgwr, 5405}, // __builtin_HEXAGON_A2_vavgwr
-+      {Intrinsic::hexagon_A2_vcmpbeq, 5433}, // __builtin_HEXAGON_A2_vcmpbeq
-+      {Intrinsic::hexagon_A2_vcmpbgtu, 5462}, // __builtin_HEXAGON_A2_vcmpbgtu
-+      {Intrinsic::hexagon_A2_vcmpheq, 5492}, // __builtin_HEXAGON_A2_vcmpheq
-+      {Intrinsic::hexagon_A2_vcmphgt, 5521}, // __builtin_HEXAGON_A2_vcmphgt
-+      {Intrinsic::hexagon_A2_vcmphgtu, 5550}, // __builtin_HEXAGON_A2_vcmphgtu
-+      {Intrinsic::hexagon_A2_vcmpweq, 5580}, // __builtin_HEXAGON_A2_vcmpweq
-+      {Intrinsic::hexagon_A2_vcmpwgt, 5609}, // __builtin_HEXAGON_A2_vcmpwgt
-+      {Intrinsic::hexagon_A2_vcmpwgtu, 5638}, // __builtin_HEXAGON_A2_vcmpwgtu
-+      {Intrinsic::hexagon_A2_vconj, 5668}, // __builtin_HEXAGON_A2_vconj
-+      {Intrinsic::hexagon_A2_vmaxb, 5695}, // __builtin_HEXAGON_A2_vmaxb
-+      {Intrinsic::hexagon_A2_vmaxh, 5722}, // __builtin_HEXAGON_A2_vmaxh
-+      {Intrinsic::hexagon_A2_vmaxub, 5749}, // __builtin_HEXAGON_A2_vmaxub
-+      {Intrinsic::hexagon_A2_vmaxuh, 5777}, // __builtin_HEXAGON_A2_vmaxuh
-+      {Intrinsic::hexagon_A2_vmaxuw, 5805}, // __builtin_HEXAGON_A2_vmaxuw
-+      {Intrinsic::hexagon_A2_vmaxw, 5833}, // __builtin_HEXAGON_A2_vmaxw
-+      {Intrinsic::hexagon_A2_vminb, 5860}, // __builtin_HEXAGON_A2_vminb
-+      {Intrinsic::hexagon_A2_vminh, 5887}, // __builtin_HEXAGON_A2_vminh
-+      {Intrinsic::hexagon_A2_vminub, 5914}, // __builtin_HEXAGON_A2_vminub
-+      {Intrinsic::hexagon_A2_vminuh, 5942}, // __builtin_HEXAGON_A2_vminuh
-+      {Intrinsic::hexagon_A2_vminuw, 5970}, // __builtin_HEXAGON_A2_vminuw
-+      {Intrinsic::hexagon_A2_vminw, 5998}, // __builtin_HEXAGON_A2_vminw
-+      {Intrinsic::hexagon_A2_vnavgh, 6025}, // __builtin_HEXAGON_A2_vnavgh
-+      {Intrinsic::hexagon_A2_vnavghcr, 6053}, // __builtin_HEXAGON_A2_vnavghcr
-+      {Intrinsic::hexagon_A2_vnavghr, 6083}, // __builtin_HEXAGON_A2_vnavghr
-+      {Intrinsic::hexagon_A2_vnavgw, 6112}, // __builtin_HEXAGON_A2_vnavgw
-+      {Intrinsic::hexagon_A2_vnavgwcr, 6140}, // __builtin_HEXAGON_A2_vnavgwcr
-+      {Intrinsic::hexagon_A2_vnavgwr, 6170}, // __builtin_HEXAGON_A2_vnavgwr
-+      {Intrinsic::hexagon_A2_vraddub, 6199}, // __builtin_HEXAGON_A2_vraddub
-+      {Intrinsic::hexagon_A2_vraddub_acc, 6228}, // __builtin_HEXAGON_A2_vraddub_acc
-+      {Intrinsic::hexagon_A2_vrsadub, 6261}, // __builtin_HEXAGON_A2_vrsadub
-+      {Intrinsic::hexagon_A2_vrsadub_acc, 6290}, // __builtin_HEXAGON_A2_vrsadub_acc
-+      {Intrinsic::hexagon_A2_vsubb_map, 6323}, // __builtin_HEXAGON_A2_vsubb_map
-+      {Intrinsic::hexagon_A2_vsubh, 6354}, // __builtin_HEXAGON_A2_vsubh
-+      {Intrinsic::hexagon_A2_vsubhs, 6381}, // __builtin_HEXAGON_A2_vsubhs
-+      {Intrinsic::hexagon_A2_vsubub, 6409}, // __builtin_HEXAGON_A2_vsubub
-+      {Intrinsic::hexagon_A2_vsububs, 6437}, // __builtin_HEXAGON_A2_vsububs
-+      {Intrinsic::hexagon_A2_vsubuhs, 6466}, // __builtin_HEXAGON_A2_vsubuhs
-+      {Intrinsic::hexagon_A2_vsubw, 6495}, // __builtin_HEXAGON_A2_vsubw
-+      {Intrinsic::hexagon_A2_vsubws, 6522}, // __builtin_HEXAGON_A2_vsubws
-+      {Intrinsic::hexagon_A2_xor, 6550}, // __builtin_HEXAGON_A2_xor
-+      {Intrinsic::hexagon_A2_xorp, 6575}, // __builtin_HEXAGON_A2_xorp
-+      {Intrinsic::hexagon_A2_zxtb, 6601}, // __builtin_HEXAGON_A2_zxtb
-+      {Intrinsic::hexagon_A2_zxth, 6627}, // __builtin_HEXAGON_A2_zxth
-+      {Intrinsic::hexagon_A4_andn, 6653}, // __builtin_HEXAGON_A4_andn
-+      {Intrinsic::hexagon_A4_andnp, 6679}, // __builtin_HEXAGON_A4_andnp
-+      {Intrinsic::hexagon_A4_bitsplit, 6706}, // __builtin_HEXAGON_A4_bitsplit
-+      {Intrinsic::hexagon_A4_bitspliti, 6736}, // __builtin_HEXAGON_A4_bitspliti
-+      {Intrinsic::hexagon_A4_boundscheck, 6767}, // __builtin_HEXAGON_A4_boundscheck
-+      {Intrinsic::hexagon_A4_cmpbeq, 6800}, // __builtin_HEXAGON_A4_cmpbeq
-+      {Intrinsic::hexagon_A4_cmpbeqi, 6828}, // __builtin_HEXAGON_A4_cmpbeqi
-+      {Intrinsic::hexagon_A4_cmpbgt, 6857}, // __builtin_HEXAGON_A4_cmpbgt
-+      {Intrinsic::hexagon_A4_cmpbgti, 6885}, // __builtin_HEXAGON_A4_cmpbgti
-+      {Intrinsic::hexagon_A4_cmpbgtu, 6914}, // __builtin_HEXAGON_A4_cmpbgtu
-+      {Intrinsic::hexagon_A4_cmpbgtui, 6943}, // __builtin_HEXAGON_A4_cmpbgtui
-+      {Intrinsic::hexagon_A4_cmpheq, 6973}, // __builtin_HEXAGON_A4_cmpheq
-+      {Intrinsic::hexagon_A4_cmpheqi, 7001}, // __builtin_HEXAGON_A4_cmpheqi
-+      {Intrinsic::hexagon_A4_cmphgt, 7030}, // __builtin_HEXAGON_A4_cmphgt
-+      {Intrinsic::hexagon_A4_cmphgti, 7058}, // __builtin_HEXAGON_A4_cmphgti
-+      {Intrinsic::hexagon_A4_cmphgtu, 7087}, // __builtin_HEXAGON_A4_cmphgtu
-+      {Intrinsic::hexagon_A4_cmphgtui, 7116}, // __builtin_HEXAGON_A4_cmphgtui
-+      {Intrinsic::hexagon_A4_combineir, 7146}, // __builtin_HEXAGON_A4_combineir
-+      {Intrinsic::hexagon_A4_combineri, 7177}, // __builtin_HEXAGON_A4_combineri
-+      {Intrinsic::hexagon_A4_cround_ri, 7208}, // __builtin_HEXAGON_A4_cround_ri
-+      {Intrinsic::hexagon_A4_cround_rr, 7239}, // __builtin_HEXAGON_A4_cround_rr
-+      {Intrinsic::hexagon_A4_modwrapu, 7270}, // __builtin_HEXAGON_A4_modwrapu
-+      {Intrinsic::hexagon_A4_orn, 7300}, // __builtin_HEXAGON_A4_orn
-+      {Intrinsic::hexagon_A4_ornp, 7325}, // __builtin_HEXAGON_A4_ornp
-+      {Intrinsic::hexagon_A4_rcmpeq, 7351}, // __builtin_HEXAGON_A4_rcmpeq
-+      {Intrinsic::hexagon_A4_rcmpeqi, 7379}, // __builtin_HEXAGON_A4_rcmpeqi
-+      {Intrinsic::hexagon_A4_rcmpneq, 7408}, // __builtin_HEXAGON_A4_rcmpneq
-+      {Intrinsic::hexagon_A4_rcmpneqi, 7437}, // __builtin_HEXAGON_A4_rcmpneqi
-+      {Intrinsic::hexagon_A4_round_ri, 7467}, // __builtin_HEXAGON_A4_round_ri
-+      {Intrinsic::hexagon_A4_round_ri_sat, 7497}, // __builtin_HEXAGON_A4_round_ri_sat
-+      {Intrinsic::hexagon_A4_round_rr, 7531}, // __builtin_HEXAGON_A4_round_rr
-+      {Intrinsic::hexagon_A4_round_rr_sat, 7561}, // __builtin_HEXAGON_A4_round_rr_sat
-+      {Intrinsic::hexagon_A4_tlbmatch, 7595}, // __builtin_HEXAGON_A4_tlbmatch
-+      {Intrinsic::hexagon_A4_vcmpbeq_any, 7625}, // __builtin_HEXAGON_A4_vcmpbeq_any
-+      {Intrinsic::hexagon_A4_vcmpbeqi, 7658}, // __builtin_HEXAGON_A4_vcmpbeqi
-+      {Intrinsic::hexagon_A4_vcmpbgt, 7688}, // __builtin_HEXAGON_A4_vcmpbgt
-+      {Intrinsic::hexagon_A4_vcmpbgti, 7717}, // __builtin_HEXAGON_A4_vcmpbgti
-+      {Intrinsic::hexagon_A4_vcmpbgtui, 7747}, // __builtin_HEXAGON_A4_vcmpbgtui
-+      {Intrinsic::hexagon_A4_vcmpheqi, 7778}, // __builtin_HEXAGON_A4_vcmpheqi
-+      {Intrinsic::hexagon_A4_vcmphgti, 7808}, // __builtin_HEXAGON_A4_vcmphgti
-+      {Intrinsic::hexagon_A4_vcmphgtui, 7838}, // __builtin_HEXAGON_A4_vcmphgtui
-+      {Intrinsic::hexagon_A4_vcmpweqi, 7869}, // __builtin_HEXAGON_A4_vcmpweqi
-+      {Intrinsic::hexagon_A4_vcmpwgti, 7899}, // __builtin_HEXAGON_A4_vcmpwgti
-+      {Intrinsic::hexagon_A4_vcmpwgtui, 7929}, // __builtin_HEXAGON_A4_vcmpwgtui
-+      {Intrinsic::hexagon_A4_vrmaxh, 7960}, // __builtin_HEXAGON_A4_vrmaxh
-+      {Intrinsic::hexagon_A4_vrmaxuh, 7988}, // __builtin_HEXAGON_A4_vrmaxuh
-+      {Intrinsic::hexagon_A4_vrmaxuw, 8017}, // __builtin_HEXAGON_A4_vrmaxuw
-+      {Intrinsic::hexagon_A4_vrmaxw, 8046}, // __builtin_HEXAGON_A4_vrmaxw
-+      {Intrinsic::hexagon_A4_vrminh, 8074}, // __builtin_HEXAGON_A4_vrminh
-+      {Intrinsic::hexagon_A4_vrminuh, 8102}, // __builtin_HEXAGON_A4_vrminuh
-+      {Intrinsic::hexagon_A4_vrminuw, 8131}, // __builtin_HEXAGON_A4_vrminuw
-+      {Intrinsic::hexagon_A4_vrminw, 8160}, // __builtin_HEXAGON_A4_vrminw
-+      {Intrinsic::hexagon_A5_vaddhubs, 8188}, // __builtin_HEXAGON_A5_vaddhubs
-+      {Intrinsic::hexagon_C2_all8, 8218}, // __builtin_HEXAGON_C2_all8
-+      {Intrinsic::hexagon_C2_and, 8244}, // __builtin_HEXAGON_C2_and
-+      {Intrinsic::hexagon_C2_andn, 8269}, // __builtin_HEXAGON_C2_andn
-+      {Intrinsic::hexagon_C2_any8, 8295}, // __builtin_HEXAGON_C2_any8
-+      {Intrinsic::hexagon_C2_bitsclr, 8321}, // __builtin_HEXAGON_C2_bitsclr
-+      {Intrinsic::hexagon_C2_bitsclri, 8350}, // __builtin_HEXAGON_C2_bitsclri
-+      {Intrinsic::hexagon_C2_bitsset, 8380}, // __builtin_HEXAGON_C2_bitsset
-+      {Intrinsic::hexagon_C2_cmpeq, 8409}, // __builtin_HEXAGON_C2_cmpeq
-+      {Intrinsic::hexagon_C2_cmpeqi, 8436}, // __builtin_HEXAGON_C2_cmpeqi
-+      {Intrinsic::hexagon_C2_cmpeqp, 8464}, // __builtin_HEXAGON_C2_cmpeqp
-+      {Intrinsic::hexagon_C2_cmpgei, 8492}, // __builtin_HEXAGON_C2_cmpgei
-+      {Intrinsic::hexagon_C2_cmpgeui, 8520}, // __builtin_HEXAGON_C2_cmpgeui
-+      {Intrinsic::hexagon_C2_cmpgt, 8549}, // __builtin_HEXAGON_C2_cmpgt
-+      {Intrinsic::hexagon_C2_cmpgti, 8576}, // __builtin_HEXAGON_C2_cmpgti
-+      {Intrinsic::hexagon_C2_cmpgtp, 8604}, // __builtin_HEXAGON_C2_cmpgtp
-+      {Intrinsic::hexagon_C2_cmpgtu, 8632}, // __builtin_HEXAGON_C2_cmpgtu
-+      {Intrinsic::hexagon_C2_cmpgtui, 8660}, // __builtin_HEXAGON_C2_cmpgtui
-+      {Intrinsic::hexagon_C2_cmpgtup, 8689}, // __builtin_HEXAGON_C2_cmpgtup
-+      {Intrinsic::hexagon_C2_cmplt, 8718}, // __builtin_HEXAGON_C2_cmplt
-+      {Intrinsic::hexagon_C2_cmpltu, 8745}, // __builtin_HEXAGON_C2_cmpltu
-+      {Intrinsic::hexagon_C2_mask, 8773}, // __builtin_HEXAGON_C2_mask
-+      {Intrinsic::hexagon_C2_mux, 8799}, // __builtin_HEXAGON_C2_mux
-+      {Intrinsic::hexagon_C2_muxii, 8824}, // __builtin_HEXAGON_C2_muxii
-+      {Intrinsic::hexagon_C2_muxir, 8851}, // __builtin_HEXAGON_C2_muxir
-+      {Intrinsic::hexagon_C2_muxri, 8878}, // __builtin_HEXAGON_C2_muxri
-+      {Intrinsic::hexagon_C2_not, 8905}, // __builtin_HEXAGON_C2_not
-+      {Intrinsic::hexagon_C2_or, 8930}, // __builtin_HEXAGON_C2_or
-+      {Intrinsic::hexagon_C2_orn, 8954}, // __builtin_HEXAGON_C2_orn
-+      {Intrinsic::hexagon_C2_pxfer_map, 8979}, // __builtin_HEXAGON_C2_pxfer_map
-+      {Intrinsic::hexagon_C2_tfrpr, 9010}, // __builtin_HEXAGON_C2_tfrpr
-+      {Intrinsic::hexagon_C2_tfrrp, 9037}, // __builtin_HEXAGON_C2_tfrrp
-+      {Intrinsic::hexagon_C2_vitpack, 9064}, // __builtin_HEXAGON_C2_vitpack
-+      {Intrinsic::hexagon_C2_vmux, 9093}, // __builtin_HEXAGON_C2_vmux
-+      {Intrinsic::hexagon_C2_xor, 9119}, // __builtin_HEXAGON_C2_xor
-+      {Intrinsic::hexagon_C4_and_and, 9144}, // __builtin_HEXAGON_C4_and_and
-+      {Intrinsic::hexagon_C4_and_andn, 9173}, // __builtin_HEXAGON_C4_and_andn
-+      {Intrinsic::hexagon_C4_and_or, 9203}, // __builtin_HEXAGON_C4_and_or
-+      {Intrinsic::hexagon_C4_and_orn, 9231}, // __builtin_HEXAGON_C4_and_orn
-+      {Intrinsic::hexagon_C4_cmplte, 9260}, // __builtin_HEXAGON_C4_cmplte
-+      {Intrinsic::hexagon_C4_cmpltei, 9288}, // __builtin_HEXAGON_C4_cmpltei
-+      {Intrinsic::hexagon_C4_cmplteu, 9317}, // __builtin_HEXAGON_C4_cmplteu
-+      {Intrinsic::hexagon_C4_cmplteui, 9346}, // __builtin_HEXAGON_C4_cmplteui
-+      {Intrinsic::hexagon_C4_cmpneq, 9376}, // __builtin_HEXAGON_C4_cmpneq
-+      {Intrinsic::hexagon_C4_cmpneqi, 9404}, // __builtin_HEXAGON_C4_cmpneqi
-+      {Intrinsic::hexagon_C4_fastcorner9, 9433}, // __builtin_HEXAGON_C4_fastcorner9
-+      {Intrinsic::hexagon_C4_fastcorner9_not, 9466}, // __builtin_HEXAGON_C4_fastcorner9_not
-+      {Intrinsic::hexagon_C4_nbitsclr, 9503}, // __builtin_HEXAGON_C4_nbitsclr
-+      {Intrinsic::hexagon_C4_nbitsclri, 9533}, // __builtin_HEXAGON_C4_nbitsclri
-+      {Intrinsic::hexagon_C4_nbitsset, 9564}, // __builtin_HEXAGON_C4_nbitsset
-+      {Intrinsic::hexagon_C4_or_and, 9594}, // __builtin_HEXAGON_C4_or_and
-+      {Intrinsic::hexagon_C4_or_andn, 9622}, // __builtin_HEXAGON_C4_or_andn
-+      {Intrinsic::hexagon_C4_or_or, 9651}, // __builtin_HEXAGON_C4_or_or
-+      {Intrinsic::hexagon_C4_or_orn, 9678}, // __builtin_HEXAGON_C4_or_orn
-+      {Intrinsic::hexagon_F2_conv_d2df, 9706}, // __builtin_HEXAGON_F2_conv_d2df
-+      {Intrinsic::hexagon_F2_conv_d2sf, 9737}, // __builtin_HEXAGON_F2_conv_d2sf
-+      {Intrinsic::hexagon_F2_conv_df2d, 9768}, // __builtin_HEXAGON_F2_conv_df2d
-+      {Intrinsic::hexagon_F2_conv_df2d_chop, 9799}, // __builtin_HEXAGON_F2_conv_df2d_chop
-+      {Intrinsic::hexagon_F2_conv_df2sf, 9835}, // __builtin_HEXAGON_F2_conv_df2sf
-+      {Intrinsic::hexagon_F2_conv_df2ud, 9867}, // __builtin_HEXAGON_F2_conv_df2ud
-+      {Intrinsic::hexagon_F2_conv_df2ud_chop, 9899}, // __builtin_HEXAGON_F2_conv_df2ud_chop
-+      {Intrinsic::hexagon_F2_conv_df2uw, 9936}, // __builtin_HEXAGON_F2_conv_df2uw
-+      {Intrinsic::hexagon_F2_conv_df2uw_chop, 9968}, // __builtin_HEXAGON_F2_conv_df2uw_chop
-+      {Intrinsic::hexagon_F2_conv_df2w, 10005}, // __builtin_HEXAGON_F2_conv_df2w
-+      {Intrinsic::hexagon_F2_conv_df2w_chop, 10036}, // __builtin_HEXAGON_F2_conv_df2w_chop
-+      {Intrinsic::hexagon_F2_conv_sf2d, 10072}, // __builtin_HEXAGON_F2_conv_sf2d
-+      {Intrinsic::hexagon_F2_conv_sf2d_chop, 10103}, // __builtin_HEXAGON_F2_conv_sf2d_chop
-+      {Intrinsic::hexagon_F2_conv_sf2df, 10139}, // __builtin_HEXAGON_F2_conv_sf2df
-+      {Intrinsic::hexagon_F2_conv_sf2ud, 10171}, // __builtin_HEXAGON_F2_conv_sf2ud
-+      {Intrinsic::hexagon_F2_conv_sf2ud_chop, 10203}, // __builtin_HEXAGON_F2_conv_sf2ud_chop
-+      {Intrinsic::hexagon_F2_conv_sf2uw, 10240}, // __builtin_HEXAGON_F2_conv_sf2uw
-+      {Intrinsic::hexagon_F2_conv_sf2uw_chop, 10272}, // __builtin_HEXAGON_F2_conv_sf2uw_chop
-+      {Intrinsic::hexagon_F2_conv_sf2w, 10309}, // __builtin_HEXAGON_F2_conv_sf2w
-+      {Intrinsic::hexagon_F2_conv_sf2w_chop, 10340}, // __builtin_HEXAGON_F2_conv_sf2w_chop
-+      {Intrinsic::hexagon_F2_conv_ud2df, 10376}, // __builtin_HEXAGON_F2_conv_ud2df
-+      {Intrinsic::hexagon_F2_conv_ud2sf, 10408}, // __builtin_HEXAGON_F2_conv_ud2sf
-+      {Intrinsic::hexagon_F2_conv_uw2df, 10440}, // __builtin_HEXAGON_F2_conv_uw2df
-+      {Intrinsic::hexagon_F2_conv_uw2sf, 10472}, // __builtin_HEXAGON_F2_conv_uw2sf
-+      {Intrinsic::hexagon_F2_conv_w2df, 10504}, // __builtin_HEXAGON_F2_conv_w2df
-+      {Intrinsic::hexagon_F2_conv_w2sf, 10535}, // __builtin_HEXAGON_F2_conv_w2sf
-+      {Intrinsic::hexagon_F2_dfclass, 10566}, // __builtin_HEXAGON_F2_dfclass
-+      {Intrinsic::hexagon_F2_dfcmpeq, 10595}, // __builtin_HEXAGON_F2_dfcmpeq
-+      {Intrinsic::hexagon_F2_dfcmpge, 10624}, // __builtin_HEXAGON_F2_dfcmpge
-+      {Intrinsic::hexagon_F2_dfcmpgt, 10653}, // __builtin_HEXAGON_F2_dfcmpgt
-+      {Intrinsic::hexagon_F2_dfcmpuo, 10682}, // __builtin_HEXAGON_F2_dfcmpuo
-+      {Intrinsic::hexagon_F2_dfimm_n, 10711}, // __builtin_HEXAGON_F2_dfimm_n
-+      {Intrinsic::hexagon_F2_dfimm_p, 10740}, // __builtin_HEXAGON_F2_dfimm_p
-+      {Intrinsic::hexagon_F2_sfadd, 10769}, // __builtin_HEXAGON_F2_sfadd
-+      {Intrinsic::hexagon_F2_sfclass, 10796}, // __builtin_HEXAGON_F2_sfclass
-+      {Intrinsic::hexagon_F2_sfcmpeq, 10825}, // __builtin_HEXAGON_F2_sfcmpeq
-+      {Intrinsic::hexagon_F2_sfcmpge, 10854}, // __builtin_HEXAGON_F2_sfcmpge
-+      {Intrinsic::hexagon_F2_sfcmpgt, 10883}, // __builtin_HEXAGON_F2_sfcmpgt
-+      {Intrinsic::hexagon_F2_sfcmpuo, 10912}, // __builtin_HEXAGON_F2_sfcmpuo
-+      {Intrinsic::hexagon_F2_sffixupd, 10941}, // __builtin_HEXAGON_F2_sffixupd
-+      {Intrinsic::hexagon_F2_sffixupn, 10971}, // __builtin_HEXAGON_F2_sffixupn
-+      {Intrinsic::hexagon_F2_sffixupr, 11001}, // __builtin_HEXAGON_F2_sffixupr
-+      {Intrinsic::hexagon_F2_sffma, 11031}, // __builtin_HEXAGON_F2_sffma
-+      {Intrinsic::hexagon_F2_sffma_lib, 11058}, // __builtin_HEXAGON_F2_sffma_lib
-+      {Intrinsic::hexagon_F2_sffma_sc, 11089}, // __builtin_HEXAGON_F2_sffma_sc
-+      {Intrinsic::hexagon_F2_sffms, 11119}, // __builtin_HEXAGON_F2_sffms
-+      {Intrinsic::hexagon_F2_sffms_lib, 11146}, // __builtin_HEXAGON_F2_sffms_lib
-+      {Intrinsic::hexagon_F2_sfimm_n, 11177}, // __builtin_HEXAGON_F2_sfimm_n
-+      {Intrinsic::hexagon_F2_sfimm_p, 11206}, // __builtin_HEXAGON_F2_sfimm_p
-+      {Intrinsic::hexagon_F2_sfmax, 11235}, // __builtin_HEXAGON_F2_sfmax
-+      {Intrinsic::hexagon_F2_sfmin, 11262}, // __builtin_HEXAGON_F2_sfmin
-+      {Intrinsic::hexagon_F2_sfmpy, 11289}, // __builtin_HEXAGON_F2_sfmpy
-+      {Intrinsic::hexagon_F2_sfsub, 11316}, // __builtin_HEXAGON_F2_sfsub
-+      {Intrinsic::hexagon_L2_loadw_locked, 11343}, // __builtin_HEXAGON_L2_loadw_locked
-+      {Intrinsic::hexagon_L4_loadd_locked, 11377}, // __builtin_HEXAGON_L4_loadd_locked
-+      {Intrinsic::hexagon_M2_acci, 11411}, // __builtin_HEXAGON_M2_acci
-+      {Intrinsic::hexagon_M2_accii, 11437}, // __builtin_HEXAGON_M2_accii
-+      {Intrinsic::hexagon_M2_cmaci_s0, 11464}, // __builtin_HEXAGON_M2_cmaci_s0
-+      {Intrinsic::hexagon_M2_cmacr_s0, 11494}, // __builtin_HEXAGON_M2_cmacr_s0
-+      {Intrinsic::hexagon_M2_cmacs_s0, 11524}, // __builtin_HEXAGON_M2_cmacs_s0
-+      {Intrinsic::hexagon_M2_cmacs_s1, 11554}, // __builtin_HEXAGON_M2_cmacs_s1
-+      {Intrinsic::hexagon_M2_cmacsc_s0, 11584}, // __builtin_HEXAGON_M2_cmacsc_s0
-+      {Intrinsic::hexagon_M2_cmacsc_s1, 11615}, // __builtin_HEXAGON_M2_cmacsc_s1
-+      {Intrinsic::hexagon_M2_cmpyi_s0, 11646}, // __builtin_HEXAGON_M2_cmpyi_s0
-+      {Intrinsic::hexagon_M2_cmpyr_s0, 11676}, // __builtin_HEXAGON_M2_cmpyr_s0
-+      {Intrinsic::hexagon_M2_cmpyrs_s0, 11706}, // __builtin_HEXAGON_M2_cmpyrs_s0
-+      {Intrinsic::hexagon_M2_cmpyrs_s1, 11737}, // __builtin_HEXAGON_M2_cmpyrs_s1
-+      {Intrinsic::hexagon_M2_cmpyrsc_s0, 11768}, // __builtin_HEXAGON_M2_cmpyrsc_s0
-+      {Intrinsic::hexagon_M2_cmpyrsc_s1, 11800}, // __builtin_HEXAGON_M2_cmpyrsc_s1
-+      {Intrinsic::hexagon_M2_cmpys_s0, 11832}, // __builtin_HEXAGON_M2_cmpys_s0
-+      {Intrinsic::hexagon_M2_cmpys_s1, 11862}, // __builtin_HEXAGON_M2_cmpys_s1
-+      {Intrinsic::hexagon_M2_cmpysc_s0, 11892}, // __builtin_HEXAGON_M2_cmpysc_s0
-+      {Intrinsic::hexagon_M2_cmpysc_s1, 11923}, // __builtin_HEXAGON_M2_cmpysc_s1
-+      {Intrinsic::hexagon_M2_cnacs_s0, 11954}, // __builtin_HEXAGON_M2_cnacs_s0
-+      {Intrinsic::hexagon_M2_cnacs_s1, 11984}, // __builtin_HEXAGON_M2_cnacs_s1
-+      {Intrinsic::hexagon_M2_cnacsc_s0, 12014}, // __builtin_HEXAGON_M2_cnacsc_s0
-+      {Intrinsic::hexagon_M2_cnacsc_s1, 12045}, // __builtin_HEXAGON_M2_cnacsc_s1
-+      {Intrinsic::hexagon_M2_dpmpyss_acc_s0, 12076}, // __builtin_HEXAGON_M2_dpmpyss_acc_s0
-+      {Intrinsic::hexagon_M2_dpmpyss_nac_s0, 12112}, // __builtin_HEXAGON_M2_dpmpyss_nac_s0
-+      {Intrinsic::hexagon_M2_dpmpyss_rnd_s0, 12148}, // __builtin_HEXAGON_M2_dpmpyss_rnd_s0
-+      {Intrinsic::hexagon_M2_dpmpyss_s0, 12184}, // __builtin_HEXAGON_M2_dpmpyss_s0
-+      {Intrinsic::hexagon_M2_dpmpyuu_acc_s0, 12216}, // __builtin_HEXAGON_M2_dpmpyuu_acc_s0
-+      {Intrinsic::hexagon_M2_dpmpyuu_nac_s0, 12252}, // __builtin_HEXAGON_M2_dpmpyuu_nac_s0
-+      {Intrinsic::hexagon_M2_dpmpyuu_s0, 12288}, // __builtin_HEXAGON_M2_dpmpyuu_s0
-+      {Intrinsic::hexagon_M2_hmmpyh_rs1, 12320}, // __builtin_HEXAGON_M2_hmmpyh_rs1
-+      {Intrinsic::hexagon_M2_hmmpyh_s1, 12352}, // __builtin_HEXAGON_M2_hmmpyh_s1
-+      {Intrinsic::hexagon_M2_hmmpyl_rs1, 12383}, // __builtin_HEXAGON_M2_hmmpyl_rs1
-+      {Intrinsic::hexagon_M2_hmmpyl_s1, 12415}, // __builtin_HEXAGON_M2_hmmpyl_s1
-+      {Intrinsic::hexagon_M2_maci, 12446}, // __builtin_HEXAGON_M2_maci
-+      {Intrinsic::hexagon_M2_macsin, 12472}, // __builtin_HEXAGON_M2_macsin
-+      {Intrinsic::hexagon_M2_macsip, 12500}, // __builtin_HEXAGON_M2_macsip
-+      {Intrinsic::hexagon_M2_mmachs_rs0, 12528}, // __builtin_HEXAGON_M2_mmachs_rs0
-+      {Intrinsic::hexagon_M2_mmachs_rs1, 12560}, // __builtin_HEXAGON_M2_mmachs_rs1
-+      {Intrinsic::hexagon_M2_mmachs_s0, 12592}, // __builtin_HEXAGON_M2_mmachs_s0
-+      {Intrinsic::hexagon_M2_mmachs_s1, 12623}, // __builtin_HEXAGON_M2_mmachs_s1
-+      {Intrinsic::hexagon_M2_mmacls_rs0, 12654}, // __builtin_HEXAGON_M2_mmacls_rs0
-+      {Intrinsic::hexagon_M2_mmacls_rs1, 12686}, // __builtin_HEXAGON_M2_mmacls_rs1
-+      {Intrinsic::hexagon_M2_mmacls_s0, 12718}, // __builtin_HEXAGON_M2_mmacls_s0
-+      {Intrinsic::hexagon_M2_mmacls_s1, 12749}, // __builtin_HEXAGON_M2_mmacls_s1
-+      {Intrinsic::hexagon_M2_mmacuhs_rs0, 12780}, // __builtin_HEXAGON_M2_mmacuhs_rs0
-+      {Intrinsic::hexagon_M2_mmacuhs_rs1, 12813}, // __builtin_HEXAGON_M2_mmacuhs_rs1
-+      {Intrinsic::hexagon_M2_mmacuhs_s0, 12846}, // __builtin_HEXAGON_M2_mmacuhs_s0
-+      {Intrinsic::hexagon_M2_mmacuhs_s1, 12878}, // __builtin_HEXAGON_M2_mmacuhs_s1
-+      {Intrinsic::hexagon_M2_mmaculs_rs0, 12910}, // __builtin_HEXAGON_M2_mmaculs_rs0
-+      {Intrinsic::hexagon_M2_mmaculs_rs1, 12943}, // __builtin_HEXAGON_M2_mmaculs_rs1
-+      {Intrinsic::hexagon_M2_mmaculs_s0, 12976}, // __builtin_HEXAGON_M2_mmaculs_s0
-+      {Intrinsic::hexagon_M2_mmaculs_s1, 13008}, // __builtin_HEXAGON_M2_mmaculs_s1
-+      {Intrinsic::hexagon_M2_mmpyh_rs0, 13040}, // __builtin_HEXAGON_M2_mmpyh_rs0
-+      {Intrinsic::hexagon_M2_mmpyh_rs1, 13071}, // __builtin_HEXAGON_M2_mmpyh_rs1
-+      {Intrinsic::hexagon_M2_mmpyh_s0, 13102}, // __builtin_HEXAGON_M2_mmpyh_s0
-+      {Intrinsic::hexagon_M2_mmpyh_s1, 13132}, // __builtin_HEXAGON_M2_mmpyh_s1
-+      {Intrinsic::hexagon_M2_mmpyl_rs0, 13162}, // __builtin_HEXAGON_M2_mmpyl_rs0
-+      {Intrinsic::hexagon_M2_mmpyl_rs1, 13193}, // __builtin_HEXAGON_M2_mmpyl_rs1
-+      {Intrinsic::hexagon_M2_mmpyl_s0, 13224}, // __builtin_HEXAGON_M2_mmpyl_s0
-+      {Intrinsic::hexagon_M2_mmpyl_s1, 13254}, // __builtin_HEXAGON_M2_mmpyl_s1
-+      {Intrinsic::hexagon_M2_mmpyuh_rs0, 13284}, // __builtin_HEXAGON_M2_mmpyuh_rs0
-+      {Intrinsic::hexagon_M2_mmpyuh_rs1, 13316}, // __builtin_HEXAGON_M2_mmpyuh_rs1
-+      {Intrinsic::hexagon_M2_mmpyuh_s0, 13348}, // __builtin_HEXAGON_M2_mmpyuh_s0
-+      {Intrinsic::hexagon_M2_mmpyuh_s1, 13379}, // __builtin_HEXAGON_M2_mmpyuh_s1
-+      {Intrinsic::hexagon_M2_mmpyul_rs0, 13410}, // __builtin_HEXAGON_M2_mmpyul_rs0
-+      {Intrinsic::hexagon_M2_mmpyul_rs1, 13442}, // __builtin_HEXAGON_M2_mmpyul_rs1
-+      {Intrinsic::hexagon_M2_mmpyul_s0, 13474}, // __builtin_HEXAGON_M2_mmpyul_s0
-+      {Intrinsic::hexagon_M2_mmpyul_s1, 13505}, // __builtin_HEXAGON_M2_mmpyul_s1
-+      {Intrinsic::hexagon_M2_mpy_acc_hh_s0, 13536}, // __builtin_HEXAGON_M2_mpy_acc_hh_s0
-+      {Intrinsic::hexagon_M2_mpy_acc_hh_s1, 13571}, // __builtin_HEXAGON_M2_mpy_acc_hh_s1
-+      {Intrinsic::hexagon_M2_mpy_acc_hl_s0, 13606}, // __builtin_HEXAGON_M2_mpy_acc_hl_s0
-+      {Intrinsic::hexagon_M2_mpy_acc_hl_s1, 13641}, // __builtin_HEXAGON_M2_mpy_acc_hl_s1
-+      {Intrinsic::hexagon_M2_mpy_acc_lh_s0, 13676}, // __builtin_HEXAGON_M2_mpy_acc_lh_s0
-+      {Intrinsic::hexagon_M2_mpy_acc_lh_s1, 13711}, // __builtin_HEXAGON_M2_mpy_acc_lh_s1
-+      {Intrinsic::hexagon_M2_mpy_acc_ll_s0, 13746}, // __builtin_HEXAGON_M2_mpy_acc_ll_s0
-+      {Intrinsic::hexagon_M2_mpy_acc_ll_s1, 13781}, // __builtin_HEXAGON_M2_mpy_acc_ll_s1
-+      {Intrinsic::hexagon_M2_mpy_acc_sat_hh_s0, 13816}, // __builtin_HEXAGON_M2_mpy_acc_sat_hh_s0
-+      {Intrinsic::hexagon_M2_mpy_acc_sat_hh_s1, 13855}, // __builtin_HEXAGON_M2_mpy_acc_sat_hh_s1
-+      {Intrinsic::hexagon_M2_mpy_acc_sat_hl_s0, 13894}, // __builtin_HEXAGON_M2_mpy_acc_sat_hl_s0
-+      {Intrinsic::hexagon_M2_mpy_acc_sat_hl_s1, 13933}, // __builtin_HEXAGON_M2_mpy_acc_sat_hl_s1
-+      {Intrinsic::hexagon_M2_mpy_acc_sat_lh_s0, 13972}, // __builtin_HEXAGON_M2_mpy_acc_sat_lh_s0
-+      {Intrinsic::hexagon_M2_mpy_acc_sat_lh_s1, 14011}, // __builtin_HEXAGON_M2_mpy_acc_sat_lh_s1
-+      {Intrinsic::hexagon_M2_mpy_acc_sat_ll_s0, 14050}, // __builtin_HEXAGON_M2_mpy_acc_sat_ll_s0
-+      {Intrinsic::hexagon_M2_mpy_acc_sat_ll_s1, 14089}, // __builtin_HEXAGON_M2_mpy_acc_sat_ll_s1
-+      {Intrinsic::hexagon_M2_mpy_hh_s0, 14128}, // __builtin_HEXAGON_M2_mpy_hh_s0
-+      {Intrinsic::hexagon_M2_mpy_hh_s1, 14159}, // __builtin_HEXAGON_M2_mpy_hh_s1
-+      {Intrinsic::hexagon_M2_mpy_hl_s0, 14190}, // __builtin_HEXAGON_M2_mpy_hl_s0
-+      {Intrinsic::hexagon_M2_mpy_hl_s1, 14221}, // __builtin_HEXAGON_M2_mpy_hl_s1
-+      {Intrinsic::hexagon_M2_mpy_lh_s0, 14252}, // __builtin_HEXAGON_M2_mpy_lh_s0
-+      {Intrinsic::hexagon_M2_mpy_lh_s1, 14283}, // __builtin_HEXAGON_M2_mpy_lh_s1
-+      {Intrinsic::hexagon_M2_mpy_ll_s0, 14314}, // __builtin_HEXAGON_M2_mpy_ll_s0
-+      {Intrinsic::hexagon_M2_mpy_ll_s1, 14345}, // __builtin_HEXAGON_M2_mpy_ll_s1
-+      {Intrinsic::hexagon_M2_mpy_nac_hh_s0, 14376}, // __builtin_HEXAGON_M2_mpy_nac_hh_s0
-+      {Intrinsic::hexagon_M2_mpy_nac_hh_s1, 14411}, // __builtin_HEXAGON_M2_mpy_nac_hh_s1
-+      {Intrinsic::hexagon_M2_mpy_nac_hl_s0, 14446}, // __builtin_HEXAGON_M2_mpy_nac_hl_s0
-+      {Intrinsic::hexagon_M2_mpy_nac_hl_s1, 14481}, // __builtin_HEXAGON_M2_mpy_nac_hl_s1
-+      {Intrinsic::hexagon_M2_mpy_nac_lh_s0, 14516}, // __builtin_HEXAGON_M2_mpy_nac_lh_s0
-+      {Intrinsic::hexagon_M2_mpy_nac_lh_s1, 14551}, // __builtin_HEXAGON_M2_mpy_nac_lh_s1
-+      {Intrinsic::hexagon_M2_mpy_nac_ll_s0, 14586}, // __builtin_HEXAGON_M2_mpy_nac_ll_s0
-+      {Intrinsic::hexagon_M2_mpy_nac_ll_s1, 14621}, // __builtin_HEXAGON_M2_mpy_nac_ll_s1
-+      {Intrinsic::hexagon_M2_mpy_nac_sat_hh_s0, 14656}, // __builtin_HEXAGON_M2_mpy_nac_sat_hh_s0
-+      {Intrinsic::hexagon_M2_mpy_nac_sat_hh_s1, 14695}, // __builtin_HEXAGON_M2_mpy_nac_sat_hh_s1
-+      {Intrinsic::hexagon_M2_mpy_nac_sat_hl_s0, 14734}, // __builtin_HEXAGON_M2_mpy_nac_sat_hl_s0
-+      {Intrinsic::hexagon_M2_mpy_nac_sat_hl_s1, 14773}, // __builtin_HEXAGON_M2_mpy_nac_sat_hl_s1
-+      {Intrinsic::hexagon_M2_mpy_nac_sat_lh_s0, 14812}, // __builtin_HEXAGON_M2_mpy_nac_sat_lh_s0
-+      {Intrinsic::hexagon_M2_mpy_nac_sat_lh_s1, 14851}, // __builtin_HEXAGON_M2_mpy_nac_sat_lh_s1
-+      {Intrinsic::hexagon_M2_mpy_nac_sat_ll_s0, 14890}, // __builtin_HEXAGON_M2_mpy_nac_sat_ll_s0
-+      {Intrinsic::hexagon_M2_mpy_nac_sat_ll_s1, 14929}, // __builtin_HEXAGON_M2_mpy_nac_sat_ll_s1
-+      {Intrinsic::hexagon_M2_mpy_rnd_hh_s0, 14968}, // __builtin_HEXAGON_M2_mpy_rnd_hh_s0
-+      {Intrinsic::hexagon_M2_mpy_rnd_hh_s1, 15003}, // __builtin_HEXAGON_M2_mpy_rnd_hh_s1
-+      {Intrinsic::hexagon_M2_mpy_rnd_hl_s0, 15038}, // __builtin_HEXAGON_M2_mpy_rnd_hl_s0
-+      {Intrinsic::hexagon_M2_mpy_rnd_hl_s1, 15073}, // __builtin_HEXAGON_M2_mpy_rnd_hl_s1
-+      {Intrinsic::hexagon_M2_mpy_rnd_lh_s0, 15108}, // __builtin_HEXAGON_M2_mpy_rnd_lh_s0
-+      {Intrinsic::hexagon_M2_mpy_rnd_lh_s1, 15143}, // __builtin_HEXAGON_M2_mpy_rnd_lh_s1
-+      {Intrinsic::hexagon_M2_mpy_rnd_ll_s0, 15178}, // __builtin_HEXAGON_M2_mpy_rnd_ll_s0
-+      {Intrinsic::hexagon_M2_mpy_rnd_ll_s1, 15213}, // __builtin_HEXAGON_M2_mpy_rnd_ll_s1
-+      {Intrinsic::hexagon_M2_mpy_sat_hh_s0, 15248}, // __builtin_HEXAGON_M2_mpy_sat_hh_s0
-+      {Intrinsic::hexagon_M2_mpy_sat_hh_s1, 15283}, // __builtin_HEXAGON_M2_mpy_sat_hh_s1
-+      {Intrinsic::hexagon_M2_mpy_sat_hl_s0, 15318}, // __builtin_HEXAGON_M2_mpy_sat_hl_s0
-+      {Intrinsic::hexagon_M2_mpy_sat_hl_s1, 15353}, // __builtin_HEXAGON_M2_mpy_sat_hl_s1
-+      {Intrinsic::hexagon_M2_mpy_sat_lh_s0, 15388}, // __builtin_HEXAGON_M2_mpy_sat_lh_s0
-+      {Intrinsic::hexagon_M2_mpy_sat_lh_s1, 15423}, // __builtin_HEXAGON_M2_mpy_sat_lh_s1
-+      {Intrinsic::hexagon_M2_mpy_sat_ll_s0, 15458}, // __builtin_HEXAGON_M2_mpy_sat_ll_s0
-+      {Intrinsic::hexagon_M2_mpy_sat_ll_s1, 15493}, // __builtin_HEXAGON_M2_mpy_sat_ll_s1
-+      {Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s0, 15528}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s0
-+      {Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s1, 15567}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s1
-+      {Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s0, 15606}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s0
-+      {Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s1, 15645}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s1
-+      {Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s0, 15684}, // __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s0
-+      {Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s1, 15723}, // __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s1
-+      {Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s0, 15762}, // __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s0
-+      {Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s1, 15801}, // __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s1
-+      {Intrinsic::hexagon_M2_mpy_up, 15840}, // __builtin_HEXAGON_M2_mpy_up
-+      {Intrinsic::hexagon_M2_mpy_up_s1, 15868}, // __builtin_HEXAGON_M2_mpy_up_s1
-+      {Intrinsic::hexagon_M2_mpy_up_s1_sat, 15899}, // __builtin_HEXAGON_M2_mpy_up_s1_sat
-+      {Intrinsic::hexagon_M2_mpyd_acc_hh_s0, 15934}, // __builtin_HEXAGON_M2_mpyd_acc_hh_s0
-+      {Intrinsic::hexagon_M2_mpyd_acc_hh_s1, 15970}, // __builtin_HEXAGON_M2_mpyd_acc_hh_s1
-+      {Intrinsic::hexagon_M2_mpyd_acc_hl_s0, 16006}, // __builtin_HEXAGON_M2_mpyd_acc_hl_s0
-+      {Intrinsic::hexagon_M2_mpyd_acc_hl_s1, 16042}, // __builtin_HEXAGON_M2_mpyd_acc_hl_s1
-+      {Intrinsic::hexagon_M2_mpyd_acc_lh_s0, 16078}, // __builtin_HEXAGON_M2_mpyd_acc_lh_s0
-+      {Intrinsic::hexagon_M2_mpyd_acc_lh_s1, 16114}, // __builtin_HEXAGON_M2_mpyd_acc_lh_s1
-+      {Intrinsic::hexagon_M2_mpyd_acc_ll_s0, 16150}, // __builtin_HEXAGON_M2_mpyd_acc_ll_s0
-+      {Intrinsic::hexagon_M2_mpyd_acc_ll_s1, 16186}, // __builtin_HEXAGON_M2_mpyd_acc_ll_s1
-+      {Intrinsic::hexagon_M2_mpyd_hh_s0, 16222}, // __builtin_HEXAGON_M2_mpyd_hh_s0
-+      {Intrinsic::hexagon_M2_mpyd_hh_s1, 16254}, // __builtin_HEXAGON_M2_mpyd_hh_s1
-+      {Intrinsic::hexagon_M2_mpyd_hl_s0, 16286}, // __builtin_HEXAGON_M2_mpyd_hl_s0
-+      {Intrinsic::hexagon_M2_mpyd_hl_s1, 16318}, // __builtin_HEXAGON_M2_mpyd_hl_s1
-+      {Intrinsic::hexagon_M2_mpyd_lh_s0, 16350}, // __builtin_HEXAGON_M2_mpyd_lh_s0
-+      {Intrinsic::hexagon_M2_mpyd_lh_s1, 16382}, // __builtin_HEXAGON_M2_mpyd_lh_s1
-+      {Intrinsic::hexagon_M2_mpyd_ll_s0, 16414}, // __builtin_HEXAGON_M2_mpyd_ll_s0
-+      {Intrinsic::hexagon_M2_mpyd_ll_s1, 16446}, // __builtin_HEXAGON_M2_mpyd_ll_s1
-+      {Intrinsic::hexagon_M2_mpyd_nac_hh_s0, 16478}, // __builtin_HEXAGON_M2_mpyd_nac_hh_s0
-+      {Intrinsic::hexagon_M2_mpyd_nac_hh_s1, 16514}, // __builtin_HEXAGON_M2_mpyd_nac_hh_s1
-+      {Intrinsic::hexagon_M2_mpyd_nac_hl_s0, 16550}, // __builtin_HEXAGON_M2_mpyd_nac_hl_s0
-+      {Intrinsic::hexagon_M2_mpyd_nac_hl_s1, 16586}, // __builtin_HEXAGON_M2_mpyd_nac_hl_s1
-+      {Intrinsic::hexagon_M2_mpyd_nac_lh_s0, 16622}, // __builtin_HEXAGON_M2_mpyd_nac_lh_s0
-+      {Intrinsic::hexagon_M2_mpyd_nac_lh_s1, 16658}, // __builtin_HEXAGON_M2_mpyd_nac_lh_s1
-+      {Intrinsic::hexagon_M2_mpyd_nac_ll_s0, 16694}, // __builtin_HEXAGON_M2_mpyd_nac_ll_s0
-+      {Intrinsic::hexagon_M2_mpyd_nac_ll_s1, 16730}, // __builtin_HEXAGON_M2_mpyd_nac_ll_s1
-+      {Intrinsic::hexagon_M2_mpyd_rnd_hh_s0, 16766}, // __builtin_HEXAGON_M2_mpyd_rnd_hh_s0
-+      {Intrinsic::hexagon_M2_mpyd_rnd_hh_s1, 16802}, // __builtin_HEXAGON_M2_mpyd_rnd_hh_s1
-+      {Intrinsic::hexagon_M2_mpyd_rnd_hl_s0, 16838}, // __builtin_HEXAGON_M2_mpyd_rnd_hl_s0
-+      {Intrinsic::hexagon_M2_mpyd_rnd_hl_s1, 16874}, // __builtin_HEXAGON_M2_mpyd_rnd_hl_s1
-+      {Intrinsic::hexagon_M2_mpyd_rnd_lh_s0, 16910}, // __builtin_HEXAGON_M2_mpyd_rnd_lh_s0
-+      {Intrinsic::hexagon_M2_mpyd_rnd_lh_s1, 16946}, // __builtin_HEXAGON_M2_mpyd_rnd_lh_s1
-+      {Intrinsic::hexagon_M2_mpyd_rnd_ll_s0, 16982}, // __builtin_HEXAGON_M2_mpyd_rnd_ll_s0
-+      {Intrinsic::hexagon_M2_mpyd_rnd_ll_s1, 17018}, // __builtin_HEXAGON_M2_mpyd_rnd_ll_s1
-+      {Intrinsic::hexagon_M2_mpyi, 17054}, // __builtin_HEXAGON_M2_mpyi
-+      {Intrinsic::hexagon_M2_mpysmi, 17080}, // __builtin_HEXAGON_M2_mpysmi
-+      {Intrinsic::hexagon_M2_mpysu_up, 17108}, // __builtin_HEXAGON_M2_mpysu_up
-+      {Intrinsic::hexagon_M2_mpyu_acc_hh_s0, 17138}, // __builtin_HEXAGON_M2_mpyu_acc_hh_s0
-+      {Intrinsic::hexagon_M2_mpyu_acc_hh_s1, 17174}, // __builtin_HEXAGON_M2_mpyu_acc_hh_s1
-+      {Intrinsic::hexagon_M2_mpyu_acc_hl_s0, 17210}, // __builtin_HEXAGON_M2_mpyu_acc_hl_s0
-+      {Intrinsic::hexagon_M2_mpyu_acc_hl_s1, 17246}, // __builtin_HEXAGON_M2_mpyu_acc_hl_s1
-+      {Intrinsic::hexagon_M2_mpyu_acc_lh_s0, 17282}, // __builtin_HEXAGON_M2_mpyu_acc_lh_s0
-+      {Intrinsic::hexagon_M2_mpyu_acc_lh_s1, 17318}, // __builtin_HEXAGON_M2_mpyu_acc_lh_s1
-+      {Intrinsic::hexagon_M2_mpyu_acc_ll_s0, 17354}, // __builtin_HEXAGON_M2_mpyu_acc_ll_s0
-+      {Intrinsic::hexagon_M2_mpyu_acc_ll_s1, 17390}, // __builtin_HEXAGON_M2_mpyu_acc_ll_s1
-+      {Intrinsic::hexagon_M2_mpyu_hh_s0, 17426}, // __builtin_HEXAGON_M2_mpyu_hh_s0
-+      {Intrinsic::hexagon_M2_mpyu_hh_s1, 17458}, // __builtin_HEXAGON_M2_mpyu_hh_s1
-+      {Intrinsic::hexagon_M2_mpyu_hl_s0, 17490}, // __builtin_HEXAGON_M2_mpyu_hl_s0
-+      {Intrinsic::hexagon_M2_mpyu_hl_s1, 17522}, // __builtin_HEXAGON_M2_mpyu_hl_s1
-+      {Intrinsic::hexagon_M2_mpyu_lh_s0, 17554}, // __builtin_HEXAGON_M2_mpyu_lh_s0
-+      {Intrinsic::hexagon_M2_mpyu_lh_s1, 17586}, // __builtin_HEXAGON_M2_mpyu_lh_s1
-+      {Intrinsic::hexagon_M2_mpyu_ll_s0, 17618}, // __builtin_HEXAGON_M2_mpyu_ll_s0
-+      {Intrinsic::hexagon_M2_mpyu_ll_s1, 17650}, // __builtin_HEXAGON_M2_mpyu_ll_s1
-+      {Intrinsic::hexagon_M2_mpyu_nac_hh_s0, 17682}, // __builtin_HEXAGON_M2_mpyu_nac_hh_s0
-+      {Intrinsic::hexagon_M2_mpyu_nac_hh_s1, 17718}, // __builtin_HEXAGON_M2_mpyu_nac_hh_s1
-+      {Intrinsic::hexagon_M2_mpyu_nac_hl_s0, 17754}, // __builtin_HEXAGON_M2_mpyu_nac_hl_s0
-+      {Intrinsic::hexagon_M2_mpyu_nac_hl_s1, 17790}, // __builtin_HEXAGON_M2_mpyu_nac_hl_s1
-+      {Intrinsic::hexagon_M2_mpyu_nac_lh_s0, 17826}, // __builtin_HEXAGON_M2_mpyu_nac_lh_s0
-+      {Intrinsic::hexagon_M2_mpyu_nac_lh_s1, 17862}, // __builtin_HEXAGON_M2_mpyu_nac_lh_s1
-+      {Intrinsic::hexagon_M2_mpyu_nac_ll_s0, 17898}, // __builtin_HEXAGON_M2_mpyu_nac_ll_s0
-+      {Intrinsic::hexagon_M2_mpyu_nac_ll_s1, 17934}, // __builtin_HEXAGON_M2_mpyu_nac_ll_s1
-+      {Intrinsic::hexagon_M2_mpyu_up, 17970}, // __builtin_HEXAGON_M2_mpyu_up
-+      {Intrinsic::hexagon_M2_mpyud_acc_hh_s0, 17999}, // __builtin_HEXAGON_M2_mpyud_acc_hh_s0
-+      {Intrinsic::hexagon_M2_mpyud_acc_hh_s1, 18036}, // __builtin_HEXAGON_M2_mpyud_acc_hh_s1
-+      {Intrinsic::hexagon_M2_mpyud_acc_hl_s0, 18073}, // __builtin_HEXAGON_M2_mpyud_acc_hl_s0
-+      {Intrinsic::hexagon_M2_mpyud_acc_hl_s1, 18110}, // __builtin_HEXAGON_M2_mpyud_acc_hl_s1
-+      {Intrinsic::hexagon_M2_mpyud_acc_lh_s0, 18147}, // __builtin_HEXAGON_M2_mpyud_acc_lh_s0
-+      {Intrinsic::hexagon_M2_mpyud_acc_lh_s1, 18184}, // __builtin_HEXAGON_M2_mpyud_acc_lh_s1
-+      {Intrinsic::hexagon_M2_mpyud_acc_ll_s0, 18221}, // __builtin_HEXAGON_M2_mpyud_acc_ll_s0
-+      {Intrinsic::hexagon_M2_mpyud_acc_ll_s1, 18258}, // __builtin_HEXAGON_M2_mpyud_acc_ll_s1
-+      {Intrinsic::hexagon_M2_mpyud_hh_s0, 18295}, // __builtin_HEXAGON_M2_mpyud_hh_s0
-+      {Intrinsic::hexagon_M2_mpyud_hh_s1, 18328}, // __builtin_HEXAGON_M2_mpyud_hh_s1
-+      {Intrinsic::hexagon_M2_mpyud_hl_s0, 18361}, // __builtin_HEXAGON_M2_mpyud_hl_s0
-+      {Intrinsic::hexagon_M2_mpyud_hl_s1, 18394}, // __builtin_HEXAGON_M2_mpyud_hl_s1
-+      {Intrinsic::hexagon_M2_mpyud_lh_s0, 18427}, // __builtin_HEXAGON_M2_mpyud_lh_s0
-+      {Intrinsic::hexagon_M2_mpyud_lh_s1, 18460}, // __builtin_HEXAGON_M2_mpyud_lh_s1
-+      {Intrinsic::hexagon_M2_mpyud_ll_s0, 18493}, // __builtin_HEXAGON_M2_mpyud_ll_s0
-+      {Intrinsic::hexagon_M2_mpyud_ll_s1, 18526}, // __builtin_HEXAGON_M2_mpyud_ll_s1
-+      {Intrinsic::hexagon_M2_mpyud_nac_hh_s0, 18559}, // __builtin_HEXAGON_M2_mpyud_nac_hh_s0
-+      {Intrinsic::hexagon_M2_mpyud_nac_hh_s1, 18596}, // __builtin_HEXAGON_M2_mpyud_nac_hh_s1
-+      {Intrinsic::hexagon_M2_mpyud_nac_hl_s0, 18633}, // __builtin_HEXAGON_M2_mpyud_nac_hl_s0
-+      {Intrinsic::hexagon_M2_mpyud_nac_hl_s1, 18670}, // __builtin_HEXAGON_M2_mpyud_nac_hl_s1
-+      {Intrinsic::hexagon_M2_mpyud_nac_lh_s0, 18707}, // __builtin_HEXAGON_M2_mpyud_nac_lh_s0
-+      {Intrinsic::hexagon_M2_mpyud_nac_lh_s1, 18744}, // __builtin_HEXAGON_M2_mpyud_nac_lh_s1
-+      {Intrinsic::hexagon_M2_mpyud_nac_ll_s0, 18781}, // __builtin_HEXAGON_M2_mpyud_nac_ll_s0
-+      {Intrinsic::hexagon_M2_mpyud_nac_ll_s1, 18818}, // __builtin_HEXAGON_M2_mpyud_nac_ll_s1
-+      {Intrinsic::hexagon_M2_mpyui, 18855}, // __builtin_HEXAGON_M2_mpyui
-+      {Intrinsic::hexagon_M2_nacci, 18882}, // __builtin_HEXAGON_M2_nacci
-+      {Intrinsic::hexagon_M2_naccii, 18909}, // __builtin_HEXAGON_M2_naccii
-+      {Intrinsic::hexagon_M2_subacc, 18937}, // __builtin_HEXAGON_M2_subacc
-+      {Intrinsic::hexagon_M2_vabsdiffh, 18965}, // __builtin_HEXAGON_M2_vabsdiffh
-+      {Intrinsic::hexagon_M2_vabsdiffw, 18996}, // __builtin_HEXAGON_M2_vabsdiffw
-+      {Intrinsic::hexagon_M2_vcmac_s0_sat_i, 19027}, // __builtin_HEXAGON_M2_vcmac_s0_sat_i
-+      {Intrinsic::hexagon_M2_vcmac_s0_sat_r, 19063}, // __builtin_HEXAGON_M2_vcmac_s0_sat_r
-+      {Intrinsic::hexagon_M2_vcmpy_s0_sat_i, 19099}, // __builtin_HEXAGON_M2_vcmpy_s0_sat_i
-+      {Intrinsic::hexagon_M2_vcmpy_s0_sat_r, 19135}, // __builtin_HEXAGON_M2_vcmpy_s0_sat_r
-+      {Intrinsic::hexagon_M2_vcmpy_s1_sat_i, 19171}, // __builtin_HEXAGON_M2_vcmpy_s1_sat_i
-+      {Intrinsic::hexagon_M2_vcmpy_s1_sat_r, 19207}, // __builtin_HEXAGON_M2_vcmpy_s1_sat_r
-+      {Intrinsic::hexagon_M2_vdmacs_s0, 19243}, // __builtin_HEXAGON_M2_vdmacs_s0
-+      {Intrinsic::hexagon_M2_vdmacs_s1, 19274}, // __builtin_HEXAGON_M2_vdmacs_s1
-+      {Intrinsic::hexagon_M2_vdmpyrs_s0, 19305}, // __builtin_HEXAGON_M2_vdmpyrs_s0
-+      {Intrinsic::hexagon_M2_vdmpyrs_s1, 19337}, // __builtin_HEXAGON_M2_vdmpyrs_s1
-+      {Intrinsic::hexagon_M2_vdmpys_s0, 19369}, // __builtin_HEXAGON_M2_vdmpys_s0
-+      {Intrinsic::hexagon_M2_vdmpys_s1, 19400}, // __builtin_HEXAGON_M2_vdmpys_s1
-+      {Intrinsic::hexagon_M2_vmac2, 19431}, // __builtin_HEXAGON_M2_vmac2
-+      {Intrinsic::hexagon_M2_vmac2es, 19458}, // __builtin_HEXAGON_M2_vmac2es
-+      {Intrinsic::hexagon_M2_vmac2es_s0, 19487}, // __builtin_HEXAGON_M2_vmac2es_s0
-+      {Intrinsic::hexagon_M2_vmac2es_s1, 19519}, // __builtin_HEXAGON_M2_vmac2es_s1
-+      {Intrinsic::hexagon_M2_vmac2s_s0, 19551}, // __builtin_HEXAGON_M2_vmac2s_s0
-+      {Intrinsic::hexagon_M2_vmac2s_s1, 19582}, // __builtin_HEXAGON_M2_vmac2s_s1
-+      {Intrinsic::hexagon_M2_vmac2su_s0, 19613}, // __builtin_HEXAGON_M2_vmac2su_s0
-+      {Intrinsic::hexagon_M2_vmac2su_s1, 19645}, // __builtin_HEXAGON_M2_vmac2su_s1
-+      {Intrinsic::hexagon_M2_vmpy2es_s0, 19677}, // __builtin_HEXAGON_M2_vmpy2es_s0
-+      {Intrinsic::hexagon_M2_vmpy2es_s1, 19709}, // __builtin_HEXAGON_M2_vmpy2es_s1
-+      {Intrinsic::hexagon_M2_vmpy2s_s0, 19741}, // __builtin_HEXAGON_M2_vmpy2s_s0
-+      {Intrinsic::hexagon_M2_vmpy2s_s0pack, 19772}, // __builtin_HEXAGON_M2_vmpy2s_s0pack
-+      {Intrinsic::hexagon_M2_vmpy2s_s1, 19807}, // __builtin_HEXAGON_M2_vmpy2s_s1
-+      {Intrinsic::hexagon_M2_vmpy2s_s1pack, 19838}, // __builtin_HEXAGON_M2_vmpy2s_s1pack
-+      {Intrinsic::hexagon_M2_vmpy2su_s0, 19873}, // __builtin_HEXAGON_M2_vmpy2su_s0
-+      {Intrinsic::hexagon_M2_vmpy2su_s1, 19905}, // __builtin_HEXAGON_M2_vmpy2su_s1
-+      {Intrinsic::hexagon_M2_vraddh, 19937}, // __builtin_HEXAGON_M2_vraddh
-+      {Intrinsic::hexagon_M2_vradduh, 19965}, // __builtin_HEXAGON_M2_vradduh
-+      {Intrinsic::hexagon_M2_vrcmaci_s0, 19994}, // __builtin_HEXAGON_M2_vrcmaci_s0
-+      {Intrinsic::hexagon_M2_vrcmaci_s0c, 20026}, // __builtin_HEXAGON_M2_vrcmaci_s0c
-+      {Intrinsic::hexagon_M2_vrcmacr_s0, 20059}, // __builtin_HEXAGON_M2_vrcmacr_s0
-+      {Intrinsic::hexagon_M2_vrcmacr_s0c, 20091}, // __builtin_HEXAGON_M2_vrcmacr_s0c
-+      {Intrinsic::hexagon_M2_vrcmpyi_s0, 20124}, // __builtin_HEXAGON_M2_vrcmpyi_s0
-+      {Intrinsic::hexagon_M2_vrcmpyi_s0c, 20156}, // __builtin_HEXAGON_M2_vrcmpyi_s0c
-+      {Intrinsic::hexagon_M2_vrcmpyr_s0, 20189}, // __builtin_HEXAGON_M2_vrcmpyr_s0
-+      {Intrinsic::hexagon_M2_vrcmpyr_s0c, 20221}, // __builtin_HEXAGON_M2_vrcmpyr_s0c
-+      {Intrinsic::hexagon_M2_vrcmpys_acc_s1, 20254}, // __builtin_HEXAGON_M2_vrcmpys_acc_s1
-+      {Intrinsic::hexagon_M2_vrcmpys_s1, 20290}, // __builtin_HEXAGON_M2_vrcmpys_s1
-+      {Intrinsic::hexagon_M2_vrcmpys_s1rp, 20322}, // __builtin_HEXAGON_M2_vrcmpys_s1rp
-+      {Intrinsic::hexagon_M2_vrmac_s0, 20356}, // __builtin_HEXAGON_M2_vrmac_s0
-+      {Intrinsic::hexagon_M2_vrmpy_s0, 20386}, // __builtin_HEXAGON_M2_vrmpy_s0
-+      {Intrinsic::hexagon_M2_xor_xacc, 20416}, // __builtin_HEXAGON_M2_xor_xacc
-+      {Intrinsic::hexagon_M4_and_and, 20446}, // __builtin_HEXAGON_M4_and_and
-+      {Intrinsic::hexagon_M4_and_andn, 20475}, // __builtin_HEXAGON_M4_and_andn
-+      {Intrinsic::hexagon_M4_and_or, 20505}, // __builtin_HEXAGON_M4_and_or
-+      {Intrinsic::hexagon_M4_and_xor, 20533}, // __builtin_HEXAGON_M4_and_xor
-+      {Intrinsic::hexagon_M4_cmpyi_wh, 20562}, // __builtin_HEXAGON_M4_cmpyi_wh
-+      {Intrinsic::hexagon_M4_cmpyi_whc, 20592}, // __builtin_HEXAGON_M4_cmpyi_whc
-+      {Intrinsic::hexagon_M4_cmpyr_wh, 20623}, // __builtin_HEXAGON_M4_cmpyr_wh
-+      {Intrinsic::hexagon_M4_cmpyr_whc, 20653}, // __builtin_HEXAGON_M4_cmpyr_whc
-+      {Intrinsic::hexagon_M4_mac_up_s1_sat, 20684}, // __builtin_HEXAGON_M4_mac_up_s1_sat
-+      {Intrinsic::hexagon_M4_mpyri_addi, 20719}, // __builtin_HEXAGON_M4_mpyri_addi
-+      {Intrinsic::hexagon_M4_mpyri_addr, 20751}, // __builtin_HEXAGON_M4_mpyri_addr
-+      {Intrinsic::hexagon_M4_mpyri_addr_u2, 20783}, // __builtin_HEXAGON_M4_mpyri_addr_u2
-+      {Intrinsic::hexagon_M4_mpyrr_addi, 20818}, // __builtin_HEXAGON_M4_mpyrr_addi
-+      {Intrinsic::hexagon_M4_mpyrr_addr, 20850}, // __builtin_HEXAGON_M4_mpyrr_addr
-+      {Intrinsic::hexagon_M4_nac_up_s1_sat, 20882}, // __builtin_HEXAGON_M4_nac_up_s1_sat
-+      {Intrinsic::hexagon_M4_or_and, 20917}, // __builtin_HEXAGON_M4_or_and
-+      {Intrinsic::hexagon_M4_or_andn, 20945}, // __builtin_HEXAGON_M4_or_andn
-+      {Intrinsic::hexagon_M4_or_or, 20974}, // __builtin_HEXAGON_M4_or_or
-+      {Intrinsic::hexagon_M4_or_xor, 21001}, // __builtin_HEXAGON_M4_or_xor
-+      {Intrinsic::hexagon_M4_pmpyw, 21029}, // __builtin_HEXAGON_M4_pmpyw
-+      {Intrinsic::hexagon_M4_pmpyw_acc, 21056}, // __builtin_HEXAGON_M4_pmpyw_acc
-+      {Intrinsic::hexagon_M4_vpmpyh, 21087}, // __builtin_HEXAGON_M4_vpmpyh
-+      {Intrinsic::hexagon_M4_vpmpyh_acc, 21115}, // __builtin_HEXAGON_M4_vpmpyh_acc
-+      {Intrinsic::hexagon_M4_vrmpyeh_acc_s0, 21147}, // __builtin_HEXAGON_M4_vrmpyeh_acc_s0
-+      {Intrinsic::hexagon_M4_vrmpyeh_acc_s1, 21183}, // __builtin_HEXAGON_M4_vrmpyeh_acc_s1
-+      {Intrinsic::hexagon_M4_vrmpyeh_s0, 21219}, // __builtin_HEXAGON_M4_vrmpyeh_s0
-+      {Intrinsic::hexagon_M4_vrmpyeh_s1, 21251}, // __builtin_HEXAGON_M4_vrmpyeh_s1
-+      {Intrinsic::hexagon_M4_vrmpyoh_acc_s0, 21283}, // __builtin_HEXAGON_M4_vrmpyoh_acc_s0
-+      {Intrinsic::hexagon_M4_vrmpyoh_acc_s1, 21319}, // __builtin_HEXAGON_M4_vrmpyoh_acc_s1
-+      {Intrinsic::hexagon_M4_vrmpyoh_s0, 21355}, // __builtin_HEXAGON_M4_vrmpyoh_s0
-+      {Intrinsic::hexagon_M4_vrmpyoh_s1, 21387}, // __builtin_HEXAGON_M4_vrmpyoh_s1
-+      {Intrinsic::hexagon_M4_xor_and, 21419}, // __builtin_HEXAGON_M4_xor_and
-+      {Intrinsic::hexagon_M4_xor_andn, 21448}, // __builtin_HEXAGON_M4_xor_andn
-+      {Intrinsic::hexagon_M4_xor_or, 21478}, // __builtin_HEXAGON_M4_xor_or
-+      {Intrinsic::hexagon_M4_xor_xacc, 21506}, // __builtin_HEXAGON_M4_xor_xacc
-+      {Intrinsic::hexagon_M5_vdmacbsu, 21536}, // __builtin_HEXAGON_M5_vdmacbsu
-+      {Intrinsic::hexagon_M5_vdmpybsu, 21566}, // __builtin_HEXAGON_M5_vdmpybsu
-+      {Intrinsic::hexagon_M5_vmacbsu, 21596}, // __builtin_HEXAGON_M5_vmacbsu
-+      {Intrinsic::hexagon_M5_vmacbuu, 21625}, // __builtin_HEXAGON_M5_vmacbuu
-+      {Intrinsic::hexagon_M5_vmpybsu, 21654}, // __builtin_HEXAGON_M5_vmpybsu
-+      {Intrinsic::hexagon_M5_vmpybuu, 21683}, // __builtin_HEXAGON_M5_vmpybuu
-+      {Intrinsic::hexagon_M5_vrmacbsu, 21712}, // __builtin_HEXAGON_M5_vrmacbsu
-+      {Intrinsic::hexagon_M5_vrmacbuu, 21742}, // __builtin_HEXAGON_M5_vrmacbuu
-+      {Intrinsic::hexagon_M5_vrmpybsu, 21772}, // __builtin_HEXAGON_M5_vrmpybsu
-+      {Intrinsic::hexagon_M5_vrmpybuu, 21802}, // __builtin_HEXAGON_M5_vrmpybuu
-+      {Intrinsic::hexagon_M6_vabsdiffb, 21832}, // __builtin_HEXAGON_M6_vabsdiffb
-+      {Intrinsic::hexagon_M6_vabsdiffub, 21863}, // __builtin_HEXAGON_M6_vabsdiffub
-+      {Intrinsic::hexagon_S2_addasl_rrri, 21895}, // __builtin_HEXAGON_S2_addasl_rrri
-+      {Intrinsic::hexagon_S2_asl_i_p, 21928}, // __builtin_HEXAGON_S2_asl_i_p
-+      {Intrinsic::hexagon_S2_asl_i_p_acc, 21957}, // __builtin_HEXAGON_S2_asl_i_p_acc
-+      {Intrinsic::hexagon_S2_asl_i_p_and, 21990}, // __builtin_HEXAGON_S2_asl_i_p_and
-+      {Intrinsic::hexagon_S2_asl_i_p_nac, 22023}, // __builtin_HEXAGON_S2_asl_i_p_nac
-+      {Intrinsic::hexagon_S2_asl_i_p_or, 22056}, // __builtin_HEXAGON_S2_asl_i_p_or
-+      {Intrinsic::hexagon_S2_asl_i_p_xacc, 22088}, // __builtin_HEXAGON_S2_asl_i_p_xacc
-+      {Intrinsic::hexagon_S2_asl_i_r, 22122}, // __builtin_HEXAGON_S2_asl_i_r
-+      {Intrinsic::hexagon_S2_asl_i_r_acc, 22151}, // __builtin_HEXAGON_S2_asl_i_r_acc
-+      {Intrinsic::hexagon_S2_asl_i_r_and, 22184}, // __builtin_HEXAGON_S2_asl_i_r_and
-+      {Intrinsic::hexagon_S2_asl_i_r_nac, 22217}, // __builtin_HEXAGON_S2_asl_i_r_nac
-+      {Intrinsic::hexagon_S2_asl_i_r_or, 22250}, // __builtin_HEXAGON_S2_asl_i_r_or
-+      {Intrinsic::hexagon_S2_asl_i_r_sat, 22282}, // __builtin_HEXAGON_S2_asl_i_r_sat
-+      {Intrinsic::hexagon_S2_asl_i_r_xacc, 22315}, // __builtin_HEXAGON_S2_asl_i_r_xacc
-+      {Intrinsic::hexagon_S2_asl_i_vh, 22349}, // __builtin_HEXAGON_S2_asl_i_vh
-+      {Intrinsic::hexagon_S2_asl_i_vw, 22379}, // __builtin_HEXAGON_S2_asl_i_vw
-+      {Intrinsic::hexagon_S2_asl_r_p, 22409}, // __builtin_HEXAGON_S2_asl_r_p
-+      {Intrinsic::hexagon_S2_asl_r_p_acc, 22438}, // __builtin_HEXAGON_S2_asl_r_p_acc
-+      {Intrinsic::hexagon_S2_asl_r_p_and, 22471}, // __builtin_HEXAGON_S2_asl_r_p_and
-+      {Intrinsic::hexagon_S2_asl_r_p_nac, 22504}, // __builtin_HEXAGON_S2_asl_r_p_nac
-+      {Intrinsic::hexagon_S2_asl_r_p_or, 22537}, // __builtin_HEXAGON_S2_asl_r_p_or
-+      {Intrinsic::hexagon_S2_asl_r_p_xor, 22569}, // __builtin_HEXAGON_S2_asl_r_p_xor
-+      {Intrinsic::hexagon_S2_asl_r_r, 22602}, // __builtin_HEXAGON_S2_asl_r_r
-+      {Intrinsic::hexagon_S2_asl_r_r_acc, 22631}, // __builtin_HEXAGON_S2_asl_r_r_acc
-+      {Intrinsic::hexagon_S2_asl_r_r_and, 22664}, // __builtin_HEXAGON_S2_asl_r_r_and
-+      {Intrinsic::hexagon_S2_asl_r_r_nac, 22697}, // __builtin_HEXAGON_S2_asl_r_r_nac
-+      {Intrinsic::hexagon_S2_asl_r_r_or, 22730}, // __builtin_HEXAGON_S2_asl_r_r_or
-+      {Intrinsic::hexagon_S2_asl_r_r_sat, 22762}, // __builtin_HEXAGON_S2_asl_r_r_sat
-+      {Intrinsic::hexagon_S2_asl_r_vh, 22795}, // __builtin_HEXAGON_S2_asl_r_vh
-+      {Intrinsic::hexagon_S2_asl_r_vw, 22825}, // __builtin_HEXAGON_S2_asl_r_vw
-+      {Intrinsic::hexagon_S2_asr_i_p, 22855}, // __builtin_HEXAGON_S2_asr_i_p
-+      {Intrinsic::hexagon_S2_asr_i_p_acc, 22884}, // __builtin_HEXAGON_S2_asr_i_p_acc
-+      {Intrinsic::hexagon_S2_asr_i_p_and, 22917}, // __builtin_HEXAGON_S2_asr_i_p_and
-+      {Intrinsic::hexagon_S2_asr_i_p_nac, 22950}, // __builtin_HEXAGON_S2_asr_i_p_nac
-+      {Intrinsic::hexagon_S2_asr_i_p_or, 22983}, // __builtin_HEXAGON_S2_asr_i_p_or
-+      {Intrinsic::hexagon_S2_asr_i_p_rnd, 23015}, // __builtin_HEXAGON_S2_asr_i_p_rnd
-+      {Intrinsic::hexagon_S2_asr_i_p_rnd_goodsyntax, 23048}, // __builtin_HEXAGON_S2_asr_i_p_rnd_goodsyntax
-+      {Intrinsic::hexagon_S2_asr_i_r, 23092}, // __builtin_HEXAGON_S2_asr_i_r
-+      {Intrinsic::hexagon_S2_asr_i_r_acc, 23121}, // __builtin_HEXAGON_S2_asr_i_r_acc
-+      {Intrinsic::hexagon_S2_asr_i_r_and, 23154}, // __builtin_HEXAGON_S2_asr_i_r_and
-+      {Intrinsic::hexagon_S2_asr_i_r_nac, 23187}, // __builtin_HEXAGON_S2_asr_i_r_nac
-+      {Intrinsic::hexagon_S2_asr_i_r_or, 23220}, // __builtin_HEXAGON_S2_asr_i_r_or
-+      {Intrinsic::hexagon_S2_asr_i_r_rnd, 23252}, // __builtin_HEXAGON_S2_asr_i_r_rnd
-+      {Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax, 23285}, // __builtin_HEXAGON_S2_asr_i_r_rnd_goodsyntax
-+      {Intrinsic::hexagon_S2_asr_i_svw_trun, 23329}, // __builtin_HEXAGON_S2_asr_i_svw_trun
-+      {Intrinsic::hexagon_S2_asr_i_vh, 23365}, // __builtin_HEXAGON_S2_asr_i_vh
-+      {Intrinsic::hexagon_S2_asr_i_vw, 23395}, // __builtin_HEXAGON_S2_asr_i_vw
-+      {Intrinsic::hexagon_S2_asr_r_p, 23425}, // __builtin_HEXAGON_S2_asr_r_p
-+      {Intrinsic::hexagon_S2_asr_r_p_acc, 23454}, // __builtin_HEXAGON_S2_asr_r_p_acc
-+      {Intrinsic::hexagon_S2_asr_r_p_and, 23487}, // __builtin_HEXAGON_S2_asr_r_p_and
-+      {Intrinsic::hexagon_S2_asr_r_p_nac, 23520}, // __builtin_HEXAGON_S2_asr_r_p_nac
-+      {Intrinsic::hexagon_S2_asr_r_p_or, 23553}, // __builtin_HEXAGON_S2_asr_r_p_or
-+      {Intrinsic::hexagon_S2_asr_r_p_xor, 23585}, // __builtin_HEXAGON_S2_asr_r_p_xor
-+      {Intrinsic::hexagon_S2_asr_r_r, 23618}, // __builtin_HEXAGON_S2_asr_r_r
-+      {Intrinsic::hexagon_S2_asr_r_r_acc, 23647}, // __builtin_HEXAGON_S2_asr_r_r_acc
-+      {Intrinsic::hexagon_S2_asr_r_r_and, 23680}, // __builtin_HEXAGON_S2_asr_r_r_and
-+      {Intrinsic::hexagon_S2_asr_r_r_nac, 23713}, // __builtin_HEXAGON_S2_asr_r_r_nac
-+      {Intrinsic::hexagon_S2_asr_r_r_or, 23746}, // __builtin_HEXAGON_S2_asr_r_r_or
-+      {Intrinsic::hexagon_S2_asr_r_r_sat, 23778}, // __builtin_HEXAGON_S2_asr_r_r_sat
-+      {Intrinsic::hexagon_S2_asr_r_svw_trun, 23811}, // __builtin_HEXAGON_S2_asr_r_svw_trun
-+      {Intrinsic::hexagon_S2_asr_r_vh, 23847}, // __builtin_HEXAGON_S2_asr_r_vh
-+      {Intrinsic::hexagon_S2_asr_r_vw, 23877}, // __builtin_HEXAGON_S2_asr_r_vw
-+      {Intrinsic::hexagon_S2_brev, 23907}, // __builtin_HEXAGON_S2_brev
-+      {Intrinsic::hexagon_S2_brevp, 23933}, // __builtin_HEXAGON_S2_brevp
-+      {Intrinsic::hexagon_S2_cabacencbin, 23960}, // __builtin_HEXAGON_S2_cabacencbin
-+      {Intrinsic::hexagon_S2_cl0, 23993}, // __builtin_HEXAGON_S2_cl0
-+      {Intrinsic::hexagon_S2_cl0p, 24018}, // __builtin_HEXAGON_S2_cl0p
-+      {Intrinsic::hexagon_S2_cl1, 24044}, // __builtin_HEXAGON_S2_cl1
-+      {Intrinsic::hexagon_S2_cl1p, 24069}, // __builtin_HEXAGON_S2_cl1p
-+      {Intrinsic::hexagon_S2_clb, 24095}, // __builtin_HEXAGON_S2_clb
-+      {Intrinsic::hexagon_S2_clbnorm, 24120}, // __builtin_HEXAGON_S2_clbnorm
-+      {Intrinsic::hexagon_S2_clbp, 24149}, // __builtin_HEXAGON_S2_clbp
-+      {Intrinsic::hexagon_S2_clrbit_i, 24175}, // __builtin_HEXAGON_S2_clrbit_i
-+      {Intrinsic::hexagon_S2_clrbit_r, 24205}, // __builtin_HEXAGON_S2_clrbit_r
-+      {Intrinsic::hexagon_S2_ct0, 24235}, // __builtin_HEXAGON_S2_ct0
-+      {Intrinsic::hexagon_S2_ct0p, 24260}, // __builtin_HEXAGON_S2_ct0p
-+      {Intrinsic::hexagon_S2_ct1, 24286}, // __builtin_HEXAGON_S2_ct1
-+      {Intrinsic::hexagon_S2_ct1p, 24311}, // __builtin_HEXAGON_S2_ct1p
-+      {Intrinsic::hexagon_S2_deinterleave, 24337}, // __builtin_HEXAGON_S2_deinterleave
-+      {Intrinsic::hexagon_S2_extractu, 24371}, // __builtin_HEXAGON_S2_extractu
-+      {Intrinsic::hexagon_S2_extractu_rp, 24401}, // __builtin_HEXAGON_S2_extractu_rp
-+      {Intrinsic::hexagon_S2_extractup, 24434}, // __builtin_HEXAGON_S2_extractup
-+      {Intrinsic::hexagon_S2_extractup_rp, 24465}, // __builtin_HEXAGON_S2_extractup_rp
-+      {Intrinsic::hexagon_S2_insert, 24499}, // __builtin_HEXAGON_S2_insert
-+      {Intrinsic::hexagon_S2_insert_rp, 24527}, // __builtin_HEXAGON_S2_insert_rp
-+      {Intrinsic::hexagon_S2_insertp, 24558}, // __builtin_HEXAGON_S2_insertp
-+      {Intrinsic::hexagon_S2_insertp_rp, 24587}, // __builtin_HEXAGON_S2_insertp_rp
-+      {Intrinsic::hexagon_S2_interleave, 24619}, // __builtin_HEXAGON_S2_interleave
-+      {Intrinsic::hexagon_S2_lfsp, 24651}, // __builtin_HEXAGON_S2_lfsp
-+      {Intrinsic::hexagon_S2_lsl_r_p, 24677}, // __builtin_HEXAGON_S2_lsl_r_p
-+      {Intrinsic::hexagon_S2_lsl_r_p_acc, 24706}, // __builtin_HEXAGON_S2_lsl_r_p_acc
-+      {Intrinsic::hexagon_S2_lsl_r_p_and, 24739}, // __builtin_HEXAGON_S2_lsl_r_p_and
-+      {Intrinsic::hexagon_S2_lsl_r_p_nac, 24772}, // __builtin_HEXAGON_S2_lsl_r_p_nac
-+      {Intrinsic::hexagon_S2_lsl_r_p_or, 24805}, // __builtin_HEXAGON_S2_lsl_r_p_or
-+      {Intrinsic::hexagon_S2_lsl_r_p_xor, 24837}, // __builtin_HEXAGON_S2_lsl_r_p_xor
-+      {Intrinsic::hexagon_S2_lsl_r_r, 24870}, // __builtin_HEXAGON_S2_lsl_r_r
-+      {Intrinsic::hexagon_S2_lsl_r_r_acc, 24899}, // __builtin_HEXAGON_S2_lsl_r_r_acc
-+      {Intrinsic::hexagon_S2_lsl_r_r_and, 24932}, // __builtin_HEXAGON_S2_lsl_r_r_and
-+      {Intrinsic::hexagon_S2_lsl_r_r_nac, 24965}, // __builtin_HEXAGON_S2_lsl_r_r_nac
-+      {Intrinsic::hexagon_S2_lsl_r_r_or, 24998}, // __builtin_HEXAGON_S2_lsl_r_r_or
-+      {Intrinsic::hexagon_S2_lsl_r_vh, 25030}, // __builtin_HEXAGON_S2_lsl_r_vh
-+      {Intrinsic::hexagon_S2_lsl_r_vw, 25060}, // __builtin_HEXAGON_S2_lsl_r_vw
-+      {Intrinsic::hexagon_S2_lsr_i_p, 25090}, // __builtin_HEXAGON_S2_lsr_i_p
-+      {Intrinsic::hexagon_S2_lsr_i_p_acc, 25119}, // __builtin_HEXAGON_S2_lsr_i_p_acc
-+      {Intrinsic::hexagon_S2_lsr_i_p_and, 25152}, // __builtin_HEXAGON_S2_lsr_i_p_and
-+      {Intrinsic::hexagon_S2_lsr_i_p_nac, 25185}, // __builtin_HEXAGON_S2_lsr_i_p_nac
-+      {Intrinsic::hexagon_S2_lsr_i_p_or, 25218}, // __builtin_HEXAGON_S2_lsr_i_p_or
-+      {Intrinsic::hexagon_S2_lsr_i_p_xacc, 25250}, // __builtin_HEXAGON_S2_lsr_i_p_xacc
-+      {Intrinsic::hexagon_S2_lsr_i_r, 25284}, // __builtin_HEXAGON_S2_lsr_i_r
-+      {Intrinsic::hexagon_S2_lsr_i_r_acc, 25313}, // __builtin_HEXAGON_S2_lsr_i_r_acc
-+      {Intrinsic::hexagon_S2_lsr_i_r_and, 25346}, // __builtin_HEXAGON_S2_lsr_i_r_and
-+      {Intrinsic::hexagon_S2_lsr_i_r_nac, 25379}, // __builtin_HEXAGON_S2_lsr_i_r_nac
-+      {Intrinsic::hexagon_S2_lsr_i_r_or, 25412}, // __builtin_HEXAGON_S2_lsr_i_r_or
-+      {Intrinsic::hexagon_S2_lsr_i_r_xacc, 25444}, // __builtin_HEXAGON_S2_lsr_i_r_xacc
-+      {Intrinsic::hexagon_S2_lsr_i_vh, 25478}, // __builtin_HEXAGON_S2_lsr_i_vh
-+      {Intrinsic::hexagon_S2_lsr_i_vw, 25508}, // __builtin_HEXAGON_S2_lsr_i_vw
-+      {Intrinsic::hexagon_S2_lsr_r_p, 25538}, // __builtin_HEXAGON_S2_lsr_r_p
-+      {Intrinsic::hexagon_S2_lsr_r_p_acc, 25567}, // __builtin_HEXAGON_S2_lsr_r_p_acc
-+      {Intrinsic::hexagon_S2_lsr_r_p_and, 25600}, // __builtin_HEXAGON_S2_lsr_r_p_and
-+      {Intrinsic::hexagon_S2_lsr_r_p_nac, 25633}, // __builtin_HEXAGON_S2_lsr_r_p_nac
-+      {Intrinsic::hexagon_S2_lsr_r_p_or, 25666}, // __builtin_HEXAGON_S2_lsr_r_p_or
-+      {Intrinsic::hexagon_S2_lsr_r_p_xor, 25698}, // __builtin_HEXAGON_S2_lsr_r_p_xor
-+      {Intrinsic::hexagon_S2_lsr_r_r, 25731}, // __builtin_HEXAGON_S2_lsr_r_r
-+      {Intrinsic::hexagon_S2_lsr_r_r_acc, 25760}, // __builtin_HEXAGON_S2_lsr_r_r_acc
-+      {Intrinsic::hexagon_S2_lsr_r_r_and, 25793}, // __builtin_HEXAGON_S2_lsr_r_r_and
-+      {Intrinsic::hexagon_S2_lsr_r_r_nac, 25826}, // __builtin_HEXAGON_S2_lsr_r_r_nac
-+      {Intrinsic::hexagon_S2_lsr_r_r_or, 25859}, // __builtin_HEXAGON_S2_lsr_r_r_or
-+      {Intrinsic::hexagon_S2_lsr_r_vh, 25891}, // __builtin_HEXAGON_S2_lsr_r_vh
-+      {Intrinsic::hexagon_S2_lsr_r_vw, 25921}, // __builtin_HEXAGON_S2_lsr_r_vw
-+      {Intrinsic::hexagon_S2_packhl, 25951}, // __builtin_HEXAGON_S2_packhl
-+      {Intrinsic::hexagon_S2_parityp, 25979}, // __builtin_HEXAGON_S2_parityp
-+      {Intrinsic::hexagon_S2_setbit_i, 26008}, // __builtin_HEXAGON_S2_setbit_i
-+      {Intrinsic::hexagon_S2_setbit_r, 26038}, // __builtin_HEXAGON_S2_setbit_r
-+      {Intrinsic::hexagon_S2_shuffeb, 26068}, // __builtin_HEXAGON_S2_shuffeb
-+      {Intrinsic::hexagon_S2_shuffeh, 26097}, // __builtin_HEXAGON_S2_shuffeh
-+      {Intrinsic::hexagon_S2_shuffob, 26126}, // __builtin_HEXAGON_S2_shuffob
-+      {Intrinsic::hexagon_S2_shuffoh, 26155}, // __builtin_HEXAGON_S2_shuffoh
-+      {Intrinsic::hexagon_S2_storew_locked, 26184}, // __builtin_HEXAGON_S2_storew_locked
-+      {Intrinsic::hexagon_S2_svsathb, 26219}, // __builtin_HEXAGON_S2_svsathb
-+      {Intrinsic::hexagon_S2_svsathub, 26248}, // __builtin_HEXAGON_S2_svsathub
-+      {Intrinsic::hexagon_S2_tableidxb_goodsyntax, 26278}, // __builtin_HEXAGON_S2_tableidxb_goodsyntax
-+      {Intrinsic::hexagon_S2_tableidxd_goodsyntax, 26320}, // __builtin_HEXAGON_S2_tableidxd_goodsyntax
-+      {Intrinsic::hexagon_S2_tableidxh_goodsyntax, 26362}, // __builtin_HEXAGON_S2_tableidxh_goodsyntax
-+      {Intrinsic::hexagon_S2_tableidxw_goodsyntax, 26404}, // __builtin_HEXAGON_S2_tableidxw_goodsyntax
-+      {Intrinsic::hexagon_S2_togglebit_i, 26446}, // __builtin_HEXAGON_S2_togglebit_i
-+      {Intrinsic::hexagon_S2_togglebit_r, 26479}, // __builtin_HEXAGON_S2_togglebit_r
-+      {Intrinsic::hexagon_S2_tstbit_i, 26512}, // __builtin_HEXAGON_S2_tstbit_i
-+      {Intrinsic::hexagon_S2_tstbit_r, 26542}, // __builtin_HEXAGON_S2_tstbit_r
-+      {Intrinsic::hexagon_S2_valignib, 26572}, // __builtin_HEXAGON_S2_valignib
-+      {Intrinsic::hexagon_S2_valignrb, 26602}, // __builtin_HEXAGON_S2_valignrb
-+      {Intrinsic::hexagon_S2_vcnegh, 26632}, // __builtin_HEXAGON_S2_vcnegh
-+      {Intrinsic::hexagon_S2_vcrotate, 26660}, // __builtin_HEXAGON_S2_vcrotate
-+      {Intrinsic::hexagon_S2_vrcnegh, 26690}, // __builtin_HEXAGON_S2_vrcnegh
-+      {Intrinsic::hexagon_S2_vrndpackwh, 26719}, // __builtin_HEXAGON_S2_vrndpackwh
-+      {Intrinsic::hexagon_S2_vrndpackwhs, 26751}, // __builtin_HEXAGON_S2_vrndpackwhs
-+      {Intrinsic::hexagon_S2_vsathb, 26784}, // __builtin_HEXAGON_S2_vsathb
-+      {Intrinsic::hexagon_S2_vsathb_nopack, 26812}, // __builtin_HEXAGON_S2_vsathb_nopack
-+      {Intrinsic::hexagon_S2_vsathub, 26847}, // __builtin_HEXAGON_S2_vsathub
-+      {Intrinsic::hexagon_S2_vsathub_nopack, 26876}, // __builtin_HEXAGON_S2_vsathub_nopack
-+      {Intrinsic::hexagon_S2_vsatwh, 26912}, // __builtin_HEXAGON_S2_vsatwh
-+      {Intrinsic::hexagon_S2_vsatwh_nopack, 26940}, // __builtin_HEXAGON_S2_vsatwh_nopack
-+      {Intrinsic::hexagon_S2_vsatwuh, 26975}, // __builtin_HEXAGON_S2_vsatwuh
-+      {Intrinsic::hexagon_S2_vsatwuh_nopack, 27004}, // __builtin_HEXAGON_S2_vsatwuh_nopack
-+      {Intrinsic::hexagon_S2_vsplatrb, 27040}, // __builtin_HEXAGON_S2_vsplatrb
-+      {Intrinsic::hexagon_S2_vsplatrh, 27070}, // __builtin_HEXAGON_S2_vsplatrh
-+      {Intrinsic::hexagon_S2_vspliceib, 27100}, // __builtin_HEXAGON_S2_vspliceib
-+      {Intrinsic::hexagon_S2_vsplicerb, 27131}, // __builtin_HEXAGON_S2_vsplicerb
-+      {Intrinsic::hexagon_S2_vsxtbh, 27162}, // __builtin_HEXAGON_S2_vsxtbh
-+      {Intrinsic::hexagon_S2_vsxthw, 27190}, // __builtin_HEXAGON_S2_vsxthw
-+      {Intrinsic::hexagon_S2_vtrunehb, 27218}, // __builtin_HEXAGON_S2_vtrunehb
-+      {Intrinsic::hexagon_S2_vtrunewh, 27248}, // __builtin_HEXAGON_S2_vtrunewh
-+      {Intrinsic::hexagon_S2_vtrunohb, 27278}, // __builtin_HEXAGON_S2_vtrunohb
-+      {Intrinsic::hexagon_S2_vtrunowh, 27308}, // __builtin_HEXAGON_S2_vtrunowh
-+      {Intrinsic::hexagon_S2_vzxtbh, 27338}, // __builtin_HEXAGON_S2_vzxtbh
-+      {Intrinsic::hexagon_S2_vzxthw, 27366}, // __builtin_HEXAGON_S2_vzxthw
-+      {Intrinsic::hexagon_S4_addaddi, 27394}, // __builtin_HEXAGON_S4_addaddi
-+      {Intrinsic::hexagon_S4_addi_asl_ri, 27423}, // __builtin_HEXAGON_S4_addi_asl_ri
-+      {Intrinsic::hexagon_S4_addi_lsr_ri, 27456}, // __builtin_HEXAGON_S4_addi_lsr_ri
-+      {Intrinsic::hexagon_S4_andi_asl_ri, 27489}, // __builtin_HEXAGON_S4_andi_asl_ri
-+      {Intrinsic::hexagon_S4_andi_lsr_ri, 27522}, // __builtin_HEXAGON_S4_andi_lsr_ri
-+      {Intrinsic::hexagon_S4_clbaddi, 27555}, // __builtin_HEXAGON_S4_clbaddi
-+      {Intrinsic::hexagon_S4_clbpaddi, 27584}, // __builtin_HEXAGON_S4_clbpaddi
-+      {Intrinsic::hexagon_S4_clbpnorm, 27614}, // __builtin_HEXAGON_S4_clbpnorm
-+      {Intrinsic::hexagon_S4_extract, 27644}, // __builtin_HEXAGON_S4_extract
-+      {Intrinsic::hexagon_S4_extract_rp, 27673}, // __builtin_HEXAGON_S4_extract_rp
-+      {Intrinsic::hexagon_S4_extractp, 27705}, // __builtin_HEXAGON_S4_extractp
-+      {Intrinsic::hexagon_S4_extractp_rp, 27735}, // __builtin_HEXAGON_S4_extractp_rp
-+      {Intrinsic::hexagon_S4_lsli, 27768}, // __builtin_HEXAGON_S4_lsli
-+      {Intrinsic::hexagon_S4_ntstbit_i, 27794}, // __builtin_HEXAGON_S4_ntstbit_i
-+      {Intrinsic::hexagon_S4_ntstbit_r, 27825}, // __builtin_HEXAGON_S4_ntstbit_r
-+      {Intrinsic::hexagon_S4_or_andi, 27856}, // __builtin_HEXAGON_S4_or_andi
-+      {Intrinsic::hexagon_S4_or_andix, 27885}, // __builtin_HEXAGON_S4_or_andix
-+      {Intrinsic::hexagon_S4_or_ori, 27915}, // __builtin_HEXAGON_S4_or_ori
-+      {Intrinsic::hexagon_S4_ori_asl_ri, 27943}, // __builtin_HEXAGON_S4_ori_asl_ri
-+      {Intrinsic::hexagon_S4_ori_lsr_ri, 27975}, // __builtin_HEXAGON_S4_ori_lsr_ri
-+      {Intrinsic::hexagon_S4_parity, 28007}, // __builtin_HEXAGON_S4_parity
-+      {Intrinsic::hexagon_S4_stored_locked, 28035}, // __builtin_HEXAGON_S4_stored_locked
-+      {Intrinsic::hexagon_S4_subaddi, 28070}, // __builtin_HEXAGON_S4_subaddi
-+      {Intrinsic::hexagon_S4_subi_asl_ri, 28099}, // __builtin_HEXAGON_S4_subi_asl_ri
-+      {Intrinsic::hexagon_S4_subi_lsr_ri, 28132}, // __builtin_HEXAGON_S4_subi_lsr_ri
-+      {Intrinsic::hexagon_S4_vrcrotate, 28165}, // __builtin_HEXAGON_S4_vrcrotate
-+      {Intrinsic::hexagon_S4_vrcrotate_acc, 28196}, // __builtin_HEXAGON_S4_vrcrotate_acc
-+      {Intrinsic::hexagon_S4_vxaddsubh, 28231}, // __builtin_HEXAGON_S4_vxaddsubh
-+      {Intrinsic::hexagon_S4_vxaddsubhr, 28262}, // __builtin_HEXAGON_S4_vxaddsubhr
-+      {Intrinsic::hexagon_S4_vxaddsubw, 28294}, // __builtin_HEXAGON_S4_vxaddsubw
-+      {Intrinsic::hexagon_S4_vxsubaddh, 28325}, // __builtin_HEXAGON_S4_vxsubaddh
-+      {Intrinsic::hexagon_S4_vxsubaddhr, 28356}, // __builtin_HEXAGON_S4_vxsubaddhr
-+      {Intrinsic::hexagon_S4_vxsubaddw, 28388}, // __builtin_HEXAGON_S4_vxsubaddw
-+      {Intrinsic::hexagon_S5_asrhub_rnd_sat_goodsyntax, 28419}, // __builtin_HEXAGON_S5_asrhub_rnd_sat_goodsyntax
-+      {Intrinsic::hexagon_S5_asrhub_sat, 28466}, // __builtin_HEXAGON_S5_asrhub_sat
-+      {Intrinsic::hexagon_S5_popcountp, 28498}, // __builtin_HEXAGON_S5_popcountp
-+      {Intrinsic::hexagon_S5_vasrhrnd_goodsyntax, 28529}, // __builtin_HEXAGON_S5_vasrhrnd_goodsyntax
-+      {Intrinsic::hexagon_S6_rol_i_p, 28570}, // __builtin_HEXAGON_S6_rol_i_p
-+      {Intrinsic::hexagon_S6_rol_i_p_acc, 28599}, // __builtin_HEXAGON_S6_rol_i_p_acc
-+      {Intrinsic::hexagon_S6_rol_i_p_and, 28632}, // __builtin_HEXAGON_S6_rol_i_p_and
-+      {Intrinsic::hexagon_S6_rol_i_p_nac, 28665}, // __builtin_HEXAGON_S6_rol_i_p_nac
-+      {Intrinsic::hexagon_S6_rol_i_p_or, 28698}, // __builtin_HEXAGON_S6_rol_i_p_or
-+      {Intrinsic::hexagon_S6_rol_i_p_xacc, 28730}, // __builtin_HEXAGON_S6_rol_i_p_xacc
-+      {Intrinsic::hexagon_S6_rol_i_r, 28764}, // __builtin_HEXAGON_S6_rol_i_r
-+      {Intrinsic::hexagon_S6_rol_i_r_acc, 28793}, // __builtin_HEXAGON_S6_rol_i_r_acc
-+      {Intrinsic::hexagon_S6_rol_i_r_and, 28826}, // __builtin_HEXAGON_S6_rol_i_r_and
-+      {Intrinsic::hexagon_S6_rol_i_r_nac, 28859}, // __builtin_HEXAGON_S6_rol_i_r_nac
-+      {Intrinsic::hexagon_S6_rol_i_r_or, 28892}, // __builtin_HEXAGON_S6_rol_i_r_or
-+      {Intrinsic::hexagon_S6_rol_i_r_xacc, 28924}, // __builtin_HEXAGON_S6_rol_i_r_xacc
-+      {Intrinsic::hexagon_S6_vsplatrbp, 28958}, // __builtin_HEXAGON_S6_vsplatrbp
-+      {Intrinsic::hexagon_S6_vtrunehb_ppp, 28989}, // __builtin_HEXAGON_S6_vtrunehb_ppp
-+      {Intrinsic::hexagon_S6_vtrunohb_ppp, 29023}, // __builtin_HEXAGON_S6_vtrunohb_ppp
-+      {Intrinsic::hexagon_V6_extractw, 29084}, // __builtin_HEXAGON_V6_extractw
-+      {Intrinsic::hexagon_V6_extractw_128B, 29114}, // __builtin_HEXAGON_V6_extractw_128B
-+      {Intrinsic::hexagon_V6_hi, 29149}, // __builtin_HEXAGON_V6_hi
-+      {Intrinsic::hexagon_V6_hi_128B, 29173}, // __builtin_HEXAGON_V6_hi_128B
-+      {Intrinsic::hexagon_V6_lo, 29202}, // __builtin_HEXAGON_V6_lo
-+      {Intrinsic::hexagon_V6_lo_128B, 29226}, // __builtin_HEXAGON_V6_lo_128B
-+      {Intrinsic::hexagon_V6_lvsplatw, 29255}, // __builtin_HEXAGON_V6_lvsplatw
-+      {Intrinsic::hexagon_V6_lvsplatw_128B, 29285}, // __builtin_HEXAGON_V6_lvsplatw_128B
-+      {Intrinsic::hexagon_V6_pred_and, 29320}, // __builtin_HEXAGON_V6_pred_and
-+      {Intrinsic::hexagon_V6_pred_and_128B, 29350}, // __builtin_HEXAGON_V6_pred_and_128B
-+      {Intrinsic::hexagon_V6_pred_and_n, 29385}, // __builtin_HEXAGON_V6_pred_and_n
-+      {Intrinsic::hexagon_V6_pred_and_n_128B, 29417}, // __builtin_HEXAGON_V6_pred_and_n_128B
-+      {Intrinsic::hexagon_V6_pred_not, 29454}, // __builtin_HEXAGON_V6_pred_not
-+      {Intrinsic::hexagon_V6_pred_not_128B, 29484}, // __builtin_HEXAGON_V6_pred_not_128B
-+      {Intrinsic::hexagon_V6_pred_or, 29519}, // __builtin_HEXAGON_V6_pred_or
-+      {Intrinsic::hexagon_V6_pred_or_128B, 29548}, // __builtin_HEXAGON_V6_pred_or_128B
-+      {Intrinsic::hexagon_V6_pred_or_n, 29582}, // __builtin_HEXAGON_V6_pred_or_n
-+      {Intrinsic::hexagon_V6_pred_or_n_128B, 29613}, // __builtin_HEXAGON_V6_pred_or_n_128B
-+      {Intrinsic::hexagon_V6_pred_scalar2, 29649}, // __builtin_HEXAGON_V6_pred_scalar2
-+      {Intrinsic::hexagon_V6_pred_scalar2_128B, 29683}, // __builtin_HEXAGON_V6_pred_scalar2_128B
-+      {Intrinsic::hexagon_V6_pred_xor, 29722}, // __builtin_HEXAGON_V6_pred_xor
-+      {Intrinsic::hexagon_V6_pred_xor_128B, 29752}, // __builtin_HEXAGON_V6_pred_xor_128B
-+      {Intrinsic::hexagon_V6_vabsdiffh, 29787}, // __builtin_HEXAGON_V6_vabsdiffh
-+      {Intrinsic::hexagon_V6_vabsdiffh_128B, 29818}, // __builtin_HEXAGON_V6_vabsdiffh_128B
-+      {Intrinsic::hexagon_V6_vabsdiffub, 29854}, // __builtin_HEXAGON_V6_vabsdiffub
-+      {Intrinsic::hexagon_V6_vabsdiffub_128B, 29886}, // __builtin_HEXAGON_V6_vabsdiffub_128B
-+      {Intrinsic::hexagon_V6_vabsdiffuh, 29923}, // __builtin_HEXAGON_V6_vabsdiffuh
-+      {Intrinsic::hexagon_V6_vabsdiffuh_128B, 29955}, // __builtin_HEXAGON_V6_vabsdiffuh_128B
-+      {Intrinsic::hexagon_V6_vabsdiffw, 29992}, // __builtin_HEXAGON_V6_vabsdiffw
-+      {Intrinsic::hexagon_V6_vabsdiffw_128B, 30023}, // __builtin_HEXAGON_V6_vabsdiffw_128B
-+      {Intrinsic::hexagon_V6_vabsh, 30059}, // __builtin_HEXAGON_V6_vabsh
-+      {Intrinsic::hexagon_V6_vabsh_128B, 30086}, // __builtin_HEXAGON_V6_vabsh_128B
-+      {Intrinsic::hexagon_V6_vabsh_sat, 30118}, // __builtin_HEXAGON_V6_vabsh_sat
-+      {Intrinsic::hexagon_V6_vabsh_sat_128B, 30149}, // __builtin_HEXAGON_V6_vabsh_sat_128B
-+      {Intrinsic::hexagon_V6_vabsw, 30185}, // __builtin_HEXAGON_V6_vabsw
-+      {Intrinsic::hexagon_V6_vabsw_128B, 30212}, // __builtin_HEXAGON_V6_vabsw_128B
-+      {Intrinsic::hexagon_V6_vabsw_sat, 30244}, // __builtin_HEXAGON_V6_vabsw_sat
-+      {Intrinsic::hexagon_V6_vabsw_sat_128B, 30275}, // __builtin_HEXAGON_V6_vabsw_sat_128B
-+      {Intrinsic::hexagon_V6_vaddb, 30311}, // __builtin_HEXAGON_V6_vaddb
-+      {Intrinsic::hexagon_V6_vaddb_128B, 30338}, // __builtin_HEXAGON_V6_vaddb_128B
-+      {Intrinsic::hexagon_V6_vaddb_dv, 30370}, // __builtin_HEXAGON_V6_vaddb_dv
-+      {Intrinsic::hexagon_V6_vaddb_dv_128B, 30400}, // __builtin_HEXAGON_V6_vaddb_dv_128B
-+      {Intrinsic::hexagon_V6_vaddbnq, 30435}, // __builtin_HEXAGON_V6_vaddbnq
-+      {Intrinsic::hexagon_V6_vaddbnq_128B, 30464}, // __builtin_HEXAGON_V6_vaddbnq_128B
-+      {Intrinsic::hexagon_V6_vaddbq, 30498}, // __builtin_HEXAGON_V6_vaddbq
-+      {Intrinsic::hexagon_V6_vaddbq_128B, 30526}, // __builtin_HEXAGON_V6_vaddbq_128B
-+      {Intrinsic::hexagon_V6_vaddh, 30559}, // __builtin_HEXAGON_V6_vaddh
-+      {Intrinsic::hexagon_V6_vaddh_128B, 30586}, // __builtin_HEXAGON_V6_vaddh_128B
-+      {Intrinsic::hexagon_V6_vaddh_dv, 30618}, // __builtin_HEXAGON_V6_vaddh_dv
-+      {Intrinsic::hexagon_V6_vaddh_dv_128B, 30648}, // __builtin_HEXAGON_V6_vaddh_dv_128B
-+      {Intrinsic::hexagon_V6_vaddhnq, 30683}, // __builtin_HEXAGON_V6_vaddhnq
-+      {Intrinsic::hexagon_V6_vaddhnq_128B, 30712}, // __builtin_HEXAGON_V6_vaddhnq_128B
-+      {Intrinsic::hexagon_V6_vaddhq, 30746}, // __builtin_HEXAGON_V6_vaddhq
-+      {Intrinsic::hexagon_V6_vaddhq_128B, 30774}, // __builtin_HEXAGON_V6_vaddhq_128B
-+      {Intrinsic::hexagon_V6_vaddhsat, 30807}, // __builtin_HEXAGON_V6_vaddhsat
-+      {Intrinsic::hexagon_V6_vaddhsat_128B, 30837}, // __builtin_HEXAGON_V6_vaddhsat_128B
-+      {Intrinsic::hexagon_V6_vaddhsat_dv, 30872}, // __builtin_HEXAGON_V6_vaddhsat_dv
-+      {Intrinsic::hexagon_V6_vaddhsat_dv_128B, 30905}, // __builtin_HEXAGON_V6_vaddhsat_dv_128B
-+      {Intrinsic::hexagon_V6_vaddhw, 30943}, // __builtin_HEXAGON_V6_vaddhw
-+      {Intrinsic::hexagon_V6_vaddhw_128B, 30971}, // __builtin_HEXAGON_V6_vaddhw_128B
-+      {Intrinsic::hexagon_V6_vaddubh, 31004}, // __builtin_HEXAGON_V6_vaddubh
-+      {Intrinsic::hexagon_V6_vaddubh_128B, 31033}, // __builtin_HEXAGON_V6_vaddubh_128B
-+      {Intrinsic::hexagon_V6_vaddubsat, 31067}, // __builtin_HEXAGON_V6_vaddubsat
-+      {Intrinsic::hexagon_V6_vaddubsat_128B, 31098}, // __builtin_HEXAGON_V6_vaddubsat_128B
-+      {Intrinsic::hexagon_V6_vaddubsat_dv, 31134}, // __builtin_HEXAGON_V6_vaddubsat_dv
-+      {Intrinsic::hexagon_V6_vaddubsat_dv_128B, 31168}, // __builtin_HEXAGON_V6_vaddubsat_dv_128B
-+      {Intrinsic::hexagon_V6_vadduhsat, 31207}, // __builtin_HEXAGON_V6_vadduhsat
-+      {Intrinsic::hexagon_V6_vadduhsat_128B, 31238}, // __builtin_HEXAGON_V6_vadduhsat_128B
-+      {Intrinsic::hexagon_V6_vadduhsat_dv, 31274}, // __builtin_HEXAGON_V6_vadduhsat_dv
-+      {Intrinsic::hexagon_V6_vadduhsat_dv_128B, 31308}, // __builtin_HEXAGON_V6_vadduhsat_dv_128B
-+      {Intrinsic::hexagon_V6_vadduhw, 31347}, // __builtin_HEXAGON_V6_vadduhw
-+      {Intrinsic::hexagon_V6_vadduhw_128B, 31376}, // __builtin_HEXAGON_V6_vadduhw_128B
-+      {Intrinsic::hexagon_V6_vaddw, 31410}, // __builtin_HEXAGON_V6_vaddw
-+      {Intrinsic::hexagon_V6_vaddw_128B, 31437}, // __builtin_HEXAGON_V6_vaddw_128B
-+      {Intrinsic::hexagon_V6_vaddw_dv, 31469}, // __builtin_HEXAGON_V6_vaddw_dv
-+      {Intrinsic::hexagon_V6_vaddw_dv_128B, 31499}, // __builtin_HEXAGON_V6_vaddw_dv_128B
-+      {Intrinsic::hexagon_V6_vaddwnq, 31534}, // __builtin_HEXAGON_V6_vaddwnq
-+      {Intrinsic::hexagon_V6_vaddwnq_128B, 31563}, // __builtin_HEXAGON_V6_vaddwnq_128B
-+      {Intrinsic::hexagon_V6_vaddwq, 31597}, // __builtin_HEXAGON_V6_vaddwq
-+      {Intrinsic::hexagon_V6_vaddwq_128B, 31625}, // __builtin_HEXAGON_V6_vaddwq_128B
-+      {Intrinsic::hexagon_V6_vaddwsat, 31658}, // __builtin_HEXAGON_V6_vaddwsat
-+      {Intrinsic::hexagon_V6_vaddwsat_128B, 31688}, // __builtin_HEXAGON_V6_vaddwsat_128B
-+      {Intrinsic::hexagon_V6_vaddwsat_dv, 31723}, // __builtin_HEXAGON_V6_vaddwsat_dv
-+      {Intrinsic::hexagon_V6_vaddwsat_dv_128B, 31756}, // __builtin_HEXAGON_V6_vaddwsat_dv_128B
-+      {Intrinsic::hexagon_V6_valignb, 31794}, // __builtin_HEXAGON_V6_valignb
-+      {Intrinsic::hexagon_V6_valignb_128B, 31823}, // __builtin_HEXAGON_V6_valignb_128B
-+      {Intrinsic::hexagon_V6_valignbi, 31857}, // __builtin_HEXAGON_V6_valignbi
-+      {Intrinsic::hexagon_V6_valignbi_128B, 31887}, // __builtin_HEXAGON_V6_valignbi_128B
-+      {Intrinsic::hexagon_V6_vand, 31922}, // __builtin_HEXAGON_V6_vand
-+      {Intrinsic::hexagon_V6_vand_128B, 31948}, // __builtin_HEXAGON_V6_vand_128B
-+      {Intrinsic::hexagon_V6_vandqrt, 31979}, // __builtin_HEXAGON_V6_vandqrt
-+      {Intrinsic::hexagon_V6_vandqrt_128B, 32008}, // __builtin_HEXAGON_V6_vandqrt_128B
-+      {Intrinsic::hexagon_V6_vandqrt_acc, 32042}, // __builtin_HEXAGON_V6_vandqrt_acc
-+      {Intrinsic::hexagon_V6_vandqrt_acc_128B, 32075}, // __builtin_HEXAGON_V6_vandqrt_acc_128B
-+      {Intrinsic::hexagon_V6_vandvrt, 32113}, // __builtin_HEXAGON_V6_vandvrt
-+      {Intrinsic::hexagon_V6_vandvrt_128B, 32142}, // __builtin_HEXAGON_V6_vandvrt_128B
-+      {Intrinsic::hexagon_V6_vandvrt_acc, 32176}, // __builtin_HEXAGON_V6_vandvrt_acc
-+      {Intrinsic::hexagon_V6_vandvrt_acc_128B, 32209}, // __builtin_HEXAGON_V6_vandvrt_acc_128B
-+      {Intrinsic::hexagon_V6_vaslh, 32247}, // __builtin_HEXAGON_V6_vaslh
-+      {Intrinsic::hexagon_V6_vaslh_128B, 32274}, // __builtin_HEXAGON_V6_vaslh_128B
-+      {Intrinsic::hexagon_V6_vaslhv, 32306}, // __builtin_HEXAGON_V6_vaslhv
-+      {Intrinsic::hexagon_V6_vaslhv_128B, 32334}, // __builtin_HEXAGON_V6_vaslhv_128B
-+      {Intrinsic::hexagon_V6_vaslw, 32367}, // __builtin_HEXAGON_V6_vaslw
-+      {Intrinsic::hexagon_V6_vaslw_128B, 32394}, // __builtin_HEXAGON_V6_vaslw_128B
-+      {Intrinsic::hexagon_V6_vaslw_acc, 32426}, // __builtin_HEXAGON_V6_vaslw_acc
-+      {Intrinsic::hexagon_V6_vaslw_acc_128B, 32457}, // __builtin_HEXAGON_V6_vaslw_acc_128B
-+      {Intrinsic::hexagon_V6_vaslwv, 32493}, // __builtin_HEXAGON_V6_vaslwv
-+      {Intrinsic::hexagon_V6_vaslwv_128B, 32521}, // __builtin_HEXAGON_V6_vaslwv_128B
-+      {Intrinsic::hexagon_V6_vasrh, 32554}, // __builtin_HEXAGON_V6_vasrh
-+      {Intrinsic::hexagon_V6_vasrh_128B, 32581}, // __builtin_HEXAGON_V6_vasrh_128B
-+      {Intrinsic::hexagon_V6_vasrhbrndsat, 32613}, // __builtin_HEXAGON_V6_vasrhbrndsat
-+      {Intrinsic::hexagon_V6_vasrhbrndsat_128B, 32647}, // __builtin_HEXAGON_V6_vasrhbrndsat_128B
-+      {Intrinsic::hexagon_V6_vasrhubrndsat, 32686}, // __builtin_HEXAGON_V6_vasrhubrndsat
-+      {Intrinsic::hexagon_V6_vasrhubrndsat_128B, 32721}, // __builtin_HEXAGON_V6_vasrhubrndsat_128B
-+      {Intrinsic::hexagon_V6_vasrhubsat, 32761}, // __builtin_HEXAGON_V6_vasrhubsat
-+      {Intrinsic::hexagon_V6_vasrhubsat_128B, 32793}, // __builtin_HEXAGON_V6_vasrhubsat_128B
-+      {Intrinsic::hexagon_V6_vasrhv, 32830}, // __builtin_HEXAGON_V6_vasrhv
-+      {Intrinsic::hexagon_V6_vasrhv_128B, 32858}, // __builtin_HEXAGON_V6_vasrhv_128B
-+      {Intrinsic::hexagon_V6_vasrw, 32891}, // __builtin_HEXAGON_V6_vasrw
-+      {Intrinsic::hexagon_V6_vasrw_128B, 32918}, // __builtin_HEXAGON_V6_vasrw_128B
-+      {Intrinsic::hexagon_V6_vasrw_acc, 32950}, // __builtin_HEXAGON_V6_vasrw_acc
-+      {Intrinsic::hexagon_V6_vasrw_acc_128B, 32981}, // __builtin_HEXAGON_V6_vasrw_acc_128B
-+      {Intrinsic::hexagon_V6_vasrwh, 33017}, // __builtin_HEXAGON_V6_vasrwh
-+      {Intrinsic::hexagon_V6_vasrwh_128B, 33045}, // __builtin_HEXAGON_V6_vasrwh_128B
-+      {Intrinsic::hexagon_V6_vasrwhrndsat, 33078}, // __builtin_HEXAGON_V6_vasrwhrndsat
-+      {Intrinsic::hexagon_V6_vasrwhrndsat_128B, 33112}, // __builtin_HEXAGON_V6_vasrwhrndsat_128B
-+      {Intrinsic::hexagon_V6_vasrwhsat, 33151}, // __builtin_HEXAGON_V6_vasrwhsat
-+      {Intrinsic::hexagon_V6_vasrwhsat_128B, 33182}, // __builtin_HEXAGON_V6_vasrwhsat_128B
-+      {Intrinsic::hexagon_V6_vasrwuhsat, 33218}, // __builtin_HEXAGON_V6_vasrwuhsat
-+      {Intrinsic::hexagon_V6_vasrwuhsat_128B, 33250}, // __builtin_HEXAGON_V6_vasrwuhsat_128B
-+      {Intrinsic::hexagon_V6_vasrwv, 33287}, // __builtin_HEXAGON_V6_vasrwv
-+      {Intrinsic::hexagon_V6_vasrwv_128B, 33315}, // __builtin_HEXAGON_V6_vasrwv_128B
-+      {Intrinsic::hexagon_V6_vassign, 33348}, // __builtin_HEXAGON_V6_vassign
-+      {Intrinsic::hexagon_V6_vassign_128B, 33377}, // __builtin_HEXAGON_V6_vassign_128B
-+      {Intrinsic::hexagon_V6_vassignp, 33411}, // __builtin_HEXAGON_V6_vassignp
-+      {Intrinsic::hexagon_V6_vassignp_128B, 33441}, // __builtin_HEXAGON_V6_vassignp_128B
-+      {Intrinsic::hexagon_V6_vavgh, 33476}, // __builtin_HEXAGON_V6_vavgh
-+      {Intrinsic::hexagon_V6_vavgh_128B, 33503}, // __builtin_HEXAGON_V6_vavgh_128B
-+      {Intrinsic::hexagon_V6_vavghrnd, 33535}, // __builtin_HEXAGON_V6_vavghrnd
-+      {Intrinsic::hexagon_V6_vavghrnd_128B, 33565}, // __builtin_HEXAGON_V6_vavghrnd_128B
-+      {Intrinsic::hexagon_V6_vavgub, 33600}, // __builtin_HEXAGON_V6_vavgub
-+      {Intrinsic::hexagon_V6_vavgub_128B, 33628}, // __builtin_HEXAGON_V6_vavgub_128B
-+      {Intrinsic::hexagon_V6_vavgubrnd, 33661}, // __builtin_HEXAGON_V6_vavgubrnd
-+      {Intrinsic::hexagon_V6_vavgubrnd_128B, 33692}, // __builtin_HEXAGON_V6_vavgubrnd_128B
-+      {Intrinsic::hexagon_V6_vavguh, 33728}, // __builtin_HEXAGON_V6_vavguh
-+      {Intrinsic::hexagon_V6_vavguh_128B, 33756}, // __builtin_HEXAGON_V6_vavguh_128B
-+      {Intrinsic::hexagon_V6_vavguhrnd, 33789}, // __builtin_HEXAGON_V6_vavguhrnd
-+      {Intrinsic::hexagon_V6_vavguhrnd_128B, 33820}, // __builtin_HEXAGON_V6_vavguhrnd_128B
-+      {Intrinsic::hexagon_V6_vavgw, 33856}, // __builtin_HEXAGON_V6_vavgw
-+      {Intrinsic::hexagon_V6_vavgw_128B, 33883}, // __builtin_HEXAGON_V6_vavgw_128B
-+      {Intrinsic::hexagon_V6_vavgwrnd, 33915}, // __builtin_HEXAGON_V6_vavgwrnd
-+      {Intrinsic::hexagon_V6_vavgwrnd_128B, 33945}, // __builtin_HEXAGON_V6_vavgwrnd_128B
-+      {Intrinsic::hexagon_V6_vcl0h, 33980}, // __builtin_HEXAGON_V6_vcl0h
-+      {Intrinsic::hexagon_V6_vcl0h_128B, 34007}, // __builtin_HEXAGON_V6_vcl0h_128B
-+      {Intrinsic::hexagon_V6_vcl0w, 34039}, // __builtin_HEXAGON_V6_vcl0w
-+      {Intrinsic::hexagon_V6_vcl0w_128B, 34066}, // __builtin_HEXAGON_V6_vcl0w_128B
-+      {Intrinsic::hexagon_V6_vcombine, 34098}, // __builtin_HEXAGON_V6_vcombine
-+      {Intrinsic::hexagon_V6_vcombine_128B, 34128}, // __builtin_HEXAGON_V6_vcombine_128B
-+      {Intrinsic::hexagon_V6_vd0, 34163}, // __builtin_HEXAGON_V6_vd0
-+      {Intrinsic::hexagon_V6_vd0_128B, 34188}, // __builtin_HEXAGON_V6_vd0_128B
-+      {Intrinsic::hexagon_V6_vdealb, 34218}, // __builtin_HEXAGON_V6_vdealb
-+      {Intrinsic::hexagon_V6_vdealb4w, 34279}, // __builtin_HEXAGON_V6_vdealb4w
-+      {Intrinsic::hexagon_V6_vdealb4w_128B, 34309}, // __builtin_HEXAGON_V6_vdealb4w_128B
-+      {Intrinsic::hexagon_V6_vdealb_128B, 34246}, // __builtin_HEXAGON_V6_vdealb_128B
-+      {Intrinsic::hexagon_V6_vdealh, 34344}, // __builtin_HEXAGON_V6_vdealh
-+      {Intrinsic::hexagon_V6_vdealh_128B, 34372}, // __builtin_HEXAGON_V6_vdealh_128B
-+      {Intrinsic::hexagon_V6_vdealvdd, 34405}, // __builtin_HEXAGON_V6_vdealvdd
-+      {Intrinsic::hexagon_V6_vdealvdd_128B, 34435}, // __builtin_HEXAGON_V6_vdealvdd_128B
-+      {Intrinsic::hexagon_V6_vdelta, 34470}, // __builtin_HEXAGON_V6_vdelta
-+      {Intrinsic::hexagon_V6_vdelta_128B, 34498}, // __builtin_HEXAGON_V6_vdelta_128B
-+      {Intrinsic::hexagon_V6_vdmpybus, 34531}, // __builtin_HEXAGON_V6_vdmpybus
-+      {Intrinsic::hexagon_V6_vdmpybus_128B, 34561}, // __builtin_HEXAGON_V6_vdmpybus_128B
-+      {Intrinsic::hexagon_V6_vdmpybus_acc, 34596}, // __builtin_HEXAGON_V6_vdmpybus_acc
-+      {Intrinsic::hexagon_V6_vdmpybus_acc_128B, 34630}, // __builtin_HEXAGON_V6_vdmpybus_acc_128B
-+      {Intrinsic::hexagon_V6_vdmpybus_dv, 34669}, // __builtin_HEXAGON_V6_vdmpybus_dv
-+      {Intrinsic::hexagon_V6_vdmpybus_dv_128B, 34702}, // __builtin_HEXAGON_V6_vdmpybus_dv_128B
-+      {Intrinsic::hexagon_V6_vdmpybus_dv_acc, 34740}, // __builtin_HEXAGON_V6_vdmpybus_dv_acc
-+      {Intrinsic::hexagon_V6_vdmpybus_dv_acc_128B, 34777}, // __builtin_HEXAGON_V6_vdmpybus_dv_acc_128B
-+      {Intrinsic::hexagon_V6_vdmpyhb, 34819}, // __builtin_HEXAGON_V6_vdmpyhb
-+      {Intrinsic::hexagon_V6_vdmpyhb_128B, 34848}, // __builtin_HEXAGON_V6_vdmpyhb_128B
-+      {Intrinsic::hexagon_V6_vdmpyhb_acc, 34882}, // __builtin_HEXAGON_V6_vdmpyhb_acc
-+      {Intrinsic::hexagon_V6_vdmpyhb_acc_128B, 34915}, // __builtin_HEXAGON_V6_vdmpyhb_acc_128B
-+      {Intrinsic::hexagon_V6_vdmpyhb_dv, 34953}, // __builtin_HEXAGON_V6_vdmpyhb_dv
-+      {Intrinsic::hexagon_V6_vdmpyhb_dv_128B, 34985}, // __builtin_HEXAGON_V6_vdmpyhb_dv_128B
-+      {Intrinsic::hexagon_V6_vdmpyhb_dv_acc, 35022}, // __builtin_HEXAGON_V6_vdmpyhb_dv_acc
-+      {Intrinsic::hexagon_V6_vdmpyhb_dv_acc_128B, 35058}, // __builtin_HEXAGON_V6_vdmpyhb_dv_acc_128B
-+      {Intrinsic::hexagon_V6_vdmpyhisat, 35099}, // __builtin_HEXAGON_V6_vdmpyhisat
-+      {Intrinsic::hexagon_V6_vdmpyhisat_128B, 35131}, // __builtin_HEXAGON_V6_vdmpyhisat_128B
-+      {Intrinsic::hexagon_V6_vdmpyhisat_acc, 35168}, // __builtin_HEXAGON_V6_vdmpyhisat_acc
-+      {Intrinsic::hexagon_V6_vdmpyhisat_acc_128B, 35204}, // __builtin_HEXAGON_V6_vdmpyhisat_acc_128B
-+      {Intrinsic::hexagon_V6_vdmpyhsat, 35245}, // __builtin_HEXAGON_V6_vdmpyhsat
-+      {Intrinsic::hexagon_V6_vdmpyhsat_128B, 35276}, // __builtin_HEXAGON_V6_vdmpyhsat_128B
-+      {Intrinsic::hexagon_V6_vdmpyhsat_acc, 35312}, // __builtin_HEXAGON_V6_vdmpyhsat_acc
-+      {Intrinsic::hexagon_V6_vdmpyhsat_acc_128B, 35347}, // __builtin_HEXAGON_V6_vdmpyhsat_acc_128B
-+      {Intrinsic::hexagon_V6_vdmpyhsuisat, 35387}, // __builtin_HEXAGON_V6_vdmpyhsuisat
-+      {Intrinsic::hexagon_V6_vdmpyhsuisat_128B, 35421}, // __builtin_HEXAGON_V6_vdmpyhsuisat_128B
-+      {Intrinsic::hexagon_V6_vdmpyhsuisat_acc, 35460}, // __builtin_HEXAGON_V6_vdmpyhsuisat_acc
-+      {Intrinsic::hexagon_V6_vdmpyhsuisat_acc_128B, 35498}, // __builtin_HEXAGON_V6_vdmpyhsuisat_acc_128B
-+      {Intrinsic::hexagon_V6_vdmpyhsusat, 35541}, // __builtin_HEXAGON_V6_vdmpyhsusat
-+      {Intrinsic::hexagon_V6_vdmpyhsusat_128B, 35574}, // __builtin_HEXAGON_V6_vdmpyhsusat_128B
-+      {Intrinsic::hexagon_V6_vdmpyhsusat_acc, 35612}, // __builtin_HEXAGON_V6_vdmpyhsusat_acc
-+      {Intrinsic::hexagon_V6_vdmpyhsusat_acc_128B, 35649}, // __builtin_HEXAGON_V6_vdmpyhsusat_acc_128B
-+      {Intrinsic::hexagon_V6_vdmpyhvsat, 35691}, // __builtin_HEXAGON_V6_vdmpyhvsat
-+      {Intrinsic::hexagon_V6_vdmpyhvsat_128B, 35723}, // __builtin_HEXAGON_V6_vdmpyhvsat_128B
-+      {Intrinsic::hexagon_V6_vdmpyhvsat_acc, 35760}, // __builtin_HEXAGON_V6_vdmpyhvsat_acc
-+      {Intrinsic::hexagon_V6_vdmpyhvsat_acc_128B, 35796}, // __builtin_HEXAGON_V6_vdmpyhvsat_acc_128B
-+      {Intrinsic::hexagon_V6_vdsaduh, 35837}, // __builtin_HEXAGON_V6_vdsaduh
-+      {Intrinsic::hexagon_V6_vdsaduh_128B, 35866}, // __builtin_HEXAGON_V6_vdsaduh_128B
-+      {Intrinsic::hexagon_V6_vdsaduh_acc, 35900}, // __builtin_HEXAGON_V6_vdsaduh_acc
-+      {Intrinsic::hexagon_V6_vdsaduh_acc_128B, 35933}, // __builtin_HEXAGON_V6_vdsaduh_acc_128B
-+      {Intrinsic::hexagon_V6_veqb, 35971}, // __builtin_HEXAGON_V6_veqb
-+      {Intrinsic::hexagon_V6_veqb_128B, 35997}, // __builtin_HEXAGON_V6_veqb_128B
-+      {Intrinsic::hexagon_V6_veqb_and, 36028}, // __builtin_HEXAGON_V6_veqb_and
-+      {Intrinsic::hexagon_V6_veqb_and_128B, 36058}, // __builtin_HEXAGON_V6_veqb_and_128B
-+      {Intrinsic::hexagon_V6_veqb_or, 36093}, // __builtin_HEXAGON_V6_veqb_or
-+      {Intrinsic::hexagon_V6_veqb_or_128B, 36122}, // __builtin_HEXAGON_V6_veqb_or_128B
-+      {Intrinsic::hexagon_V6_veqb_xor, 36156}, // __builtin_HEXAGON_V6_veqb_xor
-+      {Intrinsic::hexagon_V6_veqb_xor_128B, 36186}, // __builtin_HEXAGON_V6_veqb_xor_128B
-+      {Intrinsic::hexagon_V6_veqh, 36221}, // __builtin_HEXAGON_V6_veqh
-+      {Intrinsic::hexagon_V6_veqh_128B, 36247}, // __builtin_HEXAGON_V6_veqh_128B
-+      {Intrinsic::hexagon_V6_veqh_and, 36278}, // __builtin_HEXAGON_V6_veqh_and
-+      {Intrinsic::hexagon_V6_veqh_and_128B, 36308}, // __builtin_HEXAGON_V6_veqh_and_128B
-+      {Intrinsic::hexagon_V6_veqh_or, 36343}, // __builtin_HEXAGON_V6_veqh_or
-+      {Intrinsic::hexagon_V6_veqh_or_128B, 36372}, // __builtin_HEXAGON_V6_veqh_or_128B
-+      {Intrinsic::hexagon_V6_veqh_xor, 36406}, // __builtin_HEXAGON_V6_veqh_xor
-+      {Intrinsic::hexagon_V6_veqh_xor_128B, 36436}, // __builtin_HEXAGON_V6_veqh_xor_128B
-+      {Intrinsic::hexagon_V6_veqw, 36471}, // __builtin_HEXAGON_V6_veqw
-+      {Intrinsic::hexagon_V6_veqw_128B, 36497}, // __builtin_HEXAGON_V6_veqw_128B
-+      {Intrinsic::hexagon_V6_veqw_and, 36528}, // __builtin_HEXAGON_V6_veqw_and
-+      {Intrinsic::hexagon_V6_veqw_and_128B, 36558}, // __builtin_HEXAGON_V6_veqw_and_128B
-+      {Intrinsic::hexagon_V6_veqw_or, 36593}, // __builtin_HEXAGON_V6_veqw_or
-+      {Intrinsic::hexagon_V6_veqw_or_128B, 36622}, // __builtin_HEXAGON_V6_veqw_or_128B
-+      {Intrinsic::hexagon_V6_veqw_xor, 36656}, // __builtin_HEXAGON_V6_veqw_xor
-+      {Intrinsic::hexagon_V6_veqw_xor_128B, 36686}, // __builtin_HEXAGON_V6_veqw_xor_128B
-+      {Intrinsic::hexagon_V6_vgtb, 36721}, // __builtin_HEXAGON_V6_vgtb
-+      {Intrinsic::hexagon_V6_vgtb_128B, 36747}, // __builtin_HEXAGON_V6_vgtb_128B
-+      {Intrinsic::hexagon_V6_vgtb_and, 36778}, // __builtin_HEXAGON_V6_vgtb_and
-+      {Intrinsic::hexagon_V6_vgtb_and_128B, 36808}, // __builtin_HEXAGON_V6_vgtb_and_128B
-+      {Intrinsic::hexagon_V6_vgtb_or, 36843}, // __builtin_HEXAGON_V6_vgtb_or
-+      {Intrinsic::hexagon_V6_vgtb_or_128B, 36872}, // __builtin_HEXAGON_V6_vgtb_or_128B
-+      {Intrinsic::hexagon_V6_vgtb_xor, 36906}, // __builtin_HEXAGON_V6_vgtb_xor
-+      {Intrinsic::hexagon_V6_vgtb_xor_128B, 36936}, // __builtin_HEXAGON_V6_vgtb_xor_128B
-+      {Intrinsic::hexagon_V6_vgth, 36971}, // __builtin_HEXAGON_V6_vgth
-+      {Intrinsic::hexagon_V6_vgth_128B, 36997}, // __builtin_HEXAGON_V6_vgth_128B
-+      {Intrinsic::hexagon_V6_vgth_and, 37028}, // __builtin_HEXAGON_V6_vgth_and
-+      {Intrinsic::hexagon_V6_vgth_and_128B, 37058}, // __builtin_HEXAGON_V6_vgth_and_128B
-+      {Intrinsic::hexagon_V6_vgth_or, 37093}, // __builtin_HEXAGON_V6_vgth_or
-+      {Intrinsic::hexagon_V6_vgth_or_128B, 37122}, // __builtin_HEXAGON_V6_vgth_or_128B
-+      {Intrinsic::hexagon_V6_vgth_xor, 37156}, // __builtin_HEXAGON_V6_vgth_xor
-+      {Intrinsic::hexagon_V6_vgth_xor_128B, 37186}, // __builtin_HEXAGON_V6_vgth_xor_128B
-+      {Intrinsic::hexagon_V6_vgtub, 37221}, // __builtin_HEXAGON_V6_vgtub
-+      {Intrinsic::hexagon_V6_vgtub_128B, 37248}, // __builtin_HEXAGON_V6_vgtub_128B
-+      {Intrinsic::hexagon_V6_vgtub_and, 37280}, // __builtin_HEXAGON_V6_vgtub_and
-+      {Intrinsic::hexagon_V6_vgtub_and_128B, 37311}, // __builtin_HEXAGON_V6_vgtub_and_128B
-+      {Intrinsic::hexagon_V6_vgtub_or, 37347}, // __builtin_HEXAGON_V6_vgtub_or
-+      {Intrinsic::hexagon_V6_vgtub_or_128B, 37377}, // __builtin_HEXAGON_V6_vgtub_or_128B
-+      {Intrinsic::hexagon_V6_vgtub_xor, 37412}, // __builtin_HEXAGON_V6_vgtub_xor
-+      {Intrinsic::hexagon_V6_vgtub_xor_128B, 37443}, // __builtin_HEXAGON_V6_vgtub_xor_128B
-+      {Intrinsic::hexagon_V6_vgtuh, 37479}, // __builtin_HEXAGON_V6_vgtuh
-+      {Intrinsic::hexagon_V6_vgtuh_128B, 37506}, // __builtin_HEXAGON_V6_vgtuh_128B
-+      {Intrinsic::hexagon_V6_vgtuh_and, 37538}, // __builtin_HEXAGON_V6_vgtuh_and
-+      {Intrinsic::hexagon_V6_vgtuh_and_128B, 37569}, // __builtin_HEXAGON_V6_vgtuh_and_128B
-+      {Intrinsic::hexagon_V6_vgtuh_or, 37605}, // __builtin_HEXAGON_V6_vgtuh_or
-+      {Intrinsic::hexagon_V6_vgtuh_or_128B, 37635}, // __builtin_HEXAGON_V6_vgtuh_or_128B
-+      {Intrinsic::hexagon_V6_vgtuh_xor, 37670}, // __builtin_HEXAGON_V6_vgtuh_xor
-+      {Intrinsic::hexagon_V6_vgtuh_xor_128B, 37701}, // __builtin_HEXAGON_V6_vgtuh_xor_128B
-+      {Intrinsic::hexagon_V6_vgtuw, 37737}, // __builtin_HEXAGON_V6_vgtuw
-+      {Intrinsic::hexagon_V6_vgtuw_128B, 37764}, // __builtin_HEXAGON_V6_vgtuw_128B
-+      {Intrinsic::hexagon_V6_vgtuw_and, 37796}, // __builtin_HEXAGON_V6_vgtuw_and
-+      {Intrinsic::hexagon_V6_vgtuw_and_128B, 37827}, // __builtin_HEXAGON_V6_vgtuw_and_128B
-+      {Intrinsic::hexagon_V6_vgtuw_or, 37863}, // __builtin_HEXAGON_V6_vgtuw_or
-+      {Intrinsic::hexagon_V6_vgtuw_or_128B, 37893}, // __builtin_HEXAGON_V6_vgtuw_or_128B
-+      {Intrinsic::hexagon_V6_vgtuw_xor, 37928}, // __builtin_HEXAGON_V6_vgtuw_xor
-+      {Intrinsic::hexagon_V6_vgtuw_xor_128B, 37959}, // __builtin_HEXAGON_V6_vgtuw_xor_128B
-+      {Intrinsic::hexagon_V6_vgtw, 37995}, // __builtin_HEXAGON_V6_vgtw
-+      {Intrinsic::hexagon_V6_vgtw_128B, 38021}, // __builtin_HEXAGON_V6_vgtw_128B
-+      {Intrinsic::hexagon_V6_vgtw_and, 38052}, // __builtin_HEXAGON_V6_vgtw_and
-+      {Intrinsic::hexagon_V6_vgtw_and_128B, 38082}, // __builtin_HEXAGON_V6_vgtw_and_128B
-+      {Intrinsic::hexagon_V6_vgtw_or, 38117}, // __builtin_HEXAGON_V6_vgtw_or
-+      {Intrinsic::hexagon_V6_vgtw_or_128B, 38146}, // __builtin_HEXAGON_V6_vgtw_or_128B
-+      {Intrinsic::hexagon_V6_vgtw_xor, 38180}, // __builtin_HEXAGON_V6_vgtw_xor
-+      {Intrinsic::hexagon_V6_vgtw_xor_128B, 38210}, // __builtin_HEXAGON_V6_vgtw_xor_128B
-+      {Intrinsic::hexagon_V6_vinsertwr, 38245}, // __builtin_HEXAGON_V6_vinsertwr
-+      {Intrinsic::hexagon_V6_vinsertwr_128B, 38276}, // __builtin_HEXAGON_V6_vinsertwr_128B
-+      {Intrinsic::hexagon_V6_vlalignb, 38312}, // __builtin_HEXAGON_V6_vlalignb
-+      {Intrinsic::hexagon_V6_vlalignb_128B, 38342}, // __builtin_HEXAGON_V6_vlalignb_128B
-+      {Intrinsic::hexagon_V6_vlalignbi, 38377}, // __builtin_HEXAGON_V6_vlalignbi
-+      {Intrinsic::hexagon_V6_vlalignbi_128B, 38408}, // __builtin_HEXAGON_V6_vlalignbi_128B
-+      {Intrinsic::hexagon_V6_vlsrh, 38444}, // __builtin_HEXAGON_V6_vlsrh
-+      {Intrinsic::hexagon_V6_vlsrh_128B, 38471}, // __builtin_HEXAGON_V6_vlsrh_128B
-+      {Intrinsic::hexagon_V6_vlsrhv, 38503}, // __builtin_HEXAGON_V6_vlsrhv
-+      {Intrinsic::hexagon_V6_vlsrhv_128B, 38531}, // __builtin_HEXAGON_V6_vlsrhv_128B
-+      {Intrinsic::hexagon_V6_vlsrw, 38564}, // __builtin_HEXAGON_V6_vlsrw
-+      {Intrinsic::hexagon_V6_vlsrw_128B, 38591}, // __builtin_HEXAGON_V6_vlsrw_128B
-+      {Intrinsic::hexagon_V6_vlsrwv, 38623}, // __builtin_HEXAGON_V6_vlsrwv
-+      {Intrinsic::hexagon_V6_vlsrwv_128B, 38651}, // __builtin_HEXAGON_V6_vlsrwv_128B
-+      {Intrinsic::hexagon_V6_vlutb, 38684}, // __builtin_HEXAGON_V6_vlutb
-+      {Intrinsic::hexagon_V6_vlutb_128B, 38711}, // __builtin_HEXAGON_V6_vlutb_128B
-+      {Intrinsic::hexagon_V6_vlutb_acc, 38743}, // __builtin_HEXAGON_V6_vlutb_acc
-+      {Intrinsic::hexagon_V6_vlutb_acc_128B, 38774}, // __builtin_HEXAGON_V6_vlutb_acc_128B
-+      {Intrinsic::hexagon_V6_vlutb_dv, 38810}, // __builtin_HEXAGON_V6_vlutb_dv
-+      {Intrinsic::hexagon_V6_vlutb_dv_128B, 38840}, // __builtin_HEXAGON_V6_vlutb_dv_128B
-+      {Intrinsic::hexagon_V6_vlutb_dv_acc, 38875}, // __builtin_HEXAGON_V6_vlutb_dv_acc
-+      {Intrinsic::hexagon_V6_vlutb_dv_acc_128B, 38909}, // __builtin_HEXAGON_V6_vlutb_dv_acc_128B
-+      {Intrinsic::hexagon_V6_vlutvvb, 38948}, // __builtin_HEXAGON_V6_vlutvvb
-+      {Intrinsic::hexagon_V6_vlutvvb_128B, 38977}, // __builtin_HEXAGON_V6_vlutvvb_128B
-+      {Intrinsic::hexagon_V6_vlutvvb_oracc, 39011}, // __builtin_HEXAGON_V6_vlutvvb_oracc
-+      {Intrinsic::hexagon_V6_vlutvvb_oracc_128B, 39046}, // __builtin_HEXAGON_V6_vlutvvb_oracc_128B
-+      {Intrinsic::hexagon_V6_vlutvwh, 39086}, // __builtin_HEXAGON_V6_vlutvwh
-+      {Intrinsic::hexagon_V6_vlutvwh_128B, 39115}, // __builtin_HEXAGON_V6_vlutvwh_128B
-+      {Intrinsic::hexagon_V6_vlutvwh_oracc, 39149}, // __builtin_HEXAGON_V6_vlutvwh_oracc
-+      {Intrinsic::hexagon_V6_vlutvwh_oracc_128B, 39184}, // __builtin_HEXAGON_V6_vlutvwh_oracc_128B
-+      {Intrinsic::hexagon_V6_vmaxh, 39224}, // __builtin_HEXAGON_V6_vmaxh
-+      {Intrinsic::hexagon_V6_vmaxh_128B, 39251}, // __builtin_HEXAGON_V6_vmaxh_128B
-+      {Intrinsic::hexagon_V6_vmaxub, 39283}, // __builtin_HEXAGON_V6_vmaxub
-+      {Intrinsic::hexagon_V6_vmaxub_128B, 39311}, // __builtin_HEXAGON_V6_vmaxub_128B
-+      {Intrinsic::hexagon_V6_vmaxuh, 39344}, // __builtin_HEXAGON_V6_vmaxuh
-+      {Intrinsic::hexagon_V6_vmaxuh_128B, 39372}, // __builtin_HEXAGON_V6_vmaxuh_128B
-+      {Intrinsic::hexagon_V6_vmaxw, 39405}, // __builtin_HEXAGON_V6_vmaxw
-+      {Intrinsic::hexagon_V6_vmaxw_128B, 39432}, // __builtin_HEXAGON_V6_vmaxw_128B
-+      {Intrinsic::hexagon_V6_vminh, 39464}, // __builtin_HEXAGON_V6_vminh
-+      {Intrinsic::hexagon_V6_vminh_128B, 39491}, // __builtin_HEXAGON_V6_vminh_128B
-+      {Intrinsic::hexagon_V6_vminub, 39523}, // __builtin_HEXAGON_V6_vminub
-+      {Intrinsic::hexagon_V6_vminub_128B, 39551}, // __builtin_HEXAGON_V6_vminub_128B
-+      {Intrinsic::hexagon_V6_vminuh, 39584}, // __builtin_HEXAGON_V6_vminuh
-+      {Intrinsic::hexagon_V6_vminuh_128B, 39612}, // __builtin_HEXAGON_V6_vminuh_128B
-+      {Intrinsic::hexagon_V6_vminw, 39645}, // __builtin_HEXAGON_V6_vminw
-+      {Intrinsic::hexagon_V6_vminw_128B, 39672}, // __builtin_HEXAGON_V6_vminw_128B
-+      {Intrinsic::hexagon_V6_vmpabus, 39704}, // __builtin_HEXAGON_V6_vmpabus
-+      {Intrinsic::hexagon_V6_vmpabus_128B, 39733}, // __builtin_HEXAGON_V6_vmpabus_128B
-+      {Intrinsic::hexagon_V6_vmpabus_acc, 39767}, // __builtin_HEXAGON_V6_vmpabus_acc
-+      {Intrinsic::hexagon_V6_vmpabus_acc_128B, 39800}, // __builtin_HEXAGON_V6_vmpabus_acc_128B
-+      {Intrinsic::hexagon_V6_vmpabusv, 39838}, // __builtin_HEXAGON_V6_vmpabusv
-+      {Intrinsic::hexagon_V6_vmpabusv_128B, 39868}, // __builtin_HEXAGON_V6_vmpabusv_128B
-+      {Intrinsic::hexagon_V6_vmpabuuv, 39903}, // __builtin_HEXAGON_V6_vmpabuuv
-+      {Intrinsic::hexagon_V6_vmpabuuv_128B, 39933}, // __builtin_HEXAGON_V6_vmpabuuv_128B
-+      {Intrinsic::hexagon_V6_vmpahb, 39968}, // __builtin_HEXAGON_V6_vmpahb
-+      {Intrinsic::hexagon_V6_vmpahb_128B, 39996}, // __builtin_HEXAGON_V6_vmpahb_128B
-+      {Intrinsic::hexagon_V6_vmpahb_acc, 40029}, // __builtin_HEXAGON_V6_vmpahb_acc
-+      {Intrinsic::hexagon_V6_vmpahb_acc_128B, 40061}, // __builtin_HEXAGON_V6_vmpahb_acc_128B
-+      {Intrinsic::hexagon_V6_vmpybus, 40098}, // __builtin_HEXAGON_V6_vmpybus
-+      {Intrinsic::hexagon_V6_vmpybus_128B, 40127}, // __builtin_HEXAGON_V6_vmpybus_128B
-+      {Intrinsic::hexagon_V6_vmpybus_acc, 40161}, // __builtin_HEXAGON_V6_vmpybus_acc
-+      {Intrinsic::hexagon_V6_vmpybus_acc_128B, 40194}, // __builtin_HEXAGON_V6_vmpybus_acc_128B
-+      {Intrinsic::hexagon_V6_vmpybusv, 40232}, // __builtin_HEXAGON_V6_vmpybusv
-+      {Intrinsic::hexagon_V6_vmpybusv_128B, 40262}, // __builtin_HEXAGON_V6_vmpybusv_128B
-+      {Intrinsic::hexagon_V6_vmpybusv_acc, 40297}, // __builtin_HEXAGON_V6_vmpybusv_acc
-+      {Intrinsic::hexagon_V6_vmpybusv_acc_128B, 40331}, // __builtin_HEXAGON_V6_vmpybusv_acc_128B
-+      {Intrinsic::hexagon_V6_vmpybv, 40370}, // __builtin_HEXAGON_V6_vmpybv
-+      {Intrinsic::hexagon_V6_vmpybv_128B, 40398}, // __builtin_HEXAGON_V6_vmpybv_128B
-+      {Intrinsic::hexagon_V6_vmpybv_acc, 40431}, // __builtin_HEXAGON_V6_vmpybv_acc
-+      {Intrinsic::hexagon_V6_vmpybv_acc_128B, 40463}, // __builtin_HEXAGON_V6_vmpybv_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyewuh, 40500}, // __builtin_HEXAGON_V6_vmpyewuh
-+      {Intrinsic::hexagon_V6_vmpyewuh_128B, 40530}, // __builtin_HEXAGON_V6_vmpyewuh_128B
-+      {Intrinsic::hexagon_V6_vmpyh, 40565}, // __builtin_HEXAGON_V6_vmpyh
-+      {Intrinsic::hexagon_V6_vmpyh_128B, 40592}, // __builtin_HEXAGON_V6_vmpyh_128B
-+      {Intrinsic::hexagon_V6_vmpyhsat_acc, 40624}, // __builtin_HEXAGON_V6_vmpyhsat_acc
-+      {Intrinsic::hexagon_V6_vmpyhsat_acc_128B, 40658}, // __builtin_HEXAGON_V6_vmpyhsat_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyhsrs, 40697}, // __builtin_HEXAGON_V6_vmpyhsrs
-+      {Intrinsic::hexagon_V6_vmpyhsrs_128B, 40727}, // __builtin_HEXAGON_V6_vmpyhsrs_128B
-+      {Intrinsic::hexagon_V6_vmpyhss, 40762}, // __builtin_HEXAGON_V6_vmpyhss
-+      {Intrinsic::hexagon_V6_vmpyhss_128B, 40791}, // __builtin_HEXAGON_V6_vmpyhss_128B
-+      {Intrinsic::hexagon_V6_vmpyhus, 40825}, // __builtin_HEXAGON_V6_vmpyhus
-+      {Intrinsic::hexagon_V6_vmpyhus_128B, 40854}, // __builtin_HEXAGON_V6_vmpyhus_128B
-+      {Intrinsic::hexagon_V6_vmpyhus_acc, 40888}, // __builtin_HEXAGON_V6_vmpyhus_acc
-+      {Intrinsic::hexagon_V6_vmpyhus_acc_128B, 40921}, // __builtin_HEXAGON_V6_vmpyhus_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyhv, 40959}, // __builtin_HEXAGON_V6_vmpyhv
-+      {Intrinsic::hexagon_V6_vmpyhv_128B, 40987}, // __builtin_HEXAGON_V6_vmpyhv_128B
-+      {Intrinsic::hexagon_V6_vmpyhv_acc, 41020}, // __builtin_HEXAGON_V6_vmpyhv_acc
-+      {Intrinsic::hexagon_V6_vmpyhv_acc_128B, 41052}, // __builtin_HEXAGON_V6_vmpyhv_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyhvsrs, 41089}, // __builtin_HEXAGON_V6_vmpyhvsrs
-+      {Intrinsic::hexagon_V6_vmpyhvsrs_128B, 41120}, // __builtin_HEXAGON_V6_vmpyhvsrs_128B
-+      {Intrinsic::hexagon_V6_vmpyieoh, 41156}, // __builtin_HEXAGON_V6_vmpyieoh
-+      {Intrinsic::hexagon_V6_vmpyieoh_128B, 41186}, // __builtin_HEXAGON_V6_vmpyieoh_128B
-+      {Intrinsic::hexagon_V6_vmpyiewh_acc, 41221}, // __builtin_HEXAGON_V6_vmpyiewh_acc
-+      {Intrinsic::hexagon_V6_vmpyiewh_acc_128B, 41255}, // __builtin_HEXAGON_V6_vmpyiewh_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyiewuh, 41294}, // __builtin_HEXAGON_V6_vmpyiewuh
-+      {Intrinsic::hexagon_V6_vmpyiewuh_128B, 41325}, // __builtin_HEXAGON_V6_vmpyiewuh_128B
-+      {Intrinsic::hexagon_V6_vmpyiewuh_acc, 41361}, // __builtin_HEXAGON_V6_vmpyiewuh_acc
-+      {Intrinsic::hexagon_V6_vmpyiewuh_acc_128B, 41396}, // __builtin_HEXAGON_V6_vmpyiewuh_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyih, 41436}, // __builtin_HEXAGON_V6_vmpyih
-+      {Intrinsic::hexagon_V6_vmpyih_128B, 41464}, // __builtin_HEXAGON_V6_vmpyih_128B
-+      {Intrinsic::hexagon_V6_vmpyih_acc, 41497}, // __builtin_HEXAGON_V6_vmpyih_acc
-+      {Intrinsic::hexagon_V6_vmpyih_acc_128B, 41529}, // __builtin_HEXAGON_V6_vmpyih_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyihb, 41566}, // __builtin_HEXAGON_V6_vmpyihb
-+      {Intrinsic::hexagon_V6_vmpyihb_128B, 41595}, // __builtin_HEXAGON_V6_vmpyihb_128B
-+      {Intrinsic::hexagon_V6_vmpyihb_acc, 41629}, // __builtin_HEXAGON_V6_vmpyihb_acc
-+      {Intrinsic::hexagon_V6_vmpyihb_acc_128B, 41662}, // __builtin_HEXAGON_V6_vmpyihb_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyiowh, 41700}, // __builtin_HEXAGON_V6_vmpyiowh
-+      {Intrinsic::hexagon_V6_vmpyiowh_128B, 41730}, // __builtin_HEXAGON_V6_vmpyiowh_128B
-+      {Intrinsic::hexagon_V6_vmpyiwb, 41765}, // __builtin_HEXAGON_V6_vmpyiwb
-+      {Intrinsic::hexagon_V6_vmpyiwb_128B, 41794}, // __builtin_HEXAGON_V6_vmpyiwb_128B
-+      {Intrinsic::hexagon_V6_vmpyiwb_acc, 41828}, // __builtin_HEXAGON_V6_vmpyiwb_acc
-+      {Intrinsic::hexagon_V6_vmpyiwb_acc_128B, 41861}, // __builtin_HEXAGON_V6_vmpyiwb_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyiwh, 41899}, // __builtin_HEXAGON_V6_vmpyiwh
-+      {Intrinsic::hexagon_V6_vmpyiwh_128B, 41928}, // __builtin_HEXAGON_V6_vmpyiwh_128B
-+      {Intrinsic::hexagon_V6_vmpyiwh_acc, 41962}, // __builtin_HEXAGON_V6_vmpyiwh_acc
-+      {Intrinsic::hexagon_V6_vmpyiwh_acc_128B, 41995}, // __builtin_HEXAGON_V6_vmpyiwh_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyowh, 42033}, // __builtin_HEXAGON_V6_vmpyowh
-+      {Intrinsic::hexagon_V6_vmpyowh_128B, 42062}, // __builtin_HEXAGON_V6_vmpyowh_128B
-+      {Intrinsic::hexagon_V6_vmpyowh_rnd, 42096}, // __builtin_HEXAGON_V6_vmpyowh_rnd
-+      {Intrinsic::hexagon_V6_vmpyowh_rnd_128B, 42129}, // __builtin_HEXAGON_V6_vmpyowh_rnd_128B
-+      {Intrinsic::hexagon_V6_vmpyowh_rnd_sacc, 42167}, // __builtin_HEXAGON_V6_vmpyowh_rnd_sacc
-+      {Intrinsic::hexagon_V6_vmpyowh_rnd_sacc_128B, 42205}, // __builtin_HEXAGON_V6_vmpyowh_rnd_sacc_128B
-+      {Intrinsic::hexagon_V6_vmpyowh_sacc, 42248}, // __builtin_HEXAGON_V6_vmpyowh_sacc
-+      {Intrinsic::hexagon_V6_vmpyowh_sacc_128B, 42282}, // __builtin_HEXAGON_V6_vmpyowh_sacc_128B
-+      {Intrinsic::hexagon_V6_vmpyub, 42321}, // __builtin_HEXAGON_V6_vmpyub
-+      {Intrinsic::hexagon_V6_vmpyub_128B, 42349}, // __builtin_HEXAGON_V6_vmpyub_128B
-+      {Intrinsic::hexagon_V6_vmpyub_acc, 42382}, // __builtin_HEXAGON_V6_vmpyub_acc
-+      {Intrinsic::hexagon_V6_vmpyub_acc_128B, 42414}, // __builtin_HEXAGON_V6_vmpyub_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyubv, 42451}, // __builtin_HEXAGON_V6_vmpyubv
-+      {Intrinsic::hexagon_V6_vmpyubv_128B, 42480}, // __builtin_HEXAGON_V6_vmpyubv_128B
-+      {Intrinsic::hexagon_V6_vmpyubv_acc, 42514}, // __builtin_HEXAGON_V6_vmpyubv_acc
-+      {Intrinsic::hexagon_V6_vmpyubv_acc_128B, 42547}, // __builtin_HEXAGON_V6_vmpyubv_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyuh, 42585}, // __builtin_HEXAGON_V6_vmpyuh
-+      {Intrinsic::hexagon_V6_vmpyuh_128B, 42613}, // __builtin_HEXAGON_V6_vmpyuh_128B
-+      {Intrinsic::hexagon_V6_vmpyuh_acc, 42646}, // __builtin_HEXAGON_V6_vmpyuh_acc
-+      {Intrinsic::hexagon_V6_vmpyuh_acc_128B, 42678}, // __builtin_HEXAGON_V6_vmpyuh_acc_128B
-+      {Intrinsic::hexagon_V6_vmpyuhv, 42715}, // __builtin_HEXAGON_V6_vmpyuhv
-+      {Intrinsic::hexagon_V6_vmpyuhv_128B, 42744}, // __builtin_HEXAGON_V6_vmpyuhv_128B
-+      {Intrinsic::hexagon_V6_vmpyuhv_acc, 42778}, // __builtin_HEXAGON_V6_vmpyuhv_acc
-+      {Intrinsic::hexagon_V6_vmpyuhv_acc_128B, 42811}, // __builtin_HEXAGON_V6_vmpyuhv_acc_128B
-+      {Intrinsic::hexagon_V6_vmux, 42849}, // __builtin_HEXAGON_V6_vmux
-+      {Intrinsic::hexagon_V6_vmux_128B, 42875}, // __builtin_HEXAGON_V6_vmux_128B
-+      {Intrinsic::hexagon_V6_vnavgh, 42906}, // __builtin_HEXAGON_V6_vnavgh
-+      {Intrinsic::hexagon_V6_vnavgh_128B, 42934}, // __builtin_HEXAGON_V6_vnavgh_128B
-+      {Intrinsic::hexagon_V6_vnavgub, 42967}, // __builtin_HEXAGON_V6_vnavgub
-+      {Intrinsic::hexagon_V6_vnavgub_128B, 42996}, // __builtin_HEXAGON_V6_vnavgub_128B
-+      {Intrinsic::hexagon_V6_vnavgw, 43030}, // __builtin_HEXAGON_V6_vnavgw
-+      {Intrinsic::hexagon_V6_vnavgw_128B, 43058}, // __builtin_HEXAGON_V6_vnavgw_128B
-+      {Intrinsic::hexagon_V6_vnormamth, 43091}, // __builtin_HEXAGON_V6_vnormamth
-+      {Intrinsic::hexagon_V6_vnormamth_128B, 43122}, // __builtin_HEXAGON_V6_vnormamth_128B
-+      {Intrinsic::hexagon_V6_vnormamtw, 43158}, // __builtin_HEXAGON_V6_vnormamtw
-+      {Intrinsic::hexagon_V6_vnormamtw_128B, 43189}, // __builtin_HEXAGON_V6_vnormamtw_128B
-+      {Intrinsic::hexagon_V6_vnot, 43225}, // __builtin_HEXAGON_V6_vnot
-+      {Intrinsic::hexagon_V6_vnot_128B, 43251}, // __builtin_HEXAGON_V6_vnot_128B
-+      {Intrinsic::hexagon_V6_vor, 43282}, // __builtin_HEXAGON_V6_vor
-+      {Intrinsic::hexagon_V6_vor_128B, 43307}, // __builtin_HEXAGON_V6_vor_128B
-+      {Intrinsic::hexagon_V6_vpackeb, 43337}, // __builtin_HEXAGON_V6_vpackeb
-+      {Intrinsic::hexagon_V6_vpackeb_128B, 43366}, // __builtin_HEXAGON_V6_vpackeb_128B
-+      {Intrinsic::hexagon_V6_vpackeh, 43400}, // __builtin_HEXAGON_V6_vpackeh
-+      {Intrinsic::hexagon_V6_vpackeh_128B, 43429}, // __builtin_HEXAGON_V6_vpackeh_128B
-+      {Intrinsic::hexagon_V6_vpackhb_sat, 43463}, // __builtin_HEXAGON_V6_vpackhb_sat
-+      {Intrinsic::hexagon_V6_vpackhb_sat_128B, 43496}, // __builtin_HEXAGON_V6_vpackhb_sat_128B
-+      {Intrinsic::hexagon_V6_vpackhub_sat, 43534}, // __builtin_HEXAGON_V6_vpackhub_sat
-+      {Intrinsic::hexagon_V6_vpackhub_sat_128B, 43568}, // __builtin_HEXAGON_V6_vpackhub_sat_128B
-+      {Intrinsic::hexagon_V6_vpackob, 43607}, // __builtin_HEXAGON_V6_vpackob
-+      {Intrinsic::hexagon_V6_vpackob_128B, 43636}, // __builtin_HEXAGON_V6_vpackob_128B
-+      {Intrinsic::hexagon_V6_vpackoh, 43670}, // __builtin_HEXAGON_V6_vpackoh
-+      {Intrinsic::hexagon_V6_vpackoh_128B, 43699}, // __builtin_HEXAGON_V6_vpackoh_128B
-+      {Intrinsic::hexagon_V6_vpackwh_sat, 43733}, // __builtin_HEXAGON_V6_vpackwh_sat
-+      {Intrinsic::hexagon_V6_vpackwh_sat_128B, 43766}, // __builtin_HEXAGON_V6_vpackwh_sat_128B
-+      {Intrinsic::hexagon_V6_vpackwuh_sat, 43804}, // __builtin_HEXAGON_V6_vpackwuh_sat
-+      {Intrinsic::hexagon_V6_vpackwuh_sat_128B, 43838}, // __builtin_HEXAGON_V6_vpackwuh_sat_128B
-+      {Intrinsic::hexagon_V6_vpopcounth, 43877}, // __builtin_HEXAGON_V6_vpopcounth
-+      {Intrinsic::hexagon_V6_vpopcounth_128B, 43909}, // __builtin_HEXAGON_V6_vpopcounth_128B
-+      {Intrinsic::hexagon_V6_vrdelta, 43946}, // __builtin_HEXAGON_V6_vrdelta
-+      {Intrinsic::hexagon_V6_vrdelta_128B, 43975}, // __builtin_HEXAGON_V6_vrdelta_128B
-+      {Intrinsic::hexagon_V6_vrmpybus, 44009}, // __builtin_HEXAGON_V6_vrmpybus
-+      {Intrinsic::hexagon_V6_vrmpybus_128B, 44039}, // __builtin_HEXAGON_V6_vrmpybus_128B
-+      {Intrinsic::hexagon_V6_vrmpybus_acc, 44074}, // __builtin_HEXAGON_V6_vrmpybus_acc
-+      {Intrinsic::hexagon_V6_vrmpybus_acc_128B, 44108}, // __builtin_HEXAGON_V6_vrmpybus_acc_128B
-+      {Intrinsic::hexagon_V6_vrmpybusi, 44147}, // __builtin_HEXAGON_V6_vrmpybusi
-+      {Intrinsic::hexagon_V6_vrmpybusi_128B, 44178}, // __builtin_HEXAGON_V6_vrmpybusi_128B
-+      {Intrinsic::hexagon_V6_vrmpybusi_acc, 44214}, // __builtin_HEXAGON_V6_vrmpybusi_acc
-+      {Intrinsic::hexagon_V6_vrmpybusi_acc_128B, 44249}, // __builtin_HEXAGON_V6_vrmpybusi_acc_128B
-+      {Intrinsic::hexagon_V6_vrmpybusv, 44289}, // __builtin_HEXAGON_V6_vrmpybusv
-+      {Intrinsic::hexagon_V6_vrmpybusv_128B, 44320}, // __builtin_HEXAGON_V6_vrmpybusv_128B
-+      {Intrinsic::hexagon_V6_vrmpybusv_acc, 44356}, // __builtin_HEXAGON_V6_vrmpybusv_acc
-+      {Intrinsic::hexagon_V6_vrmpybusv_acc_128B, 44391}, // __builtin_HEXAGON_V6_vrmpybusv_acc_128B
-+      {Intrinsic::hexagon_V6_vrmpybv, 44431}, // __builtin_HEXAGON_V6_vrmpybv
-+      {Intrinsic::hexagon_V6_vrmpybv_128B, 44460}, // __builtin_HEXAGON_V6_vrmpybv_128B
-+      {Intrinsic::hexagon_V6_vrmpybv_acc, 44494}, // __builtin_HEXAGON_V6_vrmpybv_acc
-+      {Intrinsic::hexagon_V6_vrmpybv_acc_128B, 44527}, // __builtin_HEXAGON_V6_vrmpybv_acc_128B
-+      {Intrinsic::hexagon_V6_vrmpyub, 44565}, // __builtin_HEXAGON_V6_vrmpyub
-+      {Intrinsic::hexagon_V6_vrmpyub_128B, 44594}, // __builtin_HEXAGON_V6_vrmpyub_128B
-+      {Intrinsic::hexagon_V6_vrmpyub_acc, 44628}, // __builtin_HEXAGON_V6_vrmpyub_acc
-+      {Intrinsic::hexagon_V6_vrmpyub_acc_128B, 44661}, // __builtin_HEXAGON_V6_vrmpyub_acc_128B
-+      {Intrinsic::hexagon_V6_vrmpyubi, 44699}, // __builtin_HEXAGON_V6_vrmpyubi
-+      {Intrinsic::hexagon_V6_vrmpyubi_128B, 44729}, // __builtin_HEXAGON_V6_vrmpyubi_128B
-+      {Intrinsic::hexagon_V6_vrmpyubi_acc, 44764}, // __builtin_HEXAGON_V6_vrmpyubi_acc
-+      {Intrinsic::hexagon_V6_vrmpyubi_acc_128B, 44798}, // __builtin_HEXAGON_V6_vrmpyubi_acc_128B
-+      {Intrinsic::hexagon_V6_vrmpyubv, 44837}, // __builtin_HEXAGON_V6_vrmpyubv
-+      {Intrinsic::hexagon_V6_vrmpyubv_128B, 44867}, // __builtin_HEXAGON_V6_vrmpyubv_128B
-+      {Intrinsic::hexagon_V6_vrmpyubv_acc, 44902}, // __builtin_HEXAGON_V6_vrmpyubv_acc
-+      {Intrinsic::hexagon_V6_vrmpyubv_acc_128B, 44936}, // __builtin_HEXAGON_V6_vrmpyubv_acc_128B
-+      {Intrinsic::hexagon_V6_vror, 44975}, // __builtin_HEXAGON_V6_vror
-+      {Intrinsic::hexagon_V6_vror_128B, 45001}, // __builtin_HEXAGON_V6_vror_128B
-+      {Intrinsic::hexagon_V6_vroundhb, 45032}, // __builtin_HEXAGON_V6_vroundhb
-+      {Intrinsic::hexagon_V6_vroundhb_128B, 45062}, // __builtin_HEXAGON_V6_vroundhb_128B
-+      {Intrinsic::hexagon_V6_vroundhub, 45097}, // __builtin_HEXAGON_V6_vroundhub
-+      {Intrinsic::hexagon_V6_vroundhub_128B, 45128}, // __builtin_HEXAGON_V6_vroundhub_128B
-+      {Intrinsic::hexagon_V6_vroundwh, 45164}, // __builtin_HEXAGON_V6_vroundwh
-+      {Intrinsic::hexagon_V6_vroundwh_128B, 45194}, // __builtin_HEXAGON_V6_vroundwh_128B
-+      {Intrinsic::hexagon_V6_vroundwuh, 45229}, // __builtin_HEXAGON_V6_vroundwuh
-+      {Intrinsic::hexagon_V6_vroundwuh_128B, 45260}, // __builtin_HEXAGON_V6_vroundwuh_128B
-+      {Intrinsic::hexagon_V6_vrsadubi, 45296}, // __builtin_HEXAGON_V6_vrsadubi
-+      {Intrinsic::hexagon_V6_vrsadubi_128B, 45326}, // __builtin_HEXAGON_V6_vrsadubi_128B
-+      {Intrinsic::hexagon_V6_vrsadubi_acc, 45361}, // __builtin_HEXAGON_V6_vrsadubi_acc
-+      {Intrinsic::hexagon_V6_vrsadubi_acc_128B, 45395}, // __builtin_HEXAGON_V6_vrsadubi_acc_128B
-+      {Intrinsic::hexagon_V6_vsathub, 45434}, // __builtin_HEXAGON_V6_vsathub
-+      {Intrinsic::hexagon_V6_vsathub_128B, 45463}, // __builtin_HEXAGON_V6_vsathub_128B
-+      {Intrinsic::hexagon_V6_vsatwh, 45497}, // __builtin_HEXAGON_V6_vsatwh
-+      {Intrinsic::hexagon_V6_vsatwh_128B, 45525}, // __builtin_HEXAGON_V6_vsatwh_128B
-+      {Intrinsic::hexagon_V6_vsb, 45558}, // __builtin_HEXAGON_V6_vsb
-+      {Intrinsic::hexagon_V6_vsb_128B, 45583}, // __builtin_HEXAGON_V6_vsb_128B
-+      {Intrinsic::hexagon_V6_vsh, 45613}, // __builtin_HEXAGON_V6_vsh
-+      {Intrinsic::hexagon_V6_vsh_128B, 45638}, // __builtin_HEXAGON_V6_vsh_128B
-+      {Intrinsic::hexagon_V6_vshufeh, 45668}, // __builtin_HEXAGON_V6_vshufeh
-+      {Intrinsic::hexagon_V6_vshufeh_128B, 45697}, // __builtin_HEXAGON_V6_vshufeh_128B
-+      {Intrinsic::hexagon_V6_vshuffb, 45731}, // __builtin_HEXAGON_V6_vshuffb
-+      {Intrinsic::hexagon_V6_vshuffb_128B, 45760}, // __builtin_HEXAGON_V6_vshuffb_128B
-+      {Intrinsic::hexagon_V6_vshuffeb, 45794}, // __builtin_HEXAGON_V6_vshuffeb
-+      {Intrinsic::hexagon_V6_vshuffeb_128B, 45824}, // __builtin_HEXAGON_V6_vshuffeb_128B
-+      {Intrinsic::hexagon_V6_vshuffh, 45859}, // __builtin_HEXAGON_V6_vshuffh
-+      {Intrinsic::hexagon_V6_vshuffh_128B, 45888}, // __builtin_HEXAGON_V6_vshuffh_128B
-+      {Intrinsic::hexagon_V6_vshuffob, 45922}, // __builtin_HEXAGON_V6_vshuffob
-+      {Intrinsic::hexagon_V6_vshuffob_128B, 45952}, // __builtin_HEXAGON_V6_vshuffob_128B
-+      {Intrinsic::hexagon_V6_vshuffvdd, 45987}, // __builtin_HEXAGON_V6_vshuffvdd
-+      {Intrinsic::hexagon_V6_vshuffvdd_128B, 46018}, // __builtin_HEXAGON_V6_vshuffvdd_128B
-+      {Intrinsic::hexagon_V6_vshufoeb, 46054}, // __builtin_HEXAGON_V6_vshufoeb
-+      {Intrinsic::hexagon_V6_vshufoeb_128B, 46084}, // __builtin_HEXAGON_V6_vshufoeb_128B
-+      {Intrinsic::hexagon_V6_vshufoeh, 46119}, // __builtin_HEXAGON_V6_vshufoeh
-+      {Intrinsic::hexagon_V6_vshufoeh_128B, 46149}, // __builtin_HEXAGON_V6_vshufoeh_128B
-+      {Intrinsic::hexagon_V6_vshufoh, 46184}, // __builtin_HEXAGON_V6_vshufoh
-+      {Intrinsic::hexagon_V6_vshufoh_128B, 46213}, // __builtin_HEXAGON_V6_vshufoh_128B
-+      {Intrinsic::hexagon_V6_vsubb, 46247}, // __builtin_HEXAGON_V6_vsubb
-+      {Intrinsic::hexagon_V6_vsubb_128B, 46274}, // __builtin_HEXAGON_V6_vsubb_128B
-+      {Intrinsic::hexagon_V6_vsubb_dv, 46306}, // __builtin_HEXAGON_V6_vsubb_dv
-+      {Intrinsic::hexagon_V6_vsubb_dv_128B, 46336}, // __builtin_HEXAGON_V6_vsubb_dv_128B
-+      {Intrinsic::hexagon_V6_vsubbnq, 46371}, // __builtin_HEXAGON_V6_vsubbnq
-+      {Intrinsic::hexagon_V6_vsubbnq_128B, 46400}, // __builtin_HEXAGON_V6_vsubbnq_128B
-+      {Intrinsic::hexagon_V6_vsubbq, 46434}, // __builtin_HEXAGON_V6_vsubbq
-+      {Intrinsic::hexagon_V6_vsubbq_128B, 46462}, // __builtin_HEXAGON_V6_vsubbq_128B
-+      {Intrinsic::hexagon_V6_vsubh, 46495}, // __builtin_HEXAGON_V6_vsubh
-+      {Intrinsic::hexagon_V6_vsubh_128B, 46522}, // __builtin_HEXAGON_V6_vsubh_128B
-+      {Intrinsic::hexagon_V6_vsubh_dv, 46554}, // __builtin_HEXAGON_V6_vsubh_dv
-+      {Intrinsic::hexagon_V6_vsubh_dv_128B, 46584}, // __builtin_HEXAGON_V6_vsubh_dv_128B
-+      {Intrinsic::hexagon_V6_vsubhnq, 46619}, // __builtin_HEXAGON_V6_vsubhnq
-+      {Intrinsic::hexagon_V6_vsubhnq_128B, 46648}, // __builtin_HEXAGON_V6_vsubhnq_128B
-+      {Intrinsic::hexagon_V6_vsubhq, 46682}, // __builtin_HEXAGON_V6_vsubhq
-+      {Intrinsic::hexagon_V6_vsubhq_128B, 46710}, // __builtin_HEXAGON_V6_vsubhq_128B
-+      {Intrinsic::hexagon_V6_vsubhsat, 46743}, // __builtin_HEXAGON_V6_vsubhsat
-+      {Intrinsic::hexagon_V6_vsubhsat_128B, 46773}, // __builtin_HEXAGON_V6_vsubhsat_128B
-+      {Intrinsic::hexagon_V6_vsubhsat_dv, 46808}, // __builtin_HEXAGON_V6_vsubhsat_dv
-+      {Intrinsic::hexagon_V6_vsubhsat_dv_128B, 46841}, // __builtin_HEXAGON_V6_vsubhsat_dv_128B
-+      {Intrinsic::hexagon_V6_vsubhw, 46879}, // __builtin_HEXAGON_V6_vsubhw
-+      {Intrinsic::hexagon_V6_vsubhw_128B, 46907}, // __builtin_HEXAGON_V6_vsubhw_128B
-+      {Intrinsic::hexagon_V6_vsububh, 46940}, // __builtin_HEXAGON_V6_vsububh
-+      {Intrinsic::hexagon_V6_vsububh_128B, 46969}, // __builtin_HEXAGON_V6_vsububh_128B
-+      {Intrinsic::hexagon_V6_vsububsat, 47003}, // __builtin_HEXAGON_V6_vsububsat
-+      {Intrinsic::hexagon_V6_vsububsat_128B, 47034}, // __builtin_HEXAGON_V6_vsububsat_128B
-+      {Intrinsic::hexagon_V6_vsububsat_dv, 47070}, // __builtin_HEXAGON_V6_vsububsat_dv
-+      {Intrinsic::hexagon_V6_vsububsat_dv_128B, 47104}, // __builtin_HEXAGON_V6_vsububsat_dv_128B
-+      {Intrinsic::hexagon_V6_vsubuhsat, 47143}, // __builtin_HEXAGON_V6_vsubuhsat
-+      {Intrinsic::hexagon_V6_vsubuhsat_128B, 47174}, // __builtin_HEXAGON_V6_vsubuhsat_128B
-+      {Intrinsic::hexagon_V6_vsubuhsat_dv, 47210}, // __builtin_HEXAGON_V6_vsubuhsat_dv
-+      {Intrinsic::hexagon_V6_vsubuhsat_dv_128B, 47244}, // __builtin_HEXAGON_V6_vsubuhsat_dv_128B
-+      {Intrinsic::hexagon_V6_vsubuhw, 47283}, // __builtin_HEXAGON_V6_vsubuhw
-+      {Intrinsic::hexagon_V6_vsubuhw_128B, 47312}, // __builtin_HEXAGON_V6_vsubuhw_128B
-+      {Intrinsic::hexagon_V6_vsubw, 47346}, // __builtin_HEXAGON_V6_vsubw
-+      {Intrinsic::hexagon_V6_vsubw_128B, 47373}, // __builtin_HEXAGON_V6_vsubw_128B
-+      {Intrinsic::hexagon_V6_vsubw_dv, 47405}, // __builtin_HEXAGON_V6_vsubw_dv
-+      {Intrinsic::hexagon_V6_vsubw_dv_128B, 47435}, // __builtin_HEXAGON_V6_vsubw_dv_128B
-+      {Intrinsic::hexagon_V6_vsubwnq, 47470}, // __builtin_HEXAGON_V6_vsubwnq
-+      {Intrinsic::hexagon_V6_vsubwnq_128B, 47499}, // __builtin_HEXAGON_V6_vsubwnq_128B
-+      {Intrinsic::hexagon_V6_vsubwq, 47533}, // __builtin_HEXAGON_V6_vsubwq
-+      {Intrinsic::hexagon_V6_vsubwq_128B, 47561}, // __builtin_HEXAGON_V6_vsubwq_128B
-+      {Intrinsic::hexagon_V6_vsubwsat, 47594}, // __builtin_HEXAGON_V6_vsubwsat
-+      {Intrinsic::hexagon_V6_vsubwsat_128B, 47624}, // __builtin_HEXAGON_V6_vsubwsat_128B
-+      {Intrinsic::hexagon_V6_vsubwsat_dv, 47659}, // __builtin_HEXAGON_V6_vsubwsat_dv
-+      {Intrinsic::hexagon_V6_vsubwsat_dv_128B, 47692}, // __builtin_HEXAGON_V6_vsubwsat_dv_128B
-+      {Intrinsic::hexagon_V6_vswap, 47730}, // __builtin_HEXAGON_V6_vswap
-+      {Intrinsic::hexagon_V6_vswap_128B, 47757}, // __builtin_HEXAGON_V6_vswap_128B
-+      {Intrinsic::hexagon_V6_vtmpyb, 47789}, // __builtin_HEXAGON_V6_vtmpyb
-+      {Intrinsic::hexagon_V6_vtmpyb_128B, 47817}, // __builtin_HEXAGON_V6_vtmpyb_128B
-+      {Intrinsic::hexagon_V6_vtmpyb_acc, 47850}, // __builtin_HEXAGON_V6_vtmpyb_acc
-+      {Intrinsic::hexagon_V6_vtmpyb_acc_128B, 47882}, // __builtin_HEXAGON_V6_vtmpyb_acc_128B
-+      {Intrinsic::hexagon_V6_vtmpybus, 47919}, // __builtin_HEXAGON_V6_vtmpybus
-+      {Intrinsic::hexagon_V6_vtmpybus_128B, 47949}, // __builtin_HEXAGON_V6_vtmpybus_128B
-+      {Intrinsic::hexagon_V6_vtmpybus_acc, 47984}, // __builtin_HEXAGON_V6_vtmpybus_acc
-+      {Intrinsic::hexagon_V6_vtmpybus_acc_128B, 48018}, // __builtin_HEXAGON_V6_vtmpybus_acc_128B
-+      {Intrinsic::hexagon_V6_vtmpyhb, 48057}, // __builtin_HEXAGON_V6_vtmpyhb
-+      {Intrinsic::hexagon_V6_vtmpyhb_128B, 48086}, // __builtin_HEXAGON_V6_vtmpyhb_128B
-+      {Intrinsic::hexagon_V6_vtmpyhb_acc, 48120}, // __builtin_HEXAGON_V6_vtmpyhb_acc
-+      {Intrinsic::hexagon_V6_vtmpyhb_acc_128B, 48153}, // __builtin_HEXAGON_V6_vtmpyhb_acc_128B
-+      {Intrinsic::hexagon_V6_vunpackb, 48191}, // __builtin_HEXAGON_V6_vunpackb
-+      {Intrinsic::hexagon_V6_vunpackb_128B, 48221}, // __builtin_HEXAGON_V6_vunpackb_128B
-+      {Intrinsic::hexagon_V6_vunpackh, 48256}, // __builtin_HEXAGON_V6_vunpackh
-+      {Intrinsic::hexagon_V6_vunpackh_128B, 48286}, // __builtin_HEXAGON_V6_vunpackh_128B
-+      {Intrinsic::hexagon_V6_vunpackob, 48321}, // __builtin_HEXAGON_V6_vunpackob
-+      {Intrinsic::hexagon_V6_vunpackob_128B, 48352}, // __builtin_HEXAGON_V6_vunpackob_128B
-+      {Intrinsic::hexagon_V6_vunpackoh, 48388}, // __builtin_HEXAGON_V6_vunpackoh
-+      {Intrinsic::hexagon_V6_vunpackoh_128B, 48419}, // __builtin_HEXAGON_V6_vunpackoh_128B
-+      {Intrinsic::hexagon_V6_vunpackub, 48455}, // __builtin_HEXAGON_V6_vunpackub
-+      {Intrinsic::hexagon_V6_vunpackub_128B, 48486}, // __builtin_HEXAGON_V6_vunpackub_128B
-+      {Intrinsic::hexagon_V6_vunpackuh, 48522}, // __builtin_HEXAGON_V6_vunpackuh
-+      {Intrinsic::hexagon_V6_vunpackuh_128B, 48553}, // __builtin_HEXAGON_V6_vunpackuh_128B
-+      {Intrinsic::hexagon_V6_vxor, 48589}, // __builtin_HEXAGON_V6_vxor
-+      {Intrinsic::hexagon_V6_vxor_128B, 48615}, // __builtin_HEXAGON_V6_vxor_128B
-+      {Intrinsic::hexagon_V6_vzb, 48646}, // __builtin_HEXAGON_V6_vzb
-+      {Intrinsic::hexagon_V6_vzb_128B, 48671}, // __builtin_HEXAGON_V6_vzb_128B
-+      {Intrinsic::hexagon_V6_vzh, 48701}, // __builtin_HEXAGON_V6_vzh
-+      {Intrinsic::hexagon_V6_vzh_128B, 48726}, // __builtin_HEXAGON_V6_vzh_128B
-+      {Intrinsic::hexagon_prefetch, 49206}, // __builtin_HEXAGON_prefetch
-+      {Intrinsic::hexagon_SI_to_SXTHI_asrh, 29057}, // __builtin_SI_to_SXTHI_asrh
-+      {Intrinsic::hexagon_mm256i_vaddw, 49182}, // __builtin__mm256i_vaddw
-+      {Intrinsic::hexagon_brev_ldb, 48756}, // __builtin_brev_ldb
-+      {Intrinsic::hexagon_brev_ldd, 48775}, // __builtin_brev_ldd
-+      {Intrinsic::hexagon_brev_ldh, 48794}, // __builtin_brev_ldh
-+      {Intrinsic::hexagon_brev_ldub, 48813}, // __builtin_brev_ldub
-+      {Intrinsic::hexagon_brev_lduh, 48833}, // __builtin_brev_lduh
-+      {Intrinsic::hexagon_brev_ldw, 48853}, // __builtin_brev_ldw
-+      {Intrinsic::hexagon_brev_stb, 48872}, // __builtin_brev_stb
-+      {Intrinsic::hexagon_brev_std, 48891}, // __builtin_brev_std
-+      {Intrinsic::hexagon_brev_sth, 48910}, // __builtin_brev_sth
-+      {Intrinsic::hexagon_brev_sthhi, 48929}, // __builtin_brev_sthhi
-+      {Intrinsic::hexagon_brev_stw, 48950}, // __builtin_brev_stw
-+      {Intrinsic::hexagon_circ_ldb, 48969}, // __builtin_circ_ldb
-+      {Intrinsic::hexagon_circ_ldd, 48988}, // __builtin_circ_ldd
-+      {Intrinsic::hexagon_circ_ldh, 49007}, // __builtin_circ_ldh
-+      {Intrinsic::hexagon_circ_ldub, 49026}, // __builtin_circ_ldub
-+      {Intrinsic::hexagon_circ_lduh, 49046}, // __builtin_circ_lduh
-+      {Intrinsic::hexagon_circ_ldw, 49066}, // __builtin_circ_ldw
-+      {Intrinsic::hexagon_circ_stb, 49085}, // __builtin_circ_stb
-+      {Intrinsic::hexagon_circ_std, 49104}, // __builtin_circ_std
-+      {Intrinsic::hexagon_circ_sth, 49123}, // __builtin_circ_sth
-+      {Intrinsic::hexagon_circ_sthhi, 49142}, // __builtin_circ_sthhi
-+      {Intrinsic::hexagon_circ_stw, 49163}, // __builtin_circ_stw
-+    };
-+    auto I = std::lower_bound(std::begin(hexagonNames),
-+                              std::end(hexagonNames),
-+                              BuiltinNameStr);
-+    if (I != std::end(hexagonNames) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  if (TargetPrefix == "mips") {
-+    static const BuiltinEntry mipsNames[] = {
-+      {Intrinsic::mips_absq_s_ph, 49233}, // __builtin_mips_absq_s_ph
-+      {Intrinsic::mips_absq_s_qb, 49258}, // __builtin_mips_absq_s_qb
-+      {Intrinsic::mips_absq_s_w, 49283}, // __builtin_mips_absq_s_w
-+      {Intrinsic::mips_addq_ph, 49395}, // __builtin_mips_addq_ph
-+      {Intrinsic::mips_addq_s_ph, 49418}, // __builtin_mips_addq_s_ph
-+      {Intrinsic::mips_addq_s_w, 49443}, // __builtin_mips_addq_s_w
-+      {Intrinsic::mips_addqh_ph, 49467}, // __builtin_mips_addqh_ph
-+      {Intrinsic::mips_addqh_r_ph, 49491}, // __builtin_mips_addqh_r_ph
-+      {Intrinsic::mips_addqh_r_w, 49517}, // __builtin_mips_addqh_r_w
-+      {Intrinsic::mips_addqh_w, 49542}, // __builtin_mips_addqh_w
-+      {Intrinsic::mips_addsc, 49841}, // __builtin_mips_addsc
-+      {Intrinsic::mips_addu_ph, 49862}, // __builtin_mips_addu_ph
-+      {Intrinsic::mips_addu_qb, 49885}, // __builtin_mips_addu_qb
-+      {Intrinsic::mips_addu_s_ph, 49908}, // __builtin_mips_addu_s_ph
-+      {Intrinsic::mips_addu_s_qb, 49933}, // __builtin_mips_addu_s_qb
-+      {Intrinsic::mips_adduh_qb, 49958}, // __builtin_mips_adduh_qb
-+      {Intrinsic::mips_adduh_r_qb, 49982}, // __builtin_mips_adduh_r_qb
-+      {Intrinsic::mips_addwc, 50180}, // __builtin_mips_addwc
-+      {Intrinsic::mips_append, 50242}, // __builtin_mips_append
-+      {Intrinsic::mips_balign, 50808}, // __builtin_mips_balign
-+      {Intrinsic::mips_bitrev, 51362}, // __builtin_mips_bitrev
-+      {Intrinsic::mips_bposge32, 51740}, // __builtin_mips_bposge32
-+      {Intrinsic::mips_cmp_eq_ph, 52979}, // __builtin_mips_cmp_eq_ph
-+      {Intrinsic::mips_cmp_le_ph, 53004}, // __builtin_mips_cmp_le_ph
-+      {Intrinsic::mips_cmp_lt_ph, 53029}, // __builtin_mips_cmp_lt_ph
-+      {Intrinsic::mips_cmpgdu_eq_qb, 53054}, // __builtin_mips_cmpgdu_eq_qb
-+      {Intrinsic::mips_cmpgdu_le_qb, 53082}, // __builtin_mips_cmpgdu_le_qb
-+      {Intrinsic::mips_cmpgdu_lt_qb, 53110}, // __builtin_mips_cmpgdu_lt_qb
-+      {Intrinsic::mips_cmpgu_eq_qb, 53138}, // __builtin_mips_cmpgu_eq_qb
-+      {Intrinsic::mips_cmpgu_le_qb, 53165}, // __builtin_mips_cmpgu_le_qb
-+      {Intrinsic::mips_cmpgu_lt_qb, 53192}, // __builtin_mips_cmpgu_lt_qb
-+      {Intrinsic::mips_cmpu_eq_qb, 53219}, // __builtin_mips_cmpu_eq_qb
-+      {Intrinsic::mips_cmpu_le_qb, 53245}, // __builtin_mips_cmpu_le_qb
-+      {Intrinsic::mips_cmpu_lt_qb, 53271}, // __builtin_mips_cmpu_lt_qb
-+      {Intrinsic::mips_dlsa, 53678}, // __builtin_mips_dlsa
-+      {Intrinsic::mips_dpa_w_ph, 53836}, // __builtin_mips_dpa_w_ph
-+      {Intrinsic::mips_dpaq_s_w_ph, 54004}, // __builtin_mips_dpaq_s_w_ph
-+      {Intrinsic::mips_dpaq_sa_l_w, 54031}, // __builtin_mips_dpaq_sa_l_w
-+      {Intrinsic::mips_dpaqx_s_w_ph, 54058}, // __builtin_mips_dpaqx_s_w_ph
-+      {Intrinsic::mips_dpaqx_sa_w_ph, 54086}, // __builtin_mips_dpaqx_sa_w_ph
-+      {Intrinsic::mips_dpau_h_qbl, 54115}, // __builtin_mips_dpau_h_qbl
-+      {Intrinsic::mips_dpau_h_qbr, 54141}, // __builtin_mips_dpau_h_qbr
-+      {Intrinsic::mips_dpax_w_ph, 54167}, // __builtin_mips_dpax_w_ph
-+      {Intrinsic::mips_dps_w_ph, 54192}, // __builtin_mips_dps_w_ph
-+      {Intrinsic::mips_dpsq_s_w_ph, 54216}, // __builtin_mips_dpsq_s_w_ph
-+      {Intrinsic::mips_dpsq_sa_l_w, 54243}, // __builtin_mips_dpsq_sa_l_w
-+      {Intrinsic::mips_dpsqx_s_w_ph, 54270}, // __builtin_mips_dpsqx_s_w_ph
-+      {Intrinsic::mips_dpsqx_sa_w_ph, 54298}, // __builtin_mips_dpsqx_sa_w_ph
-+      {Intrinsic::mips_dpsu_h_qbl, 54327}, // __builtin_mips_dpsu_h_qbl
-+      {Intrinsic::mips_dpsu_h_qbr, 54353}, // __builtin_mips_dpsu_h_qbr
-+      {Intrinsic::mips_dpsx_w_ph, 54523}, // __builtin_mips_dpsx_w_ph
-+      {Intrinsic::mips_extp, 54548}, // __builtin_mips_extp
-+      {Intrinsic::mips_extpdp, 54568}, // __builtin_mips_extpdp
-+      {Intrinsic::mips_extr_r_w, 54590}, // __builtin_mips_extr_r_w
-+      {Intrinsic::mips_extr_rs_w, 54614}, // __builtin_mips_extr_rs_w
-+      {Intrinsic::mips_extr_s_h, 54639}, // __builtin_mips_extr_s_h
-+      {Intrinsic::mips_extr_w, 54663}, // __builtin_mips_extr_w
-+      {Intrinsic::mips_insv, 57715}, // __builtin_mips_insv
-+      {Intrinsic::mips_lbux, 57823}, // __builtin_mips_lbux
-+      {Intrinsic::mips_lhx, 57999}, // __builtin_mips_lhx
-+      {Intrinsic::mips_lsa, 58018}, // __builtin_mips_lsa
-+      {Intrinsic::mips_lwx, 58037}, // __builtin_mips_lwx
-+      {Intrinsic::mips_madd, 58056}, // __builtin_mips_madd
-+      {Intrinsic::mips_maddu, 58170}, // __builtin_mips_maddu
-+      {Intrinsic::mips_maq_s_w_phl, 58279}, // __builtin_mips_maq_s_w_phl
-+      {Intrinsic::mips_maq_s_w_phr, 58306}, // __builtin_mips_maq_s_w_phr
-+      {Intrinsic::mips_maq_sa_w_phl, 58333}, // __builtin_mips_maq_sa_w_phl
-+      {Intrinsic::mips_maq_sa_w_phr, 58361}, // __builtin_mips_maq_sa_w_phr
-+      {Intrinsic::mips_modsub, 59461}, // __builtin_mips_modsub
-+      {Intrinsic::mips_msub, 59504}, // __builtin_mips_msub
-+      {Intrinsic::mips_msubu, 59618}, // __builtin_mips_msubu
-+      {Intrinsic::mips_mthlip, 59727}, // __builtin_mips_mthlip
-+      {Intrinsic::mips_mul_ph, 59749}, // __builtin_mips_mul_ph
-+      {Intrinsic::mips_mul_s_ph, 59815}, // __builtin_mips_mul_s_ph
-+      {Intrinsic::mips_muleq_s_w_phl, 59839}, // __builtin_mips_muleq_s_w_phl
-+      {Intrinsic::mips_muleq_s_w_phr, 59868}, // __builtin_mips_muleq_s_w_phr
-+      {Intrinsic::mips_muleu_s_ph_qbl, 59897}, // __builtin_mips_muleu_s_ph_qbl
-+      {Intrinsic::mips_muleu_s_ph_qbr, 59927}, // __builtin_mips_muleu_s_ph_qbr
-+      {Intrinsic::mips_mulq_rs_ph, 59957}, // __builtin_mips_mulq_rs_ph
-+      {Intrinsic::mips_mulq_rs_w, 59983}, // __builtin_mips_mulq_rs_w
-+      {Intrinsic::mips_mulq_s_ph, 60008}, // __builtin_mips_mulq_s_ph
-+      {Intrinsic::mips_mulq_s_w, 60033}, // __builtin_mips_mulq_s_w
-+      {Intrinsic::mips_mulsa_w_ph, 60103}, // __builtin_mips_mulsa_w_ph
-+      {Intrinsic::mips_mulsaq_s_w_ph, 60129}, // __builtin_mips_mulsaq_s_w_ph
-+      {Intrinsic::mips_mult, 60158}, // __builtin_mips_mult
-+      {Intrinsic::mips_multu, 60178}, // __builtin_mips_multu
-+      {Intrinsic::mips_packrl_ph, 60531}, // __builtin_mips_packrl_ph
-+      {Intrinsic::mips_pick_ph, 60816}, // __builtin_mips_pick_ph
-+      {Intrinsic::mips_pick_qb, 60839}, // __builtin_mips_pick_qb
-+      {Intrinsic::mips_preceq_w_phl, 60862}, // __builtin_mips_preceq_w_phl
-+      {Intrinsic::mips_preceq_w_phr, 60890}, // __builtin_mips_preceq_w_phr
-+      {Intrinsic::mips_precequ_ph_qbl, 60918}, // __builtin_mips_precequ_ph_qbl
-+      {Intrinsic::mips_precequ_ph_qbla, 60948}, // __builtin_mips_precequ_ph_qbla
-+      {Intrinsic::mips_precequ_ph_qbr, 60979}, // __builtin_mips_precequ_ph_qbr
-+      {Intrinsic::mips_precequ_ph_qbra, 61009}, // __builtin_mips_precequ_ph_qbra
-+      {Intrinsic::mips_preceu_ph_qbl, 61040}, // __builtin_mips_preceu_ph_qbl
-+      {Intrinsic::mips_preceu_ph_qbla, 61069}, // __builtin_mips_preceu_ph_qbla
-+      {Intrinsic::mips_preceu_ph_qbr, 61099}, // __builtin_mips_preceu_ph_qbr
-+      {Intrinsic::mips_preceu_ph_qbra, 61128}, // __builtin_mips_preceu_ph_qbra
-+      {Intrinsic::mips_precr_qb_ph, 61158}, // __builtin_mips_precr_qb_ph
-+      {Intrinsic::mips_precr_sra_ph_w, 61185}, // __builtin_mips_precr_sra_ph_w
-+      {Intrinsic::mips_precr_sra_r_ph_w, 61215}, // __builtin_mips_precr_sra_r_ph_w
-+      {Intrinsic::mips_precrq_ph_w, 61247}, // __builtin_mips_precrq_ph_w
-+      {Intrinsic::mips_precrq_qb_ph, 61274}, // __builtin_mips_precrq_qb_ph
-+      {Intrinsic::mips_precrq_rs_ph_w, 61302}, // __builtin_mips_precrq_rs_ph_w
-+      {Intrinsic::mips_precrqu_s_qb_ph, 61332}, // __builtin_mips_precrqu_s_qb_ph
-+      {Intrinsic::mips_prepend, 61363}, // __builtin_mips_prepend
-+      {Intrinsic::mips_raddu_w_qb, 61386}, // __builtin_mips_raddu_w_qb
-+      {Intrinsic::mips_rddsp, 61412}, // __builtin_mips_rddsp
-+      {Intrinsic::mips_repl_ph, 61433}, // __builtin_mips_repl_ph
-+      {Intrinsic::mips_repl_qb, 61456}, // __builtin_mips_repl_qb
-+      {Intrinsic::mips_shilo, 61715}, // __builtin_mips_shilo
-+      {Intrinsic::mips_shll_ph, 61736}, // __builtin_mips_shll_ph
-+      {Intrinsic::mips_shll_qb, 61759}, // __builtin_mips_shll_qb
-+      {Intrinsic::mips_shll_s_ph, 61782}, // __builtin_mips_shll_s_ph
-+      {Intrinsic::mips_shll_s_w, 61807}, // __builtin_mips_shll_s_w
-+      {Intrinsic::mips_shra_ph, 61831}, // __builtin_mips_shra_ph
-+      {Intrinsic::mips_shra_qb, 61854}, // __builtin_mips_shra_qb
-+      {Intrinsic::mips_shra_r_ph, 61877}, // __builtin_mips_shra_r_ph
-+      {Intrinsic::mips_shra_r_qb, 61902}, // __builtin_mips_shra_r_qb
-+      {Intrinsic::mips_shra_r_w, 61927}, // __builtin_mips_shra_r_w
-+      {Intrinsic::mips_shrl_ph, 61951}, // __builtin_mips_shrl_ph
-+      {Intrinsic::mips_shrl_qb, 61974}, // __builtin_mips_shrl_qb
-+      {Intrinsic::mips_subq_ph, 63253}, // __builtin_mips_subq_ph
-+      {Intrinsic::mips_subq_s_ph, 63276}, // __builtin_mips_subq_s_ph
-+      {Intrinsic::mips_subq_s_w, 63301}, // __builtin_mips_subq_s_w
-+      {Intrinsic::mips_subqh_ph, 63325}, // __builtin_mips_subqh_ph
-+      {Intrinsic::mips_subqh_r_ph, 63349}, // __builtin_mips_subqh_r_ph
-+      {Intrinsic::mips_subqh_r_w, 63375}, // __builtin_mips_subqh_r_w
-+      {Intrinsic::mips_subqh_w, 63400}, // __builtin_mips_subqh_w
-+      {Intrinsic::mips_subu_ph, 63807}, // __builtin_mips_subu_ph
-+      {Intrinsic::mips_subu_qb, 63830}, // __builtin_mips_subu_qb
-+      {Intrinsic::mips_subu_s_ph, 63853}, // __builtin_mips_subu_s_ph
-+      {Intrinsic::mips_subu_s_qb, 63878}, // __builtin_mips_subu_s_qb
-+      {Intrinsic::mips_subuh_qb, 63903}, // __builtin_mips_subuh_qb
-+      {Intrinsic::mips_subuh_r_qb, 63927}, // __builtin_mips_subuh_r_qb
-+      {Intrinsic::mips_wrdsp, 64209}, // __builtin_mips_wrdsp
-+      {Intrinsic::mips_add_a_b, 49307}, // __builtin_msa_add_a_b
-+      {Intrinsic::mips_add_a_d, 49329}, // __builtin_msa_add_a_d
-+      {Intrinsic::mips_add_a_h, 49351}, // __builtin_msa_add_a_h
-+      {Intrinsic::mips_add_a_w, 49373}, // __builtin_msa_add_a_w
-+      {Intrinsic::mips_adds_a_b, 49565}, // __builtin_msa_adds_a_b
-+      {Intrinsic::mips_adds_a_d, 49588}, // __builtin_msa_adds_a_d
-+      {Intrinsic::mips_adds_a_h, 49611}, // __builtin_msa_adds_a_h
-+      {Intrinsic::mips_adds_a_w, 49634}, // __builtin_msa_adds_a_w
-+      {Intrinsic::mips_adds_s_b, 49657}, // __builtin_msa_adds_s_b
-+      {Intrinsic::mips_adds_s_d, 49680}, // __builtin_msa_adds_s_d
-+      {Intrinsic::mips_adds_s_h, 49703}, // __builtin_msa_adds_s_h
-+      {Intrinsic::mips_adds_s_w, 49726}, // __builtin_msa_adds_s_w
-+      {Intrinsic::mips_adds_u_b, 49749}, // __builtin_msa_adds_u_b
-+      {Intrinsic::mips_adds_u_d, 49772}, // __builtin_msa_adds_u_d
-+      {Intrinsic::mips_adds_u_h, 49795}, // __builtin_msa_adds_u_h
-+      {Intrinsic::mips_adds_u_w, 49818}, // __builtin_msa_adds_u_w
-+      {Intrinsic::mips_addv_b, 50008}, // __builtin_msa_addv_b
-+      {Intrinsic::mips_addv_d, 50029}, // __builtin_msa_addv_d
-+      {Intrinsic::mips_addv_h, 50050}, // __builtin_msa_addv_h
-+      {Intrinsic::mips_addv_w, 50071}, // __builtin_msa_addv_w
-+      {Intrinsic::mips_addvi_b, 50092}, // __builtin_msa_addvi_b
-+      {Intrinsic::mips_addvi_d, 50114}, // __builtin_msa_addvi_d
-+      {Intrinsic::mips_addvi_h, 50136}, // __builtin_msa_addvi_h
-+      {Intrinsic::mips_addvi_w, 50158}, // __builtin_msa_addvi_w
-+      {Intrinsic::mips_and_v, 50201}, // __builtin_msa_and_v
-+      {Intrinsic::mips_andi_b, 50221}, // __builtin_msa_andi_b
-+      {Intrinsic::mips_asub_s_b, 50264}, // __builtin_msa_asub_s_b
-+      {Intrinsic::mips_asub_s_d, 50287}, // __builtin_msa_asub_s_d
-+      {Intrinsic::mips_asub_s_h, 50310}, // __builtin_msa_asub_s_h
-+      {Intrinsic::mips_asub_s_w, 50333}, // __builtin_msa_asub_s_w
-+      {Intrinsic::mips_asub_u_b, 50356}, // __builtin_msa_asub_u_b
-+      {Intrinsic::mips_asub_u_d, 50379}, // __builtin_msa_asub_u_d
-+      {Intrinsic::mips_asub_u_h, 50402}, // __builtin_msa_asub_u_h
-+      {Intrinsic::mips_asub_u_w, 50425}, // __builtin_msa_asub_u_w
-+      {Intrinsic::mips_ave_s_b, 50448}, // __builtin_msa_ave_s_b
-+      {Intrinsic::mips_ave_s_d, 50470}, // __builtin_msa_ave_s_d
-+      {Intrinsic::mips_ave_s_h, 50492}, // __builtin_msa_ave_s_h
-+      {Intrinsic::mips_ave_s_w, 50514}, // __builtin_msa_ave_s_w
-+      {Intrinsic::mips_ave_u_b, 50536}, // __builtin_msa_ave_u_b
-+      {Intrinsic::mips_ave_u_d, 50558}, // __builtin_msa_ave_u_d
-+      {Intrinsic::mips_ave_u_h, 50580}, // __builtin_msa_ave_u_h
-+      {Intrinsic::mips_ave_u_w, 50602}, // __builtin_msa_ave_u_w
-+      {Intrinsic::mips_aver_s_b, 50624}, // __builtin_msa_aver_s_b
-+      {Intrinsic::mips_aver_s_d, 50647}, // __builtin_msa_aver_s_d
-+      {Intrinsic::mips_aver_s_h, 50670}, // __builtin_msa_aver_s_h
-+      {Intrinsic::mips_aver_s_w, 50693}, // __builtin_msa_aver_s_w
-+      {Intrinsic::mips_aver_u_b, 50716}, // __builtin_msa_aver_u_b
-+      {Intrinsic::mips_aver_u_d, 50739}, // __builtin_msa_aver_u_d
-+      {Intrinsic::mips_aver_u_h, 50762}, // __builtin_msa_aver_u_h
-+      {Intrinsic::mips_aver_u_w, 50785}, // __builtin_msa_aver_u_w
-+      {Intrinsic::mips_bclr_b, 50830}, // __builtin_msa_bclr_b
-+      {Intrinsic::mips_bclr_d, 50851}, // __builtin_msa_bclr_d
-+      {Intrinsic::mips_bclr_h, 50872}, // __builtin_msa_bclr_h
-+      {Intrinsic::mips_bclr_w, 50893}, // __builtin_msa_bclr_w
-+      {Intrinsic::mips_bclri_b, 50914}, // __builtin_msa_bclri_b
-+      {Intrinsic::mips_bclri_d, 50936}, // __builtin_msa_bclri_d
-+      {Intrinsic::mips_bclri_h, 50958}, // __builtin_msa_bclri_h
-+      {Intrinsic::mips_bclri_w, 50980}, // __builtin_msa_bclri_w
-+      {Intrinsic::mips_binsl_b, 51002}, // __builtin_msa_binsl_b
-+      {Intrinsic::mips_binsl_d, 51024}, // __builtin_msa_binsl_d
-+      {Intrinsic::mips_binsl_h, 51046}, // __builtin_msa_binsl_h
-+      {Intrinsic::mips_binsl_w, 51068}, // __builtin_msa_binsl_w
-+      {Intrinsic::mips_binsli_b, 51090}, // __builtin_msa_binsli_b
-+      {Intrinsic::mips_binsli_d, 51113}, // __builtin_msa_binsli_d
-+      {Intrinsic::mips_binsli_h, 51136}, // __builtin_msa_binsli_h
-+      {Intrinsic::mips_binsli_w, 51159}, // __builtin_msa_binsli_w
-+      {Intrinsic::mips_binsr_b, 51182}, // __builtin_msa_binsr_b
-+      {Intrinsic::mips_binsr_d, 51204}, // __builtin_msa_binsr_d
-+      {Intrinsic::mips_binsr_h, 51226}, // __builtin_msa_binsr_h
-+      {Intrinsic::mips_binsr_w, 51248}, // __builtin_msa_binsr_w
-+      {Intrinsic::mips_binsri_b, 51270}, // __builtin_msa_binsri_b
-+      {Intrinsic::mips_binsri_d, 51293}, // __builtin_msa_binsri_d
-+      {Intrinsic::mips_binsri_h, 51316}, // __builtin_msa_binsri_h
-+      {Intrinsic::mips_binsri_w, 51339}, // __builtin_msa_binsri_w
-+      {Intrinsic::mips_bmnz_v, 51384}, // __builtin_msa_bmnz_v
-+      {Intrinsic::mips_bmnzi_b, 51405}, // __builtin_msa_bmnzi_b
-+      {Intrinsic::mips_bmz_v, 51427}, // __builtin_msa_bmz_v
-+      {Intrinsic::mips_bmzi_b, 51447}, // __builtin_msa_bmzi_b
-+      {Intrinsic::mips_bneg_b, 51468}, // __builtin_msa_bneg_b
-+      {Intrinsic::mips_bneg_d, 51489}, // __builtin_msa_bneg_d
-+      {Intrinsic::mips_bneg_h, 51510}, // __builtin_msa_bneg_h
-+      {Intrinsic::mips_bneg_w, 51531}, // __builtin_msa_bneg_w
-+      {Intrinsic::mips_bnegi_b, 51552}, // __builtin_msa_bnegi_b
-+      {Intrinsic::mips_bnegi_d, 51574}, // __builtin_msa_bnegi_d
-+      {Intrinsic::mips_bnegi_h, 51596}, // __builtin_msa_bnegi_h
-+      {Intrinsic::mips_bnegi_w, 51618}, // __builtin_msa_bnegi_w
-+      {Intrinsic::mips_bnz_b, 51640}, // __builtin_msa_bnz_b
-+      {Intrinsic::mips_bnz_d, 51660}, // __builtin_msa_bnz_d
-+      {Intrinsic::mips_bnz_h, 51680}, // __builtin_msa_bnz_h
-+      {Intrinsic::mips_bnz_v, 51700}, // __builtin_msa_bnz_v
-+      {Intrinsic::mips_bnz_w, 51720}, // __builtin_msa_bnz_w
-+      {Intrinsic::mips_bsel_v, 51764}, // __builtin_msa_bsel_v
-+      {Intrinsic::mips_bseli_b, 51785}, // __builtin_msa_bseli_b
-+      {Intrinsic::mips_bset_b, 51807}, // __builtin_msa_bset_b
-+      {Intrinsic::mips_bset_d, 51828}, // __builtin_msa_bset_d
-+      {Intrinsic::mips_bset_h, 51849}, // __builtin_msa_bset_h
-+      {Intrinsic::mips_bset_w, 51870}, // __builtin_msa_bset_w
-+      {Intrinsic::mips_bseti_b, 51891}, // __builtin_msa_bseti_b
-+      {Intrinsic::mips_bseti_d, 51913}, // __builtin_msa_bseti_d
-+      {Intrinsic::mips_bseti_h, 51935}, // __builtin_msa_bseti_h
-+      {Intrinsic::mips_bseti_w, 51957}, // __builtin_msa_bseti_w
-+      {Intrinsic::mips_bz_b, 51979}, // __builtin_msa_bz_b
-+      {Intrinsic::mips_bz_d, 51998}, // __builtin_msa_bz_d
-+      {Intrinsic::mips_bz_h, 52017}, // __builtin_msa_bz_h
-+      {Intrinsic::mips_bz_v, 52036}, // __builtin_msa_bz_v
-+      {Intrinsic::mips_bz_w, 52055}, // __builtin_msa_bz_w
-+      {Intrinsic::mips_ceq_b, 52074}, // __builtin_msa_ceq_b
-+      {Intrinsic::mips_ceq_d, 52094}, // __builtin_msa_ceq_d
-+      {Intrinsic::mips_ceq_h, 52114}, // __builtin_msa_ceq_h
-+      {Intrinsic::mips_ceq_w, 52134}, // __builtin_msa_ceq_w
-+      {Intrinsic::mips_ceqi_b, 52154}, // __builtin_msa_ceqi_b
-+      {Intrinsic::mips_ceqi_d, 52175}, // __builtin_msa_ceqi_d
-+      {Intrinsic::mips_ceqi_h, 52196}, // __builtin_msa_ceqi_h
-+      {Intrinsic::mips_ceqi_w, 52217}, // __builtin_msa_ceqi_w
-+      {Intrinsic::mips_cfcmsa, 52238}, // __builtin_msa_cfcmsa
-+      {Intrinsic::mips_cle_s_b, 52259}, // __builtin_msa_cle_s_b
-+      {Intrinsic::mips_cle_s_d, 52281}, // __builtin_msa_cle_s_d
-+      {Intrinsic::mips_cle_s_h, 52303}, // __builtin_msa_cle_s_h
-+      {Intrinsic::mips_cle_s_w, 52325}, // __builtin_msa_cle_s_w
-+      {Intrinsic::mips_cle_u_b, 52347}, // __builtin_msa_cle_u_b
-+      {Intrinsic::mips_cle_u_d, 52369}, // __builtin_msa_cle_u_d
-+      {Intrinsic::mips_cle_u_h, 52391}, // __builtin_msa_cle_u_h
-+      {Intrinsic::mips_cle_u_w, 52413}, // __builtin_msa_cle_u_w
-+      {Intrinsic::mips_clei_s_b, 52435}, // __builtin_msa_clei_s_b
-+      {Intrinsic::mips_clei_s_d, 52458}, // __builtin_msa_clei_s_d
-+      {Intrinsic::mips_clei_s_h, 52481}, // __builtin_msa_clei_s_h
-+      {Intrinsic::mips_clei_s_w, 52504}, // __builtin_msa_clei_s_w
-+      {Intrinsic::mips_clei_u_b, 52527}, // __builtin_msa_clei_u_b
-+      {Intrinsic::mips_clei_u_d, 52550}, // __builtin_msa_clei_u_d
-+      {Intrinsic::mips_clei_u_h, 52573}, // __builtin_msa_clei_u_h
-+      {Intrinsic::mips_clei_u_w, 52596}, // __builtin_msa_clei_u_w
-+      {Intrinsic::mips_clt_s_b, 52619}, // __builtin_msa_clt_s_b
-+      {Intrinsic::mips_clt_s_d, 52641}, // __builtin_msa_clt_s_d
-+      {Intrinsic::mips_clt_s_h, 52663}, // __builtin_msa_clt_s_h
-+      {Intrinsic::mips_clt_s_w, 52685}, // __builtin_msa_clt_s_w
-+      {Intrinsic::mips_clt_u_b, 52707}, // __builtin_msa_clt_u_b
-+      {Intrinsic::mips_clt_u_d, 52729}, // __builtin_msa_clt_u_d
-+      {Intrinsic::mips_clt_u_h, 52751}, // __builtin_msa_clt_u_h
-+      {Intrinsic::mips_clt_u_w, 52773}, // __builtin_msa_clt_u_w
-+      {Intrinsic::mips_clti_s_b, 52795}, // __builtin_msa_clti_s_b
-+      {Intrinsic::mips_clti_s_d, 52818}, // __builtin_msa_clti_s_d
-+      {Intrinsic::mips_clti_s_h, 52841}, // __builtin_msa_clti_s_h
-+      {Intrinsic::mips_clti_s_w, 52864}, // __builtin_msa_clti_s_w
-+      {Intrinsic::mips_clti_u_b, 52887}, // __builtin_msa_clti_u_b
-+      {Intrinsic::mips_clti_u_d, 52910}, // __builtin_msa_clti_u_d
-+      {Intrinsic::mips_clti_u_h, 52933}, // __builtin_msa_clti_u_h
-+      {Intrinsic::mips_clti_u_w, 52956}, // __builtin_msa_clti_u_w
-+      {Intrinsic::mips_copy_s_b, 53297}, // __builtin_msa_copy_s_b
-+      {Intrinsic::mips_copy_s_d, 53320}, // __builtin_msa_copy_s_d
-+      {Intrinsic::mips_copy_s_h, 53343}, // __builtin_msa_copy_s_h
-+      {Intrinsic::mips_copy_s_w, 53366}, // __builtin_msa_copy_s_w
-+      {Intrinsic::mips_copy_u_b, 53389}, // __builtin_msa_copy_u_b
-+      {Intrinsic::mips_copy_u_d, 53412}, // __builtin_msa_copy_u_d
-+      {Intrinsic::mips_copy_u_h, 53435}, // __builtin_msa_copy_u_h
-+      {Intrinsic::mips_copy_u_w, 53458}, // __builtin_msa_copy_u_w
-+      {Intrinsic::mips_ctcmsa, 53481}, // __builtin_msa_ctcmsa
-+      {Intrinsic::mips_div_s_b, 53502}, // __builtin_msa_div_s_b
-+      {Intrinsic::mips_div_s_d, 53524}, // __builtin_msa_div_s_d
-+      {Intrinsic::mips_div_s_h, 53546}, // __builtin_msa_div_s_h
-+      {Intrinsic::mips_div_s_w, 53568}, // __builtin_msa_div_s_w
-+      {Intrinsic::mips_div_u_b, 53590}, // __builtin_msa_div_u_b
-+      {Intrinsic::mips_div_u_d, 53612}, // __builtin_msa_div_u_d
-+      {Intrinsic::mips_div_u_h, 53634}, // __builtin_msa_div_u_h
-+      {Intrinsic::mips_div_u_w, 53656}, // __builtin_msa_div_u_w
-+      {Intrinsic::mips_dotp_s_d, 53698}, // __builtin_msa_dotp_s_d
-+      {Intrinsic::mips_dotp_s_h, 53721}, // __builtin_msa_dotp_s_h
-+      {Intrinsic::mips_dotp_s_w, 53744}, // __builtin_msa_dotp_s_w
-+      {Intrinsic::mips_dotp_u_d, 53767}, // __builtin_msa_dotp_u_d
-+      {Intrinsic::mips_dotp_u_h, 53790}, // __builtin_msa_dotp_u_h
-+      {Intrinsic::mips_dotp_u_w, 53813}, // __builtin_msa_dotp_u_w
-+      {Intrinsic::mips_dpadd_s_d, 53860}, // __builtin_msa_dpadd_s_d
-+      {Intrinsic::mips_dpadd_s_h, 53884}, // __builtin_msa_dpadd_s_h
-+      {Intrinsic::mips_dpadd_s_w, 53908}, // __builtin_msa_dpadd_s_w
-+      {Intrinsic::mips_dpadd_u_d, 53932}, // __builtin_msa_dpadd_u_d
-+      {Intrinsic::mips_dpadd_u_h, 53956}, // __builtin_msa_dpadd_u_h
-+      {Intrinsic::mips_dpadd_u_w, 53980}, // __builtin_msa_dpadd_u_w
-+      {Intrinsic::mips_dpsub_s_d, 54379}, // __builtin_msa_dpsub_s_d
-+      {Intrinsic::mips_dpsub_s_h, 54403}, // __builtin_msa_dpsub_s_h
-+      {Intrinsic::mips_dpsub_s_w, 54427}, // __builtin_msa_dpsub_s_w
-+      {Intrinsic::mips_dpsub_u_d, 54451}, // __builtin_msa_dpsub_u_d
-+      {Intrinsic::mips_dpsub_u_h, 54475}, // __builtin_msa_dpsub_u_h
-+      {Intrinsic::mips_dpsub_u_w, 54499}, // __builtin_msa_dpsub_u_w
-+      {Intrinsic::mips_fadd_d, 54685}, // __builtin_msa_fadd_d
-+      {Intrinsic::mips_fadd_w, 54706}, // __builtin_msa_fadd_w
-+      {Intrinsic::mips_fcaf_d, 54727}, // __builtin_msa_fcaf_d
-+      {Intrinsic::mips_fcaf_w, 54748}, // __builtin_msa_fcaf_w
-+      {Intrinsic::mips_fceq_d, 54769}, // __builtin_msa_fceq_d
-+      {Intrinsic::mips_fceq_w, 54790}, // __builtin_msa_fceq_w
-+      {Intrinsic::mips_fclass_d, 54811}, // __builtin_msa_fclass_d
-+      {Intrinsic::mips_fclass_w, 54834}, // __builtin_msa_fclass_w
-+      {Intrinsic::mips_fcle_d, 54857}, // __builtin_msa_fcle_d
-+      {Intrinsic::mips_fcle_w, 54878}, // __builtin_msa_fcle_w
-+      {Intrinsic::mips_fclt_d, 54899}, // __builtin_msa_fclt_d
-+      {Intrinsic::mips_fclt_w, 54920}, // __builtin_msa_fclt_w
-+      {Intrinsic::mips_fcne_d, 54941}, // __builtin_msa_fcne_d
-+      {Intrinsic::mips_fcne_w, 54962}, // __builtin_msa_fcne_w
-+      {Intrinsic::mips_fcor_d, 54983}, // __builtin_msa_fcor_d
-+      {Intrinsic::mips_fcor_w, 55004}, // __builtin_msa_fcor_w
-+      {Intrinsic::mips_fcueq_d, 55025}, // __builtin_msa_fcueq_d
-+      {Intrinsic::mips_fcueq_w, 55047}, // __builtin_msa_fcueq_w
-+      {Intrinsic::mips_fcule_d, 55069}, // __builtin_msa_fcule_d
-+      {Intrinsic::mips_fcule_w, 55091}, // __builtin_msa_fcule_w
-+      {Intrinsic::mips_fcult_d, 55113}, // __builtin_msa_fcult_d
-+      {Intrinsic::mips_fcult_w, 55135}, // __builtin_msa_fcult_w
-+      {Intrinsic::mips_fcun_d, 55157}, // __builtin_msa_fcun_d
-+      {Intrinsic::mips_fcun_w, 55178}, // __builtin_msa_fcun_w
-+      {Intrinsic::mips_fcune_d, 55199}, // __builtin_msa_fcune_d
-+      {Intrinsic::mips_fcune_w, 55221}, // __builtin_msa_fcune_w
-+      {Intrinsic::mips_fdiv_d, 55243}, // __builtin_msa_fdiv_d
-+      {Intrinsic::mips_fdiv_w, 55264}, // __builtin_msa_fdiv_w
-+      {Intrinsic::mips_fexdo_h, 55285}, // __builtin_msa_fexdo_h
-+      {Intrinsic::mips_fexdo_w, 55307}, // __builtin_msa_fexdo_w
-+      {Intrinsic::mips_fexp2_d, 55329}, // __builtin_msa_fexp2_d
-+      {Intrinsic::mips_fexp2_w, 55351}, // __builtin_msa_fexp2_w
-+      {Intrinsic::mips_fexupl_d, 55373}, // __builtin_msa_fexupl_d
-+      {Intrinsic::mips_fexupl_w, 55396}, // __builtin_msa_fexupl_w
-+      {Intrinsic::mips_fexupr_d, 55419}, // __builtin_msa_fexupr_d
-+      {Intrinsic::mips_fexupr_w, 55442}, // __builtin_msa_fexupr_w
-+      {Intrinsic::mips_ffint_s_d, 55465}, // __builtin_msa_ffint_s_d
-+      {Intrinsic::mips_ffint_s_w, 55489}, // __builtin_msa_ffint_s_w
-+      {Intrinsic::mips_ffint_u_d, 55513}, // __builtin_msa_ffint_u_d
-+      {Intrinsic::mips_ffint_u_w, 55537}, // __builtin_msa_ffint_u_w
-+      {Intrinsic::mips_ffql_d, 55561}, // __builtin_msa_ffql_d
-+      {Intrinsic::mips_ffql_w, 55582}, // __builtin_msa_ffql_w
-+      {Intrinsic::mips_ffqr_d, 55603}, // __builtin_msa_ffqr_d
-+      {Intrinsic::mips_ffqr_w, 55624}, // __builtin_msa_ffqr_w
-+      {Intrinsic::mips_fill_b, 55645}, // __builtin_msa_fill_b
-+      {Intrinsic::mips_fill_d, 55666}, // __builtin_msa_fill_d
-+      {Intrinsic::mips_fill_h, 55687}, // __builtin_msa_fill_h
-+      {Intrinsic::mips_fill_w, 55708}, // __builtin_msa_fill_w
-+      {Intrinsic::mips_flog2_d, 55729}, // __builtin_msa_flog2_d
-+      {Intrinsic::mips_flog2_w, 55751}, // __builtin_msa_flog2_w
-+      {Intrinsic::mips_fmadd_d, 55773}, // __builtin_msa_fmadd_d
-+      {Intrinsic::mips_fmadd_w, 55795}, // __builtin_msa_fmadd_w
-+      {Intrinsic::mips_fmax_a_d, 55817}, // __builtin_msa_fmax_a_d
-+      {Intrinsic::mips_fmax_a_w, 55840}, // __builtin_msa_fmax_a_w
-+      {Intrinsic::mips_fmax_d, 55863}, // __builtin_msa_fmax_d
-+      {Intrinsic::mips_fmax_w, 55884}, // __builtin_msa_fmax_w
-+      {Intrinsic::mips_fmin_a_d, 55905}, // __builtin_msa_fmin_a_d
-+      {Intrinsic::mips_fmin_a_w, 55928}, // __builtin_msa_fmin_a_w
-+      {Intrinsic::mips_fmin_d, 55951}, // __builtin_msa_fmin_d
-+      {Intrinsic::mips_fmin_w, 55972}, // __builtin_msa_fmin_w
-+      {Intrinsic::mips_fmsub_d, 55993}, // __builtin_msa_fmsub_d
-+      {Intrinsic::mips_fmsub_w, 56015}, // __builtin_msa_fmsub_w
-+      {Intrinsic::mips_fmul_d, 56037}, // __builtin_msa_fmul_d
-+      {Intrinsic::mips_fmul_w, 56058}, // __builtin_msa_fmul_w
-+      {Intrinsic::mips_frcp_d, 56079}, // __builtin_msa_frcp_d
-+      {Intrinsic::mips_frcp_w, 56100}, // __builtin_msa_frcp_w
-+      {Intrinsic::mips_frint_d, 56121}, // __builtin_msa_frint_d
-+      {Intrinsic::mips_frint_w, 56143}, // __builtin_msa_frint_w
-+      {Intrinsic::mips_frsqrt_d, 56165}, // __builtin_msa_frsqrt_d
-+      {Intrinsic::mips_frsqrt_w, 56188}, // __builtin_msa_frsqrt_w
-+      {Intrinsic::mips_fsaf_d, 56211}, // __builtin_msa_fsaf_d
-+      {Intrinsic::mips_fsaf_w, 56232}, // __builtin_msa_fsaf_w
-+      {Intrinsic::mips_fseq_d, 56253}, // __builtin_msa_fseq_d
-+      {Intrinsic::mips_fseq_w, 56274}, // __builtin_msa_fseq_w
-+      {Intrinsic::mips_fsle_d, 56295}, // __builtin_msa_fsle_d
-+      {Intrinsic::mips_fsle_w, 56316}, // __builtin_msa_fsle_w
-+      {Intrinsic::mips_fslt_d, 56337}, // __builtin_msa_fslt_d
-+      {Intrinsic::mips_fslt_w, 56358}, // __builtin_msa_fslt_w
-+      {Intrinsic::mips_fsne_d, 56379}, // __builtin_msa_fsne_d
-+      {Intrinsic::mips_fsne_w, 56400}, // __builtin_msa_fsne_w
-+      {Intrinsic::mips_fsor_d, 56421}, // __builtin_msa_fsor_d
-+      {Intrinsic::mips_fsor_w, 56442}, // __builtin_msa_fsor_w
-+      {Intrinsic::mips_fsqrt_d, 56463}, // __builtin_msa_fsqrt_d
-+      {Intrinsic::mips_fsqrt_w, 56485}, // __builtin_msa_fsqrt_w
-+      {Intrinsic::mips_fsub_d, 56507}, // __builtin_msa_fsub_d
-+      {Intrinsic::mips_fsub_w, 56528}, // __builtin_msa_fsub_w
-+      {Intrinsic::mips_fsueq_d, 56549}, // __builtin_msa_fsueq_d
-+      {Intrinsic::mips_fsueq_w, 56571}, // __builtin_msa_fsueq_w
-+      {Intrinsic::mips_fsule_d, 56593}, // __builtin_msa_fsule_d
-+      {Intrinsic::mips_fsule_w, 56615}, // __builtin_msa_fsule_w
-+      {Intrinsic::mips_fsult_d, 56637}, // __builtin_msa_fsult_d
-+      {Intrinsic::mips_fsult_w, 56659}, // __builtin_msa_fsult_w
-+      {Intrinsic::mips_fsun_d, 56681}, // __builtin_msa_fsun_d
-+      {Intrinsic::mips_fsun_w, 56702}, // __builtin_msa_fsun_w
-+      {Intrinsic::mips_fsune_d, 56723}, // __builtin_msa_fsune_d
-+      {Intrinsic::mips_fsune_w, 56745}, // __builtin_msa_fsune_w
-+      {Intrinsic::mips_ftint_s_d, 56767}, // __builtin_msa_ftint_s_d
-+      {Intrinsic::mips_ftint_s_w, 56791}, // __builtin_msa_ftint_s_w
-+      {Intrinsic::mips_ftint_u_d, 56815}, // __builtin_msa_ftint_u_d
-+      {Intrinsic::mips_ftint_u_w, 56839}, // __builtin_msa_ftint_u_w
-+      {Intrinsic::mips_ftq_h, 56863}, // __builtin_msa_ftq_h
-+      {Intrinsic::mips_ftq_w, 56883}, // __builtin_msa_ftq_w
-+      {Intrinsic::mips_ftrunc_s_d, 56903}, // __builtin_msa_ftrunc_s_d
-+      {Intrinsic::mips_ftrunc_s_w, 56928}, // __builtin_msa_ftrunc_s_w
-+      {Intrinsic::mips_ftrunc_u_d, 56953}, // __builtin_msa_ftrunc_u_d
-+      {Intrinsic::mips_ftrunc_u_w, 56978}, // __builtin_msa_ftrunc_u_w
-+      {Intrinsic::mips_hadd_s_d, 57003}, // __builtin_msa_hadd_s_d
-+      {Intrinsic::mips_hadd_s_h, 57026}, // __builtin_msa_hadd_s_h
-+      {Intrinsic::mips_hadd_s_w, 57049}, // __builtin_msa_hadd_s_w
-+      {Intrinsic::mips_hadd_u_d, 57072}, // __builtin_msa_hadd_u_d
-+      {Intrinsic::mips_hadd_u_h, 57095}, // __builtin_msa_hadd_u_h
-+      {Intrinsic::mips_hadd_u_w, 57118}, // __builtin_msa_hadd_u_w
-+      {Intrinsic::mips_hsub_s_d, 57141}, // __builtin_msa_hsub_s_d
-+      {Intrinsic::mips_hsub_s_h, 57164}, // __builtin_msa_hsub_s_h
-+      {Intrinsic::mips_hsub_s_w, 57187}, // __builtin_msa_hsub_s_w
-+      {Intrinsic::mips_hsub_u_d, 57210}, // __builtin_msa_hsub_u_d
-+      {Intrinsic::mips_hsub_u_h, 57233}, // __builtin_msa_hsub_u_h
-+      {Intrinsic::mips_hsub_u_w, 57256}, // __builtin_msa_hsub_u_w
-+      {Intrinsic::mips_ilvev_b, 57279}, // __builtin_msa_ilvev_b
-+      {Intrinsic::mips_ilvev_d, 57301}, // __builtin_msa_ilvev_d
-+      {Intrinsic::mips_ilvev_h, 57323}, // __builtin_msa_ilvev_h
-+      {Intrinsic::mips_ilvev_w, 57345}, // __builtin_msa_ilvev_w
-+      {Intrinsic::mips_ilvl_b, 57367}, // __builtin_msa_ilvl_b
-+      {Intrinsic::mips_ilvl_d, 57388}, // __builtin_msa_ilvl_d
-+      {Intrinsic::mips_ilvl_h, 57409}, // __builtin_msa_ilvl_h
-+      {Intrinsic::mips_ilvl_w, 57430}, // __builtin_msa_ilvl_w
-+      {Intrinsic::mips_ilvod_b, 57451}, // __builtin_msa_ilvod_b
-+      {Intrinsic::mips_ilvod_d, 57473}, // __builtin_msa_ilvod_d
-+      {Intrinsic::mips_ilvod_h, 57495}, // __builtin_msa_ilvod_h
-+      {Intrinsic::mips_ilvod_w, 57517}, // __builtin_msa_ilvod_w
-+      {Intrinsic::mips_ilvr_b, 57539}, // __builtin_msa_ilvr_b
-+      {Intrinsic::mips_ilvr_d, 57560}, // __builtin_msa_ilvr_d
-+      {Intrinsic::mips_ilvr_h, 57581}, // __builtin_msa_ilvr_h
-+      {Intrinsic::mips_ilvr_w, 57602}, // __builtin_msa_ilvr_w
-+      {Intrinsic::mips_insert_b, 57623}, // __builtin_msa_insert_b
-+      {Intrinsic::mips_insert_d, 57646}, // __builtin_msa_insert_d
-+      {Intrinsic::mips_insert_h, 57669}, // __builtin_msa_insert_h
-+      {Intrinsic::mips_insert_w, 57692}, // __builtin_msa_insert_w
-+      {Intrinsic::mips_insve_b, 57735}, // __builtin_msa_insve_b
-+      {Intrinsic::mips_insve_d, 57757}, // __builtin_msa_insve_d
-+      {Intrinsic::mips_insve_h, 57779}, // __builtin_msa_insve_h
-+      {Intrinsic::mips_insve_w, 57801}, // __builtin_msa_insve_w
-+      {Intrinsic::mips_ld_b, 57843}, // __builtin_msa_ld_b
-+      {Intrinsic::mips_ld_d, 57862}, // __builtin_msa_ld_d
-+      {Intrinsic::mips_ld_h, 57881}, // __builtin_msa_ld_h
-+      {Intrinsic::mips_ld_w, 57900}, // __builtin_msa_ld_w
-+      {Intrinsic::mips_ldi_b, 57919}, // __builtin_msa_ldi_b
-+      {Intrinsic::mips_ldi_d, 57939}, // __builtin_msa_ldi_d
-+      {Intrinsic::mips_ldi_h, 57959}, // __builtin_msa_ldi_h
-+      {Intrinsic::mips_ldi_w, 57979}, // __builtin_msa_ldi_w
-+      {Intrinsic::mips_madd_q_h, 58076}, // __builtin_msa_madd_q_h
-+      {Intrinsic::mips_madd_q_w, 58099}, // __builtin_msa_madd_q_w
-+      {Intrinsic::mips_maddr_q_h, 58122}, // __builtin_msa_maddr_q_h
-+      {Intrinsic::mips_maddr_q_w, 58146}, // __builtin_msa_maddr_q_w
-+      {Intrinsic::mips_maddv_b, 58191}, // __builtin_msa_maddv_b
-+      {Intrinsic::mips_maddv_d, 58213}, // __builtin_msa_maddv_d
-+      {Intrinsic::mips_maddv_h, 58235}, // __builtin_msa_maddv_h
-+      {Intrinsic::mips_maddv_w, 58257}, // __builtin_msa_maddv_w
-+      {Intrinsic::mips_max_a_b, 58389}, // __builtin_msa_max_a_b
-+      {Intrinsic::mips_max_a_d, 58411}, // __builtin_msa_max_a_d
-+      {Intrinsic::mips_max_a_h, 58433}, // __builtin_msa_max_a_h
-+      {Intrinsic::mips_max_a_w, 58455}, // __builtin_msa_max_a_w
-+      {Intrinsic::mips_max_s_b, 58477}, // __builtin_msa_max_s_b
-+      {Intrinsic::mips_max_s_d, 58499}, // __builtin_msa_max_s_d
-+      {Intrinsic::mips_max_s_h, 58521}, // __builtin_msa_max_s_h
-+      {Intrinsic::mips_max_s_w, 58543}, // __builtin_msa_max_s_w
-+      {Intrinsic::mips_max_u_b, 58565}, // __builtin_msa_max_u_b
-+      {Intrinsic::mips_max_u_d, 58587}, // __builtin_msa_max_u_d
-+      {Intrinsic::mips_max_u_h, 58609}, // __builtin_msa_max_u_h
-+      {Intrinsic::mips_max_u_w, 58631}, // __builtin_msa_max_u_w
-+      {Intrinsic::mips_maxi_s_b, 58653}, // __builtin_msa_maxi_s_b
-+      {Intrinsic::mips_maxi_s_d, 58676}, // __builtin_msa_maxi_s_d
-+      {Intrinsic::mips_maxi_s_h, 58699}, // __builtin_msa_maxi_s_h
-+      {Intrinsic::mips_maxi_s_w, 58722}, // __builtin_msa_maxi_s_w
-+      {Intrinsic::mips_maxi_u_b, 58745}, // __builtin_msa_maxi_u_b
-+      {Intrinsic::mips_maxi_u_d, 58768}, // __builtin_msa_maxi_u_d
-+      {Intrinsic::mips_maxi_u_h, 58791}, // __builtin_msa_maxi_u_h
-+      {Intrinsic::mips_maxi_u_w, 58814}, // __builtin_msa_maxi_u_w
-+      {Intrinsic::mips_min_a_b, 58837}, // __builtin_msa_min_a_b
-+      {Intrinsic::mips_min_a_d, 58859}, // __builtin_msa_min_a_d
-+      {Intrinsic::mips_min_a_h, 58881}, // __builtin_msa_min_a_h
-+      {Intrinsic::mips_min_a_w, 58903}, // __builtin_msa_min_a_w
-+      {Intrinsic::mips_min_s_b, 58925}, // __builtin_msa_min_s_b
-+      {Intrinsic::mips_min_s_d, 58947}, // __builtin_msa_min_s_d
-+      {Intrinsic::mips_min_s_h, 58969}, // __builtin_msa_min_s_h
-+      {Intrinsic::mips_min_s_w, 58991}, // __builtin_msa_min_s_w
-+      {Intrinsic::mips_min_u_b, 59013}, // __builtin_msa_min_u_b
-+      {Intrinsic::mips_min_u_d, 59035}, // __builtin_msa_min_u_d
-+      {Intrinsic::mips_min_u_h, 59057}, // __builtin_msa_min_u_h
-+      {Intrinsic::mips_min_u_w, 59079}, // __builtin_msa_min_u_w
-+      {Intrinsic::mips_mini_s_b, 59101}, // __builtin_msa_mini_s_b
-+      {Intrinsic::mips_mini_s_d, 59124}, // __builtin_msa_mini_s_d
-+      {Intrinsic::mips_mini_s_h, 59147}, // __builtin_msa_mini_s_h
-+      {Intrinsic::mips_mini_s_w, 59170}, // __builtin_msa_mini_s_w
-+      {Intrinsic::mips_mini_u_b, 59193}, // __builtin_msa_mini_u_b
-+      {Intrinsic::mips_mini_u_d, 59216}, // __builtin_msa_mini_u_d
-+      {Intrinsic::mips_mini_u_h, 59239}, // __builtin_msa_mini_u_h
-+      {Intrinsic::mips_mini_u_w, 59262}, // __builtin_msa_mini_u_w
-+      {Intrinsic::mips_mod_s_b, 59285}, // __builtin_msa_mod_s_b
-+      {Intrinsic::mips_mod_s_d, 59307}, // __builtin_msa_mod_s_d
-+      {Intrinsic::mips_mod_s_h, 59329}, // __builtin_msa_mod_s_h
-+      {Intrinsic::mips_mod_s_w, 59351}, // __builtin_msa_mod_s_w
-+      {Intrinsic::mips_mod_u_b, 59373}, // __builtin_msa_mod_u_b
-+      {Intrinsic::mips_mod_u_d, 59395}, // __builtin_msa_mod_u_d
-+      {Intrinsic::mips_mod_u_h, 59417}, // __builtin_msa_mod_u_h
-+      {Intrinsic::mips_mod_u_w, 59439}, // __builtin_msa_mod_u_w
-+      {Intrinsic::mips_move_v, 59483}, // __builtin_msa_move_v
-+      {Intrinsic::mips_msub_q_h, 59524}, // __builtin_msa_msub_q_h
-+      {Intrinsic::mips_msub_q_w, 59547}, // __builtin_msa_msub_q_w
-+      {Intrinsic::mips_msubr_q_h, 59570}, // __builtin_msa_msubr_q_h
-+      {Intrinsic::mips_msubr_q_w, 59594}, // __builtin_msa_msubr_q_w
-+      {Intrinsic::mips_msubv_b, 59639}, // __builtin_msa_msubv_b
-+      {Intrinsic::mips_msubv_d, 59661}, // __builtin_msa_msubv_d
-+      {Intrinsic::mips_msubv_h, 59683}, // __builtin_msa_msubv_h
-+      {Intrinsic::mips_msubv_w, 59705}, // __builtin_msa_msubv_w
-+      {Intrinsic::mips_mul_q_h, 59771}, // __builtin_msa_mul_q_h
-+      {Intrinsic::mips_mul_q_w, 59793}, // __builtin_msa_mul_q_w
-+      {Intrinsic::mips_mulr_q_h, 60057}, // __builtin_msa_mulr_q_h
-+      {Intrinsic::mips_mulr_q_w, 60080}, // __builtin_msa_mulr_q_w
-+      {Intrinsic::mips_mulv_b, 60199}, // __builtin_msa_mulv_b
-+      {Intrinsic::mips_mulv_d, 60220}, // __builtin_msa_mulv_d
-+      {Intrinsic::mips_mulv_h, 60241}, // __builtin_msa_mulv_h
-+      {Intrinsic::mips_mulv_w, 60262}, // __builtin_msa_mulv_w
-+      {Intrinsic::mips_nloc_b, 60283}, // __builtin_msa_nloc_b
-+      {Intrinsic::mips_nloc_d, 60304}, // __builtin_msa_nloc_d
-+      {Intrinsic::mips_nloc_h, 60325}, // __builtin_msa_nloc_h
-+      {Intrinsic::mips_nloc_w, 60346}, // __builtin_msa_nloc_w
-+      {Intrinsic::mips_nlzc_b, 60367}, // __builtin_msa_nlzc_b
-+      {Intrinsic::mips_nlzc_d, 60388}, // __builtin_msa_nlzc_d
-+      {Intrinsic::mips_nlzc_h, 60409}, // __builtin_msa_nlzc_h
-+      {Intrinsic::mips_nlzc_w, 60430}, // __builtin_msa_nlzc_w
-+      {Intrinsic::mips_nor_v, 60451}, // __builtin_msa_nor_v
-+      {Intrinsic::mips_nori_b, 60471}, // __builtin_msa_nori_b
-+      {Intrinsic::mips_or_v, 60492}, // __builtin_msa_or_v
-+      {Intrinsic::mips_ori_b, 60511}, // __builtin_msa_ori_b
-+      {Intrinsic::mips_pckev_b, 60556}, // __builtin_msa_pckev_b
-+      {Intrinsic::mips_pckev_d, 60578}, // __builtin_msa_pckev_d
-+      {Intrinsic::mips_pckev_h, 60600}, // __builtin_msa_pckev_h
-+      {Intrinsic::mips_pckev_w, 60622}, // __builtin_msa_pckev_w
-+      {Intrinsic::mips_pckod_b, 60644}, // __builtin_msa_pckod_b
-+      {Intrinsic::mips_pckod_d, 60666}, // __builtin_msa_pckod_d
-+      {Intrinsic::mips_pckod_h, 60688}, // __builtin_msa_pckod_h
-+      {Intrinsic::mips_pckod_w, 60710}, // __builtin_msa_pckod_w
-+      {Intrinsic::mips_pcnt_b, 60732}, // __builtin_msa_pcnt_b
-+      {Intrinsic::mips_pcnt_d, 60753}, // __builtin_msa_pcnt_d
-+      {Intrinsic::mips_pcnt_h, 60774}, // __builtin_msa_pcnt_h
-+      {Intrinsic::mips_pcnt_w, 60795}, // __builtin_msa_pcnt_w
-+      {Intrinsic::mips_sat_s_b, 61479}, // __builtin_msa_sat_s_b
-+      {Intrinsic::mips_sat_s_d, 61501}, // __builtin_msa_sat_s_d
-+      {Intrinsic::mips_sat_s_h, 61523}, // __builtin_msa_sat_s_h
-+      {Intrinsic::mips_sat_s_w, 61545}, // __builtin_msa_sat_s_w
-+      {Intrinsic::mips_sat_u_b, 61567}, // __builtin_msa_sat_u_b
-+      {Intrinsic::mips_sat_u_d, 61589}, // __builtin_msa_sat_u_d
-+      {Intrinsic::mips_sat_u_h, 61611}, // __builtin_msa_sat_u_h
-+      {Intrinsic::mips_sat_u_w, 61633}, // __builtin_msa_sat_u_w
-+      {Intrinsic::mips_shf_b, 61655}, // __builtin_msa_shf_b
-+      {Intrinsic::mips_shf_h, 61675}, // __builtin_msa_shf_h
-+      {Intrinsic::mips_shf_w, 61695}, // __builtin_msa_shf_w
-+      {Intrinsic::mips_sld_b, 61997}, // __builtin_msa_sld_b
-+      {Intrinsic::mips_sld_d, 62017}, // __builtin_msa_sld_d
-+      {Intrinsic::mips_sld_h, 62037}, // __builtin_msa_sld_h
-+      {Intrinsic::mips_sld_w, 62057}, // __builtin_msa_sld_w
-+      {Intrinsic::mips_sldi_b, 62077}, // __builtin_msa_sldi_b
-+      {Intrinsic::mips_sldi_d, 62098}, // __builtin_msa_sldi_d
-+      {Intrinsic::mips_sldi_h, 62119}, // __builtin_msa_sldi_h
-+      {Intrinsic::mips_sldi_w, 62140}, // __builtin_msa_sldi_w
-+      {Intrinsic::mips_sll_b, 62161}, // __builtin_msa_sll_b
-+      {Intrinsic::mips_sll_d, 62181}, // __builtin_msa_sll_d
-+      {Intrinsic::mips_sll_h, 62201}, // __builtin_msa_sll_h
-+      {Intrinsic::mips_sll_w, 62221}, // __builtin_msa_sll_w
-+      {Intrinsic::mips_slli_b, 62241}, // __builtin_msa_slli_b
-+      {Intrinsic::mips_slli_d, 62262}, // __builtin_msa_slli_d
-+      {Intrinsic::mips_slli_h, 62283}, // __builtin_msa_slli_h
-+      {Intrinsic::mips_slli_w, 62304}, // __builtin_msa_slli_w
-+      {Intrinsic::mips_splat_b, 62325}, // __builtin_msa_splat_b
-+      {Intrinsic::mips_splat_d, 62347}, // __builtin_msa_splat_d
-+      {Intrinsic::mips_splat_h, 62369}, // __builtin_msa_splat_h
-+      {Intrinsic::mips_splat_w, 62391}, // __builtin_msa_splat_w
-+      {Intrinsic::mips_splati_b, 62413}, // __builtin_msa_splati_b
-+      {Intrinsic::mips_splati_d, 62436}, // __builtin_msa_splati_d
-+      {Intrinsic::mips_splati_h, 62459}, // __builtin_msa_splati_h
-+      {Intrinsic::mips_splati_w, 62482}, // __builtin_msa_splati_w
-+      {Intrinsic::mips_sra_b, 62505}, // __builtin_msa_sra_b
-+      {Intrinsic::mips_sra_d, 62525}, // __builtin_msa_sra_d
-+      {Intrinsic::mips_sra_h, 62545}, // __builtin_msa_sra_h
-+      {Intrinsic::mips_sra_w, 62565}, // __builtin_msa_sra_w
-+      {Intrinsic::mips_srai_b, 62585}, // __builtin_msa_srai_b
-+      {Intrinsic::mips_srai_d, 62606}, // __builtin_msa_srai_d
-+      {Intrinsic::mips_srai_h, 62627}, // __builtin_msa_srai_h
-+      {Intrinsic::mips_srai_w, 62648}, // __builtin_msa_srai_w
-+      {Intrinsic::mips_srar_b, 62669}, // __builtin_msa_srar_b
-+      {Intrinsic::mips_srar_d, 62690}, // __builtin_msa_srar_d
-+      {Intrinsic::mips_srar_h, 62711}, // __builtin_msa_srar_h
-+      {Intrinsic::mips_srar_w, 62732}, // __builtin_msa_srar_w
-+      {Intrinsic::mips_srari_b, 62753}, // __builtin_msa_srari_b
-+      {Intrinsic::mips_srari_d, 62775}, // __builtin_msa_srari_d
-+      {Intrinsic::mips_srari_h, 62797}, // __builtin_msa_srari_h
-+      {Intrinsic::mips_srari_w, 62819}, // __builtin_msa_srari_w
-+      {Intrinsic::mips_srl_b, 62841}, // __builtin_msa_srl_b
-+      {Intrinsic::mips_srl_d, 62861}, // __builtin_msa_srl_d
-+      {Intrinsic::mips_srl_h, 62881}, // __builtin_msa_srl_h
-+      {Intrinsic::mips_srl_w, 62901}, // __builtin_msa_srl_w
-+      {Intrinsic::mips_srli_b, 62921}, // __builtin_msa_srli_b
-+      {Intrinsic::mips_srli_d, 62942}, // __builtin_msa_srli_d
-+      {Intrinsic::mips_srli_h, 62963}, // __builtin_msa_srli_h
-+      {Intrinsic::mips_srli_w, 62984}, // __builtin_msa_srli_w
-+      {Intrinsic::mips_srlr_b, 63005}, // __builtin_msa_srlr_b
-+      {Intrinsic::mips_srlr_d, 63026}, // __builtin_msa_srlr_d
-+      {Intrinsic::mips_srlr_h, 63047}, // __builtin_msa_srlr_h
-+      {Intrinsic::mips_srlr_w, 63068}, // __builtin_msa_srlr_w
-+      {Intrinsic::mips_srlri_b, 63089}, // __builtin_msa_srlri_b
-+      {Intrinsic::mips_srlri_d, 63111}, // __builtin_msa_srlri_d
-+      {Intrinsic::mips_srlri_h, 63133}, // __builtin_msa_srlri_h
-+      {Intrinsic::mips_srlri_w, 63155}, // __builtin_msa_srlri_w
-+      {Intrinsic::mips_st_b, 63177}, // __builtin_msa_st_b
-+      {Intrinsic::mips_st_d, 63196}, // __builtin_msa_st_d
-+      {Intrinsic::mips_st_h, 63215}, // __builtin_msa_st_h
-+      {Intrinsic::mips_st_w, 63234}, // __builtin_msa_st_w
-+      {Intrinsic::mips_subs_s_b, 63423}, // __builtin_msa_subs_s_b
-+      {Intrinsic::mips_subs_s_d, 63446}, // __builtin_msa_subs_s_d
-+      {Intrinsic::mips_subs_s_h, 63469}, // __builtin_msa_subs_s_h
-+      {Intrinsic::mips_subs_s_w, 63492}, // __builtin_msa_subs_s_w
-+      {Intrinsic::mips_subs_u_b, 63515}, // __builtin_msa_subs_u_b
-+      {Intrinsic::mips_subs_u_d, 63538}, // __builtin_msa_subs_u_d
-+      {Intrinsic::mips_subs_u_h, 63561}, // __builtin_msa_subs_u_h
-+      {Intrinsic::mips_subs_u_w, 63584}, // __builtin_msa_subs_u_w
-+      {Intrinsic::mips_subsus_u_b, 63607}, // __builtin_msa_subsus_u_b
-+      {Intrinsic::mips_subsus_u_d, 63632}, // __builtin_msa_subsus_u_d
-+      {Intrinsic::mips_subsus_u_h, 63657}, // __builtin_msa_subsus_u_h
-+      {Intrinsic::mips_subsus_u_w, 63682}, // __builtin_msa_subsus_u_w
-+      {Intrinsic::mips_subsuu_s_b, 63707}, // __builtin_msa_subsuu_s_b
-+      {Intrinsic::mips_subsuu_s_d, 63732}, // __builtin_msa_subsuu_s_d
-+      {Intrinsic::mips_subsuu_s_h, 63757}, // __builtin_msa_subsuu_s_h
-+      {Intrinsic::mips_subsuu_s_w, 63782}, // __builtin_msa_subsuu_s_w
-+      {Intrinsic::mips_subv_b, 63953}, // __builtin_msa_subv_b
-+      {Intrinsic::mips_subv_d, 63974}, // __builtin_msa_subv_d
-+      {Intrinsic::mips_subv_h, 63995}, // __builtin_msa_subv_h
-+      {Intrinsic::mips_subv_w, 64016}, // __builtin_msa_subv_w
-+      {Intrinsic::mips_subvi_b, 64037}, // __builtin_msa_subvi_b
-+      {Intrinsic::mips_subvi_d, 64059}, // __builtin_msa_subvi_d
-+      {Intrinsic::mips_subvi_h, 64081}, // __builtin_msa_subvi_h
-+      {Intrinsic::mips_subvi_w, 64103}, // __builtin_msa_subvi_w
-+      {Intrinsic::mips_vshf_b, 64125}, // __builtin_msa_vshf_b
-+      {Intrinsic::mips_vshf_d, 64146}, // __builtin_msa_vshf_d
-+      {Intrinsic::mips_vshf_h, 64167}, // __builtin_msa_vshf_h
-+      {Intrinsic::mips_vshf_w, 64188}, // __builtin_msa_vshf_w
-+      {Intrinsic::mips_xor_v, 64230}, // __builtin_msa_xor_v
-+      {Intrinsic::mips_xori_b, 64250}, // __builtin_msa_xori_b
-+    };
-+    auto I = std::lower_bound(std::begin(mipsNames),
-+                              std::end(mipsNames),
-+                              BuiltinNameStr);
-+    if (I != std::end(mipsNames) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  if (TargetPrefix == "nvvm") {
-+    static const BuiltinEntry nvvmNames[] = {
-+      {Intrinsic::nvvm_abs_i, 64271}, // __nvvm_abs_i
-+      {Intrinsic::nvvm_abs_ll, 64284}, // __nvvm_abs_ll
-+      {Intrinsic::nvvm_add_rm_d, 64298}, // __nvvm_add_rm_d
-+      {Intrinsic::nvvm_add_rm_f, 64314}, // __nvvm_add_rm_f
-+      {Intrinsic::nvvm_add_rm_ftz_f, 64330}, // __nvvm_add_rm_ftz_f
-+      {Intrinsic::nvvm_add_rn_d, 64350}, // __nvvm_add_rn_d
-+      {Intrinsic::nvvm_add_rn_f, 64366}, // __nvvm_add_rn_f
-+      {Intrinsic::nvvm_add_rn_ftz_f, 64382}, // __nvvm_add_rn_ftz_f
-+      {Intrinsic::nvvm_add_rp_d, 64402}, // __nvvm_add_rp_d
-+      {Intrinsic::nvvm_add_rp_f, 64418}, // __nvvm_add_rp_f
-+      {Intrinsic::nvvm_add_rp_ftz_f, 64434}, // __nvvm_add_rp_ftz_f
-+      {Intrinsic::nvvm_add_rz_d, 64454}, // __nvvm_add_rz_d
-+      {Intrinsic::nvvm_add_rz_f, 64470}, // __nvvm_add_rz_f
-+      {Intrinsic::nvvm_add_rz_ftz_f, 64486}, // __nvvm_add_rz_ftz_f
-+      {Intrinsic::nvvm_barrier0_and, 64536}, // __nvvm_bar0_and
-+      {Intrinsic::nvvm_barrier0_or, 64552}, // __nvvm_bar0_or
-+      {Intrinsic::nvvm_barrier0_popc, 64567}, // __nvvm_bar0_popc
-+      {Intrinsic::nvvm_bar_sync, 64506}, // __nvvm_bar_sync
-+      {Intrinsic::nvvm_bitcast_d2ll, 64584}, // __nvvm_bitcast_d2ll
-+      {Intrinsic::nvvm_bitcast_f2i, 64604}, // __nvvm_bitcast_f2i
-+      {Intrinsic::nvvm_bitcast_i2f, 64623}, // __nvvm_bitcast_i2f
-+      {Intrinsic::nvvm_bitcast_ll2d, 64642}, // __nvvm_bitcast_ll2d
-+      {Intrinsic::nvvm_brev32, 64662}, // __nvvm_brev32
-+      {Intrinsic::nvvm_brev64, 64676}, // __nvvm_brev64
-+      {Intrinsic::nvvm_ceil_d, 64690}, // __nvvm_ceil_d
-+      {Intrinsic::nvvm_ceil_f, 64704}, // __nvvm_ceil_f
-+      {Intrinsic::nvvm_ceil_ftz_f, 64718}, // __nvvm_ceil_ftz_f
-+      {Intrinsic::nvvm_clz_i, 64736}, // __nvvm_clz_i
-+      {Intrinsic::nvvm_clz_ll, 64749}, // __nvvm_clz_ll
-+      {Intrinsic::nvvm_cos_approx_f, 64763}, // __nvvm_cos_approx_f
-+      {Intrinsic::nvvm_cos_approx_ftz_f, 64783}, // __nvvm_cos_approx_ftz_f
-+      {Intrinsic::nvvm_d2f_rm, 64807}, // __nvvm_d2f_rm
-+      {Intrinsic::nvvm_d2f_rm_ftz, 64821}, // __nvvm_d2f_rm_ftz
-+      {Intrinsic::nvvm_d2f_rn, 64839}, // __nvvm_d2f_rn
-+      {Intrinsic::nvvm_d2f_rn_ftz, 64853}, // __nvvm_d2f_rn_ftz
-+      {Intrinsic::nvvm_d2f_rp, 64871}, // __nvvm_d2f_rp
-+      {Intrinsic::nvvm_d2f_rp_ftz, 64885}, // __nvvm_d2f_rp_ftz
-+      {Intrinsic::nvvm_d2f_rz, 64903}, // __nvvm_d2f_rz
-+      {Intrinsic::nvvm_d2f_rz_ftz, 64917}, // __nvvm_d2f_rz_ftz
-+      {Intrinsic::nvvm_d2i_hi, 64935}, // __nvvm_d2i_hi
-+      {Intrinsic::nvvm_d2i_lo, 64949}, // __nvvm_d2i_lo
-+      {Intrinsic::nvvm_d2i_rm, 64963}, // __nvvm_d2i_rm
-+      {Intrinsic::nvvm_d2i_rn, 64977}, // __nvvm_d2i_rn
-+      {Intrinsic::nvvm_d2i_rp, 64991}, // __nvvm_d2i_rp
-+      {Intrinsic::nvvm_d2i_rz, 65005}, // __nvvm_d2i_rz
-+      {Intrinsic::nvvm_d2ll_rm, 65019}, // __nvvm_d2ll_rm
-+      {Intrinsic::nvvm_d2ll_rn, 65034}, // __nvvm_d2ll_rn
-+      {Intrinsic::nvvm_d2ll_rp, 65049}, // __nvvm_d2ll_rp
-+      {Intrinsic::nvvm_d2ll_rz, 65064}, // __nvvm_d2ll_rz
-+      {Intrinsic::nvvm_d2ui_rm, 65079}, // __nvvm_d2ui_rm
-+      {Intrinsic::nvvm_d2ui_rn, 65094}, // __nvvm_d2ui_rn
-+      {Intrinsic::nvvm_d2ui_rp, 65109}, // __nvvm_d2ui_rp
-+      {Intrinsic::nvvm_d2ui_rz, 65124}, // __nvvm_d2ui_rz
-+      {Intrinsic::nvvm_d2ull_rm, 65139}, // __nvvm_d2ull_rm
-+      {Intrinsic::nvvm_d2ull_rn, 65155}, // __nvvm_d2ull_rn
-+      {Intrinsic::nvvm_d2ull_rp, 65171}, // __nvvm_d2ull_rp
-+      {Intrinsic::nvvm_d2ull_rz, 65187}, // __nvvm_d2ull_rz
-+      {Intrinsic::nvvm_div_approx_f, 65203}, // __nvvm_div_approx_f
-+      {Intrinsic::nvvm_div_approx_ftz_f, 65223}, // __nvvm_div_approx_ftz_f
-+      {Intrinsic::nvvm_div_rm_d, 65247}, // __nvvm_div_rm_d
-+      {Intrinsic::nvvm_div_rm_f, 65263}, // __nvvm_div_rm_f
-+      {Intrinsic::nvvm_div_rm_ftz_f, 65279}, // __nvvm_div_rm_ftz_f
-+      {Intrinsic::nvvm_div_rn_d, 65299}, // __nvvm_div_rn_d
-+      {Intrinsic::nvvm_div_rn_f, 65315}, // __nvvm_div_rn_f
-+      {Intrinsic::nvvm_div_rn_ftz_f, 65331}, // __nvvm_div_rn_ftz_f
-+      {Intrinsic::nvvm_div_rp_d, 65351}, // __nvvm_div_rp_d
-+      {Intrinsic::nvvm_div_rp_f, 65367}, // __nvvm_div_rp_f
-+      {Intrinsic::nvvm_div_rp_ftz_f, 65383}, // __nvvm_div_rp_ftz_f
-+      {Intrinsic::nvvm_div_rz_d, 65403}, // __nvvm_div_rz_d
-+      {Intrinsic::nvvm_div_rz_f, 65419}, // __nvvm_div_rz_f
-+      {Intrinsic::nvvm_div_rz_ftz_f, 65435}, // __nvvm_div_rz_ftz_f
-+      {Intrinsic::nvvm_ex2_approx_d, 65455}, // __nvvm_ex2_approx_d
-+      {Intrinsic::nvvm_ex2_approx_f, 65475}, // __nvvm_ex2_approx_f
-+      {Intrinsic::nvvm_ex2_approx_ftz_f, 65495}, // __nvvm_ex2_approx_ftz_f
-+      {Intrinsic::nvvm_f2h_rn, 65519}, // __nvvm_f2h_rn
-+      {Intrinsic::nvvm_f2h_rn_ftz, 65533}, // __nvvm_f2h_rn_ftz
-+      {Intrinsic::nvvm_f2i_rm, 65551}, // __nvvm_f2i_rm
-+      {Intrinsic::nvvm_f2i_rm_ftz, 65565}, // __nvvm_f2i_rm_ftz
-+      {Intrinsic::nvvm_f2i_rn, 65583}, // __nvvm_f2i_rn
-+      {Intrinsic::nvvm_f2i_rn_ftz, 65597}, // __nvvm_f2i_rn_ftz
-+      {Intrinsic::nvvm_f2i_rp, 65615}, // __nvvm_f2i_rp
-+      {Intrinsic::nvvm_f2i_rp_ftz, 65629}, // __nvvm_f2i_rp_ftz
-+      {Intrinsic::nvvm_f2i_rz, 65647}, // __nvvm_f2i_rz
-+      {Intrinsic::nvvm_f2i_rz_ftz, 65661}, // __nvvm_f2i_rz_ftz
-+      {Intrinsic::nvvm_f2ll_rm, 65679}, // __nvvm_f2ll_rm
-+      {Intrinsic::nvvm_f2ll_rm_ftz, 65694}, // __nvvm_f2ll_rm_ftz
-+      {Intrinsic::nvvm_f2ll_rn, 65713}, // __nvvm_f2ll_rn
-+      {Intrinsic::nvvm_f2ll_rn_ftz, 65728}, // __nvvm_f2ll_rn_ftz
-+      {Intrinsic::nvvm_f2ll_rp, 65747}, // __nvvm_f2ll_rp
-+      {Intrinsic::nvvm_f2ll_rp_ftz, 65762}, // __nvvm_f2ll_rp_ftz
-+      {Intrinsic::nvvm_f2ll_rz, 65781}, // __nvvm_f2ll_rz
-+      {Intrinsic::nvvm_f2ll_rz_ftz, 65796}, // __nvvm_f2ll_rz_ftz
-+      {Intrinsic::nvvm_f2ui_rm, 65815}, // __nvvm_f2ui_rm
-+      {Intrinsic::nvvm_f2ui_rm_ftz, 65830}, // __nvvm_f2ui_rm_ftz
-+      {Intrinsic::nvvm_f2ui_rn, 65849}, // __nvvm_f2ui_rn
-+      {Intrinsic::nvvm_f2ui_rn_ftz, 65864}, // __nvvm_f2ui_rn_ftz
-+      {Intrinsic::nvvm_f2ui_rp, 65883}, // __nvvm_f2ui_rp
-+      {Intrinsic::nvvm_f2ui_rp_ftz, 65898}, // __nvvm_f2ui_rp_ftz
-+      {Intrinsic::nvvm_f2ui_rz, 65917}, // __nvvm_f2ui_rz
-+      {Intrinsic::nvvm_f2ui_rz_ftz, 65932}, // __nvvm_f2ui_rz_ftz
-+      {Intrinsic::nvvm_f2ull_rm, 65951}, // __nvvm_f2ull_rm
-+      {Intrinsic::nvvm_f2ull_rm_ftz, 65967}, // __nvvm_f2ull_rm_ftz
-+      {Intrinsic::nvvm_f2ull_rn, 65987}, // __nvvm_f2ull_rn
-+      {Intrinsic::nvvm_f2ull_rn_ftz, 66003}, // __nvvm_f2ull_rn_ftz
-+      {Intrinsic::nvvm_f2ull_rp, 66023}, // __nvvm_f2ull_rp
-+      {Intrinsic::nvvm_f2ull_rp_ftz, 66039}, // __nvvm_f2ull_rp_ftz
-+      {Intrinsic::nvvm_f2ull_rz, 66059}, // __nvvm_f2ull_rz
-+      {Intrinsic::nvvm_f2ull_rz_ftz, 66075}, // __nvvm_f2ull_rz_ftz
-+      {Intrinsic::nvvm_fabs_d, 66095}, // __nvvm_fabs_d
-+      {Intrinsic::nvvm_fabs_f, 66109}, // __nvvm_fabs_f
-+      {Intrinsic::nvvm_fabs_ftz_f, 66123}, // __nvvm_fabs_ftz_f
-+      {Intrinsic::nvvm_floor_d, 66141}, // __nvvm_floor_d
-+      {Intrinsic::nvvm_floor_f, 66156}, // __nvvm_floor_f
-+      {Intrinsic::nvvm_floor_ftz_f, 66171}, // __nvvm_floor_ftz_f
-+      {Intrinsic::nvvm_fma_rm_d, 66190}, // __nvvm_fma_rm_d
-+      {Intrinsic::nvvm_fma_rm_f, 66206}, // __nvvm_fma_rm_f
-+      {Intrinsic::nvvm_fma_rm_ftz_f, 66222}, // __nvvm_fma_rm_ftz_f
-+      {Intrinsic::nvvm_fma_rn_d, 66242}, // __nvvm_fma_rn_d
-+      {Intrinsic::nvvm_fma_rn_f, 66258}, // __nvvm_fma_rn_f
-+      {Intrinsic::nvvm_fma_rn_ftz_f, 66274}, // __nvvm_fma_rn_ftz_f
-+      {Intrinsic::nvvm_fma_rp_d, 66294}, // __nvvm_fma_rp_d
-+      {Intrinsic::nvvm_fma_rp_f, 66310}, // __nvvm_fma_rp_f
-+      {Intrinsic::nvvm_fma_rp_ftz_f, 66326}, // __nvvm_fma_rp_ftz_f
-+      {Intrinsic::nvvm_fma_rz_d, 66346}, // __nvvm_fma_rz_d
-+      {Intrinsic::nvvm_fma_rz_f, 66362}, // __nvvm_fma_rz_f
-+      {Intrinsic::nvvm_fma_rz_ftz_f, 66378}, // __nvvm_fma_rz_ftz_f
-+      {Intrinsic::nvvm_fmax_d, 66398}, // __nvvm_fmax_d
-+      {Intrinsic::nvvm_fmax_f, 66412}, // __nvvm_fmax_f
-+      {Intrinsic::nvvm_fmax_ftz_f, 66426}, // __nvvm_fmax_ftz_f
-+      {Intrinsic::nvvm_fmin_d, 66444}, // __nvvm_fmin_d
-+      {Intrinsic::nvvm_fmin_f, 66458}, // __nvvm_fmin_f
-+      {Intrinsic::nvvm_fmin_ftz_f, 66472}, // __nvvm_fmin_ftz_f
-+      {Intrinsic::nvvm_h2f, 66490}, // __nvvm_h2f
-+      {Intrinsic::nvvm_i2d_rm, 66501}, // __nvvm_i2d_rm
-+      {Intrinsic::nvvm_i2d_rn, 66515}, // __nvvm_i2d_rn
-+      {Intrinsic::nvvm_i2d_rp, 66529}, // __nvvm_i2d_rp
-+      {Intrinsic::nvvm_i2d_rz, 66543}, // __nvvm_i2d_rz
-+      {Intrinsic::nvvm_i2f_rm, 66557}, // __nvvm_i2f_rm
-+      {Intrinsic::nvvm_i2f_rn, 66571}, // __nvvm_i2f_rn
-+      {Intrinsic::nvvm_i2f_rp, 66585}, // __nvvm_i2f_rp
-+      {Intrinsic::nvvm_i2f_rz, 66599}, // __nvvm_i2f_rz
-+      {Intrinsic::nvvm_isspacep_const, 66613}, // __nvvm_isspacep_const
-+      {Intrinsic::nvvm_isspacep_global, 66635}, // __nvvm_isspacep_global
-+      {Intrinsic::nvvm_isspacep_local, 66658}, // __nvvm_isspacep_local
-+      {Intrinsic::nvvm_isspacep_shared, 66680}, // __nvvm_isspacep_shared
-+      {Intrinsic::nvvm_istypep_sampler, 66703}, // __nvvm_istypep_sampler
-+      {Intrinsic::nvvm_istypep_surface, 66726}, // __nvvm_istypep_surface
-+      {Intrinsic::nvvm_istypep_texture, 66749}, // __nvvm_istypep_texture
-+      {Intrinsic::nvvm_lg2_approx_d, 66772}, // __nvvm_lg2_approx_d
-+      {Intrinsic::nvvm_lg2_approx_f, 66792}, // __nvvm_lg2_approx_f
-+      {Intrinsic::nvvm_lg2_approx_ftz_f, 66812}, // __nvvm_lg2_approx_ftz_f
-+      {Intrinsic::nvvm_ll2d_rm, 66836}, // __nvvm_ll2d_rm
-+      {Intrinsic::nvvm_ll2d_rn, 66851}, // __nvvm_ll2d_rn
-+      {Intrinsic::nvvm_ll2d_rp, 66866}, // __nvvm_ll2d_rp
-+      {Intrinsic::nvvm_ll2d_rz, 66881}, // __nvvm_ll2d_rz
-+      {Intrinsic::nvvm_ll2f_rm, 66896}, // __nvvm_ll2f_rm
-+      {Intrinsic::nvvm_ll2f_rn, 66911}, // __nvvm_ll2f_rn
-+      {Intrinsic::nvvm_ll2f_rp, 66926}, // __nvvm_ll2f_rp
-+      {Intrinsic::nvvm_ll2f_rz, 66941}, // __nvvm_ll2f_rz
-+      {Intrinsic::nvvm_lohi_i2d, 66956}, // __nvvm_lohi_i2d
-+      {Intrinsic::nvvm_max_i, 66972}, // __nvvm_max_i
-+      {Intrinsic::nvvm_max_ll, 66985}, // __nvvm_max_ll
-+      {Intrinsic::nvvm_max_ui, 66999}, // __nvvm_max_ui
-+      {Intrinsic::nvvm_max_ull, 67013}, // __nvvm_max_ull
-+      {Intrinsic::nvvm_membar_cta, 67028}, // __nvvm_membar_cta
-+      {Intrinsic::nvvm_membar_gl, 67046}, // __nvvm_membar_gl
-+      {Intrinsic::nvvm_membar_sys, 67063}, // __nvvm_membar_sys
-+      {Intrinsic::nvvm_min_i, 67081}, // __nvvm_min_i
-+      {Intrinsic::nvvm_min_ll, 67094}, // __nvvm_min_ll
-+      {Intrinsic::nvvm_min_ui, 67108}, // __nvvm_min_ui
-+      {Intrinsic::nvvm_min_ull, 67122}, // __nvvm_min_ull
-+      {Intrinsic::nvvm_mul24_i, 67345}, // __nvvm_mul24_i
-+      {Intrinsic::nvvm_mul24_ui, 67360}, // __nvvm_mul24_ui
-+      {Intrinsic::nvvm_mul_rm_d, 67137}, // __nvvm_mul_rm_d
-+      {Intrinsic::nvvm_mul_rm_f, 67153}, // __nvvm_mul_rm_f
-+      {Intrinsic::nvvm_mul_rm_ftz_f, 67169}, // __nvvm_mul_rm_ftz_f
-+      {Intrinsic::nvvm_mul_rn_d, 67189}, // __nvvm_mul_rn_d
-+      {Intrinsic::nvvm_mul_rn_f, 67205}, // __nvvm_mul_rn_f
-+      {Intrinsic::nvvm_mul_rn_ftz_f, 67221}, // __nvvm_mul_rn_ftz_f
-+      {Intrinsic::nvvm_mul_rp_d, 67241}, // __nvvm_mul_rp_d
-+      {Intrinsic::nvvm_mul_rp_f, 67257}, // __nvvm_mul_rp_f
-+      {Intrinsic::nvvm_mul_rp_ftz_f, 67273}, // __nvvm_mul_rp_ftz_f
-+      {Intrinsic::nvvm_mul_rz_d, 67293}, // __nvvm_mul_rz_d
-+      {Intrinsic::nvvm_mul_rz_f, 67309}, // __nvvm_mul_rz_f
-+      {Intrinsic::nvvm_mul_rz_ftz_f, 67325}, // __nvvm_mul_rz_ftz_f
-+      {Intrinsic::nvvm_mulhi_i, 67376}, // __nvvm_mulhi_i
-+      {Intrinsic::nvvm_mulhi_ll, 67391}, // __nvvm_mulhi_ll
-+      {Intrinsic::nvvm_mulhi_ui, 67407}, // __nvvm_mulhi_ui
-+      {Intrinsic::nvvm_mulhi_ull, 67423}, // __nvvm_mulhi_ull
-+      {Intrinsic::nvvm_popc_i, 67440}, // __nvvm_popc_i
-+      {Intrinsic::nvvm_popc_ll, 67454}, // __nvvm_popc_ll
-+      {Intrinsic::nvvm_prmt, 67469}, // __nvvm_prmt
-+      {Intrinsic::nvvm_rcp_approx_ftz_d, 67481}, // __nvvm_rcp_approx_ftz_d
-+      {Intrinsic::nvvm_rcp_rm_d, 67505}, // __nvvm_rcp_rm_d
-+      {Intrinsic::nvvm_rcp_rm_f, 67521}, // __nvvm_rcp_rm_f
-+      {Intrinsic::nvvm_rcp_rm_ftz_f, 67537}, // __nvvm_rcp_rm_ftz_f
-+      {Intrinsic::nvvm_rcp_rn_d, 67557}, // __nvvm_rcp_rn_d
-+      {Intrinsic::nvvm_rcp_rn_f, 67573}, // __nvvm_rcp_rn_f
-+      {Intrinsic::nvvm_rcp_rn_ftz_f, 67589}, // __nvvm_rcp_rn_ftz_f
-+      {Intrinsic::nvvm_rcp_rp_d, 67609}, // __nvvm_rcp_rp_d
-+      {Intrinsic::nvvm_rcp_rp_f, 67625}, // __nvvm_rcp_rp_f
-+      {Intrinsic::nvvm_rcp_rp_ftz_f, 67641}, // __nvvm_rcp_rp_ftz_f
-+      {Intrinsic::nvvm_rcp_rz_d, 67661}, // __nvvm_rcp_rz_d
-+      {Intrinsic::nvvm_rcp_rz_f, 67677}, // __nvvm_rcp_rz_f
-+      {Intrinsic::nvvm_rcp_rz_ftz_f, 67693}, // __nvvm_rcp_rz_ftz_f
-+      {Intrinsic::nvvm_read_ptx_sreg_clock, 67713}, // __nvvm_read_ptx_sreg_clock
-+      {Intrinsic::nvvm_read_ptx_sreg_clock64, 67740}, // __nvvm_read_ptx_sreg_clock64
-+      {Intrinsic::nvvm_read_ptx_sreg_ctaid_w, 67769}, // __nvvm_read_ptx_sreg_ctaid_w
-+      {Intrinsic::nvvm_read_ptx_sreg_ctaid_x, 67798}, // __nvvm_read_ptx_sreg_ctaid_x
-+      {Intrinsic::nvvm_read_ptx_sreg_ctaid_y, 67827}, // __nvvm_read_ptx_sreg_ctaid_y
-+      {Intrinsic::nvvm_read_ptx_sreg_ctaid_z, 67856}, // __nvvm_read_ptx_sreg_ctaid_z
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg0, 67885}, // __nvvm_read_ptx_sreg_envreg0
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg1, 67914}, // __nvvm_read_ptx_sreg_envreg1
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg10, 67943}, // __nvvm_read_ptx_sreg_envreg10
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg11, 67973}, // __nvvm_read_ptx_sreg_envreg11
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg12, 68003}, // __nvvm_read_ptx_sreg_envreg12
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg13, 68033}, // __nvvm_read_ptx_sreg_envreg13
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg14, 68063}, // __nvvm_read_ptx_sreg_envreg14
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg15, 68093}, // __nvvm_read_ptx_sreg_envreg15
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg16, 68123}, // __nvvm_read_ptx_sreg_envreg16
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg17, 68153}, // __nvvm_read_ptx_sreg_envreg17
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg18, 68183}, // __nvvm_read_ptx_sreg_envreg18
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg19, 68213}, // __nvvm_read_ptx_sreg_envreg19
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg2, 68243}, // __nvvm_read_ptx_sreg_envreg2
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg20, 68272}, // __nvvm_read_ptx_sreg_envreg20
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg21, 68302}, // __nvvm_read_ptx_sreg_envreg21
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg22, 68332}, // __nvvm_read_ptx_sreg_envreg22
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg23, 68362}, // __nvvm_read_ptx_sreg_envreg23
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg24, 68392}, // __nvvm_read_ptx_sreg_envreg24
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg25, 68422}, // __nvvm_read_ptx_sreg_envreg25
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg26, 68452}, // __nvvm_read_ptx_sreg_envreg26
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg27, 68482}, // __nvvm_read_ptx_sreg_envreg27
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg28, 68512}, // __nvvm_read_ptx_sreg_envreg28
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg29, 68542}, // __nvvm_read_ptx_sreg_envreg29
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg3, 68572}, // __nvvm_read_ptx_sreg_envreg3
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg30, 68601}, // __nvvm_read_ptx_sreg_envreg30
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg31, 68631}, // __nvvm_read_ptx_sreg_envreg31
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg4, 68661}, // __nvvm_read_ptx_sreg_envreg4
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg5, 68690}, // __nvvm_read_ptx_sreg_envreg5
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg6, 68719}, // __nvvm_read_ptx_sreg_envreg6
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg7, 68748}, // __nvvm_read_ptx_sreg_envreg7
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg8, 68777}, // __nvvm_read_ptx_sreg_envreg8
-+      {Intrinsic::nvvm_read_ptx_sreg_envreg9, 68806}, // __nvvm_read_ptx_sreg_envreg9
-+      {Intrinsic::nvvm_read_ptx_sreg_gridid, 68835}, // __nvvm_read_ptx_sreg_gridid
-+      {Intrinsic::nvvm_read_ptx_sreg_laneid, 68863}, // __nvvm_read_ptx_sreg_laneid
-+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_eq, 68891}, // __nvvm_read_ptx_sreg_lanemask_eq
-+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_ge, 68924}, // __nvvm_read_ptx_sreg_lanemask_ge
-+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_gt, 68957}, // __nvvm_read_ptx_sreg_lanemask_gt
-+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_le, 68990}, // __nvvm_read_ptx_sreg_lanemask_le
-+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_lt, 69023}, // __nvvm_read_ptx_sreg_lanemask_lt
-+      {Intrinsic::nvvm_read_ptx_sreg_nctaid_w, 69056}, // __nvvm_read_ptx_sreg_nctaid_w
-+      {Intrinsic::nvvm_read_ptx_sreg_nctaid_x, 69086}, // __nvvm_read_ptx_sreg_nctaid_x
-+      {Intrinsic::nvvm_read_ptx_sreg_nctaid_y, 69116}, // __nvvm_read_ptx_sreg_nctaid_y
-+      {Intrinsic::nvvm_read_ptx_sreg_nctaid_z, 69146}, // __nvvm_read_ptx_sreg_nctaid_z
-+      {Intrinsic::nvvm_read_ptx_sreg_nsmid, 69176}, // __nvvm_read_ptx_sreg_nsmid
-+      {Intrinsic::nvvm_read_ptx_sreg_ntid_w, 69203}, // __nvvm_read_ptx_sreg_ntid_w
-+      {Intrinsic::nvvm_read_ptx_sreg_ntid_x, 69231}, // __nvvm_read_ptx_sreg_ntid_x
-+      {Intrinsic::nvvm_read_ptx_sreg_ntid_y, 69259}, // __nvvm_read_ptx_sreg_ntid_y
-+      {Intrinsic::nvvm_read_ptx_sreg_ntid_z, 69287}, // __nvvm_read_ptx_sreg_ntid_z
-+      {Intrinsic::nvvm_read_ptx_sreg_nwarpid, 69315}, // __nvvm_read_ptx_sreg_nwarpid
-+      {Intrinsic::nvvm_read_ptx_sreg_pm0, 69344}, // __nvvm_read_ptx_sreg_pm0
-+      {Intrinsic::nvvm_read_ptx_sreg_pm1, 69369}, // __nvvm_read_ptx_sreg_pm1
-+      {Intrinsic::nvvm_read_ptx_sreg_pm2, 69394}, // __nvvm_read_ptx_sreg_pm2
-+      {Intrinsic::nvvm_read_ptx_sreg_pm3, 69419}, // __nvvm_read_ptx_sreg_pm3
-+      {Intrinsic::nvvm_read_ptx_sreg_smid, 69444}, // __nvvm_read_ptx_sreg_smid
-+      {Intrinsic::nvvm_read_ptx_sreg_tid_w, 69470}, // __nvvm_read_ptx_sreg_tid_w
-+      {Intrinsic::nvvm_read_ptx_sreg_tid_x, 69497}, // __nvvm_read_ptx_sreg_tid_x
-+      {Intrinsic::nvvm_read_ptx_sreg_tid_y, 69524}, // __nvvm_read_ptx_sreg_tid_y
-+      {Intrinsic::nvvm_read_ptx_sreg_tid_z, 69551}, // __nvvm_read_ptx_sreg_tid_z
-+      {Intrinsic::nvvm_read_ptx_sreg_warpid, 69578}, // __nvvm_read_ptx_sreg_warpid
-+      {Intrinsic::nvvm_read_ptx_sreg_warpsize, 69606}, // __nvvm_read_ptx_sreg_warpsize
-+      {Intrinsic::nvvm_rotate_b32, 69636}, // __nvvm_rotate_b32
-+      {Intrinsic::nvvm_rotate_b64, 69654}, // __nvvm_rotate_b64
-+      {Intrinsic::nvvm_rotate_right_b64, 69672}, // __nvvm_rotate_right_b64
-+      {Intrinsic::nvvm_round_d, 69696}, // __nvvm_round_d
-+      {Intrinsic::nvvm_round_f, 69711}, // __nvvm_round_f
-+      {Intrinsic::nvvm_round_ftz_f, 69726}, // __nvvm_round_ftz_f
-+      {Intrinsic::nvvm_rsqrt_approx_d, 69745}, // __nvvm_rsqrt_approx_d
-+      {Intrinsic::nvvm_rsqrt_approx_f, 69767}, // __nvvm_rsqrt_approx_f
-+      {Intrinsic::nvvm_rsqrt_approx_ftz_f, 69789}, // __nvvm_rsqrt_approx_ftz_f
-+      {Intrinsic::nvvm_sad_i, 69815}, // __nvvm_sad_i
-+      {Intrinsic::nvvm_sad_ui, 69828}, // __nvvm_sad_ui
-+      {Intrinsic::nvvm_saturate_d, 69842}, // __nvvm_saturate_d
-+      {Intrinsic::nvvm_saturate_f, 69860}, // __nvvm_saturate_f
-+      {Intrinsic::nvvm_saturate_ftz_f, 69878}, // __nvvm_saturate_ftz_f
-+      {Intrinsic::nvvm_shfl_bfly_f32, 69900}, // __nvvm_shfl_bfly_f32
-+      {Intrinsic::nvvm_shfl_bfly_i32, 69921}, // __nvvm_shfl_bfly_i32
-+      {Intrinsic::nvvm_shfl_down_f32, 69942}, // __nvvm_shfl_down_f32
-+      {Intrinsic::nvvm_shfl_down_i32, 69963}, // __nvvm_shfl_down_i32
-+      {Intrinsic::nvvm_shfl_idx_f32, 69984}, // __nvvm_shfl_idx_f32
-+      {Intrinsic::nvvm_shfl_idx_i32, 70004}, // __nvvm_shfl_idx_i32
-+      {Intrinsic::nvvm_shfl_up_f32, 70024}, // __nvvm_shfl_up_f32
-+      {Intrinsic::nvvm_shfl_up_i32, 70043}, // __nvvm_shfl_up_i32
-+      {Intrinsic::nvvm_sin_approx_f, 70062}, // __nvvm_sin_approx_f
-+      {Intrinsic::nvvm_sin_approx_ftz_f, 70082}, // __nvvm_sin_approx_ftz_f
-+      {Intrinsic::nvvm_sqrt_approx_f, 70106}, // __nvvm_sqrt_approx_f
-+      {Intrinsic::nvvm_sqrt_approx_ftz_f, 70127}, // __nvvm_sqrt_approx_ftz_f
-+      {Intrinsic::nvvm_sqrt_f, 70152}, // __nvvm_sqrt_f
-+      {Intrinsic::nvvm_sqrt_rm_d, 70166}, // __nvvm_sqrt_rm_d
-+      {Intrinsic::nvvm_sqrt_rm_f, 70183}, // __nvvm_sqrt_rm_f
-+      {Intrinsic::nvvm_sqrt_rm_ftz_f, 70200}, // __nvvm_sqrt_rm_ftz_f
-+      {Intrinsic::nvvm_sqrt_rn_d, 70221}, // __nvvm_sqrt_rn_d
-+      {Intrinsic::nvvm_sqrt_rn_f, 70238}, // __nvvm_sqrt_rn_f
-+      {Intrinsic::nvvm_sqrt_rn_ftz_f, 70255}, // __nvvm_sqrt_rn_ftz_f
-+      {Intrinsic::nvvm_sqrt_rp_d, 70276}, // __nvvm_sqrt_rp_d
-+      {Intrinsic::nvvm_sqrt_rp_f, 70293}, // __nvvm_sqrt_rp_f
-+      {Intrinsic::nvvm_sqrt_rp_ftz_f, 70310}, // __nvvm_sqrt_rp_ftz_f
-+      {Intrinsic::nvvm_sqrt_rz_d, 70331}, // __nvvm_sqrt_rz_d
-+      {Intrinsic::nvvm_sqrt_rz_f, 70348}, // __nvvm_sqrt_rz_f
-+      {Intrinsic::nvvm_sqrt_rz_ftz_f, 70365}, // __nvvm_sqrt_rz_ftz_f
-+      {Intrinsic::nvvm_suq_array_size, 70386}, // __nvvm_suq_array_size
-+      {Intrinsic::nvvm_suq_channel_data_type, 70408}, // __nvvm_suq_channel_data_type
-+      {Intrinsic::nvvm_suq_channel_order, 70437}, // __nvvm_suq_channel_order
-+      {Intrinsic::nvvm_suq_depth, 70462}, // __nvvm_suq_depth
-+      {Intrinsic::nvvm_suq_height, 70479}, // __nvvm_suq_height
-+      {Intrinsic::nvvm_suq_width, 70497}, // __nvvm_suq_width
-+      {Intrinsic::nvvm_sust_b_1d_array_i16_clamp, 70514}, // __nvvm_sust_b_1d_array_i16_clamp
-+      {Intrinsic::nvvm_sust_b_1d_array_i16_trap, 70547}, // __nvvm_sust_b_1d_array_i16_trap
-+      {Intrinsic::nvvm_sust_b_1d_array_i16_zero, 70579}, // __nvvm_sust_b_1d_array_i16_zero
-+      {Intrinsic::nvvm_sust_b_1d_array_i32_clamp, 70611}, // __nvvm_sust_b_1d_array_i32_clamp
-+      {Intrinsic::nvvm_sust_b_1d_array_i32_trap, 70644}, // __nvvm_sust_b_1d_array_i32_trap
-+      {Intrinsic::nvvm_sust_b_1d_array_i32_zero, 70676}, // __nvvm_sust_b_1d_array_i32_zero
-+      {Intrinsic::nvvm_sust_b_1d_array_i64_clamp, 70708}, // __nvvm_sust_b_1d_array_i64_clamp
-+      {Intrinsic::nvvm_sust_b_1d_array_i64_trap, 70741}, // __nvvm_sust_b_1d_array_i64_trap
-+      {Intrinsic::nvvm_sust_b_1d_array_i64_zero, 70773}, // __nvvm_sust_b_1d_array_i64_zero
-+      {Intrinsic::nvvm_sust_b_1d_array_i8_clamp, 70805}, // __nvvm_sust_b_1d_array_i8_clamp
-+      {Intrinsic::nvvm_sust_b_1d_array_i8_trap, 70837}, // __nvvm_sust_b_1d_array_i8_trap
-+      {Intrinsic::nvvm_sust_b_1d_array_i8_zero, 70868}, // __nvvm_sust_b_1d_array_i8_zero
-+      {Intrinsic::nvvm_sust_b_1d_array_v2i16_clamp, 70899}, // __nvvm_sust_b_1d_array_v2i16_clamp
-+      {Intrinsic::nvvm_sust_b_1d_array_v2i16_trap, 70934}, // __nvvm_sust_b_1d_array_v2i16_trap
-+      {Intrinsic::nvvm_sust_b_1d_array_v2i16_zero, 70968}, // __nvvm_sust_b_1d_array_v2i16_zero
-+      {Intrinsic::nvvm_sust_b_1d_array_v2i32_clamp, 71002}, // __nvvm_sust_b_1d_array_v2i32_clamp
-+      {Intrinsic::nvvm_sust_b_1d_array_v2i32_trap, 71037}, // __nvvm_sust_b_1d_array_v2i32_trap
-+      {Intrinsic::nvvm_sust_b_1d_array_v2i32_zero, 71071}, // __nvvm_sust_b_1d_array_v2i32_zero
-+      {Intrinsic::nvvm_sust_b_1d_array_v2i64_clamp, 71105}, // __nvvm_sust_b_1d_array_v2i64_clamp
-+      {Intrinsic::nvvm_sust_b_1d_array_v2i64_trap, 71140}, // __nvvm_sust_b_1d_array_v2i64_trap
-+      {Intrinsic::nvvm_sust_b_1d_array_v2i64_zero, 71174}, // __nvvm_sust_b_1d_array_v2i64_zero
-+      {Intrinsic::nvvm_sust_b_1d_array_v2i8_clamp, 71208}, // __nvvm_sust_b_1d_array_v2i8_clamp
-+      {Intrinsic::nvvm_sust_b_1d_array_v2i8_trap, 71242}, // __nvvm_sust_b_1d_array_v2i8_trap
-+      {Intrinsic::nvvm_sust_b_1d_array_v2i8_zero, 71275}, // __nvvm_sust_b_1d_array_v2i8_zero
-+      {Intrinsic::nvvm_sust_b_1d_array_v4i16_clamp, 71308}, // __nvvm_sust_b_1d_array_v4i16_clamp
-+      {Intrinsic::nvvm_sust_b_1d_array_v4i16_trap, 71343}, // __nvvm_sust_b_1d_array_v4i16_trap
-+      {Intrinsic::nvvm_sust_b_1d_array_v4i16_zero, 71377}, // __nvvm_sust_b_1d_array_v4i16_zero
-+      {Intrinsic::nvvm_sust_b_1d_array_v4i32_clamp, 71411}, // __nvvm_sust_b_1d_array_v4i32_clamp
-+      {Intrinsic::nvvm_sust_b_1d_array_v4i32_trap, 71446}, // __nvvm_sust_b_1d_array_v4i32_trap
-+      {Intrinsic::nvvm_sust_b_1d_array_v4i32_zero, 71480}, // __nvvm_sust_b_1d_array_v4i32_zero
-+      {Intrinsic::nvvm_sust_b_1d_array_v4i8_clamp, 71514}, // __nvvm_sust_b_1d_array_v4i8_clamp
-+      {Intrinsic::nvvm_sust_b_1d_array_v4i8_trap, 71548}, // __nvvm_sust_b_1d_array_v4i8_trap
-+      {Intrinsic::nvvm_sust_b_1d_array_v4i8_zero, 71581}, // __nvvm_sust_b_1d_array_v4i8_zero
-+      {Intrinsic::nvvm_sust_b_1d_i16_clamp, 71614}, // __nvvm_sust_b_1d_i16_clamp
-+      {Intrinsic::nvvm_sust_b_1d_i16_trap, 71641}, // __nvvm_sust_b_1d_i16_trap
-+      {Intrinsic::nvvm_sust_b_1d_i16_zero, 71667}, // __nvvm_sust_b_1d_i16_zero
-+      {Intrinsic::nvvm_sust_b_1d_i32_clamp, 71693}, // __nvvm_sust_b_1d_i32_clamp
-+      {Intrinsic::nvvm_sust_b_1d_i32_trap, 71720}, // __nvvm_sust_b_1d_i32_trap
-+      {Intrinsic::nvvm_sust_b_1d_i32_zero, 71746}, // __nvvm_sust_b_1d_i32_zero
-+      {Intrinsic::nvvm_sust_b_1d_i64_clamp, 71772}, // __nvvm_sust_b_1d_i64_clamp
-+      {Intrinsic::nvvm_sust_b_1d_i64_trap, 71799}, // __nvvm_sust_b_1d_i64_trap
-+      {Intrinsic::nvvm_sust_b_1d_i64_zero, 71825}, // __nvvm_sust_b_1d_i64_zero
-+      {Intrinsic::nvvm_sust_b_1d_i8_clamp, 71851}, // __nvvm_sust_b_1d_i8_clamp
-+      {Intrinsic::nvvm_sust_b_1d_i8_trap, 71877}, // __nvvm_sust_b_1d_i8_trap
-+      {Intrinsic::nvvm_sust_b_1d_i8_zero, 71902}, // __nvvm_sust_b_1d_i8_zero
-+      {Intrinsic::nvvm_sust_b_1d_v2i16_clamp, 71927}, // __nvvm_sust_b_1d_v2i16_clamp
-+      {Intrinsic::nvvm_sust_b_1d_v2i16_trap, 71956}, // __nvvm_sust_b_1d_v2i16_trap
-+      {Intrinsic::nvvm_sust_b_1d_v2i16_zero, 71984}, // __nvvm_sust_b_1d_v2i16_zero
-+      {Intrinsic::nvvm_sust_b_1d_v2i32_clamp, 72012}, // __nvvm_sust_b_1d_v2i32_clamp
-+      {Intrinsic::nvvm_sust_b_1d_v2i32_trap, 72041}, // __nvvm_sust_b_1d_v2i32_trap
-+      {Intrinsic::nvvm_sust_b_1d_v2i32_zero, 72069}, // __nvvm_sust_b_1d_v2i32_zero
-+      {Intrinsic::nvvm_sust_b_1d_v2i64_clamp, 72097}, // __nvvm_sust_b_1d_v2i64_clamp
-+      {Intrinsic::nvvm_sust_b_1d_v2i64_trap, 72126}, // __nvvm_sust_b_1d_v2i64_trap
-+      {Intrinsic::nvvm_sust_b_1d_v2i64_zero, 72154}, // __nvvm_sust_b_1d_v2i64_zero
-+      {Intrinsic::nvvm_sust_b_1d_v2i8_clamp, 72182}, // __nvvm_sust_b_1d_v2i8_clamp
-+      {Intrinsic::nvvm_sust_b_1d_v2i8_trap, 72210}, // __nvvm_sust_b_1d_v2i8_trap
-+      {Intrinsic::nvvm_sust_b_1d_v2i8_zero, 72237}, // __nvvm_sust_b_1d_v2i8_zero
-+      {Intrinsic::nvvm_sust_b_1d_v4i16_clamp, 72264}, // __nvvm_sust_b_1d_v4i16_clamp
-+      {Intrinsic::nvvm_sust_b_1d_v4i16_trap, 72293}, // __nvvm_sust_b_1d_v4i16_trap
-+      {Intrinsic::nvvm_sust_b_1d_v4i16_zero, 72321}, // __nvvm_sust_b_1d_v4i16_zero
-+      {Intrinsic::nvvm_sust_b_1d_v4i32_clamp, 72349}, // __nvvm_sust_b_1d_v4i32_clamp
-+      {Intrinsic::nvvm_sust_b_1d_v4i32_trap, 72378}, // __nvvm_sust_b_1d_v4i32_trap
-+      {Intrinsic::nvvm_sust_b_1d_v4i32_zero, 72406}, // __nvvm_sust_b_1d_v4i32_zero
-+      {Intrinsic::nvvm_sust_b_1d_v4i8_clamp, 72434}, // __nvvm_sust_b_1d_v4i8_clamp
-+      {Intrinsic::nvvm_sust_b_1d_v4i8_trap, 72462}, // __nvvm_sust_b_1d_v4i8_trap
-+      {Intrinsic::nvvm_sust_b_1d_v4i8_zero, 72489}, // __nvvm_sust_b_1d_v4i8_zero
-+      {Intrinsic::nvvm_sust_b_2d_array_i16_clamp, 72516}, // __nvvm_sust_b_2d_array_i16_clamp
-+      {Intrinsic::nvvm_sust_b_2d_array_i16_trap, 72549}, // __nvvm_sust_b_2d_array_i16_trap
-+      {Intrinsic::nvvm_sust_b_2d_array_i16_zero, 72581}, // __nvvm_sust_b_2d_array_i16_zero
-+      {Intrinsic::nvvm_sust_b_2d_array_i32_clamp, 72613}, // __nvvm_sust_b_2d_array_i32_clamp
-+      {Intrinsic::nvvm_sust_b_2d_array_i32_trap, 72646}, // __nvvm_sust_b_2d_array_i32_trap
-+      {Intrinsic::nvvm_sust_b_2d_array_i32_zero, 72678}, // __nvvm_sust_b_2d_array_i32_zero
-+      {Intrinsic::nvvm_sust_b_2d_array_i64_clamp, 72710}, // __nvvm_sust_b_2d_array_i64_clamp
-+      {Intrinsic::nvvm_sust_b_2d_array_i64_trap, 72743}, // __nvvm_sust_b_2d_array_i64_trap
-+      {Intrinsic::nvvm_sust_b_2d_array_i64_zero, 72775}, // __nvvm_sust_b_2d_array_i64_zero
-+      {Intrinsic::nvvm_sust_b_2d_array_i8_clamp, 72807}, // __nvvm_sust_b_2d_array_i8_clamp
-+      {Intrinsic::nvvm_sust_b_2d_array_i8_trap, 72839}, // __nvvm_sust_b_2d_array_i8_trap
-+      {Intrinsic::nvvm_sust_b_2d_array_i8_zero, 72870}, // __nvvm_sust_b_2d_array_i8_zero
-+      {Intrinsic::nvvm_sust_b_2d_array_v2i16_clamp, 72901}, // __nvvm_sust_b_2d_array_v2i16_clamp
-+      {Intrinsic::nvvm_sust_b_2d_array_v2i16_trap, 72936}, // __nvvm_sust_b_2d_array_v2i16_trap
-+      {Intrinsic::nvvm_sust_b_2d_array_v2i16_zero, 72970}, // __nvvm_sust_b_2d_array_v2i16_zero
-+      {Intrinsic::nvvm_sust_b_2d_array_v2i32_clamp, 73004}, // __nvvm_sust_b_2d_array_v2i32_clamp
-+      {Intrinsic::nvvm_sust_b_2d_array_v2i32_trap, 73039}, // __nvvm_sust_b_2d_array_v2i32_trap
-+      {Intrinsic::nvvm_sust_b_2d_array_v2i32_zero, 73073}, // __nvvm_sust_b_2d_array_v2i32_zero
-+      {Intrinsic::nvvm_sust_b_2d_array_v2i64_clamp, 73107}, // __nvvm_sust_b_2d_array_v2i64_clamp
-+      {Intrinsic::nvvm_sust_b_2d_array_v2i64_trap, 73142}, // __nvvm_sust_b_2d_array_v2i64_trap
-+      {Intrinsic::nvvm_sust_b_2d_array_v2i64_zero, 73176}, // __nvvm_sust_b_2d_array_v2i64_zero
-+      {Intrinsic::nvvm_sust_b_2d_array_v2i8_clamp, 73210}, // __nvvm_sust_b_2d_array_v2i8_clamp
-+      {Intrinsic::nvvm_sust_b_2d_array_v2i8_trap, 73244}, // __nvvm_sust_b_2d_array_v2i8_trap
-+      {Intrinsic::nvvm_sust_b_2d_array_v2i8_zero, 73277}, // __nvvm_sust_b_2d_array_v2i8_zero
-+      {Intrinsic::nvvm_sust_b_2d_array_v4i16_clamp, 73310}, // __nvvm_sust_b_2d_array_v4i16_clamp
-+      {Intrinsic::nvvm_sust_b_2d_array_v4i16_trap, 73345}, // __nvvm_sust_b_2d_array_v4i16_trap
-+      {Intrinsic::nvvm_sust_b_2d_array_v4i16_zero, 73379}, // __nvvm_sust_b_2d_array_v4i16_zero
-+      {Intrinsic::nvvm_sust_b_2d_array_v4i32_clamp, 73413}, // __nvvm_sust_b_2d_array_v4i32_clamp
-+      {Intrinsic::nvvm_sust_b_2d_array_v4i32_trap, 73448}, // __nvvm_sust_b_2d_array_v4i32_trap
-+      {Intrinsic::nvvm_sust_b_2d_array_v4i32_zero, 73482}, // __nvvm_sust_b_2d_array_v4i32_zero
-+      {Intrinsic::nvvm_sust_b_2d_array_v4i8_clamp, 73516}, // __nvvm_sust_b_2d_array_v4i8_clamp
-+      {Intrinsic::nvvm_sust_b_2d_array_v4i8_trap, 73550}, // __nvvm_sust_b_2d_array_v4i8_trap
-+      {Intrinsic::nvvm_sust_b_2d_array_v4i8_zero, 73583}, // __nvvm_sust_b_2d_array_v4i8_zero
-+      {Intrinsic::nvvm_sust_b_2d_i16_clamp, 73616}, // __nvvm_sust_b_2d_i16_clamp
-+      {Intrinsic::nvvm_sust_b_2d_i16_trap, 73643}, // __nvvm_sust_b_2d_i16_trap
-+      {Intrinsic::nvvm_sust_b_2d_i16_zero, 73669}, // __nvvm_sust_b_2d_i16_zero
-+      {Intrinsic::nvvm_sust_b_2d_i32_clamp, 73695}, // __nvvm_sust_b_2d_i32_clamp
-+      {Intrinsic::nvvm_sust_b_2d_i32_trap, 73722}, // __nvvm_sust_b_2d_i32_trap
-+      {Intrinsic::nvvm_sust_b_2d_i32_zero, 73748}, // __nvvm_sust_b_2d_i32_zero
-+      {Intrinsic::nvvm_sust_b_2d_i64_clamp, 73774}, // __nvvm_sust_b_2d_i64_clamp
-+      {Intrinsic::nvvm_sust_b_2d_i64_trap, 73801}, // __nvvm_sust_b_2d_i64_trap
-+      {Intrinsic::nvvm_sust_b_2d_i64_zero, 73827}, // __nvvm_sust_b_2d_i64_zero
-+      {Intrinsic::nvvm_sust_b_2d_i8_clamp, 73853}, // __nvvm_sust_b_2d_i8_clamp
-+      {Intrinsic::nvvm_sust_b_2d_i8_trap, 73879}, // __nvvm_sust_b_2d_i8_trap
-+      {Intrinsic::nvvm_sust_b_2d_i8_zero, 73904}, // __nvvm_sust_b_2d_i8_zero
-+      {Intrinsic::nvvm_sust_b_2d_v2i16_clamp, 73929}, // __nvvm_sust_b_2d_v2i16_clamp
-+      {Intrinsic::nvvm_sust_b_2d_v2i16_trap, 73958}, // __nvvm_sust_b_2d_v2i16_trap
-+      {Intrinsic::nvvm_sust_b_2d_v2i16_zero, 73986}, // __nvvm_sust_b_2d_v2i16_zero
-+      {Intrinsic::nvvm_sust_b_2d_v2i32_clamp, 74014}, // __nvvm_sust_b_2d_v2i32_clamp
-+      {Intrinsic::nvvm_sust_b_2d_v2i32_trap, 74043}, // __nvvm_sust_b_2d_v2i32_trap
-+      {Intrinsic::nvvm_sust_b_2d_v2i32_zero, 74071}, // __nvvm_sust_b_2d_v2i32_zero
-+      {Intrinsic::nvvm_sust_b_2d_v2i64_clamp, 74099}, // __nvvm_sust_b_2d_v2i64_clamp
-+      {Intrinsic::nvvm_sust_b_2d_v2i64_trap, 74128}, // __nvvm_sust_b_2d_v2i64_trap
-+      {Intrinsic::nvvm_sust_b_2d_v2i64_zero, 74156}, // __nvvm_sust_b_2d_v2i64_zero
-+      {Intrinsic::nvvm_sust_b_2d_v2i8_clamp, 74184}, // __nvvm_sust_b_2d_v2i8_clamp
-+      {Intrinsic::nvvm_sust_b_2d_v2i8_trap, 74212}, // __nvvm_sust_b_2d_v2i8_trap
-+      {Intrinsic::nvvm_sust_b_2d_v2i8_zero, 74239}, // __nvvm_sust_b_2d_v2i8_zero
-+      {Intrinsic::nvvm_sust_b_2d_v4i16_clamp, 74266}, // __nvvm_sust_b_2d_v4i16_clamp
-+      {Intrinsic::nvvm_sust_b_2d_v4i16_trap, 74295}, // __nvvm_sust_b_2d_v4i16_trap
-+      {Intrinsic::nvvm_sust_b_2d_v4i16_zero, 74323}, // __nvvm_sust_b_2d_v4i16_zero
-+      {Intrinsic::nvvm_sust_b_2d_v4i32_clamp, 74351}, // __nvvm_sust_b_2d_v4i32_clamp
-+      {Intrinsic::nvvm_sust_b_2d_v4i32_trap, 74380}, // __nvvm_sust_b_2d_v4i32_trap
-+      {Intrinsic::nvvm_sust_b_2d_v4i32_zero, 74408}, // __nvvm_sust_b_2d_v4i32_zero
-+      {Intrinsic::nvvm_sust_b_2d_v4i8_clamp, 74436}, // __nvvm_sust_b_2d_v4i8_clamp
-+      {Intrinsic::nvvm_sust_b_2d_v4i8_trap, 74464}, // __nvvm_sust_b_2d_v4i8_trap
-+      {Intrinsic::nvvm_sust_b_2d_v4i8_zero, 74491}, // __nvvm_sust_b_2d_v4i8_zero
-+      {Intrinsic::nvvm_sust_b_3d_i16_clamp, 74518}, // __nvvm_sust_b_3d_i16_clamp
-+      {Intrinsic::nvvm_sust_b_3d_i16_trap, 74545}, // __nvvm_sust_b_3d_i16_trap
-+      {Intrinsic::nvvm_sust_b_3d_i16_zero, 74571}, // __nvvm_sust_b_3d_i16_zero
-+      {Intrinsic::nvvm_sust_b_3d_i32_clamp, 74597}, // __nvvm_sust_b_3d_i32_clamp
-+      {Intrinsic::nvvm_sust_b_3d_i32_trap, 74624}, // __nvvm_sust_b_3d_i32_trap
-+      {Intrinsic::nvvm_sust_b_3d_i32_zero, 74650}, // __nvvm_sust_b_3d_i32_zero
-+      {Intrinsic::nvvm_sust_b_3d_i64_clamp, 74676}, // __nvvm_sust_b_3d_i64_clamp
-+      {Intrinsic::nvvm_sust_b_3d_i64_trap, 74703}, // __nvvm_sust_b_3d_i64_trap
-+      {Intrinsic::nvvm_sust_b_3d_i64_zero, 74729}, // __nvvm_sust_b_3d_i64_zero
-+      {Intrinsic::nvvm_sust_b_3d_i8_clamp, 74755}, // __nvvm_sust_b_3d_i8_clamp
-+      {Intrinsic::nvvm_sust_b_3d_i8_trap, 74781}, // __nvvm_sust_b_3d_i8_trap
-+      {Intrinsic::nvvm_sust_b_3d_i8_zero, 74806}, // __nvvm_sust_b_3d_i8_zero
-+      {Intrinsic::nvvm_sust_b_3d_v2i16_clamp, 74831}, // __nvvm_sust_b_3d_v2i16_clamp
-+      {Intrinsic::nvvm_sust_b_3d_v2i16_trap, 74860}, // __nvvm_sust_b_3d_v2i16_trap
-+      {Intrinsic::nvvm_sust_b_3d_v2i16_zero, 74888}, // __nvvm_sust_b_3d_v2i16_zero
-+      {Intrinsic::nvvm_sust_b_3d_v2i32_clamp, 74916}, // __nvvm_sust_b_3d_v2i32_clamp
-+      {Intrinsic::nvvm_sust_b_3d_v2i32_trap, 74945}, // __nvvm_sust_b_3d_v2i32_trap
-+      {Intrinsic::nvvm_sust_b_3d_v2i32_zero, 74973}, // __nvvm_sust_b_3d_v2i32_zero
-+      {Intrinsic::nvvm_sust_b_3d_v2i64_clamp, 75001}, // __nvvm_sust_b_3d_v2i64_clamp
-+      {Intrinsic::nvvm_sust_b_3d_v2i64_trap, 75030}, // __nvvm_sust_b_3d_v2i64_trap
-+      {Intrinsic::nvvm_sust_b_3d_v2i64_zero, 75058}, // __nvvm_sust_b_3d_v2i64_zero
-+      {Intrinsic::nvvm_sust_b_3d_v2i8_clamp, 75086}, // __nvvm_sust_b_3d_v2i8_clamp
-+      {Intrinsic::nvvm_sust_b_3d_v2i8_trap, 75114}, // __nvvm_sust_b_3d_v2i8_trap
-+      {Intrinsic::nvvm_sust_b_3d_v2i8_zero, 75141}, // __nvvm_sust_b_3d_v2i8_zero
-+      {Intrinsic::nvvm_sust_b_3d_v4i16_clamp, 75168}, // __nvvm_sust_b_3d_v4i16_clamp
-+      {Intrinsic::nvvm_sust_b_3d_v4i16_trap, 75197}, // __nvvm_sust_b_3d_v4i16_trap
-+      {Intrinsic::nvvm_sust_b_3d_v4i16_zero, 75225}, // __nvvm_sust_b_3d_v4i16_zero
-+      {Intrinsic::nvvm_sust_b_3d_v4i32_clamp, 75253}, // __nvvm_sust_b_3d_v4i32_clamp
-+      {Intrinsic::nvvm_sust_b_3d_v4i32_trap, 75282}, // __nvvm_sust_b_3d_v4i32_trap
-+      {Intrinsic::nvvm_sust_b_3d_v4i32_zero, 75310}, // __nvvm_sust_b_3d_v4i32_zero
-+      {Intrinsic::nvvm_sust_b_3d_v4i8_clamp, 75338}, // __nvvm_sust_b_3d_v4i8_clamp
-+      {Intrinsic::nvvm_sust_b_3d_v4i8_trap, 75366}, // __nvvm_sust_b_3d_v4i8_trap
-+      {Intrinsic::nvvm_sust_b_3d_v4i8_zero, 75393}, // __nvvm_sust_b_3d_v4i8_zero
-+      {Intrinsic::nvvm_sust_p_1d_array_i16_trap, 75420}, // __nvvm_sust_p_1d_array_i16_trap
-+      {Intrinsic::nvvm_sust_p_1d_array_i32_trap, 75452}, // __nvvm_sust_p_1d_array_i32_trap
-+      {Intrinsic::nvvm_sust_p_1d_array_i8_trap, 75484}, // __nvvm_sust_p_1d_array_i8_trap
-+      {Intrinsic::nvvm_sust_p_1d_array_v2i16_trap, 75515}, // __nvvm_sust_p_1d_array_v2i16_trap
-+      {Intrinsic::nvvm_sust_p_1d_array_v2i32_trap, 75549}, // __nvvm_sust_p_1d_array_v2i32_trap
-+      {Intrinsic::nvvm_sust_p_1d_array_v2i8_trap, 75583}, // __nvvm_sust_p_1d_array_v2i8_trap
-+      {Intrinsic::nvvm_sust_p_1d_array_v4i16_trap, 75616}, // __nvvm_sust_p_1d_array_v4i16_trap
-+      {Intrinsic::nvvm_sust_p_1d_array_v4i32_trap, 75650}, // __nvvm_sust_p_1d_array_v4i32_trap
-+      {Intrinsic::nvvm_sust_p_1d_array_v4i8_trap, 75684}, // __nvvm_sust_p_1d_array_v4i8_trap
-+      {Intrinsic::nvvm_sust_p_1d_i16_trap, 75717}, // __nvvm_sust_p_1d_i16_trap
-+      {Intrinsic::nvvm_sust_p_1d_i32_trap, 75743}, // __nvvm_sust_p_1d_i32_trap
-+      {Intrinsic::nvvm_sust_p_1d_i8_trap, 75769}, // __nvvm_sust_p_1d_i8_trap
-+      {Intrinsic::nvvm_sust_p_1d_v2i16_trap, 75794}, // __nvvm_sust_p_1d_v2i16_trap
-+      {Intrinsic::nvvm_sust_p_1d_v2i32_trap, 75822}, // __nvvm_sust_p_1d_v2i32_trap
-+      {Intrinsic::nvvm_sust_p_1d_v2i8_trap, 75850}, // __nvvm_sust_p_1d_v2i8_trap
-+      {Intrinsic::nvvm_sust_p_1d_v4i16_trap, 75877}, // __nvvm_sust_p_1d_v4i16_trap
-+      {Intrinsic::nvvm_sust_p_1d_v4i32_trap, 75905}, // __nvvm_sust_p_1d_v4i32_trap
-+      {Intrinsic::nvvm_sust_p_1d_v4i8_trap, 75933}, // __nvvm_sust_p_1d_v4i8_trap
-+      {Intrinsic::nvvm_sust_p_2d_array_i16_trap, 75960}, // __nvvm_sust_p_2d_array_i16_trap
-+      {Intrinsic::nvvm_sust_p_2d_array_i32_trap, 75992}, // __nvvm_sust_p_2d_array_i32_trap
-+      {Intrinsic::nvvm_sust_p_2d_array_i8_trap, 76024}, // __nvvm_sust_p_2d_array_i8_trap
-+      {Intrinsic::nvvm_sust_p_2d_array_v2i16_trap, 76055}, // __nvvm_sust_p_2d_array_v2i16_trap
-+      {Intrinsic::nvvm_sust_p_2d_array_v2i32_trap, 76089}, // __nvvm_sust_p_2d_array_v2i32_trap
-+      {Intrinsic::nvvm_sust_p_2d_array_v2i8_trap, 76123}, // __nvvm_sust_p_2d_array_v2i8_trap
-+      {Intrinsic::nvvm_sust_p_2d_array_v4i16_trap, 76156}, // __nvvm_sust_p_2d_array_v4i16_trap
-+      {Intrinsic::nvvm_sust_p_2d_array_v4i32_trap, 76190}, // __nvvm_sust_p_2d_array_v4i32_trap
-+      {Intrinsic::nvvm_sust_p_2d_array_v4i8_trap, 76224}, // __nvvm_sust_p_2d_array_v4i8_trap
-+      {Intrinsic::nvvm_sust_p_2d_i16_trap, 76257}, // __nvvm_sust_p_2d_i16_trap
-+      {Intrinsic::nvvm_sust_p_2d_i32_trap, 76283}, // __nvvm_sust_p_2d_i32_trap
-+      {Intrinsic::nvvm_sust_p_2d_i8_trap, 76309}, // __nvvm_sust_p_2d_i8_trap
-+      {Intrinsic::nvvm_sust_p_2d_v2i16_trap, 76334}, // __nvvm_sust_p_2d_v2i16_trap
-+      {Intrinsic::nvvm_sust_p_2d_v2i32_trap, 76362}, // __nvvm_sust_p_2d_v2i32_trap
-+      {Intrinsic::nvvm_sust_p_2d_v2i8_trap, 76390}, // __nvvm_sust_p_2d_v2i8_trap
-+      {Intrinsic::nvvm_sust_p_2d_v4i16_trap, 76417}, // __nvvm_sust_p_2d_v4i16_trap
-+      {Intrinsic::nvvm_sust_p_2d_v4i32_trap, 76445}, // __nvvm_sust_p_2d_v4i32_trap
-+      {Intrinsic::nvvm_sust_p_2d_v4i8_trap, 76473}, // __nvvm_sust_p_2d_v4i8_trap
-+      {Intrinsic::nvvm_sust_p_3d_i16_trap, 76500}, // __nvvm_sust_p_3d_i16_trap
-+      {Intrinsic::nvvm_sust_p_3d_i32_trap, 76526}, // __nvvm_sust_p_3d_i32_trap
-+      {Intrinsic::nvvm_sust_p_3d_i8_trap, 76552}, // __nvvm_sust_p_3d_i8_trap
-+      {Intrinsic::nvvm_sust_p_3d_v2i16_trap, 76577}, // __nvvm_sust_p_3d_v2i16_trap
-+      {Intrinsic::nvvm_sust_p_3d_v2i32_trap, 76605}, // __nvvm_sust_p_3d_v2i32_trap
-+      {Intrinsic::nvvm_sust_p_3d_v2i8_trap, 76633}, // __nvvm_sust_p_3d_v2i8_trap
-+      {Intrinsic::nvvm_sust_p_3d_v4i16_trap, 76660}, // __nvvm_sust_p_3d_v4i16_trap
-+      {Intrinsic::nvvm_sust_p_3d_v4i32_trap, 76688}, // __nvvm_sust_p_3d_v4i32_trap
-+      {Intrinsic::nvvm_sust_p_3d_v4i8_trap, 76716}, // __nvvm_sust_p_3d_v4i8_trap
-+      {Intrinsic::nvvm_swap_lo_hi_b64, 76743}, // __nvvm_swap_lo_hi_b64
-+      {Intrinsic::nvvm_trunc_d, 76765}, // __nvvm_trunc_d
-+      {Intrinsic::nvvm_trunc_f, 76780}, // __nvvm_trunc_f
-+      {Intrinsic::nvvm_trunc_ftz_f, 76795}, // __nvvm_trunc_ftz_f
-+      {Intrinsic::nvvm_txq_array_size, 76814}, // __nvvm_txq_array_size
-+      {Intrinsic::nvvm_txq_channel_data_type, 76836}, // __nvvm_txq_channel_data_type
-+      {Intrinsic::nvvm_txq_channel_order, 76865}, // __nvvm_txq_channel_order
-+      {Intrinsic::nvvm_txq_depth, 76890}, // __nvvm_txq_depth
-+      {Intrinsic::nvvm_txq_height, 76907}, // __nvvm_txq_height
-+      {Intrinsic::nvvm_txq_num_mipmap_levels, 76925}, // __nvvm_txq_num_mipmap_levels
-+      {Intrinsic::nvvm_txq_num_samples, 76954}, // __nvvm_txq_num_samples
-+      {Intrinsic::nvvm_txq_width, 76977}, // __nvvm_txq_width
-+      {Intrinsic::nvvm_ui2d_rm, 76994}, // __nvvm_ui2d_rm
-+      {Intrinsic::nvvm_ui2d_rn, 77009}, // __nvvm_ui2d_rn
-+      {Intrinsic::nvvm_ui2d_rp, 77024}, // __nvvm_ui2d_rp
-+      {Intrinsic::nvvm_ui2d_rz, 77039}, // __nvvm_ui2d_rz
-+      {Intrinsic::nvvm_ui2f_rm, 77054}, // __nvvm_ui2f_rm
-+      {Intrinsic::nvvm_ui2f_rn, 77069}, // __nvvm_ui2f_rn
-+      {Intrinsic::nvvm_ui2f_rp, 77084}, // __nvvm_ui2f_rp
-+      {Intrinsic::nvvm_ui2f_rz, 77099}, // __nvvm_ui2f_rz
-+      {Intrinsic::nvvm_ull2d_rm, 77114}, // __nvvm_ull2d_rm
-+      {Intrinsic::nvvm_ull2d_rn, 77130}, // __nvvm_ull2d_rn
-+      {Intrinsic::nvvm_ull2d_rp, 77146}, // __nvvm_ull2d_rp
-+      {Intrinsic::nvvm_ull2d_rz, 77162}, // __nvvm_ull2d_rz
-+      {Intrinsic::nvvm_ull2f_rm, 77178}, // __nvvm_ull2f_rm
-+      {Intrinsic::nvvm_ull2f_rn, 77194}, // __nvvm_ull2f_rn
-+      {Intrinsic::nvvm_ull2f_rp, 77210}, // __nvvm_ull2f_rp
-+      {Intrinsic::nvvm_ull2f_rz, 77226}, // __nvvm_ull2f_rz
-+      {Intrinsic::nvvm_barrier0, 64522}, // __syncthreads
-+    };
-+    auto I = std::lower_bound(std::begin(nvvmNames),
-+                              std::end(nvvmNames),
-+                              BuiltinNameStr);
-+    if (I != std::end(nvvmNames) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  if (TargetPrefix == "ppc") {
-+    static const BuiltinEntry ppcNames[] = {
-+      {Intrinsic::ppc_altivec_crypto_vcipher, 77242}, // __builtin_altivec_crypto_vcipher
-+      {Intrinsic::ppc_altivec_crypto_vcipherlast, 77275}, // __builtin_altivec_crypto_vcipherlast
-+      {Intrinsic::ppc_altivec_crypto_vncipher, 77312}, // __builtin_altivec_crypto_vncipher
-+      {Intrinsic::ppc_altivec_crypto_vncipherlast, 77346}, // __builtin_altivec_crypto_vncipherlast
-+      {Intrinsic::ppc_altivec_crypto_vpermxor, 77384}, // __builtin_altivec_crypto_vpermxor
-+      {Intrinsic::ppc_altivec_crypto_vpmsumb, 77418}, // __builtin_altivec_crypto_vpmsumb
-+      {Intrinsic::ppc_altivec_crypto_vpmsumd, 77451}, // __builtin_altivec_crypto_vpmsumd
-+      {Intrinsic::ppc_altivec_crypto_vpmsumh, 77484}, // __builtin_altivec_crypto_vpmsumh
-+      {Intrinsic::ppc_altivec_crypto_vpmsumw, 77517}, // __builtin_altivec_crypto_vpmsumw
-+      {Intrinsic::ppc_altivec_crypto_vsbox, 77550}, // __builtin_altivec_crypto_vsbox
-+      {Intrinsic::ppc_altivec_crypto_vshasigmad, 77581}, // __builtin_altivec_crypto_vshasigmad
-+      {Intrinsic::ppc_altivec_crypto_vshasigmaw, 77617}, // __builtin_altivec_crypto_vshasigmaw
-+      {Intrinsic::ppc_altivec_dss, 77653}, // __builtin_altivec_dss
-+      {Intrinsic::ppc_altivec_dssall, 77675}, // __builtin_altivec_dssall
-+      {Intrinsic::ppc_altivec_dst, 77700}, // __builtin_altivec_dst
-+      {Intrinsic::ppc_altivec_dstst, 77722}, // __builtin_altivec_dstst
-+      {Intrinsic::ppc_altivec_dststt, 77746}, // __builtin_altivec_dststt
-+      {Intrinsic::ppc_altivec_dstt, 77771}, // __builtin_altivec_dstt
-+      {Intrinsic::ppc_altivec_mfvscr, 77794}, // __builtin_altivec_mfvscr
-+      {Intrinsic::ppc_altivec_mtvscr, 77819}, // __builtin_altivec_mtvscr
-+      {Intrinsic::ppc_altivec_vabsdub, 77844}, // __builtin_altivec_vabsdub
-+      {Intrinsic::ppc_altivec_vabsduh, 77870}, // __builtin_altivec_vabsduh
-+      {Intrinsic::ppc_altivec_vabsduw, 77896}, // __builtin_altivec_vabsduw
-+      {Intrinsic::ppc_altivec_vaddcuq, 77922}, // __builtin_altivec_vaddcuq
-+      {Intrinsic::ppc_altivec_vaddcuw, 77948}, // __builtin_altivec_vaddcuw
-+      {Intrinsic::ppc_altivec_vaddecuq, 77974}, // __builtin_altivec_vaddecuq
-+      {Intrinsic::ppc_altivec_vaddeuqm, 78001}, // __builtin_altivec_vaddeuqm
-+      {Intrinsic::ppc_altivec_vaddsbs, 78028}, // __builtin_altivec_vaddsbs
-+      {Intrinsic::ppc_altivec_vaddshs, 78054}, // __builtin_altivec_vaddshs
-+      {Intrinsic::ppc_altivec_vaddsws, 78080}, // __builtin_altivec_vaddsws
-+      {Intrinsic::ppc_altivec_vaddubs, 78106}, // __builtin_altivec_vaddubs
-+      {Intrinsic::ppc_altivec_vadduhs, 78132}, // __builtin_altivec_vadduhs
-+      {Intrinsic::ppc_altivec_vadduws, 78158}, // __builtin_altivec_vadduws
-+      {Intrinsic::ppc_altivec_vavgsb, 78184}, // __builtin_altivec_vavgsb
-+      {Intrinsic::ppc_altivec_vavgsh, 78209}, // __builtin_altivec_vavgsh
-+      {Intrinsic::ppc_altivec_vavgsw, 78234}, // __builtin_altivec_vavgsw
-+      {Intrinsic::ppc_altivec_vavgub, 78259}, // __builtin_altivec_vavgub
-+      {Intrinsic::ppc_altivec_vavguh, 78284}, // __builtin_altivec_vavguh
-+      {Intrinsic::ppc_altivec_vavguw, 78309}, // __builtin_altivec_vavguw
-+      {Intrinsic::ppc_altivec_vbpermq, 78334}, // __builtin_altivec_vbpermq
-+      {Intrinsic::ppc_altivec_vcfsx, 78360}, // __builtin_altivec_vcfsx
-+      {Intrinsic::ppc_altivec_vcfux, 78384}, // __builtin_altivec_vcfux
-+      {Intrinsic::ppc_altivec_vclzlsbb, 78408}, // __builtin_altivec_vclzlsbb
-+      {Intrinsic::ppc_altivec_vcmpbfp, 78435}, // __builtin_altivec_vcmpbfp
-+      {Intrinsic::ppc_altivec_vcmpbfp_p, 78461}, // __builtin_altivec_vcmpbfp_p
-+      {Intrinsic::ppc_altivec_vcmpeqfp, 78489}, // __builtin_altivec_vcmpeqfp
-+      {Intrinsic::ppc_altivec_vcmpeqfp_p, 78516}, // __builtin_altivec_vcmpeqfp_p
-+      {Intrinsic::ppc_altivec_vcmpequb, 78545}, // __builtin_altivec_vcmpequb
-+      {Intrinsic::ppc_altivec_vcmpequb_p, 78572}, // __builtin_altivec_vcmpequb_p
-+      {Intrinsic::ppc_altivec_vcmpequd, 78601}, // __builtin_altivec_vcmpequd
-+      {Intrinsic::ppc_altivec_vcmpequd_p, 78628}, // __builtin_altivec_vcmpequd_p
-+      {Intrinsic::ppc_altivec_vcmpequh, 78657}, // __builtin_altivec_vcmpequh
-+      {Intrinsic::ppc_altivec_vcmpequh_p, 78684}, // __builtin_altivec_vcmpequh_p
-+      {Intrinsic::ppc_altivec_vcmpequw, 78713}, // __builtin_altivec_vcmpequw
-+      {Intrinsic::ppc_altivec_vcmpequw_p, 78740}, // __builtin_altivec_vcmpequw_p
-+      {Intrinsic::ppc_altivec_vcmpgefp, 78769}, // __builtin_altivec_vcmpgefp
-+      {Intrinsic::ppc_altivec_vcmpgefp_p, 78796}, // __builtin_altivec_vcmpgefp_p
-+      {Intrinsic::ppc_altivec_vcmpgtfp, 78825}, // __builtin_altivec_vcmpgtfp
-+      {Intrinsic::ppc_altivec_vcmpgtfp_p, 78852}, // __builtin_altivec_vcmpgtfp_p
-+      {Intrinsic::ppc_altivec_vcmpgtsb, 78881}, // __builtin_altivec_vcmpgtsb
-+      {Intrinsic::ppc_altivec_vcmpgtsb_p, 78908}, // __builtin_altivec_vcmpgtsb_p
-+      {Intrinsic::ppc_altivec_vcmpgtsd, 78937}, // __builtin_altivec_vcmpgtsd
-+      {Intrinsic::ppc_altivec_vcmpgtsd_p, 78964}, // __builtin_altivec_vcmpgtsd_p
-+      {Intrinsic::ppc_altivec_vcmpgtsh, 78993}, // __builtin_altivec_vcmpgtsh
-+      {Intrinsic::ppc_altivec_vcmpgtsh_p, 79020}, // __builtin_altivec_vcmpgtsh_p
-+      {Intrinsic::ppc_altivec_vcmpgtsw, 79049}, // __builtin_altivec_vcmpgtsw
-+      {Intrinsic::ppc_altivec_vcmpgtsw_p, 79076}, // __builtin_altivec_vcmpgtsw_p
-+      {Intrinsic::ppc_altivec_vcmpgtub, 79105}, // __builtin_altivec_vcmpgtub
-+      {Intrinsic::ppc_altivec_vcmpgtub_p, 79132}, // __builtin_altivec_vcmpgtub_p
-+      {Intrinsic::ppc_altivec_vcmpgtud, 79161}, // __builtin_altivec_vcmpgtud
-+      {Intrinsic::ppc_altivec_vcmpgtud_p, 79188}, // __builtin_altivec_vcmpgtud_p
-+      {Intrinsic::ppc_altivec_vcmpgtuh, 79217}, // __builtin_altivec_vcmpgtuh
-+      {Intrinsic::ppc_altivec_vcmpgtuh_p, 79244}, // __builtin_altivec_vcmpgtuh_p
-+      {Intrinsic::ppc_altivec_vcmpgtuw, 79273}, // __builtin_altivec_vcmpgtuw
-+      {Intrinsic::ppc_altivec_vcmpgtuw_p, 79300}, // __builtin_altivec_vcmpgtuw_p
-+      {Intrinsic::ppc_altivec_vcmpneb, 79329}, // __builtin_altivec_vcmpneb
-+      {Intrinsic::ppc_altivec_vcmpneb_p, 79355}, // __builtin_altivec_vcmpneb_p
-+      {Intrinsic::ppc_altivec_vcmpneh, 79383}, // __builtin_altivec_vcmpneh
-+      {Intrinsic::ppc_altivec_vcmpneh_p, 79409}, // __builtin_altivec_vcmpneh_p
-+      {Intrinsic::ppc_altivec_vcmpnew, 79437}, // __builtin_altivec_vcmpnew
-+      {Intrinsic::ppc_altivec_vcmpnew_p, 79463}, // __builtin_altivec_vcmpnew_p
-+      {Intrinsic::ppc_altivec_vcmpnezb, 79491}, // __builtin_altivec_vcmpnezb
-+      {Intrinsic::ppc_altivec_vcmpnezb_p, 79518}, // __builtin_altivec_vcmpnezb_p
-+      {Intrinsic::ppc_altivec_vcmpnezh, 79547}, // __builtin_altivec_vcmpnezh
-+      {Intrinsic::ppc_altivec_vcmpnezh_p, 79574}, // __builtin_altivec_vcmpnezh_p
-+      {Intrinsic::ppc_altivec_vcmpnezw, 79603}, // __builtin_altivec_vcmpnezw
-+      {Intrinsic::ppc_altivec_vcmpnezw_p, 79630}, // __builtin_altivec_vcmpnezw_p
-+      {Intrinsic::ppc_altivec_vctsxs, 79659}, // __builtin_altivec_vctsxs
-+      {Intrinsic::ppc_altivec_vctuxs, 79684}, // __builtin_altivec_vctuxs
-+      {Intrinsic::ppc_altivec_vctzlsbb, 79709}, // __builtin_altivec_vctzlsbb
-+      {Intrinsic::ppc_altivec_vexptefp, 79736}, // __builtin_altivec_vexptefp
-+      {Intrinsic::ppc_altivec_vgbbd, 79763}, // __builtin_altivec_vgbbd
-+      {Intrinsic::ppc_altivec_vlogefp, 79787}, // __builtin_altivec_vlogefp
-+      {Intrinsic::ppc_altivec_vmaddfp, 79813}, // __builtin_altivec_vmaddfp
-+      {Intrinsic::ppc_altivec_vmaxfp, 79839}, // __builtin_altivec_vmaxfp
-+      {Intrinsic::ppc_altivec_vmaxsb, 79864}, // __builtin_altivec_vmaxsb
-+      {Intrinsic::ppc_altivec_vmaxsd, 79889}, // __builtin_altivec_vmaxsd
-+      {Intrinsic::ppc_altivec_vmaxsh, 79914}, // __builtin_altivec_vmaxsh
-+      {Intrinsic::ppc_altivec_vmaxsw, 79939}, // __builtin_altivec_vmaxsw
-+      {Intrinsic::ppc_altivec_vmaxub, 79964}, // __builtin_altivec_vmaxub
-+      {Intrinsic::ppc_altivec_vmaxud, 79989}, // __builtin_altivec_vmaxud
-+      {Intrinsic::ppc_altivec_vmaxuh, 80014}, // __builtin_altivec_vmaxuh
-+      {Intrinsic::ppc_altivec_vmaxuw, 80039}, // __builtin_altivec_vmaxuw
-+      {Intrinsic::ppc_altivec_vmhaddshs, 80064}, // __builtin_altivec_vmhaddshs
-+      {Intrinsic::ppc_altivec_vmhraddshs, 80092}, // __builtin_altivec_vmhraddshs
-+      {Intrinsic::ppc_altivec_vminfp, 80121}, // __builtin_altivec_vminfp
-+      {Intrinsic::ppc_altivec_vminsb, 80146}, // __builtin_altivec_vminsb
-+      {Intrinsic::ppc_altivec_vminsd, 80171}, // __builtin_altivec_vminsd
-+      {Intrinsic::ppc_altivec_vminsh, 80196}, // __builtin_altivec_vminsh
-+      {Intrinsic::ppc_altivec_vminsw, 80221}, // __builtin_altivec_vminsw
-+      {Intrinsic::ppc_altivec_vminub, 80246}, // __builtin_altivec_vminub
-+      {Intrinsic::ppc_altivec_vminud, 80271}, // __builtin_altivec_vminud
-+      {Intrinsic::ppc_altivec_vminuh, 80296}, // __builtin_altivec_vminuh
-+      {Intrinsic::ppc_altivec_vminuw, 80321}, // __builtin_altivec_vminuw
-+      {Intrinsic::ppc_altivec_vmladduhm, 80346}, // __builtin_altivec_vmladduhm
-+      {Intrinsic::ppc_altivec_vmsummbm, 80374}, // __builtin_altivec_vmsummbm
-+      {Intrinsic::ppc_altivec_vmsumshm, 80401}, // __builtin_altivec_vmsumshm
-+      {Intrinsic::ppc_altivec_vmsumshs, 80428}, // __builtin_altivec_vmsumshs
-+      {Intrinsic::ppc_altivec_vmsumubm, 80455}, // __builtin_altivec_vmsumubm
-+      {Intrinsic::ppc_altivec_vmsumuhm, 80482}, // __builtin_altivec_vmsumuhm
-+      {Intrinsic::ppc_altivec_vmsumuhs, 80509}, // __builtin_altivec_vmsumuhs
-+      {Intrinsic::ppc_altivec_vmulesb, 80536}, // __builtin_altivec_vmulesb
-+      {Intrinsic::ppc_altivec_vmulesh, 80562}, // __builtin_altivec_vmulesh
-+      {Intrinsic::ppc_altivec_vmulesw, 80588}, // __builtin_altivec_vmulesw
-+      {Intrinsic::ppc_altivec_vmuleub, 80614}, // __builtin_altivec_vmuleub
-+      {Intrinsic::ppc_altivec_vmuleuh, 80640}, // __builtin_altivec_vmuleuh
-+      {Intrinsic::ppc_altivec_vmuleuw, 80666}, // __builtin_altivec_vmuleuw
-+      {Intrinsic::ppc_altivec_vmulosb, 80692}, // __builtin_altivec_vmulosb
-+      {Intrinsic::ppc_altivec_vmulosh, 80718}, // __builtin_altivec_vmulosh
-+      {Intrinsic::ppc_altivec_vmulosw, 80744}, // __builtin_altivec_vmulosw
-+      {Intrinsic::ppc_altivec_vmuloub, 80770}, // __builtin_altivec_vmuloub
-+      {Intrinsic::ppc_altivec_vmulouh, 80796}, // __builtin_altivec_vmulouh
-+      {Intrinsic::ppc_altivec_vmulouw, 80822}, // __builtin_altivec_vmulouw
-+      {Intrinsic::ppc_altivec_vnmsubfp, 80848}, // __builtin_altivec_vnmsubfp
-+      {Intrinsic::ppc_altivec_vperm, 80875}, // __builtin_altivec_vperm_4si
-+      {Intrinsic::ppc_altivec_vpkpx, 80903}, // __builtin_altivec_vpkpx
-+      {Intrinsic::ppc_altivec_vpksdss, 80927}, // __builtin_altivec_vpksdss
-+      {Intrinsic::ppc_altivec_vpksdus, 80953}, // __builtin_altivec_vpksdus
-+      {Intrinsic::ppc_altivec_vpkshss, 80979}, // __builtin_altivec_vpkshss
-+      {Intrinsic::ppc_altivec_vpkshus, 81005}, // __builtin_altivec_vpkshus
-+      {Intrinsic::ppc_altivec_vpkswss, 81031}, // __builtin_altivec_vpkswss
-+      {Intrinsic::ppc_altivec_vpkswus, 81057}, // __builtin_altivec_vpkswus
-+      {Intrinsic::ppc_altivec_vpkudus, 81083}, // __builtin_altivec_vpkudus
-+      {Intrinsic::ppc_altivec_vpkuhus, 81109}, // __builtin_altivec_vpkuhus
-+      {Intrinsic::ppc_altivec_vpkuwus, 81135}, // __builtin_altivec_vpkuwus
-+      {Intrinsic::ppc_altivec_vprtybd, 81161}, // __builtin_altivec_vprtybd
-+      {Intrinsic::ppc_altivec_vprtybq, 81187}, // __builtin_altivec_vprtybq
-+      {Intrinsic::ppc_altivec_vprtybw, 81213}, // __builtin_altivec_vprtybw
-+      {Intrinsic::ppc_altivec_vrefp, 81239}, // __builtin_altivec_vrefp
-+      {Intrinsic::ppc_altivec_vrfim, 81263}, // __builtin_altivec_vrfim
-+      {Intrinsic::ppc_altivec_vrfin, 81287}, // __builtin_altivec_vrfin
-+      {Intrinsic::ppc_altivec_vrfip, 81311}, // __builtin_altivec_vrfip
-+      {Intrinsic::ppc_altivec_vrfiz, 81335}, // __builtin_altivec_vrfiz
-+      {Intrinsic::ppc_altivec_vrlb, 81359}, // __builtin_altivec_vrlb
-+      {Intrinsic::ppc_altivec_vrld, 81382}, // __builtin_altivec_vrld
-+      {Intrinsic::ppc_altivec_vrldmi, 81405}, // __builtin_altivec_vrldmi
-+      {Intrinsic::ppc_altivec_vrldnm, 81430}, // __builtin_altivec_vrldnm
-+      {Intrinsic::ppc_altivec_vrlh, 81455}, // __builtin_altivec_vrlh
-+      {Intrinsic::ppc_altivec_vrlw, 81478}, // __builtin_altivec_vrlw
-+      {Intrinsic::ppc_altivec_vrlwmi, 81501}, // __builtin_altivec_vrlwmi
-+      {Intrinsic::ppc_altivec_vrlwnm, 81526}, // __builtin_altivec_vrlwnm
-+      {Intrinsic::ppc_altivec_vrsqrtefp, 81551}, // __builtin_altivec_vrsqrtefp
-+      {Intrinsic::ppc_altivec_vsel, 81579}, // __builtin_altivec_vsel_4si
-+      {Intrinsic::ppc_altivec_vsl, 81606}, // __builtin_altivec_vsl
-+      {Intrinsic::ppc_altivec_vslb, 81628}, // __builtin_altivec_vslb
-+      {Intrinsic::ppc_altivec_vslh, 81651}, // __builtin_altivec_vslh
-+      {Intrinsic::ppc_altivec_vslo, 81674}, // __builtin_altivec_vslo
-+      {Intrinsic::ppc_altivec_vslv, 81697}, // __builtin_altivec_vslv
-+      {Intrinsic::ppc_altivec_vslw, 81720}, // __builtin_altivec_vslw
-+      {Intrinsic::ppc_altivec_vsr, 81743}, // __builtin_altivec_vsr
-+      {Intrinsic::ppc_altivec_vsrab, 81765}, // __builtin_altivec_vsrab
-+      {Intrinsic::ppc_altivec_vsrah, 81789}, // __builtin_altivec_vsrah
-+      {Intrinsic::ppc_altivec_vsraw, 81813}, // __builtin_altivec_vsraw
-+      {Intrinsic::ppc_altivec_vsrb, 81837}, // __builtin_altivec_vsrb
-+      {Intrinsic::ppc_altivec_vsrh, 81860}, // __builtin_altivec_vsrh
-+      {Intrinsic::ppc_altivec_vsro, 81883}, // __builtin_altivec_vsro
-+      {Intrinsic::ppc_altivec_vsrv, 81906}, // __builtin_altivec_vsrv
-+      {Intrinsic::ppc_altivec_vsrw, 81929}, // __builtin_altivec_vsrw
-+      {Intrinsic::ppc_altivec_vsubcuq, 81952}, // __builtin_altivec_vsubcuq
-+      {Intrinsic::ppc_altivec_vsubcuw, 81978}, // __builtin_altivec_vsubcuw
-+      {Intrinsic::ppc_altivec_vsubecuq, 82004}, // __builtin_altivec_vsubecuq
-+      {Intrinsic::ppc_altivec_vsubeuqm, 82031}, // __builtin_altivec_vsubeuqm
-+      {Intrinsic::ppc_altivec_vsubsbs, 82058}, // __builtin_altivec_vsubsbs
-+      {Intrinsic::ppc_altivec_vsubshs, 82084}, // __builtin_altivec_vsubshs
-+      {Intrinsic::ppc_altivec_vsubsws, 82110}, // __builtin_altivec_vsubsws
-+      {Intrinsic::ppc_altivec_vsububs, 82136}, // __builtin_altivec_vsububs
-+      {Intrinsic::ppc_altivec_vsubuhs, 82162}, // __builtin_altivec_vsubuhs
-+      {Intrinsic::ppc_altivec_vsubuws, 82188}, // __builtin_altivec_vsubuws
-+      {Intrinsic::ppc_altivec_vsum2sws, 82214}, // __builtin_altivec_vsum2sws
-+      {Intrinsic::ppc_altivec_vsum4sbs, 82241}, // __builtin_altivec_vsum4sbs
-+      {Intrinsic::ppc_altivec_vsum4shs, 82268}, // __builtin_altivec_vsum4shs
-+      {Intrinsic::ppc_altivec_vsum4ubs, 82295}, // __builtin_altivec_vsum4ubs
-+      {Intrinsic::ppc_altivec_vsumsws, 82322}, // __builtin_altivec_vsumsws
-+      {Intrinsic::ppc_altivec_vupkhpx, 82348}, // __builtin_altivec_vupkhpx
-+      {Intrinsic::ppc_altivec_vupkhsb, 82374}, // __builtin_altivec_vupkhsb
-+      {Intrinsic::ppc_altivec_vupkhsh, 82400}, // __builtin_altivec_vupkhsh
-+      {Intrinsic::ppc_altivec_vupkhsw, 82426}, // __builtin_altivec_vupkhsw
-+      {Intrinsic::ppc_altivec_vupklpx, 82452}, // __builtin_altivec_vupklpx
-+      {Intrinsic::ppc_altivec_vupklsb, 82478}, // __builtin_altivec_vupklsb
-+      {Intrinsic::ppc_altivec_vupklsh, 82504}, // __builtin_altivec_vupklsh
-+      {Intrinsic::ppc_altivec_vupklsw, 82530}, // __builtin_altivec_vupklsw
-+      {Intrinsic::ppc_bpermd, 82556}, // __builtin_bpermd
-+      {Intrinsic::ppc_divde, 82573}, // __builtin_divde
-+      {Intrinsic::ppc_divdeu, 82589}, // __builtin_divdeu
-+      {Intrinsic::ppc_divwe, 82606}, // __builtin_divwe
-+      {Intrinsic::ppc_divweu, 82622}, // __builtin_divweu
-+      {Intrinsic::ppc_get_texasr, 82639}, // __builtin_get_texasr
-+      {Intrinsic::ppc_get_texasru, 82660}, // __builtin_get_texasru
-+      {Intrinsic::ppc_get_tfhar, 82682}, // __builtin_get_tfhar
-+      {Intrinsic::ppc_get_tfiar, 82702}, // __builtin_get_tfiar
-+      {Intrinsic::ppc_qpx_qvfabs, 82722}, // __builtin_qpx_qvfabs
-+      {Intrinsic::ppc_qpx_qvfadd, 82743}, // __builtin_qpx_qvfadd
-+      {Intrinsic::ppc_qpx_qvfadds, 82764}, // __builtin_qpx_qvfadds
-+      {Intrinsic::ppc_qpx_qvfcfid, 82786}, // __builtin_qpx_qvfcfid
-+      {Intrinsic::ppc_qpx_qvfcfids, 82808}, // __builtin_qpx_qvfcfids
-+      {Intrinsic::ppc_qpx_qvfcfidu, 82831}, // __builtin_qpx_qvfcfidu
-+      {Intrinsic::ppc_qpx_qvfcfidus, 82854}, // __builtin_qpx_qvfcfidus
-+      {Intrinsic::ppc_qpx_qvfcmpeq, 82878}, // __builtin_qpx_qvfcmpeq
-+      {Intrinsic::ppc_qpx_qvfcmpgt, 82901}, // __builtin_qpx_qvfcmpgt
-+      {Intrinsic::ppc_qpx_qvfcmplt, 82924}, // __builtin_qpx_qvfcmplt
-+      {Intrinsic::ppc_qpx_qvfcpsgn, 82947}, // __builtin_qpx_qvfcpsgn
-+      {Intrinsic::ppc_qpx_qvfctid, 82970}, // __builtin_qpx_qvfctid
-+      {Intrinsic::ppc_qpx_qvfctidu, 82992}, // __builtin_qpx_qvfctidu
-+      {Intrinsic::ppc_qpx_qvfctiduz, 83015}, // __builtin_qpx_qvfctiduz
-+      {Intrinsic::ppc_qpx_qvfctidz, 83039}, // __builtin_qpx_qvfctidz
-+      {Intrinsic::ppc_qpx_qvfctiw, 83062}, // __builtin_qpx_qvfctiw
-+      {Intrinsic::ppc_qpx_qvfctiwu, 83084}, // __builtin_qpx_qvfctiwu
-+      {Intrinsic::ppc_qpx_qvfctiwuz, 83107}, // __builtin_qpx_qvfctiwuz
-+      {Intrinsic::ppc_qpx_qvfctiwz, 83131}, // __builtin_qpx_qvfctiwz
-+      {Intrinsic::ppc_qpx_qvflogical, 83154}, // __builtin_qpx_qvflogical
-+      {Intrinsic::ppc_qpx_qvfmadd, 83179}, // __builtin_qpx_qvfmadd
-+      {Intrinsic::ppc_qpx_qvfmadds, 83201}, // __builtin_qpx_qvfmadds
-+      {Intrinsic::ppc_qpx_qvfmsub, 83224}, // __builtin_qpx_qvfmsub
-+      {Intrinsic::ppc_qpx_qvfmsubs, 83246}, // __builtin_qpx_qvfmsubs
-+      {Intrinsic::ppc_qpx_qvfmul, 83269}, // __builtin_qpx_qvfmul
-+      {Intrinsic::ppc_qpx_qvfmuls, 83290}, // __builtin_qpx_qvfmuls
-+      {Intrinsic::ppc_qpx_qvfnabs, 83312}, // __builtin_qpx_qvfnabs
-+      {Intrinsic::ppc_qpx_qvfneg, 83334}, // __builtin_qpx_qvfneg
-+      {Intrinsic::ppc_qpx_qvfnmadd, 83355}, // __builtin_qpx_qvfnmadd
-+      {Intrinsic::ppc_qpx_qvfnmadds, 83378}, // __builtin_qpx_qvfnmadds
-+      {Intrinsic::ppc_qpx_qvfnmsub, 83402}, // __builtin_qpx_qvfnmsub
-+      {Intrinsic::ppc_qpx_qvfnmsubs, 83425}, // __builtin_qpx_qvfnmsubs
-+      {Intrinsic::ppc_qpx_qvfperm, 83449}, // __builtin_qpx_qvfperm
-+      {Intrinsic::ppc_qpx_qvfre, 83471}, // __builtin_qpx_qvfre
-+      {Intrinsic::ppc_qpx_qvfres, 83491}, // __builtin_qpx_qvfres
-+      {Intrinsic::ppc_qpx_qvfrim, 83512}, // __builtin_qpx_qvfrim
-+      {Intrinsic::ppc_qpx_qvfrin, 83533}, // __builtin_qpx_qvfrin
-+      {Intrinsic::ppc_qpx_qvfrip, 83554}, // __builtin_qpx_qvfrip
-+      {Intrinsic::ppc_qpx_qvfriz, 83575}, // __builtin_qpx_qvfriz
-+      {Intrinsic::ppc_qpx_qvfrsp, 83596}, // __builtin_qpx_qvfrsp
-+      {Intrinsic::ppc_qpx_qvfrsqrte, 83617}, // __builtin_qpx_qvfrsqrte
-+      {Intrinsic::ppc_qpx_qvfrsqrtes, 83641}, // __builtin_qpx_qvfrsqrtes
-+      {Intrinsic::ppc_qpx_qvfsel, 83666}, // __builtin_qpx_qvfsel
-+      {Intrinsic::ppc_qpx_qvfsub, 83687}, // __builtin_qpx_qvfsub
-+      {Intrinsic::ppc_qpx_qvfsubs, 83708}, // __builtin_qpx_qvfsubs
-+      {Intrinsic::ppc_qpx_qvftstnan, 83730}, // __builtin_qpx_qvftstnan
-+      {Intrinsic::ppc_qpx_qvfxmadd, 83754}, // __builtin_qpx_qvfxmadd
-+      {Intrinsic::ppc_qpx_qvfxmadds, 83777}, // __builtin_qpx_qvfxmadds
-+      {Intrinsic::ppc_qpx_qvfxmul, 83801}, // __builtin_qpx_qvfxmul
-+      {Intrinsic::ppc_qpx_qvfxmuls, 83823}, // __builtin_qpx_qvfxmuls
-+      {Intrinsic::ppc_qpx_qvfxxcpnmadd, 83846}, // __builtin_qpx_qvfxxcpnmadd
-+      {Intrinsic::ppc_qpx_qvfxxcpnmadds, 83873}, // __builtin_qpx_qvfxxcpnmadds
-+      {Intrinsic::ppc_qpx_qvfxxmadd, 83901}, // __builtin_qpx_qvfxxmadd
-+      {Intrinsic::ppc_qpx_qvfxxmadds, 83925}, // __builtin_qpx_qvfxxmadds
-+      {Intrinsic::ppc_qpx_qvfxxnpmadd, 83950}, // __builtin_qpx_qvfxxnpmadd
-+      {Intrinsic::ppc_qpx_qvfxxnpmadds, 83976}, // __builtin_qpx_qvfxxnpmadds
-+      {Intrinsic::ppc_qpx_qvgpci, 84003}, // __builtin_qpx_qvgpci
-+      {Intrinsic::ppc_qpx_qvlfcd, 84024}, // __builtin_qpx_qvlfcd
-+      {Intrinsic::ppc_qpx_qvlfcda, 84045}, // __builtin_qpx_qvlfcda
-+      {Intrinsic::ppc_qpx_qvlfcs, 84067}, // __builtin_qpx_qvlfcs
-+      {Intrinsic::ppc_qpx_qvlfcsa, 84088}, // __builtin_qpx_qvlfcsa
-+      {Intrinsic::ppc_qpx_qvlfd, 84110}, // __builtin_qpx_qvlfd
-+      {Intrinsic::ppc_qpx_qvlfda, 84130}, // __builtin_qpx_qvlfda
-+      {Intrinsic::ppc_qpx_qvlfiwa, 84151}, // __builtin_qpx_qvlfiwa
-+      {Intrinsic::ppc_qpx_qvlfiwaa, 84173}, // __builtin_qpx_qvlfiwaa
-+      {Intrinsic::ppc_qpx_qvlfiwz, 84196}, // __builtin_qpx_qvlfiwz
-+      {Intrinsic::ppc_qpx_qvlfiwza, 84218}, // __builtin_qpx_qvlfiwza
-+      {Intrinsic::ppc_qpx_qvlfs, 84241}, // __builtin_qpx_qvlfs
-+      {Intrinsic::ppc_qpx_qvlfsa, 84261}, // __builtin_qpx_qvlfsa
-+      {Intrinsic::ppc_qpx_qvlpcld, 84282}, // __builtin_qpx_qvlpcld
-+      {Intrinsic::ppc_qpx_qvlpcls, 84304}, // __builtin_qpx_qvlpcls
-+      {Intrinsic::ppc_qpx_qvlpcrd, 84326}, // __builtin_qpx_qvlpcrd
-+      {Intrinsic::ppc_qpx_qvlpcrs, 84348}, // __builtin_qpx_qvlpcrs
-+      {Intrinsic::ppc_qpx_qvstfcd, 84370}, // __builtin_qpx_qvstfcd
-+      {Intrinsic::ppc_qpx_qvstfcda, 84392}, // __builtin_qpx_qvstfcda
-+      {Intrinsic::ppc_qpx_qvstfcs, 84415}, // __builtin_qpx_qvstfcs
-+      {Intrinsic::ppc_qpx_qvstfcsa, 84437}, // __builtin_qpx_qvstfcsa
-+      {Intrinsic::ppc_qpx_qvstfd, 84460}, // __builtin_qpx_qvstfd
-+      {Intrinsic::ppc_qpx_qvstfda, 84481}, // __builtin_qpx_qvstfda
-+      {Intrinsic::ppc_qpx_qvstfiw, 84503}, // __builtin_qpx_qvstfiw
-+      {Intrinsic::ppc_qpx_qvstfiwa, 84525}, // __builtin_qpx_qvstfiwa
-+      {Intrinsic::ppc_qpx_qvstfs, 84548}, // __builtin_qpx_qvstfs
-+      {Intrinsic::ppc_qpx_qvstfsa, 84569}, // __builtin_qpx_qvstfsa
-+      {Intrinsic::ppc_set_texasr, 84591}, // __builtin_set_texasr
-+      {Intrinsic::ppc_set_texasru, 84612}, // __builtin_set_texasru
-+      {Intrinsic::ppc_set_tfhar, 84634}, // __builtin_set_tfhar
-+      {Intrinsic::ppc_set_tfiar, 84654}, // __builtin_set_tfiar
-+      {Intrinsic::ppc_tabort, 84674}, // __builtin_tabort
-+      {Intrinsic::ppc_tabortdc, 84691}, // __builtin_tabortdc
-+      {Intrinsic::ppc_tabortdci, 84710}, // __builtin_tabortdci
-+      {Intrinsic::ppc_tabortwc, 84730}, // __builtin_tabortwc
-+      {Intrinsic::ppc_tabortwci, 84749}, // __builtin_tabortwci
-+      {Intrinsic::ppc_tbegin, 84769}, // __builtin_tbegin
-+      {Intrinsic::ppc_tcheck, 84786}, // __builtin_tcheck
-+      {Intrinsic::ppc_tend, 84803}, // __builtin_tend
-+      {Intrinsic::ppc_tendall, 84818}, // __builtin_tendall
-+      {Intrinsic::ppc_trechkpt, 84836}, // __builtin_trechkpt
-+      {Intrinsic::ppc_treclaim, 84855}, // __builtin_treclaim
-+      {Intrinsic::ppc_tresume, 84874}, // __builtin_tresume
-+      {Intrinsic::ppc_tsr, 84892}, // __builtin_tsr
-+      {Intrinsic::ppc_tsuspend, 84906}, // __builtin_tsuspend
-+      {Intrinsic::ppc_ttest, 84925}, // __builtin_ttest
-+      {Intrinsic::ppc_vsx_xsmaxdp, 84941}, // __builtin_vsx_xsmaxdp
-+      {Intrinsic::ppc_vsx_xsmindp, 84963}, // __builtin_vsx_xsmindp
-+      {Intrinsic::ppc_vsx_xvcmpeqdp, 84985}, // __builtin_vsx_xvcmpeqdp
-+      {Intrinsic::ppc_vsx_xvcmpeqdp_p, 85009}, // __builtin_vsx_xvcmpeqdp_p
-+      {Intrinsic::ppc_vsx_xvcmpeqsp, 85035}, // __builtin_vsx_xvcmpeqsp
-+      {Intrinsic::ppc_vsx_xvcmpeqsp_p, 85059}, // __builtin_vsx_xvcmpeqsp_p
-+      {Intrinsic::ppc_vsx_xvcmpgedp, 85085}, // __builtin_vsx_xvcmpgedp
-+      {Intrinsic::ppc_vsx_xvcmpgedp_p, 85109}, // __builtin_vsx_xvcmpgedp_p
-+      {Intrinsic::ppc_vsx_xvcmpgesp, 85135}, // __builtin_vsx_xvcmpgesp
-+      {Intrinsic::ppc_vsx_xvcmpgesp_p, 85159}, // __builtin_vsx_xvcmpgesp_p
-+      {Intrinsic::ppc_vsx_xvcmpgtdp, 85185}, // __builtin_vsx_xvcmpgtdp
-+      {Intrinsic::ppc_vsx_xvcmpgtdp_p, 85209}, // __builtin_vsx_xvcmpgtdp_p
-+      {Intrinsic::ppc_vsx_xvcmpgtsp, 85235}, // __builtin_vsx_xvcmpgtsp
-+      {Intrinsic::ppc_vsx_xvcmpgtsp_p, 85259}, // __builtin_vsx_xvcmpgtsp_p
-+      {Intrinsic::ppc_vsx_xvcvdpsp, 85285}, // __builtin_vsx_xvcvdpsp
-+      {Intrinsic::ppc_vsx_xvcvdpsxws, 85308}, // __builtin_vsx_xvcvdpsxws
-+      {Intrinsic::ppc_vsx_xvcvdpuxws, 85333}, // __builtin_vsx_xvcvdpuxws
-+      {Intrinsic::ppc_vsx_xvcvhpsp, 85358}, // __builtin_vsx_xvcvhpsp
-+      {Intrinsic::ppc_vsx_xvcvspdp, 85381}, // __builtin_vsx_xvcvspdp
-+      {Intrinsic::ppc_vsx_xvcvsphp, 85404}, // __builtin_vsx_xvcvsphp
-+      {Intrinsic::ppc_vsx_xvcvsxdsp, 85427}, // __builtin_vsx_xvcvsxdsp
-+      {Intrinsic::ppc_vsx_xvcvsxwdp, 85451}, // __builtin_vsx_xvcvsxwdp
-+      {Intrinsic::ppc_vsx_xvcvuxdsp, 85475}, // __builtin_vsx_xvcvuxdsp
-+      {Intrinsic::ppc_vsx_xvcvuxwdp, 85499}, // __builtin_vsx_xvcvuxwdp
-+      {Intrinsic::ppc_vsx_xvdivdp, 85523}, // __builtin_vsx_xvdivdp
-+      {Intrinsic::ppc_vsx_xvdivsp, 85545}, // __builtin_vsx_xvdivsp
-+      {Intrinsic::ppc_vsx_xviexpdp, 85567}, // __builtin_vsx_xviexpdp
-+      {Intrinsic::ppc_vsx_xviexpsp, 85590}, // __builtin_vsx_xviexpsp
-+      {Intrinsic::ppc_vsx_xvmaxdp, 85613}, // __builtin_vsx_xvmaxdp
-+      {Intrinsic::ppc_vsx_xvmaxsp, 85635}, // __builtin_vsx_xvmaxsp
-+      {Intrinsic::ppc_vsx_xvmindp, 85657}, // __builtin_vsx_xvmindp
-+      {Intrinsic::ppc_vsx_xvminsp, 85679}, // __builtin_vsx_xvminsp
-+      {Intrinsic::ppc_vsx_xvredp, 85701}, // __builtin_vsx_xvredp
-+      {Intrinsic::ppc_vsx_xvresp, 85722}, // __builtin_vsx_xvresp
-+      {Intrinsic::ppc_vsx_xvrsqrtedp, 85743}, // __builtin_vsx_xvrsqrtedp
-+      {Intrinsic::ppc_vsx_xvrsqrtesp, 85768}, // __builtin_vsx_xvrsqrtesp
-+      {Intrinsic::ppc_vsx_xvtstdcdp, 85793}, // __builtin_vsx_xvtstdcdp
-+      {Intrinsic::ppc_vsx_xvtstdcsp, 85817}, // __builtin_vsx_xvtstdcsp
-+      {Intrinsic::ppc_vsx_xvxexpdp, 85841}, // __builtin_vsx_xvxexpdp
-+      {Intrinsic::ppc_vsx_xvxexpsp, 85864}, // __builtin_vsx_xvxexpsp
-+      {Intrinsic::ppc_vsx_xvxsigdp, 85887}, // __builtin_vsx_xvxsigdp
-+      {Intrinsic::ppc_vsx_xvxsigsp, 85910}, // __builtin_vsx_xvxsigsp
-+      {Intrinsic::ppc_vsx_xxextractuw, 85933}, // __builtin_vsx_xxextractuw
-+      {Intrinsic::ppc_vsx_xxinsertw, 85959}, // __builtin_vsx_xxinsertw
-+      {Intrinsic::ppc_vsx_xxleqv, 85983}, // __builtin_vsx_xxleqv
-+    };
-+    auto I = std::lower_bound(std::begin(ppcNames),
-+                              std::end(ppcNames),
-+                              BuiltinNameStr);
-+    if (I != std::end(ppcNames) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  if (TargetPrefix == "r600") {
-+    static const BuiltinEntry r600Names[] = {
-+      {Intrinsic::r600_group_barrier, 86004}, // __builtin_r600_group_barrier
-+      {Intrinsic::r600_implicitarg_ptr, 86033}, // __builtin_r600_implicitarg_ptr
-+      {Intrinsic::r600_rat_store_typed, 86064}, // __builtin_r600_rat_store_typed
-+      {Intrinsic::r600_read_global_size_x, 86095}, // __builtin_r600_read_global_size_x
-+      {Intrinsic::r600_read_global_size_y, 86129}, // __builtin_r600_read_global_size_y
-+      {Intrinsic::r600_read_global_size_z, 86163}, // __builtin_r600_read_global_size_z
-+      {Intrinsic::r600_read_ngroups_x, 86197}, // __builtin_r600_read_ngroups_x
-+      {Intrinsic::r600_read_ngroups_y, 86227}, // __builtin_r600_read_ngroups_y
-+      {Intrinsic::r600_read_ngroups_z, 86257}, // __builtin_r600_read_ngroups_z
-+      {Intrinsic::r600_read_tgid_x, 86287}, // __builtin_r600_read_tgid_x
-+      {Intrinsic::r600_read_tgid_y, 86314}, // __builtin_r600_read_tgid_y
-+      {Intrinsic::r600_read_tgid_z, 86341}, // __builtin_r600_read_tgid_z
-+    };
-+    auto I = std::lower_bound(std::begin(r600Names),
-+                              std::end(r600Names),
-+                              BuiltinNameStr);
-+    if (I != std::end(r600Names) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  if (TargetPrefix == "s390") {
-+    static const BuiltinEntry s390Names[] = {
-+      {Intrinsic::s390_efpc, 86368}, // __builtin_s390_efpc
-+      {Intrinsic::s390_lcbb, 86415}, // __builtin_s390_lcbb
-+      {Intrinsic::s390_sfpc, 86455}, // __builtin_s390_sfpc
-+      {Intrinsic::s390_vaccb, 86475}, // __builtin_s390_vaccb
-+      {Intrinsic::s390_vacccq, 86496}, // __builtin_s390_vacccq
-+      {Intrinsic::s390_vaccf, 86518}, // __builtin_s390_vaccf
-+      {Intrinsic::s390_vaccg, 86539}, // __builtin_s390_vaccg
-+      {Intrinsic::s390_vacch, 86560}, // __builtin_s390_vacch
-+      {Intrinsic::s390_vaccq, 86581}, // __builtin_s390_vaccq
-+      {Intrinsic::s390_vacq, 86602}, // __builtin_s390_vacq
-+      {Intrinsic::s390_vaq, 86622}, // __builtin_s390_vaq
-+      {Intrinsic::s390_vavgb, 86641}, // __builtin_s390_vavgb
-+      {Intrinsic::s390_vavgf, 86662}, // __builtin_s390_vavgf
-+      {Intrinsic::s390_vavgg, 86683}, // __builtin_s390_vavgg
-+      {Intrinsic::s390_vavgh, 86704}, // __builtin_s390_vavgh
-+      {Intrinsic::s390_vavglb, 86725}, // __builtin_s390_vavglb
-+      {Intrinsic::s390_vavglf, 86747}, // __builtin_s390_vavglf
-+      {Intrinsic::s390_vavglg, 86769}, // __builtin_s390_vavglg
-+      {Intrinsic::s390_vavglh, 86791}, // __builtin_s390_vavglh
-+      {Intrinsic::s390_vcksm, 86813}, // __builtin_s390_vcksm
-+      {Intrinsic::s390_verimb, 86834}, // __builtin_s390_verimb
-+      {Intrinsic::s390_verimf, 86856}, // __builtin_s390_verimf
-+      {Intrinsic::s390_verimg, 86878}, // __builtin_s390_verimg
-+      {Intrinsic::s390_verimh, 86900}, // __builtin_s390_verimh
-+      {Intrinsic::s390_verllb, 86922}, // __builtin_s390_verllb
-+      {Intrinsic::s390_verllf, 86944}, // __builtin_s390_verllf
-+      {Intrinsic::s390_verllg, 86966}, // __builtin_s390_verllg
-+      {Intrinsic::s390_verllh, 86988}, // __builtin_s390_verllh
-+      {Intrinsic::s390_verllvb, 87010}, // __builtin_s390_verllvb
-+      {Intrinsic::s390_verllvf, 87033}, // __builtin_s390_verllvf
-+      {Intrinsic::s390_verllvg, 87056}, // __builtin_s390_verllvg
-+      {Intrinsic::s390_verllvh, 87079}, // __builtin_s390_verllvh
-+      {Intrinsic::s390_vfaeb, 87102}, // __builtin_s390_vfaeb
-+      {Intrinsic::s390_vfaef, 87123}, // __builtin_s390_vfaef
-+      {Intrinsic::s390_vfaeh, 87144}, // __builtin_s390_vfaeh
-+      {Intrinsic::s390_vfaezb, 87165}, // __builtin_s390_vfaezb
-+      {Intrinsic::s390_vfaezf, 87187}, // __builtin_s390_vfaezf
-+      {Intrinsic::s390_vfaezh, 87209}, // __builtin_s390_vfaezh
-+      {Intrinsic::s390_vfeeb, 87231}, // __builtin_s390_vfeeb
-+      {Intrinsic::s390_vfeef, 87252}, // __builtin_s390_vfeef
-+      {Intrinsic::s390_vfeeh, 87273}, // __builtin_s390_vfeeh
-+      {Intrinsic::s390_vfeezb, 87294}, // __builtin_s390_vfeezb
-+      {Intrinsic::s390_vfeezf, 87316}, // __builtin_s390_vfeezf
-+      {Intrinsic::s390_vfeezh, 87338}, // __builtin_s390_vfeezh
-+      {Intrinsic::s390_vfeneb, 87360}, // __builtin_s390_vfeneb
-+      {Intrinsic::s390_vfenef, 87382}, // __builtin_s390_vfenef
-+      {Intrinsic::s390_vfeneh, 87404}, // __builtin_s390_vfeneh
-+      {Intrinsic::s390_vfenezb, 87426}, // __builtin_s390_vfenezb
-+      {Intrinsic::s390_vfenezf, 87449}, // __builtin_s390_vfenezf
-+      {Intrinsic::s390_vfenezh, 87472}, // __builtin_s390_vfenezh
-+      {Intrinsic::s390_vgfmab, 87495}, // __builtin_s390_vgfmab
-+      {Intrinsic::s390_vgfmaf, 87517}, // __builtin_s390_vgfmaf
-+      {Intrinsic::s390_vgfmag, 87539}, // __builtin_s390_vgfmag
-+      {Intrinsic::s390_vgfmah, 87561}, // __builtin_s390_vgfmah
-+      {Intrinsic::s390_vgfmb, 87583}, // __builtin_s390_vgfmb
-+      {Intrinsic::s390_vgfmf, 87604}, // __builtin_s390_vgfmf
-+      {Intrinsic::s390_vgfmg, 87625}, // __builtin_s390_vgfmg
-+      {Intrinsic::s390_vgfmh, 87646}, // __builtin_s390_vgfmh
-+      {Intrinsic::s390_vistrb, 87667}, // __builtin_s390_vistrb
-+      {Intrinsic::s390_vistrf, 87689}, // __builtin_s390_vistrf
-+      {Intrinsic::s390_vistrh, 87711}, // __builtin_s390_vistrh
-+      {Intrinsic::s390_vlbb, 87733}, // __builtin_s390_vlbb
-+      {Intrinsic::s390_vll, 87753}, // __builtin_s390_vll
-+      {Intrinsic::s390_vmaeb, 87772}, // __builtin_s390_vmaeb
-+      {Intrinsic::s390_vmaef, 87793}, // __builtin_s390_vmaef
-+      {Intrinsic::s390_vmaeh, 87814}, // __builtin_s390_vmaeh
-+      {Intrinsic::s390_vmahb, 87835}, // __builtin_s390_vmahb
-+      {Intrinsic::s390_vmahf, 87856}, // __builtin_s390_vmahf
-+      {Intrinsic::s390_vmahh, 87877}, // __builtin_s390_vmahh
-+      {Intrinsic::s390_vmaleb, 87898}, // __builtin_s390_vmaleb
-+      {Intrinsic::s390_vmalef, 87920}, // __builtin_s390_vmalef
-+      {Intrinsic::s390_vmaleh, 87942}, // __builtin_s390_vmaleh
-+      {Intrinsic::s390_vmalhb, 87964}, // __builtin_s390_vmalhb
-+      {Intrinsic::s390_vmalhf, 87986}, // __builtin_s390_vmalhf
-+      {Intrinsic::s390_vmalhh, 88008}, // __builtin_s390_vmalhh
-+      {Intrinsic::s390_vmalob, 88030}, // __builtin_s390_vmalob
-+      {Intrinsic::s390_vmalof, 88052}, // __builtin_s390_vmalof
-+      {Intrinsic::s390_vmaloh, 88074}, // __builtin_s390_vmaloh
-+      {Intrinsic::s390_vmaob, 88096}, // __builtin_s390_vmaob
-+      {Intrinsic::s390_vmaof, 88117}, // __builtin_s390_vmaof
-+      {Intrinsic::s390_vmaoh, 88138}, // __builtin_s390_vmaoh
-+      {Intrinsic::s390_vmeb, 88159}, // __builtin_s390_vmeb
-+      {Intrinsic::s390_vmef, 88179}, // __builtin_s390_vmef
-+      {Intrinsic::s390_vmeh, 88199}, // __builtin_s390_vmeh
-+      {Intrinsic::s390_vmhb, 88219}, // __builtin_s390_vmhb
-+      {Intrinsic::s390_vmhf, 88239}, // __builtin_s390_vmhf
-+      {Intrinsic::s390_vmhh, 88259}, // __builtin_s390_vmhh
-+      {Intrinsic::s390_vmleb, 88279}, // __builtin_s390_vmleb
-+      {Intrinsic::s390_vmlef, 88300}, // __builtin_s390_vmlef
-+      {Intrinsic::s390_vmleh, 88321}, // __builtin_s390_vmleh
-+      {Intrinsic::s390_vmlhb, 88342}, // __builtin_s390_vmlhb
-+      {Intrinsic::s390_vmlhf, 88363}, // __builtin_s390_vmlhf
-+      {Intrinsic::s390_vmlhh, 88384}, // __builtin_s390_vmlhh
-+      {Intrinsic::s390_vmlob, 88405}, // __builtin_s390_vmlob
-+      {Intrinsic::s390_vmlof, 88426}, // __builtin_s390_vmlof
-+      {Intrinsic::s390_vmloh, 88447}, // __builtin_s390_vmloh
-+      {Intrinsic::s390_vmob, 88468}, // __builtin_s390_vmob
-+      {Intrinsic::s390_vmof, 88488}, // __builtin_s390_vmof
-+      {Intrinsic::s390_vmoh, 88508}, // __builtin_s390_vmoh
-+      {Intrinsic::s390_vpdi, 88528}, // __builtin_s390_vpdi
-+      {Intrinsic::s390_vperm, 88548}, // __builtin_s390_vperm
-+      {Intrinsic::s390_vpklsf, 88569}, // __builtin_s390_vpklsf
-+      {Intrinsic::s390_vpklsg, 88591}, // __builtin_s390_vpklsg
-+      {Intrinsic::s390_vpklsh, 88613}, // __builtin_s390_vpklsh
-+      {Intrinsic::s390_vpksf, 88635}, // __builtin_s390_vpksf
-+      {Intrinsic::s390_vpksg, 88656}, // __builtin_s390_vpksg
-+      {Intrinsic::s390_vpksh, 88677}, // __builtin_s390_vpksh
-+      {Intrinsic::s390_vsbcbiq, 88698}, // __builtin_s390_vsbcbiq
-+      {Intrinsic::s390_vsbiq, 88721}, // __builtin_s390_vsbiq
-+      {Intrinsic::s390_vscbib, 88742}, // __builtin_s390_vscbib
-+      {Intrinsic::s390_vscbif, 88764}, // __builtin_s390_vscbif
-+      {Intrinsic::s390_vscbig, 88786}, // __builtin_s390_vscbig
-+      {Intrinsic::s390_vscbih, 88808}, // __builtin_s390_vscbih
-+      {Intrinsic::s390_vscbiq, 88830}, // __builtin_s390_vscbiq
-+      {Intrinsic::s390_vsl, 88852}, // __builtin_s390_vsl
-+      {Intrinsic::s390_vslb, 88871}, // __builtin_s390_vslb
-+      {Intrinsic::s390_vsldb, 88891}, // __builtin_s390_vsldb
-+      {Intrinsic::s390_vsq, 88912}, // __builtin_s390_vsq
-+      {Intrinsic::s390_vsra, 88931}, // __builtin_s390_vsra
-+      {Intrinsic::s390_vsrab, 88951}, // __builtin_s390_vsrab
-+      {Intrinsic::s390_vsrl, 88972}, // __builtin_s390_vsrl
-+      {Intrinsic::s390_vsrlb, 88992}, // __builtin_s390_vsrlb
-+      {Intrinsic::s390_vstl, 89013}, // __builtin_s390_vstl
-+      {Intrinsic::s390_vstrcb, 89033}, // __builtin_s390_vstrcb
-+      {Intrinsic::s390_vstrcf, 89055}, // __builtin_s390_vstrcf
-+      {Intrinsic::s390_vstrch, 89077}, // __builtin_s390_vstrch
-+      {Intrinsic::s390_vstrczb, 89099}, // __builtin_s390_vstrczb
-+      {Intrinsic::s390_vstrczf, 89122}, // __builtin_s390_vstrczf
-+      {Intrinsic::s390_vstrczh, 89145}, // __builtin_s390_vstrczh
-+      {Intrinsic::s390_vsumb, 89168}, // __builtin_s390_vsumb
-+      {Intrinsic::s390_vsumgf, 89189}, // __builtin_s390_vsumgf
-+      {Intrinsic::s390_vsumgh, 89211}, // __builtin_s390_vsumgh
-+      {Intrinsic::s390_vsumh, 89233}, // __builtin_s390_vsumh
-+      {Intrinsic::s390_vsumqf, 89254}, // __builtin_s390_vsumqf
-+      {Intrinsic::s390_vsumqg, 89276}, // __builtin_s390_vsumqg
-+      {Intrinsic::s390_vtm, 89298}, // __builtin_s390_vtm
-+      {Intrinsic::s390_vuphb, 89317}, // __builtin_s390_vuphb
-+      {Intrinsic::s390_vuphf, 89338}, // __builtin_s390_vuphf
-+      {Intrinsic::s390_vuphh, 89359}, // __builtin_s390_vuphh
-+      {Intrinsic::s390_vuplb, 89380}, // __builtin_s390_vuplb
-+      {Intrinsic::s390_vuplf, 89401}, // __builtin_s390_vuplf
-+      {Intrinsic::s390_vuplhb, 89422}, // __builtin_s390_vuplhb
-+      {Intrinsic::s390_vuplhf, 89444}, // __builtin_s390_vuplhf
-+      {Intrinsic::s390_vuplhh, 89466}, // __builtin_s390_vuplhh
-+      {Intrinsic::s390_vuplhw, 89488}, // __builtin_s390_vuplhw
-+      {Intrinsic::s390_vupllb, 89510}, // __builtin_s390_vupllb
-+      {Intrinsic::s390_vupllf, 89532}, // __builtin_s390_vupllf
-+      {Intrinsic::s390_vupllh, 89554}, // __builtin_s390_vupllh
-+      {Intrinsic::s390_tend, 84803}, // __builtin_tend
-+      {Intrinsic::s390_ppa_txassist, 86435}, // __builtin_tx_assist
-+      {Intrinsic::s390_etnd, 86388}, // __builtin_tx_nesting_depth
-+    };
-+    auto I = std::lower_bound(std::begin(s390Names),
-+                              std::end(s390Names),
-+                              BuiltinNameStr);
-+    if (I != std::end(s390Names) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  if (TargetPrefix == "x86") {
-+    static const BuiltinEntry x86Names[] = {
-+      {Intrinsic::x86_addcarry_u32, 90084}, // __builtin_ia32_addcarry_u32
-+      {Intrinsic::x86_addcarry_u64, 90112}, // __builtin_ia32_addcarry_u64
-+      {Intrinsic::x86_addcarryx_u32, 90140}, // __builtin_ia32_addcarryx_u32
-+      {Intrinsic::x86_addcarryx_u64, 90169}, // __builtin_ia32_addcarryx_u64
-+      {Intrinsic::x86_avx512_mask_add_pd_512, 96702}, // __builtin_ia32_addpd512_mask
-+      {Intrinsic::x86_avx512_mask_add_ps_512, 96731}, // __builtin_ia32_addps512_mask
-+      {Intrinsic::x86_avx512_mask_add_sd_round, 96760}, // __builtin_ia32_addsd_round_mask
-+      {Intrinsic::x86_avx512_mask_add_ss_round, 96792}, // __builtin_ia32_addss_round_mask
-+      {Intrinsic::x86_sse3_addsub_pd, 129309}, // __builtin_ia32_addsubpd
-+      {Intrinsic::x86_avx_addsub_pd_256, 90365}, // __builtin_ia32_addsubpd256
-+      {Intrinsic::x86_sse3_addsub_ps, 129333}, // __builtin_ia32_addsubps
-+      {Intrinsic::x86_avx_addsub_ps_256, 90392}, // __builtin_ia32_addsubps256
-+      {Intrinsic::x86_aesni_aesdec, 90198}, // __builtin_ia32_aesdec128
-+      {Intrinsic::x86_aesni_aesdeclast, 90223}, // __builtin_ia32_aesdeclast128
-+      {Intrinsic::x86_aesni_aesenc, 90252}, // __builtin_ia32_aesenc128
-+      {Intrinsic::x86_aesni_aesenclast, 90277}, // __builtin_ia32_aesenclast128
-+      {Intrinsic::x86_aesni_aesimc, 90306}, // __builtin_ia32_aesimc128
-+      {Intrinsic::x86_aesni_aeskeygenassist, 90331}, // __builtin_ia32_aeskeygenassist128
-+      {Intrinsic::x86_bmi_bextr_32, 123451}, // __builtin_ia32_bextr_u32
-+      {Intrinsic::x86_bmi_bextr_64, 123476}, // __builtin_ia32_bextr_u64
-+      {Intrinsic::x86_tbm_bextri_u32, 131307}, // __builtin_ia32_bextri_u32
-+      {Intrinsic::x86_tbm_bextri_u64, 131333}, // __builtin_ia32_bextri_u64
-+      {Intrinsic::x86_sse41_blendvpd, 129510}, // __builtin_ia32_blendvpd
-+      {Intrinsic::x86_avx_blendv_pd_256, 90419}, // __builtin_ia32_blendvpd256
-+      {Intrinsic::x86_sse41_blendvps, 129534}, // __builtin_ia32_blendvps
-+      {Intrinsic::x86_avx_blendv_ps_256, 90446}, // __builtin_ia32_blendvps256
-+      {Intrinsic::x86_avx512_mask_broadcastf32x2_256, 96824}, // __builtin_ia32_broadcastf32x2_256_mask
-+      {Intrinsic::x86_avx512_mask_broadcastf32x2_512, 96863}, // __builtin_ia32_broadcastf32x2_512_mask
-+      {Intrinsic::x86_avx512_mask_broadcastf32x4_256, 96902}, // __builtin_ia32_broadcastf32x4_256_mask
-+      {Intrinsic::x86_avx512_mask_broadcastf32x4_512, 96941}, // __builtin_ia32_broadcastf32x4_512
-+      {Intrinsic::x86_avx512_mask_broadcastf32x8_512, 96975}, // __builtin_ia32_broadcastf32x8_512_mask
-+      {Intrinsic::x86_avx512_mask_broadcastf64x2_256, 97014}, // __builtin_ia32_broadcastf64x2_256_mask
-+      {Intrinsic::x86_avx512_mask_broadcastf64x2_512, 97053}, // __builtin_ia32_broadcastf64x2_512_mask
-+      {Intrinsic::x86_avx512_mask_broadcastf64x4_512, 97092}, // __builtin_ia32_broadcastf64x4_512
-+      {Intrinsic::x86_avx512_mask_broadcasti32x2_128, 97126}, // __builtin_ia32_broadcasti32x2_128_mask
-+      {Intrinsic::x86_avx512_mask_broadcasti32x2_256, 97165}, // __builtin_ia32_broadcasti32x2_256_mask
-+      {Intrinsic::x86_avx512_mask_broadcasti32x2_512, 97204}, // __builtin_ia32_broadcasti32x2_512_mask
-+      {Intrinsic::x86_avx512_mask_broadcasti32x4_256, 97243}, // __builtin_ia32_broadcasti32x4_256_mask
-+      {Intrinsic::x86_avx512_mask_broadcasti32x4_512, 97282}, // __builtin_ia32_broadcasti32x4_512
-+      {Intrinsic::x86_avx512_mask_broadcasti32x8_512, 97316}, // __builtin_ia32_broadcasti32x8_512_mask
-+      {Intrinsic::x86_avx512_mask_broadcasti64x2_256, 97355}, // __builtin_ia32_broadcasti64x2_256_mask
-+      {Intrinsic::x86_avx512_mask_broadcasti64x2_512, 97394}, // __builtin_ia32_broadcasti64x2_512_mask
-+      {Intrinsic::x86_avx512_mask_broadcasti64x4_512, 97433}, // __builtin_ia32_broadcasti64x4_512
-+      {Intrinsic::x86_avx512_broadcastmb_128, 94325}, // __builtin_ia32_broadcastmb128
-+      {Intrinsic::x86_avx512_broadcastmb_256, 94355}, // __builtin_ia32_broadcastmb256
-+      {Intrinsic::x86_avx512_broadcastmb_512, 94385}, // __builtin_ia32_broadcastmb512
-+      {Intrinsic::x86_avx512_broadcastmw_128, 94415}, // __builtin_ia32_broadcastmw128
-+      {Intrinsic::x86_avx512_broadcastmw_256, 94445}, // __builtin_ia32_broadcastmw256
-+      {Intrinsic::x86_avx512_broadcastmw_512, 94475}, // __builtin_ia32_broadcastmw512
-+      {Intrinsic::x86_bmi_bzhi_64, 123524}, // __builtin_ia32_bzhi_di
-+      {Intrinsic::x86_bmi_bzhi_32, 123501}, // __builtin_ia32_bzhi_si
-+      {Intrinsic::x86_sse2_clflush, 127574}, // __builtin_ia32_clflush
-+      {Intrinsic::x86_clflushopt, 123639}, // __builtin_ia32_clflushopt
-+      {Intrinsic::x86_avx512_mask_cmp_pd_128, 97467}, // __builtin_ia32_cmppd128_mask
-+      {Intrinsic::x86_avx512_mask_cmp_pd_256, 97496}, // __builtin_ia32_cmppd256_mask
-+      {Intrinsic::x86_avx512_mask_cmp_pd_512, 97525}, // __builtin_ia32_cmppd512_mask
-+      {Intrinsic::x86_avx512_mask_cmp_ps_128, 97554}, // __builtin_ia32_cmpps128_mask
-+      {Intrinsic::x86_avx512_mask_cmp_ps_256, 97583}, // __builtin_ia32_cmpps256_mask
-+      {Intrinsic::x86_avx512_mask_cmp_ps_512, 97612}, // __builtin_ia32_cmpps512_mask
-+      {Intrinsic::x86_sse2_cmp_sd, 127597}, // __builtin_ia32_cmpsd
-+      {Intrinsic::x86_avx512_mask_cmp_sd, 97641}, // __builtin_ia32_cmpsd_mask
-+      {Intrinsic::x86_sse_cmp_ss, 126749}, // __builtin_ia32_cmpss
-+      {Intrinsic::x86_avx512_mask_cmp_ss, 97667}, // __builtin_ia32_cmpss_mask
-+      {Intrinsic::x86_sse_comieq_ss, 126770}, // __builtin_ia32_comieq
-+      {Intrinsic::x86_sse_comige_ss, 126792}, // __builtin_ia32_comige
-+      {Intrinsic::x86_sse_comigt_ss, 126814}, // __builtin_ia32_comigt
-+      {Intrinsic::x86_sse_comile_ss, 126836}, // __builtin_ia32_comile
-+      {Intrinsic::x86_sse_comilt_ss, 126858}, // __builtin_ia32_comilt
-+      {Intrinsic::x86_sse_comineq_ss, 126880}, // __builtin_ia32_comineq
-+      {Intrinsic::x86_sse2_comieq_sd, 127618}, // __builtin_ia32_comisdeq
-+      {Intrinsic::x86_sse2_comige_sd, 127642}, // __builtin_ia32_comisdge
-+      {Intrinsic::x86_sse2_comigt_sd, 127666}, // __builtin_ia32_comisdgt
-+      {Intrinsic::x86_sse2_comile_sd, 127690}, // __builtin_ia32_comisdle
-+      {Intrinsic::x86_sse2_comilt_sd, 127714}, // __builtin_ia32_comisdlt
-+      {Intrinsic::x86_sse2_comineq_sd, 127738}, // __builtin_ia32_comisdneq
-+      {Intrinsic::x86_avx512_mask_compress_pd_128, 97795}, // __builtin_ia32_compressdf128_mask
-+      {Intrinsic::x86_avx512_mask_compress_pd_256, 97829}, // __builtin_ia32_compressdf256_mask
-+      {Intrinsic::x86_avx512_mask_compress_pd_512, 97863}, // __builtin_ia32_compressdf512_mask
-+      {Intrinsic::x86_avx512_mask_compress_q_128, 97999}, // __builtin_ia32_compressdi128_mask
-+      {Intrinsic::x86_avx512_mask_compress_q_256, 98033}, // __builtin_ia32_compressdi256_mask
-+      {Intrinsic::x86_avx512_mask_compress_q_512, 98067}, // __builtin_ia32_compressdi512_mask
-+      {Intrinsic::x86_avx512_mask_compress_ps_128, 97897}, // __builtin_ia32_compresssf128_mask
-+      {Intrinsic::x86_avx512_mask_compress_ps_256, 97931}, // __builtin_ia32_compresssf256_mask
-+      {Intrinsic::x86_avx512_mask_compress_ps_512, 97965}, // __builtin_ia32_compresssf512_mask
-+      {Intrinsic::x86_avx512_mask_compress_d_128, 97693}, // __builtin_ia32_compresssi128_mask
-+      {Intrinsic::x86_avx512_mask_compress_d_256, 97727}, // __builtin_ia32_compresssi256_mask
-+      {Intrinsic::x86_avx512_mask_compress_d_512, 97761}, // __builtin_ia32_compresssi512_mask
-+      {Intrinsic::x86_avx512_mask_compress_store_pd_128, 98218}, // __builtin_ia32_compressstoredf128_mask
-+      {Intrinsic::x86_avx512_mask_compress_store_pd_256, 98257}, // __builtin_ia32_compressstoredf256_mask
-+      {Intrinsic::x86_avx512_mask_compress_store_pd_512, 98296}, // __builtin_ia32_compressstoredf512_mask
-+      {Intrinsic::x86_avx512_mask_compress_store_q_128, 98452}, // __builtin_ia32_compressstoredi128_mask
-+      {Intrinsic::x86_avx512_mask_compress_store_q_256, 98491}, // __builtin_ia32_compressstoredi256_mask
-+      {Intrinsic::x86_avx512_mask_compress_store_q_512, 98530}, // __builtin_ia32_compressstoredi512_mask
-+      {Intrinsic::x86_avx512_mask_compress_store_ps_128, 98335}, // __builtin_ia32_compressstoresf128_mask
-+      {Intrinsic::x86_avx512_mask_compress_store_ps_256, 98374}, // __builtin_ia32_compressstoresf256_mask
-+      {Intrinsic::x86_avx512_mask_compress_store_ps_512, 98413}, // __builtin_ia32_compressstoresf512_mask
-+      {Intrinsic::x86_avx512_mask_compress_store_d_128, 98101}, // __builtin_ia32_compressstoresi128_mask
-+      {Intrinsic::x86_avx512_mask_compress_store_d_256, 98140}, // __builtin_ia32_compressstoresi256_mask
-+      {Intrinsic::x86_avx512_mask_compress_store_d_512, 98179}, // __builtin_ia32_compressstoresi512_mask
-+      {Intrinsic::x86_sse42_crc32_64_64, 130021}, // __builtin_ia32_crc32di
-+      {Intrinsic::x86_sse42_crc32_32_16, 129952}, // __builtin_ia32_crc32hi
-+      {Intrinsic::x86_sse42_crc32_32_8, 129998}, // __builtin_ia32_crc32qi
-+      {Intrinsic::x86_sse42_crc32_32_32, 129975}, // __builtin_ia32_crc32si
-+      {Intrinsic::x86_avx512_cvtb2mask_128, 94505}, // __builtin_ia32_cvtb2mask128
-+      {Intrinsic::x86_avx512_cvtb2mask_256, 94533}, // __builtin_ia32_cvtb2mask256
-+      {Intrinsic::x86_avx512_cvtb2mask_512, 94561}, // __builtin_ia32_cvtb2mask512
-+      {Intrinsic::x86_avx512_cvtd2mask_128, 94589}, // __builtin_ia32_cvtd2mask128
-+      {Intrinsic::x86_avx512_cvtd2mask_256, 94617}, // __builtin_ia32_cvtd2mask256
-+      {Intrinsic::x86_avx512_cvtd2mask_512, 94645}, // __builtin_ia32_cvtd2mask512
-+      {Intrinsic::x86_sse2_cvtdq2ps, 127763}, // __builtin_ia32_cvtdq2ps
-+      {Intrinsic::x86_avx512_mask_cvtdq2ps_128, 98791}, // __builtin_ia32_cvtdq2ps128_mask
-+      {Intrinsic::x86_avx_cvtdq2_ps_256, 90554}, // __builtin_ia32_cvtdq2ps256
-+      {Intrinsic::x86_avx512_mask_cvtdq2ps_256, 98823}, // __builtin_ia32_cvtdq2ps256_mask
-+      {Intrinsic::x86_avx512_mask_cvtdq2ps_512, 98855}, // __builtin_ia32_cvtdq2ps512_mask
-+      {Intrinsic::x86_avx512_cvtmask2b_128, 94673}, // __builtin_ia32_cvtmask2b128
-+      {Intrinsic::x86_avx512_cvtmask2b_256, 94701}, // __builtin_ia32_cvtmask2b256
-+      {Intrinsic::x86_avx512_cvtmask2b_512, 94729}, // __builtin_ia32_cvtmask2b512
-+      {Intrinsic::x86_avx512_cvtmask2d_128, 94757}, // __builtin_ia32_cvtmask2d128
-+      {Intrinsic::x86_avx512_cvtmask2d_256, 94785}, // __builtin_ia32_cvtmask2d256
-+      {Intrinsic::x86_avx512_cvtmask2d_512, 94813}, // __builtin_ia32_cvtmask2d512
-+      {Intrinsic::x86_avx512_cvtmask2q_128, 94841}, // __builtin_ia32_cvtmask2q128
-+      {Intrinsic::x86_avx512_cvtmask2q_256, 94869}, // __builtin_ia32_cvtmask2q256
-+      {Intrinsic::x86_avx512_cvtmask2q_512, 94897}, // __builtin_ia32_cvtmask2q512
-+      {Intrinsic::x86_avx512_cvtmask2w_128, 94925}, // __builtin_ia32_cvtmask2w128
-+      {Intrinsic::x86_avx512_cvtmask2w_256, 94953}, // __builtin_ia32_cvtmask2w256
-+      {Intrinsic::x86_avx512_cvtmask2w_512, 94981}, // __builtin_ia32_cvtmask2w512
-+      {Intrinsic::x86_sse2_cvtpd2dq, 127787}, // __builtin_ia32_cvtpd2dq
-+      {Intrinsic::x86_avx512_mask_cvtpd2dq_128, 98887}, // __builtin_ia32_cvtpd2dq128_mask
-+      {Intrinsic::x86_avx_cvt_pd2dq_256, 90500}, // __builtin_ia32_cvtpd2dq256
-+      {Intrinsic::x86_avx512_mask_cvtpd2dq_256, 98919}, // __builtin_ia32_cvtpd2dq256_mask
-+      {Intrinsic::x86_avx512_mask_cvtpd2dq_512, 98951}, // __builtin_ia32_cvtpd2dq512_mask
-+      {Intrinsic::x86_sse_cvtpd2pi, 126903}, // __builtin_ia32_cvtpd2pi
-+      {Intrinsic::x86_sse2_cvtpd2ps, 127811}, // __builtin_ia32_cvtpd2ps
-+      {Intrinsic::x86_avx_cvt_pd2_ps_256, 90473}, // __builtin_ia32_cvtpd2ps256
-+      {Intrinsic::x86_avx512_mask_cvtpd2ps_256, 99012}, // __builtin_ia32_cvtpd2ps256_mask
-+      {Intrinsic::x86_avx512_mask_cvtpd2ps_512, 99044}, // __builtin_ia32_cvtpd2ps512_mask
-+      {Intrinsic::x86_avx512_mask_cvtpd2ps, 98983}, // __builtin_ia32_cvtpd2ps_mask
-+      {Intrinsic::x86_avx512_mask_cvtpd2qq_128, 99076}, // __builtin_ia32_cvtpd2qq128_mask
-+      {Intrinsic::x86_avx512_mask_cvtpd2qq_256, 99108}, // __builtin_ia32_cvtpd2qq256_mask
-+      {Intrinsic::x86_avx512_mask_cvtpd2qq_512, 99140}, // __builtin_ia32_cvtpd2qq512_mask
-+      {Intrinsic::x86_avx512_mask_cvtpd2udq_128, 99172}, // __builtin_ia32_cvtpd2udq128_mask
-+      {Intrinsic::x86_avx512_mask_cvtpd2udq_256, 99205}, // __builtin_ia32_cvtpd2udq256_mask
-+      {Intrinsic::x86_avx512_mask_cvtpd2udq_512, 99238}, // __builtin_ia32_cvtpd2udq512_mask
-+      {Intrinsic::x86_avx512_mask_cvtpd2uqq_128, 99271}, // __builtin_ia32_cvtpd2uqq128_mask
-+      {Intrinsic::x86_avx512_mask_cvtpd2uqq_256, 99304}, // __builtin_ia32_cvtpd2uqq256_mask
-+      {Intrinsic::x86_avx512_mask_cvtpd2uqq_512, 99337}, // __builtin_ia32_cvtpd2uqq512_mask
-+      {Intrinsic::x86_sse_cvtpi2pd, 126927}, // __builtin_ia32_cvtpi2pd
-+      {Intrinsic::x86_sse_cvtpi2ps, 126951}, // __builtin_ia32_cvtpi2ps
-+      {Intrinsic::x86_sse2_cvtps2dq, 127835}, // __builtin_ia32_cvtps2dq
-+      {Intrinsic::x86_avx512_mask_cvtps2dq_128, 99370}, // __builtin_ia32_cvtps2dq128_mask
-+      {Intrinsic::x86_avx_cvt_ps2dq_256, 90527}, // __builtin_ia32_cvtps2dq256
-+      {Intrinsic::x86_avx512_mask_cvtps2dq_256, 99402}, // __builtin_ia32_cvtps2dq256_mask
-+      {Intrinsic::x86_avx512_mask_cvtps2dq_512, 99434}, // __builtin_ia32_cvtps2dq512_mask
-+      {Intrinsic::x86_avx512_mask_cvtps2pd_128, 99466}, // __builtin_ia32_cvtps2pd128_mask
-+      {Intrinsic::x86_avx512_mask_cvtps2pd_256, 99498}, // __builtin_ia32_cvtps2pd256_mask
-+      {Intrinsic::x86_avx512_mask_cvtps2pd_512, 99530}, // __builtin_ia32_cvtps2pd512_mask
-+      {Intrinsic::x86_sse_cvtps2pi, 126975}, // __builtin_ia32_cvtps2pi
-+      {Intrinsic::x86_avx512_mask_cvtps2qq_128, 99562}, // __builtin_ia32_cvtps2qq128_mask
-+      {Intrinsic::x86_avx512_mask_cvtps2qq_256, 99594}, // __builtin_ia32_cvtps2qq256_mask
-+      {Intrinsic::x86_avx512_mask_cvtps2qq_512, 99626}, // __builtin_ia32_cvtps2qq512_mask
-+      {Intrinsic::x86_avx512_mask_cvtps2udq_128, 99658}, // __builtin_ia32_cvtps2udq128_mask
-+      {Intrinsic::x86_avx512_mask_cvtps2udq_256, 99691}, // __builtin_ia32_cvtps2udq256_mask
-+      {Intrinsic::x86_avx512_mask_cvtps2udq_512, 99724}, // __builtin_ia32_cvtps2udq512_mask
-+      {Intrinsic::x86_avx512_mask_cvtps2uqq_128, 99757}, // __builtin_ia32_cvtps2uqq128_mask
-+      {Intrinsic::x86_avx512_mask_cvtps2uqq_256, 99790}, // __builtin_ia32_cvtps2uqq256_mask
-+      {Intrinsic::x86_avx512_mask_cvtps2uqq_512, 99823}, // __builtin_ia32_cvtps2uqq512_mask
-+      {Intrinsic::x86_avx512_cvtq2mask_128, 95009}, // __builtin_ia32_cvtq2mask128
-+      {Intrinsic::x86_avx512_cvtq2mask_256, 95037}, // __builtin_ia32_cvtq2mask256
-+      {Intrinsic::x86_avx512_cvtq2mask_512, 95065}, // __builtin_ia32_cvtq2mask512
-+      {Intrinsic::x86_avx512_mask_cvtqq2pd_128, 99856}, // __builtin_ia32_cvtqq2pd128_mask
-+      {Intrinsic::x86_avx512_mask_cvtqq2pd_256, 99888}, // __builtin_ia32_cvtqq2pd256_mask
-+      {Intrinsic::x86_avx512_mask_cvtqq2pd_512, 99920}, // __builtin_ia32_cvtqq2pd512_mask
-+      {Intrinsic::x86_avx512_mask_cvtqq2ps_128, 99952}, // __builtin_ia32_cvtqq2ps128_mask
-+      {Intrinsic::x86_avx512_mask_cvtqq2ps_256, 99984}, // __builtin_ia32_cvtqq2ps256_mask
-+      {Intrinsic::x86_avx512_mask_cvtqq2ps_512, 100016}, // __builtin_ia32_cvtqq2ps512_mask
-+      {Intrinsic::x86_sse2_cvtsd2si, 127859}, // __builtin_ia32_cvtsd2si
-+      {Intrinsic::x86_sse2_cvtsd2si64, 127883}, // __builtin_ia32_cvtsd2si64
-+      {Intrinsic::x86_sse2_cvtsd2ss, 127909}, // __builtin_ia32_cvtsd2ss
-+      {Intrinsic::x86_avx512_mask_cvtsd2ss_round, 100048}, // __builtin_ia32_cvtsd2ss_round_mask
-+      {Intrinsic::x86_avx512_cvtsi2sd64, 95093}, // __builtin_ia32_cvtsi2sd64
-+      {Intrinsic::x86_avx512_cvtsi2ss32, 95119}, // __builtin_ia32_cvtsi2ss32
-+      {Intrinsic::x86_avx512_cvtsi2ss64, 95145}, // __builtin_ia32_cvtsi2ss64
-+      {Intrinsic::x86_avx512_mask_cvtss2sd_round, 100083}, // __builtin_ia32_cvtss2sd_round_mask
-+      {Intrinsic::x86_sse_cvtss2si, 126999}, // __builtin_ia32_cvtss2si
-+      {Intrinsic::x86_sse_cvtss2si64, 127023}, // __builtin_ia32_cvtss2si64
-+      {Intrinsic::x86_sse2_cvttpd2dq, 127933}, // __builtin_ia32_cvttpd2dq
-+      {Intrinsic::x86_avx512_mask_cvttpd2dq_128, 100118}, // __builtin_ia32_cvttpd2dq128_mask
-+      {Intrinsic::x86_avx_cvtt_pd2dq_256, 90581}, // __builtin_ia32_cvttpd2dq256
-+      {Intrinsic::x86_avx512_mask_cvttpd2dq_256, 100151}, // __builtin_ia32_cvttpd2dq256_mask
-+      {Intrinsic::x86_avx512_mask_cvttpd2dq_512, 100184}, // __builtin_ia32_cvttpd2dq512_mask
-+      {Intrinsic::x86_sse_cvttpd2pi, 127049}, // __builtin_ia32_cvttpd2pi
-+      {Intrinsic::x86_avx512_mask_cvttpd2qq_128, 100217}, // __builtin_ia32_cvttpd2qq128_mask
-+      {Intrinsic::x86_avx512_mask_cvttpd2qq_256, 100250}, // __builtin_ia32_cvttpd2qq256_mask
-+      {Intrinsic::x86_avx512_mask_cvttpd2qq_512, 100283}, // __builtin_ia32_cvttpd2qq512_mask
-+      {Intrinsic::x86_avx512_mask_cvttpd2udq_128, 100316}, // __builtin_ia32_cvttpd2udq128_mask
-+      {Intrinsic::x86_avx512_mask_cvttpd2udq_256, 100350}, // __builtin_ia32_cvttpd2udq256_mask
-+      {Intrinsic::x86_avx512_mask_cvttpd2udq_512, 100384}, // __builtin_ia32_cvttpd2udq512_mask
-+      {Intrinsic::x86_avx512_mask_cvttpd2uqq_128, 100418}, // __builtin_ia32_cvttpd2uqq128_mask
-+      {Intrinsic::x86_avx512_mask_cvttpd2uqq_256, 100452}, // __builtin_ia32_cvttpd2uqq256_mask
-+      {Intrinsic::x86_avx512_mask_cvttpd2uqq_512, 100486}, // __builtin_ia32_cvttpd2uqq512_mask
-+      {Intrinsic::x86_sse2_cvttps2dq, 127958}, // __builtin_ia32_cvttps2dq
-+      {Intrinsic::x86_avx512_mask_cvttps2dq_128, 100520}, // __builtin_ia32_cvttps2dq128_mask
-+      {Intrinsic::x86_avx_cvtt_ps2dq_256, 90609}, // __builtin_ia32_cvttps2dq256
-+      {Intrinsic::x86_avx512_mask_cvttps2dq_256, 100553}, // __builtin_ia32_cvttps2dq256_mask
-+      {Intrinsic::x86_avx512_mask_cvttps2dq_512, 100586}, // __builtin_ia32_cvttps2dq512_mask
-+      {Intrinsic::x86_sse_cvttps2pi, 127074}, // __builtin_ia32_cvttps2pi
-+      {Intrinsic::x86_avx512_mask_cvttps2qq_128, 100619}, // __builtin_ia32_cvttps2qq128_mask
-+      {Intrinsic::x86_avx512_mask_cvttps2qq_256, 100652}, // __builtin_ia32_cvttps2qq256_mask
-+      {Intrinsic::x86_avx512_mask_cvttps2qq_512, 100685}, // __builtin_ia32_cvttps2qq512_mask
-+      {Intrinsic::x86_avx512_mask_cvttps2udq_128, 100718}, // __builtin_ia32_cvttps2udq128_mask
-+      {Intrinsic::x86_avx512_mask_cvttps2udq_256, 100752}, // __builtin_ia32_cvttps2udq256_mask
-+      {Intrinsic::x86_avx512_mask_cvttps2udq_512, 100786}, // __builtin_ia32_cvttps2udq512_mask
-+      {Intrinsic::x86_avx512_mask_cvttps2uqq_128, 100820}, // __builtin_ia32_cvttps2uqq128_mask
-+      {Intrinsic::x86_avx512_mask_cvttps2uqq_256, 100854}, // __builtin_ia32_cvttps2uqq256_mask
-+      {Intrinsic::x86_avx512_mask_cvttps2uqq_512, 100888}, // __builtin_ia32_cvttps2uqq512_mask
-+      {Intrinsic::x86_sse2_cvttsd2si, 127983}, // __builtin_ia32_cvttsd2si
-+      {Intrinsic::x86_sse2_cvttsd2si64, 128008}, // __builtin_ia32_cvttsd2si64
-+      {Intrinsic::x86_sse_cvttss2si, 127099}, // __builtin_ia32_cvttss2si
-+      {Intrinsic::x86_sse_cvttss2si64, 127124}, // __builtin_ia32_cvttss2si64
-+      {Intrinsic::x86_avx512_mask_cvtudq2ps_128, 100922}, // __builtin_ia32_cvtudq2ps128_mask
-+      {Intrinsic::x86_avx512_mask_cvtudq2ps_256, 100955}, // __builtin_ia32_cvtudq2ps256_mask
-+      {Intrinsic::x86_avx512_mask_cvtudq2ps_512, 100988}, // __builtin_ia32_cvtudq2ps512_mask
-+      {Intrinsic::x86_avx512_mask_cvtuqq2pd_128, 101021}, // __builtin_ia32_cvtuqq2pd128_mask
-+      {Intrinsic::x86_avx512_mask_cvtuqq2pd_256, 101054}, // __builtin_ia32_cvtuqq2pd256_mask
-+      {Intrinsic::x86_avx512_mask_cvtuqq2pd_512, 101087}, // __builtin_ia32_cvtuqq2pd512_mask
-+      {Intrinsic::x86_avx512_mask_cvtuqq2ps_128, 101120}, // __builtin_ia32_cvtuqq2ps128_mask
-+      {Intrinsic::x86_avx512_mask_cvtuqq2ps_256, 101153}, // __builtin_ia32_cvtuqq2ps256_mask
-+      {Intrinsic::x86_avx512_mask_cvtuqq2ps_512, 101186}, // __builtin_ia32_cvtuqq2ps512_mask
-+      {Intrinsic::x86_avx512_cvtusi2sd, 95399}, // __builtin_ia32_cvtusi2sd32
-+      {Intrinsic::x86_avx512_cvtusi642sd, 95453}, // __builtin_ia32_cvtusi2sd64
-+      {Intrinsic::x86_avx512_cvtusi2ss, 95426}, // __builtin_ia32_cvtusi2ss32
-+      {Intrinsic::x86_avx512_cvtusi642ss, 95480}, // __builtin_ia32_cvtusi2ss64
-+      {Intrinsic::x86_avx512_cvtw2mask_128, 95507}, // __builtin_ia32_cvtw2mask128
-+      {Intrinsic::x86_avx512_cvtw2mask_256, 95535}, // __builtin_ia32_cvtw2mask256
-+      {Intrinsic::x86_avx512_cvtw2mask_512, 95563}, // __builtin_ia32_cvtw2mask512
-+      {Intrinsic::x86_avx512_mask_dbpsadbw_128, 101219}, // __builtin_ia32_dbpsadbw128_mask
-+      {Intrinsic::x86_avx512_mask_dbpsadbw_256, 101251}, // __builtin_ia32_dbpsadbw256_mask
-+      {Intrinsic::x86_avx512_mask_dbpsadbw_512, 101283}, // __builtin_ia32_dbpsadbw512_mask
-+      {Intrinsic::x86_avx512_mask_div_pd_512, 101315}, // __builtin_ia32_divpd512_mask
-+      {Intrinsic::x86_avx512_mask_div_ps_512, 101344}, // __builtin_ia32_divps512_mask
-+      {Intrinsic::x86_avx512_mask_div_sd_round, 101373}, // __builtin_ia32_divsd_round_mask
-+      {Intrinsic::x86_avx512_mask_div_ss_round, 101405}, // __builtin_ia32_divss_round_mask
-+      {Intrinsic::x86_sse41_dppd, 129558}, // __builtin_ia32_dppd
-+      {Intrinsic::x86_sse41_dpps, 129578}, // __builtin_ia32_dpps
-+      {Intrinsic::x86_avx_dp_ps_256, 90637}, // __builtin_ia32_dpps256
-+      {Intrinsic::x86_mmx_emms, 124721}, // __builtin_ia32_emms
-+      {Intrinsic::x86_avx512_exp2_pd, 95591}, // __builtin_ia32_exp2pd_mask
-+      {Intrinsic::x86_avx512_exp2_ps, 95618}, // __builtin_ia32_exp2ps_mask
-+      {Intrinsic::x86_avx512_mask_expand_pd_128, 101965}, // __builtin_ia32_expanddf128_mask
-+      {Intrinsic::x86_avx512_mask_expand_pd_256, 101997}, // __builtin_ia32_expanddf256_mask
-+      {Intrinsic::x86_avx512_mask_expand_pd_512, 102029}, // __builtin_ia32_expanddf512_mask
-+      {Intrinsic::x86_avx512_mask_expand_q_128, 102157}, // __builtin_ia32_expanddi128_mask
-+      {Intrinsic::x86_avx512_mask_expand_q_256, 102189}, // __builtin_ia32_expanddi256_mask
-+      {Intrinsic::x86_avx512_mask_expand_q_512, 102221}, // __builtin_ia32_expanddi512_mask
-+      {Intrinsic::x86_avx512_mask_expand_load_pd_128, 101641}, // __builtin_ia32_expandloaddf128_mask
-+      {Intrinsic::x86_avx512_mask_expand_load_pd_256, 101677}, // __builtin_ia32_expandloaddf256_mask
-+      {Intrinsic::x86_avx512_mask_expand_load_pd_512, 101713}, // __builtin_ia32_expandloaddf512_mask
-+      {Intrinsic::x86_avx512_mask_expand_load_q_128, 101857}, // __builtin_ia32_expandloaddi128_mask
-+      {Intrinsic::x86_avx512_mask_expand_load_q_256, 101893}, // __builtin_ia32_expandloaddi256_mask
-+      {Intrinsic::x86_avx512_mask_expand_load_q_512, 101929}, // __builtin_ia32_expandloaddi512_mask
-+      {Intrinsic::x86_avx512_mask_expand_load_ps_128, 101749}, // __builtin_ia32_expandloadsf128_mask
-+      {Intrinsic::x86_avx512_mask_expand_load_ps_256, 101785}, // __builtin_ia32_expandloadsf256_mask
-+      {Intrinsic::x86_avx512_mask_expand_load_ps_512, 101821}, // __builtin_ia32_expandloadsf512_mask
-+      {Intrinsic::x86_avx512_mask_expand_load_d_128, 101533}, // __builtin_ia32_expandloadsi128_mask
-+      {Intrinsic::x86_avx512_mask_expand_load_d_256, 101569}, // __builtin_ia32_expandloadsi256_mask
-+      {Intrinsic::x86_avx512_mask_expand_load_d_512, 101605}, // __builtin_ia32_expandloadsi512_mask
-+      {Intrinsic::x86_avx512_mask_expand_ps_128, 102061}, // __builtin_ia32_expandsf128_mask
-+      {Intrinsic::x86_avx512_mask_expand_ps_256, 102093}, // __builtin_ia32_expandsf256_mask
-+      {Intrinsic::x86_avx512_mask_expand_ps_512, 102125}, // __builtin_ia32_expandsf512_mask
-+      {Intrinsic::x86_avx512_mask_expand_d_128, 101437}, // __builtin_ia32_expandsi128_mask
-+      {Intrinsic::x86_avx512_mask_expand_d_256, 101469}, // __builtin_ia32_expandsi256_mask
-+      {Intrinsic::x86_avx512_mask_expand_d_512, 101501}, // __builtin_ia32_expandsi512_mask
-+      {Intrinsic::x86_avx512_mask_vextractf32x4_256, 114000}, // __builtin_ia32_extractf32x4_256_mask
-+      {Intrinsic::x86_avx512_mask_vextractf32x4_512, 114037}, // __builtin_ia32_extractf32x4_mask
-+      {Intrinsic::x86_avx512_mask_vextractf32x8_512, 114070}, // __builtin_ia32_extractf32x8_mask
-+      {Intrinsic::x86_avx512_mask_vextractf64x2_256, 114103}, // __builtin_ia32_extractf64x2_256_mask
-+      {Intrinsic::x86_avx512_mask_vextractf64x2_512, 114140}, // __builtin_ia32_extractf64x2_512_mask
-+      {Intrinsic::x86_avx512_mask_vextractf64x4_512, 114177}, // __builtin_ia32_extractf64x4_mask
-+      {Intrinsic::x86_avx512_mask_vextracti32x4_256, 114210}, // __builtin_ia32_extracti32x4_256_mask
-+      {Intrinsic::x86_avx512_mask_vextracti32x4_512, 114247}, // __builtin_ia32_extracti32x4_mask
-+      {Intrinsic::x86_avx512_mask_vextracti32x8_512, 114280}, // __builtin_ia32_extracti32x8_mask
-+      {Intrinsic::x86_avx512_mask_vextracti64x2_256, 114313}, // __builtin_ia32_extracti64x2_256_mask
-+      {Intrinsic::x86_avx512_mask_vextracti64x2_512, 114350}, // __builtin_ia32_extracti64x2_512_mask
-+      {Intrinsic::x86_avx512_mask_vextracti64x4_512, 114387}, // __builtin_ia32_extracti64x4_mask
-+      {Intrinsic::x86_sse4a_extrq, 130446}, // __builtin_ia32_extrq
-+      {Intrinsic::x86_sse4a_extrqi, 130467}, // __builtin_ia32_extrqi
-+      {Intrinsic::x86_mmx_femms, 124741}, // __builtin_ia32_femms
-+      {Intrinsic::x86_avx512_mask_fixupimm_pd_128, 102253}, // __builtin_ia32_fixupimmpd128_mask
-+      {Intrinsic::x86_avx512_maskz_fixupimm_pd_128, 117992}, // __builtin_ia32_fixupimmpd128_maskz
-+      {Intrinsic::x86_avx512_mask_fixupimm_pd_256, 102287}, // __builtin_ia32_fixupimmpd256_mask
-+      {Intrinsic::x86_avx512_maskz_fixupimm_pd_256, 118027}, // __builtin_ia32_fixupimmpd256_maskz
-+      {Intrinsic::x86_avx512_mask_fixupimm_pd_512, 102321}, // __builtin_ia32_fixupimmpd512_mask
-+      {Intrinsic::x86_avx512_maskz_fixupimm_pd_512, 118062}, // __builtin_ia32_fixupimmpd512_maskz
-+      {Intrinsic::x86_avx512_mask_fixupimm_ps_128, 102355}, // __builtin_ia32_fixupimmps128_mask
-+      {Intrinsic::x86_avx512_maskz_fixupimm_ps_128, 118097}, // __builtin_ia32_fixupimmps128_maskz
-+      {Intrinsic::x86_avx512_mask_fixupimm_ps_256, 102389}, // __builtin_ia32_fixupimmps256_mask
-+      {Intrinsic::x86_avx512_maskz_fixupimm_ps_256, 118132}, // __builtin_ia32_fixupimmps256_maskz
-+      {Intrinsic::x86_avx512_mask_fixupimm_ps_512, 102423}, // __builtin_ia32_fixupimmps512_mask
-+      {Intrinsic::x86_avx512_maskz_fixupimm_ps_512, 118167}, // __builtin_ia32_fixupimmps512_maskz
-+      {Intrinsic::x86_avx512_mask_fixupimm_sd, 102457}, // __builtin_ia32_fixupimmsd_mask
-+      {Intrinsic::x86_avx512_maskz_fixupimm_sd, 118202}, // __builtin_ia32_fixupimmsd_maskz
-+      {Intrinsic::x86_avx512_mask_fixupimm_ss, 102488}, // __builtin_ia32_fixupimmss_mask
-+      {Intrinsic::x86_avx512_maskz_fixupimm_ss, 118234}, // __builtin_ia32_fixupimmss_maskz
-+      {Intrinsic::x86_avx512_mask_fpclass_pd_128, 102519}, // __builtin_ia32_fpclasspd128_mask
-+      {Intrinsic::x86_avx512_mask_fpclass_pd_256, 102552}, // __builtin_ia32_fpclasspd256_mask
-+      {Intrinsic::x86_avx512_mask_fpclass_pd_512, 102585}, // __builtin_ia32_fpclasspd512_mask
-+      {Intrinsic::x86_avx512_mask_fpclass_ps_128, 102618}, // __builtin_ia32_fpclassps128_mask
-+      {Intrinsic::x86_avx512_mask_fpclass_ps_256, 102651}, // __builtin_ia32_fpclassps256_mask
-+      {Intrinsic::x86_avx512_mask_fpclass_ps_512, 102684}, // __builtin_ia32_fpclassps512_mask
-+      {Intrinsic::x86_avx512_mask_fpclass_sd, 102717}, // __builtin_ia32_fpclasssd_mask
-+      {Intrinsic::x86_avx512_mask_fpclass_ss, 102747}, // __builtin_ia32_fpclassss_mask
-+      {Intrinsic::x86_fxrstor, 124627}, // __builtin_ia32_fxrstor
-+      {Intrinsic::x86_fxrstor64, 124650}, // __builtin_ia32_fxrstor64
-+      {Intrinsic::x86_fxsave, 124675}, // __builtin_ia32_fxsave
-+      {Intrinsic::x86_fxsave64, 124697}, // __builtin_ia32_fxsave64
-+      {Intrinsic::x86_avx512_gather3div2_df, 95873}, // __builtin_ia32_gather3div2df
-+      {Intrinsic::x86_avx512_gather3div2_di, 95902}, // __builtin_ia32_gather3div2di
-+      {Intrinsic::x86_avx512_gather3div4_df, 95931}, // __builtin_ia32_gather3div4df
-+      {Intrinsic::x86_avx512_gather3div4_di, 95960}, // __builtin_ia32_gather3div4di
-+      {Intrinsic::x86_avx512_gather3div4_sf, 95989}, // __builtin_ia32_gather3div4sf
-+      {Intrinsic::x86_avx512_gather3div4_si, 96018}, // __builtin_ia32_gather3div4si
-+      {Intrinsic::x86_avx512_gather3div8_sf, 96047}, // __builtin_ia32_gather3div8sf
-+      {Intrinsic::x86_avx512_gather3div8_si, 96076}, // __builtin_ia32_gather3div8si
-+      {Intrinsic::x86_avx512_gather3siv2_df, 96105}, // __builtin_ia32_gather3siv2df
-+      {Intrinsic::x86_avx512_gather3siv2_di, 96134}, // __builtin_ia32_gather3siv2di
-+      {Intrinsic::x86_avx512_gather3siv4_df, 96163}, // __builtin_ia32_gather3siv4df
-+      {Intrinsic::x86_avx512_gather3siv4_di, 96192}, // __builtin_ia32_gather3siv4di
-+      {Intrinsic::x86_avx512_gather3siv4_sf, 96221}, // __builtin_ia32_gather3siv4sf
-+      {Intrinsic::x86_avx512_gather3siv4_si, 96250}, // __builtin_ia32_gather3siv4si
-+      {Intrinsic::x86_avx512_gather3siv8_sf, 96279}, // __builtin_ia32_gather3siv8sf
-+      {Intrinsic::x86_avx512_gather3siv8_si, 96308}, // __builtin_ia32_gather3siv8si
-+      {Intrinsic::x86_avx2_gather_d_d, 91965}, // __builtin_ia32_gatherd_d
-+      {Intrinsic::x86_avx2_gather_d_d_256, 91990}, // __builtin_ia32_gatherd_d256
-+      {Intrinsic::x86_avx2_gather_d_pd, 92018}, // __builtin_ia32_gatherd_pd
-+      {Intrinsic::x86_avx2_gather_d_pd_256, 92044}, // __builtin_ia32_gatherd_pd256
-+      {Intrinsic::x86_avx2_gather_d_ps, 92073}, // __builtin_ia32_gatherd_ps
-+      {Intrinsic::x86_avx2_gather_d_ps_256, 92099}, // __builtin_ia32_gatherd_ps256
-+      {Intrinsic::x86_avx2_gather_d_q, 92128}, // __builtin_ia32_gatherd_q
-+      {Intrinsic::x86_avx2_gather_d_q_256, 92153}, // __builtin_ia32_gatherd_q256
-+      {Intrinsic::x86_avx512_gather_qps_512, 95844}, // __builtin_ia32_gatherdiv16sf
-+      {Intrinsic::x86_avx512_gather_qpi_512, 95787}, // __builtin_ia32_gatherdiv16si
-+      {Intrinsic::x86_avx512_gather_qpd_512, 95759}, // __builtin_ia32_gatherdiv8df
-+      {Intrinsic::x86_avx512_gather_qpq_512, 95816}, // __builtin_ia32_gatherdiv8di
-+      {Intrinsic::x86_avx512_gatherpf_dpd_512, 96337}, // __builtin_ia32_gatherpfdpd
-+      {Intrinsic::x86_avx512_gatherpf_dps_512, 96364}, // __builtin_ia32_gatherpfdps
-+      {Intrinsic::x86_avx512_gatherpf_qpd_512, 96391}, // __builtin_ia32_gatherpfqpd
-+      {Intrinsic::x86_avx512_gatherpf_qps_512, 96418}, // __builtin_ia32_gatherpfqps
-+      {Intrinsic::x86_avx2_gather_q_d, 92181}, // __builtin_ia32_gatherq_d
-+      {Intrinsic::x86_avx2_gather_q_d_256, 92206}, // __builtin_ia32_gatherq_d256
-+      {Intrinsic::x86_avx2_gather_q_pd, 92234}, // __builtin_ia32_gatherq_pd
-+      {Intrinsic::x86_avx2_gather_q_pd_256, 92260}, // __builtin_ia32_gatherq_pd256
-+      {Intrinsic::x86_avx2_gather_q_ps, 92289}, // __builtin_ia32_gatherq_ps
-+      {Intrinsic::x86_avx2_gather_q_ps_256, 92315}, // __builtin_ia32_gatherq_ps256
-+      {Intrinsic::x86_avx2_gather_q_q, 92344}, // __builtin_ia32_gatherq_q
-+      {Intrinsic::x86_avx2_gather_q_q_256, 92369}, // __builtin_ia32_gatherq_q256
-+      {Intrinsic::x86_avx512_gather_dps_512, 95730}, // __builtin_ia32_gathersiv16sf
-+      {Intrinsic::x86_avx512_gather_dpi_512, 95673}, // __builtin_ia32_gathersiv16si
-+      {Intrinsic::x86_avx512_gather_dpd_512, 95645}, // __builtin_ia32_gathersiv8df
-+      {Intrinsic::x86_avx512_gather_dpq_512, 95702}, // __builtin_ia32_gathersiv8di
-+      {Intrinsic::x86_avx512_mask_getexp_pd_128, 102777}, // __builtin_ia32_getexppd128_mask
-+      {Intrinsic::x86_avx512_mask_getexp_pd_256, 102809}, // __builtin_ia32_getexppd256_mask
-+      {Intrinsic::x86_avx512_mask_getexp_pd_512, 102841}, // __builtin_ia32_getexppd512_mask
-+      {Intrinsic::x86_avx512_mask_getexp_ps_128, 102873}, // __builtin_ia32_getexpps128_mask
-+      {Intrinsic::x86_avx512_mask_getexp_ps_256, 102905}, // __builtin_ia32_getexpps256_mask
-+      {Intrinsic::x86_avx512_mask_getexp_ps_512, 102937}, // __builtin_ia32_getexpps512_mask
-+      {Intrinsic::x86_avx512_mask_getexp_sd, 102969}, // __builtin_ia32_getexpsd128_round_mask
-+      {Intrinsic::x86_avx512_mask_getexp_ss, 103007}, // __builtin_ia32_getexpss128_round_mask
-+      {Intrinsic::x86_avx512_mask_getmant_pd_128, 103045}, // __builtin_ia32_getmantpd128_mask
-+      {Intrinsic::x86_avx512_mask_getmant_pd_256, 103078}, // __builtin_ia32_getmantpd256_mask
-+      {Intrinsic::x86_avx512_mask_getmant_pd_512, 103111}, // __builtin_ia32_getmantpd512_mask
-+      {Intrinsic::x86_avx512_mask_getmant_ps_128, 103144}, // __builtin_ia32_getmantps128_mask
-+      {Intrinsic::x86_avx512_mask_getmant_ps_256, 103177}, // __builtin_ia32_getmantps256_mask
-+      {Intrinsic::x86_avx512_mask_getmant_ps_512, 103210}, // __builtin_ia32_getmantps512_mask
-+      {Intrinsic::x86_avx512_mask_getmant_sd, 103243}, // __builtin_ia32_getmantsd_round_mask
-+      {Intrinsic::x86_avx512_mask_getmant_ss, 103279}, // __builtin_ia32_getmantss_round_mask
-+      {Intrinsic::x86_sse3_hadd_pd, 129357}, // __builtin_ia32_haddpd
-+      {Intrinsic::x86_avx_hadd_pd_256, 90660}, // __builtin_ia32_haddpd256
-+      {Intrinsic::x86_sse3_hadd_ps, 129379}, // __builtin_ia32_haddps
-+      {Intrinsic::x86_avx_hadd_ps_256, 90685}, // __builtin_ia32_haddps256
-+      {Intrinsic::x86_sse3_hsub_pd, 129401}, // __builtin_ia32_hsubpd
-+      {Intrinsic::x86_avx_hsub_pd_256, 90710}, // __builtin_ia32_hsubpd256
-+      {Intrinsic::x86_sse3_hsub_ps, 129423}, // __builtin_ia32_hsubps
-+      {Intrinsic::x86_avx_hsub_ps_256, 90735}, // __builtin_ia32_hsubps256
-+      {Intrinsic::x86_avx512_mask_insertf32x4_256, 103315}, // __builtin_ia32_insertf32x4_256_mask
-+      {Intrinsic::x86_avx512_mask_insertf32x4_512, 103351}, // __builtin_ia32_insertf32x4_mask
-+      {Intrinsic::x86_avx512_mask_insertf32x8_512, 103383}, // __builtin_ia32_insertf32x8_mask
-+      {Intrinsic::x86_avx512_mask_insertf64x2_256, 103415}, // __builtin_ia32_insertf64x2_256_mask
-+      {Intrinsic::x86_avx512_mask_insertf64x2_512, 103451}, // __builtin_ia32_insertf64x2_512_mask
-+      {Intrinsic::x86_avx512_mask_insertf64x4_512, 103487}, // __builtin_ia32_insertf64x4_mask
-+      {Intrinsic::x86_avx512_mask_inserti32x4_256, 103519}, // __builtin_ia32_inserti32x4_256_mask
-+      {Intrinsic::x86_avx512_mask_inserti32x4_512, 103555}, // __builtin_ia32_inserti32x4_mask
-+      {Intrinsic::x86_avx512_mask_inserti32x8_512, 103587}, // __builtin_ia32_inserti32x8_mask
-+      {Intrinsic::x86_avx512_mask_inserti64x2_256, 103619}, // __builtin_ia32_inserti64x2_256_mask
-+      {Intrinsic::x86_avx512_mask_inserti64x2_512, 103655}, // __builtin_ia32_inserti64x2_512_mask
-+      {Intrinsic::x86_avx512_mask_inserti64x4_512, 103691}, // __builtin_ia32_inserti64x4_mask
-+      {Intrinsic::x86_sse41_insertps, 129598}, // __builtin_ia32_insertps128
-+      {Intrinsic::x86_sse4a_insertq, 130489}, // __builtin_ia32_insertq
-+      {Intrinsic::x86_sse4a_insertqi, 130512}, // __builtin_ia32_insertqi
-+      {Intrinsic::x86_avx512_kand_w, 96445}, // __builtin_ia32_kandhi
-+      {Intrinsic::x86_avx512_kandn_w, 96467}, // __builtin_ia32_kandnhi
-+      {Intrinsic::x86_avx512_knot_w, 96490}, // __builtin_ia32_knothi
-+      {Intrinsic::x86_avx512_kor_w, 96512}, // __builtin_ia32_korhi
-+      {Intrinsic::x86_avx512_kortestc_w, 96533}, // __builtin_ia32_kortestchi
-+      {Intrinsic::x86_avx512_kortestz_w, 96559}, // __builtin_ia32_kortestzhi
-+      {Intrinsic::x86_avx512_kunpck_dq, 96609}, // __builtin_ia32_kunpckdi
-+      {Intrinsic::x86_avx512_kunpck_bw, 96585}, // __builtin_ia32_kunpckhi
-+      {Intrinsic::x86_avx512_kunpck_wd, 96633}, // __builtin_ia32_kunpcksi
-+      {Intrinsic::x86_avx512_kxnor_w, 96657}, // __builtin_ia32_kxnorhi
-+      {Intrinsic::x86_avx512_kxor_w, 96680}, // __builtin_ia32_kxorhi
-+      {Intrinsic::x86_sse3_ldu_dq, 129445}, // __builtin_ia32_lddqu
-+      {Intrinsic::x86_avx_ldu_dq_256, 90760}, // __builtin_ia32_lddqu256
-+      {Intrinsic::x86_sse2_lfence, 128035}, // __builtin_ia32_lfence
-+      {Intrinsic::x86_avx2_maskload_d, 92397}, // __builtin_ia32_maskloadd
-+      {Intrinsic::x86_avx2_maskload_d_256, 92422}, // __builtin_ia32_maskloadd256
-+      {Intrinsic::x86_avx_maskload_pd, 90784}, // __builtin_ia32_maskloadpd
-+      {Intrinsic::x86_avx_maskload_pd_256, 90810}, // __builtin_ia32_maskloadpd256
-+      {Intrinsic::x86_avx_maskload_ps, 90839}, // __builtin_ia32_maskloadps
-+      {Intrinsic::x86_avx_maskload_ps_256, 90865}, // __builtin_ia32_maskloadps256
-+      {Intrinsic::x86_avx2_maskload_q, 92450}, // __builtin_ia32_maskloadq
-+      {Intrinsic::x86_avx2_maskload_q_256, 92475}, // __builtin_ia32_maskloadq256
-+      {Intrinsic::x86_sse2_maskmov_dqu, 128057}, // __builtin_ia32_maskmovdqu
-+      {Intrinsic::x86_mmx_maskmovq, 124762}, // __builtin_ia32_maskmovq
-+      {Intrinsic::x86_avx2_maskstore_d, 92503}, // __builtin_ia32_maskstored
-+      {Intrinsic::x86_avx2_maskstore_d_256, 92529}, // __builtin_ia32_maskstored256
-+      {Intrinsic::x86_avx_maskstore_pd, 90894}, // __builtin_ia32_maskstorepd
-+      {Intrinsic::x86_avx_maskstore_pd_256, 90921}, // __builtin_ia32_maskstorepd256
-+      {Intrinsic::x86_avx_maskstore_ps, 90951}, // __builtin_ia32_maskstoreps
-+      {Intrinsic::x86_avx_maskstore_ps_256, 90978}, // __builtin_ia32_maskstoreps256
-+      {Intrinsic::x86_avx2_maskstore_q, 92558}, // __builtin_ia32_maskstoreq
-+      {Intrinsic::x86_avx2_maskstore_q_256, 92584}, // __builtin_ia32_maskstoreq256
-+      {Intrinsic::x86_sse2_max_pd, 128083}, // __builtin_ia32_maxpd
-+      {Intrinsic::x86_avx_max_pd_256, 91008}, // __builtin_ia32_maxpd256
-+      {Intrinsic::x86_avx512_mask_max_pd_256, 103749}, // __builtin_ia32_maxpd256_mask
-+      {Intrinsic::x86_avx512_mask_max_pd_512, 103778}, // __builtin_ia32_maxpd512_mask
-+      {Intrinsic::x86_avx512_mask_max_pd_128, 103723}, // __builtin_ia32_maxpd_mask
-+      {Intrinsic::x86_sse_max_ps, 127151}, // __builtin_ia32_maxps
-+      {Intrinsic::x86_avx_max_ps_256, 91032}, // __builtin_ia32_maxps256
-+      {Intrinsic::x86_avx512_mask_max_ps_256, 103833}, // __builtin_ia32_maxps256_mask
-+      {Intrinsic::x86_avx512_mask_max_ps_512, 103862}, // __builtin_ia32_maxps512_mask
-+      {Intrinsic::x86_avx512_mask_max_ps_128, 103807}, // __builtin_ia32_maxps_mask
-+      {Intrinsic::x86_sse2_max_sd, 128104}, // __builtin_ia32_maxsd
-+      {Intrinsic::x86_avx512_mask_max_sd_round, 103891}, // __builtin_ia32_maxsd_round_mask
-+      {Intrinsic::x86_sse_max_ss, 127172}, // __builtin_ia32_maxss
-+      {Intrinsic::x86_avx512_mask_max_ss_round, 103923}, // __builtin_ia32_maxss_round_mask
-+      {Intrinsic::x86_sse2_mfence, 128125}, // __builtin_ia32_mfence
-+      {Intrinsic::x86_sse2_min_pd, 128147}, // __builtin_ia32_minpd
-+      {Intrinsic::x86_avx_min_pd_256, 91056}, // __builtin_ia32_minpd256
-+      {Intrinsic::x86_avx512_mask_min_pd_256, 103981}, // __builtin_ia32_minpd256_mask
-+      {Intrinsic::x86_avx512_mask_min_pd_512, 104010}, // __builtin_ia32_minpd512_mask
-+      {Intrinsic::x86_avx512_mask_min_pd_128, 103955}, // __builtin_ia32_minpd_mask
-+      {Intrinsic::x86_sse_min_ps, 127193}, // __builtin_ia32_minps
-+      {Intrinsic::x86_avx_min_ps_256, 91080}, // __builtin_ia32_minps256
-+      {Intrinsic::x86_avx512_mask_min_ps_256, 104065}, // __builtin_ia32_minps256_mask
-+      {Intrinsic::x86_avx512_mask_min_ps_512, 104094}, // __builtin_ia32_minps512_mask
-+      {Intrinsic::x86_avx512_mask_min_ps_128, 104039}, // __builtin_ia32_minps_mask
-+      {Intrinsic::x86_sse2_min_sd, 128168}, // __builtin_ia32_minsd
-+      {Intrinsic::x86_avx512_mask_min_sd_round, 104123}, // __builtin_ia32_minsd_round_mask
-+      {Intrinsic::x86_sse_min_ss, 127214}, // __builtin_ia32_minss
-+      {Intrinsic::x86_avx512_mask_min_ss_round, 104155}, // __builtin_ia32_minss_round_mask
-+      {Intrinsic::x86_sse3_monitor, 129466}, // __builtin_ia32_monitor
-+      {Intrinsic::x86_monitorx, 126308}, // __builtin_ia32_monitorx
-+      {Intrinsic::x86_sse2_movmsk_pd, 128189}, // __builtin_ia32_movmskpd
-+      {Intrinsic::x86_avx_movmsk_pd_256, 91104}, // __builtin_ia32_movmskpd256
-+      {Intrinsic::x86_sse_movmsk_ps, 127235}, // __builtin_ia32_movmskps
-+      {Intrinsic::x86_avx_movmsk_ps_256, 91131}, // __builtin_ia32_movmskps256
-+      {Intrinsic::x86_sse41_movntdqa, 129625}, // __builtin_ia32_movntdqa
-+      {Intrinsic::x86_avx2_movntdqa, 92613}, // __builtin_ia32_movntdqa256
-+      {Intrinsic::x86_avx512_movntdqa, 119822}, // __builtin_ia32_movntdqa512
-+      {Intrinsic::x86_mmx_movnt_dq, 124786}, // __builtin_ia32_movntq
-+      {Intrinsic::x86_sse41_mpsadbw, 129649}, // __builtin_ia32_mpsadbw128
-+      {Intrinsic::x86_avx2_mpsadbw, 92640}, // __builtin_ia32_mpsadbw256
-+      {Intrinsic::x86_avx512_mask_mul_pd_512, 104187}, // __builtin_ia32_mulpd512_mask
-+      {Intrinsic::x86_avx512_mask_mul_ps_512, 104216}, // __builtin_ia32_mulps512_mask
-+      {Intrinsic::x86_avx512_mask_mul_sd_round, 104245}, // __builtin_ia32_mulsd_round_mask
-+      {Intrinsic::x86_avx512_mask_mul_ss_round, 104277}, // __builtin_ia32_mulss_round_mask
-+      {Intrinsic::x86_sse3_mwait, 129489}, // __builtin_ia32_mwait
-+      {Intrinsic::x86_mwaitx, 126332}, // __builtin_ia32_mwaitx
-+      {Intrinsic::x86_ssse3_pabs_b, 130536}, // __builtin_ia32_pabsb
-+      {Intrinsic::x86_ssse3_pabs_b_128, 130557}, // __builtin_ia32_pabsb128
-+      {Intrinsic::x86_avx512_mask_pabs_b_128, 104309}, // __builtin_ia32_pabsb128_mask
-+      {Intrinsic::x86_avx2_pabs_b, 92666}, // __builtin_ia32_pabsb256
-+      {Intrinsic::x86_avx512_mask_pabs_b_256, 104338}, // __builtin_ia32_pabsb256_mask
-+      {Intrinsic::x86_avx512_mask_pabs_b_512, 104367}, // __builtin_ia32_pabsb512_mask
-+      {Intrinsic::x86_ssse3_pabs_d, 130581}, // __builtin_ia32_pabsd
-+      {Intrinsic::x86_ssse3_pabs_d_128, 130602}, // __builtin_ia32_pabsd128
-+      {Intrinsic::x86_avx512_mask_pabs_d_128, 104396}, // __builtin_ia32_pabsd128_mask
-+      {Intrinsic::x86_avx2_pabs_d, 92690}, // __builtin_ia32_pabsd256
-+      {Intrinsic::x86_avx512_mask_pabs_d_256, 104425}, // __builtin_ia32_pabsd256_mask
-+      {Intrinsic::x86_avx512_mask_pabs_d_512, 104454}, // __builtin_ia32_pabsd512_mask
-+      {Intrinsic::x86_avx512_mask_pabs_q_128, 104483}, // __builtin_ia32_pabsq128_mask
-+      {Intrinsic::x86_avx512_mask_pabs_q_256, 104512}, // __builtin_ia32_pabsq256_mask
-+      {Intrinsic::x86_avx512_mask_pabs_q_512, 104541}, // __builtin_ia32_pabsq512_mask
-+      {Intrinsic::x86_ssse3_pabs_w, 130626}, // __builtin_ia32_pabsw
-+      {Intrinsic::x86_ssse3_pabs_w_128, 130647}, // __builtin_ia32_pabsw128
-+      {Intrinsic::x86_avx512_mask_pabs_w_128, 104570}, // __builtin_ia32_pabsw128_mask
-+      {Intrinsic::x86_avx2_pabs_w, 92714}, // __builtin_ia32_pabsw256
-+      {Intrinsic::x86_avx512_mask_pabs_w_256, 104599}, // __builtin_ia32_pabsw256_mask
-+      {Intrinsic::x86_avx512_mask_pabs_w_512, 104628}, // __builtin_ia32_pabsw512_mask
-+      {Intrinsic::x86_mmx_packssdw, 124808}, // __builtin_ia32_packssdw
-+      {Intrinsic::x86_sse2_packssdw_128, 128213}, // __builtin_ia32_packssdw128
-+      {Intrinsic::x86_avx512_mask_packssdw_128, 104657}, // __builtin_ia32_packssdw128_mask
-+      {Intrinsic::x86_avx2_packssdw, 92738}, // __builtin_ia32_packssdw256
-+      {Intrinsic::x86_avx512_mask_packssdw_256, 104689}, // __builtin_ia32_packssdw256_mask
-+      {Intrinsic::x86_avx512_mask_packssdw_512, 104721}, // __builtin_ia32_packssdw512_mask
-+      {Intrinsic::x86_mmx_packsswb, 124832}, // __builtin_ia32_packsswb
-+      {Intrinsic::x86_sse2_packsswb_128, 128240}, // __builtin_ia32_packsswb128
-+      {Intrinsic::x86_avx512_mask_packsswb_128, 104753}, // __builtin_ia32_packsswb128_mask
-+      {Intrinsic::x86_avx2_packsswb, 92765}, // __builtin_ia32_packsswb256
-+      {Intrinsic::x86_avx512_mask_packsswb_256, 104785}, // __builtin_ia32_packsswb256_mask
-+      {Intrinsic::x86_avx512_mask_packsswb_512, 104817}, // __builtin_ia32_packsswb512_mask
-+      {Intrinsic::x86_sse41_packusdw, 129675}, // __builtin_ia32_packusdw128
-+      {Intrinsic::x86_avx512_mask_packusdw_128, 104849}, // __builtin_ia32_packusdw128_mask
-+      {Intrinsic::x86_avx2_packusdw, 92792}, // __builtin_ia32_packusdw256
-+      {Intrinsic::x86_avx512_mask_packusdw_256, 104881}, // __builtin_ia32_packusdw256_mask
-+      {Intrinsic::x86_avx512_mask_packusdw_512, 104913}, // __builtin_ia32_packusdw512_mask
-+      {Intrinsic::x86_mmx_packuswb, 124856}, // __builtin_ia32_packuswb
-+      {Intrinsic::x86_sse2_packuswb_128, 128267}, // __builtin_ia32_packuswb128
-+      {Intrinsic::x86_avx512_mask_packuswb_128, 104945}, // __builtin_ia32_packuswb128_mask
-+      {Intrinsic::x86_avx2_packuswb, 92819}, // __builtin_ia32_packuswb256
-+      {Intrinsic::x86_avx512_mask_packuswb_256, 104977}, // __builtin_ia32_packuswb256_mask
-+      {Intrinsic::x86_avx512_mask_packuswb_512, 105009}, // __builtin_ia32_packuswb512_mask
-+      {Intrinsic::x86_mmx_padd_b, 124880}, // __builtin_ia32_paddb
-+      {Intrinsic::x86_mmx_padd_d, 124901}, // __builtin_ia32_paddd
-+      {Intrinsic::x86_mmx_padd_q, 124922}, // __builtin_ia32_paddq
-+      {Intrinsic::x86_mmx_padds_b, 124964}, // __builtin_ia32_paddsb
-+      {Intrinsic::x86_sse2_padds_b, 128294}, // __builtin_ia32_paddsb128
-+      {Intrinsic::x86_avx512_mask_padds_b_128, 105041}, // __builtin_ia32_paddsb128_mask
-+      {Intrinsic::x86_avx2_padds_b, 92846}, // __builtin_ia32_paddsb256
-+      {Intrinsic::x86_avx512_mask_padds_b_256, 105071}, // __builtin_ia32_paddsb256_mask
-+      {Intrinsic::x86_avx512_mask_padds_b_512, 105101}, // __builtin_ia32_paddsb512_mask
-+      {Intrinsic::x86_mmx_padds_w, 124986}, // __builtin_ia32_paddsw
-+      {Intrinsic::x86_sse2_padds_w, 128319}, // __builtin_ia32_paddsw128
-+      {Intrinsic::x86_avx512_mask_padds_w_128, 105131}, // __builtin_ia32_paddsw128_mask
-+      {Intrinsic::x86_avx2_padds_w, 92871}, // __builtin_ia32_paddsw256
-+      {Intrinsic::x86_avx512_mask_padds_w_256, 105161}, // __builtin_ia32_paddsw256_mask
-+      {Intrinsic::x86_avx512_mask_padds_w_512, 105191}, // __builtin_ia32_paddsw512_mask
-+      {Intrinsic::x86_mmx_paddus_b, 125008}, // __builtin_ia32_paddusb
-+      {Intrinsic::x86_sse2_paddus_b, 128344}, // __builtin_ia32_paddusb128
-+      {Intrinsic::x86_avx512_mask_paddus_b_128, 105221}, // __builtin_ia32_paddusb128_mask
-+      {Intrinsic::x86_avx2_paddus_b, 92896}, // __builtin_ia32_paddusb256
-+      {Intrinsic::x86_avx512_mask_paddus_b_256, 105252}, // __builtin_ia32_paddusb256_mask
-+      {Intrinsic::x86_avx512_mask_paddus_b_512, 105283}, // __builtin_ia32_paddusb512_mask
-+      {Intrinsic::x86_mmx_paddus_w, 125031}, // __builtin_ia32_paddusw
-+      {Intrinsic::x86_sse2_paddus_w, 128370}, // __builtin_ia32_paddusw128
-+      {Intrinsic::x86_avx512_mask_paddus_w_128, 105314}, // __builtin_ia32_paddusw128_mask
-+      {Intrinsic::x86_avx2_paddus_w, 92922}, // __builtin_ia32_paddusw256
-+      {Intrinsic::x86_avx512_mask_paddus_w_256, 105345}, // __builtin_ia32_paddusw256_mask
-+      {Intrinsic::x86_avx512_mask_paddus_w_512, 105376}, // __builtin_ia32_paddusw512_mask
-+      {Intrinsic::x86_mmx_padd_w, 124943}, // __builtin_ia32_paddw
-+      {Intrinsic::x86_mmx_palignr_b, 125054}, // __builtin_ia32_palignr
-+      {Intrinsic::x86_mmx_pand, 125077}, // __builtin_ia32_pand
-+      {Intrinsic::x86_mmx_pandn, 125097}, // __builtin_ia32_pandn
-+      {Intrinsic::x86_sse2_pause, 128396}, // __builtin_ia32_pause
-+      {Intrinsic::x86_mmx_pavg_b, 125118}, // __builtin_ia32_pavgb
-+      {Intrinsic::x86_sse2_pavg_b, 128417}, // __builtin_ia32_pavgb128
-+      {Intrinsic::x86_avx512_mask_pavg_b_128, 105407}, // __builtin_ia32_pavgb128_mask
-+      {Intrinsic::x86_avx2_pavg_b, 92948}, // __builtin_ia32_pavgb256
-+      {Intrinsic::x86_avx512_mask_pavg_b_256, 105436}, // __builtin_ia32_pavgb256_mask
-+      {Intrinsic::x86_avx512_mask_pavg_b_512, 105465}, // __builtin_ia32_pavgb512_mask
-+      {Intrinsic::x86_3dnow_pavgusb, 89576}, // __builtin_ia32_pavgusb
-+      {Intrinsic::x86_mmx_pavg_w, 125139}, // __builtin_ia32_pavgw
-+      {Intrinsic::x86_sse2_pavg_w, 128441}, // __builtin_ia32_pavgw128
-+      {Intrinsic::x86_avx512_mask_pavg_w_128, 105494}, // __builtin_ia32_pavgw128_mask
-+      {Intrinsic::x86_avx2_pavg_w, 92972}, // __builtin_ia32_pavgw256
-+      {Intrinsic::x86_avx512_mask_pavg_w_256, 105523}, // __builtin_ia32_pavgw256_mask
-+      {Intrinsic::x86_avx512_mask_pavg_w_512, 105552}, // __builtin_ia32_pavgw512_mask
-+      {Intrinsic::x86_sse41_pblendvb, 129702}, // __builtin_ia32_pblendvb128
-+      {Intrinsic::x86_avx2_pblendvb, 92996}, // __builtin_ia32_pblendvb256
-+      {Intrinsic::x86_avx512_mask_pbroadcast_b_gpr_128, 105581}, // __builtin_ia32_pbroadcastb128_gpr_mask
-+      {Intrinsic::x86_avx512_mask_pbroadcast_b_gpr_256, 105620}, // __builtin_ia32_pbroadcastb256_gpr_mask
-+      {Intrinsic::x86_avx512_mask_pbroadcast_b_gpr_512, 105659}, // __builtin_ia32_pbroadcastb512_gpr_mask
-+      {Intrinsic::x86_avx512_mask_pbroadcast_d_gpr_128, 105698}, // __builtin_ia32_pbroadcastd128_gpr_mask
-+      {Intrinsic::x86_avx512_mask_pbroadcast_d_gpr_256, 105737}, // __builtin_ia32_pbroadcastd256_gpr_mask
-+      {Intrinsic::x86_avx512_mask_pbroadcast_d_gpr_512, 105776}, // __builtin_ia32_pbroadcastd512_gpr_mask
-+      {Intrinsic::x86_avx512_mask_pbroadcast_q_gpr_128, 105815}, // __builtin_ia32_pbroadcastq128_gpr_mask
-+      {Intrinsic::x86_avx512_mask_pbroadcast_q_gpr_256, 105854}, // __builtin_ia32_pbroadcastq256_gpr_mask
-+      {Intrinsic::x86_avx512_mask_pbroadcast_q_gpr_512, 105893}, // __builtin_ia32_pbroadcastq512_gpr_mask
-+      {Intrinsic::x86_avx512_mask_pbroadcast_q_mem_512, 105932}, // __builtin_ia32_pbroadcastq512_mem_mask
-+      {Intrinsic::x86_avx512_mask_pbroadcast_w_gpr_128, 105971}, // __builtin_ia32_pbroadcastw128_gpr_mask
-+      {Intrinsic::x86_avx512_mask_pbroadcast_w_gpr_256, 106010}, // __builtin_ia32_pbroadcastw256_gpr_mask
-+      {Intrinsic::x86_avx512_mask_pbroadcast_w_gpr_512, 106049}, // __builtin_ia32_pbroadcastw512_gpr_mask
-+      {Intrinsic::x86_pclmulqdq, 126354}, // __builtin_ia32_pclmulqdq128
-+      {Intrinsic::x86_mmx_pcmpeq_b, 125160}, // __builtin_ia32_pcmpeqb
-+      {Intrinsic::x86_mmx_pcmpeq_d, 125183}, // __builtin_ia32_pcmpeqd
-+      {Intrinsic::x86_mmx_pcmpeq_w, 125206}, // __builtin_ia32_pcmpeqw
-+      {Intrinsic::x86_sse42_pcmpestri128, 130044}, // __builtin_ia32_pcmpestri128
-+      {Intrinsic::x86_sse42_pcmpestria128, 130072}, // __builtin_ia32_pcmpestria128
-+      {Intrinsic::x86_sse42_pcmpestric128, 130101}, // __builtin_ia32_pcmpestric128
-+      {Intrinsic::x86_sse42_pcmpestrio128, 130130}, // __builtin_ia32_pcmpestrio128
-+      {Intrinsic::x86_sse42_pcmpestris128, 130159}, // __builtin_ia32_pcmpestris128
-+      {Intrinsic::x86_sse42_pcmpestriz128, 130188}, // __builtin_ia32_pcmpestriz128
-+      {Intrinsic::x86_sse42_pcmpestrm128, 130217}, // __builtin_ia32_pcmpestrm128
-+      {Intrinsic::x86_mmx_pcmpgt_b, 125229}, // __builtin_ia32_pcmpgtb
-+      {Intrinsic::x86_mmx_pcmpgt_d, 125252}, // __builtin_ia32_pcmpgtd
-+      {Intrinsic::x86_mmx_pcmpgt_w, 125275}, // __builtin_ia32_pcmpgtw
-+      {Intrinsic::x86_sse42_pcmpistri128, 130245}, // __builtin_ia32_pcmpistri128
-+      {Intrinsic::x86_sse42_pcmpistria128, 130273}, // __builtin_ia32_pcmpistria128
-+      {Intrinsic::x86_sse42_pcmpistric128, 130302}, // __builtin_ia32_pcmpistric128
-+      {Intrinsic::x86_sse42_pcmpistrio128, 130331}, // __builtin_ia32_pcmpistrio128
-+      {Intrinsic::x86_sse42_pcmpistris128, 130360}, // __builtin_ia32_pcmpistris128
-+      {Intrinsic::x86_sse42_pcmpistriz128, 130389}, // __builtin_ia32_pcmpistriz128
-+      {Intrinsic::x86_sse42_pcmpistrm128, 130418}, // __builtin_ia32_pcmpistrm128
-+      {Intrinsic::x86_bmi_pdep_64, 123570}, // __builtin_ia32_pdep_di
-+      {Intrinsic::x86_bmi_pdep_32, 123547}, // __builtin_ia32_pdep_si
-+      {Intrinsic::x86_avx2_vperm2i128, 94300}, // __builtin_ia32_permti256
-+      {Intrinsic::x86_avx512_mask_permvar_df_256, 106088}, // __builtin_ia32_permvardf256_mask
-+      {Intrinsic::x86_avx512_mask_permvar_df_512, 106121}, // __builtin_ia32_permvardf512_mask
-+      {Intrinsic::x86_avx512_mask_permvar_di_256, 106154}, // __builtin_ia32_permvardi256_mask
-+      {Intrinsic::x86_avx512_mask_permvar_di_512, 106187}, // __builtin_ia32_permvardi512_mask
-+      {Intrinsic::x86_avx512_mask_permvar_hi_128, 106220}, // __builtin_ia32_permvarhi128_mask
-+      {Intrinsic::x86_avx512_mask_permvar_hi_256, 106253}, // __builtin_ia32_permvarhi256_mask
-+      {Intrinsic::x86_avx512_mask_permvar_hi_512, 106286}, // __builtin_ia32_permvarhi512_mask
-+      {Intrinsic::x86_avx512_mask_permvar_qi_128, 106319}, // __builtin_ia32_permvarqi128_mask
-+      {Intrinsic::x86_avx512_mask_permvar_qi_256, 106352}, // __builtin_ia32_permvarqi256_mask
-+      {Intrinsic::x86_avx512_mask_permvar_qi_512, 106385}, // __builtin_ia32_permvarqi512_mask
-+      {Intrinsic::x86_avx2_permps, 93051}, // __builtin_ia32_permvarsf256
-+      {Intrinsic::x86_avx512_mask_permvar_sf_256, 106418}, // __builtin_ia32_permvarsf256_mask
-+      {Intrinsic::x86_avx512_mask_permvar_sf_512, 106451}, // __builtin_ia32_permvarsf512_mask
-+      {Intrinsic::x86_avx2_permd, 93023}, // __builtin_ia32_permvarsi256
-+      {Intrinsic::x86_avx512_mask_permvar_si_256, 106484}, // __builtin_ia32_permvarsi256_mask
-+      {Intrinsic::x86_avx512_mask_permvar_si_512, 106517}, // __builtin_ia32_permvarsi512_mask
-+      {Intrinsic::x86_bmi_pext_64, 123616}, // __builtin_ia32_pext_di
-+      {Intrinsic::x86_bmi_pext_32, 123593}, // __builtin_ia32_pext_si
-+      {Intrinsic::x86_3dnow_pf2id, 89599}, // __builtin_ia32_pf2id
-+      {Intrinsic::x86_3dnowa_pf2iw, 89997}, // __builtin_ia32_pf2iw
-+      {Intrinsic::x86_3dnow_pfacc, 89620}, // __builtin_ia32_pfacc
-+      {Intrinsic::x86_3dnow_pfadd, 89641}, // __builtin_ia32_pfadd
-+      {Intrinsic::x86_3dnow_pfcmpeq, 89662}, // __builtin_ia32_pfcmpeq
-+      {Intrinsic::x86_3dnow_pfcmpge, 89685}, // __builtin_ia32_pfcmpge
-+      {Intrinsic::x86_3dnow_pfcmpgt, 89708}, // __builtin_ia32_pfcmpgt
-+      {Intrinsic::x86_3dnow_pfmax, 89731}, // __builtin_ia32_pfmax
-+      {Intrinsic::x86_3dnow_pfmin, 89752}, // __builtin_ia32_pfmin
-+      {Intrinsic::x86_3dnow_pfmul, 89773}, // __builtin_ia32_pfmul
-+      {Intrinsic::x86_3dnowa_pfnacc, 90018}, // __builtin_ia32_pfnacc
-+      {Intrinsic::x86_3dnowa_pfpnacc, 90040}, // __builtin_ia32_pfpnacc
-+      {Intrinsic::x86_3dnow_pfrcp, 89794}, // __builtin_ia32_pfrcp
-+      {Intrinsic::x86_3dnow_pfrcpit1, 89815}, // __builtin_ia32_pfrcpit1
-+      {Intrinsic::x86_3dnow_pfrcpit2, 89839}, // __builtin_ia32_pfrcpit2
-+      {Intrinsic::x86_3dnow_pfrsqit1, 89863}, // __builtin_ia32_pfrsqit1
-+      {Intrinsic::x86_3dnow_pfrsqrt, 89887}, // __builtin_ia32_pfrsqrt
-+      {Intrinsic::x86_3dnow_pfsub, 89910}, // __builtin_ia32_pfsub
-+      {Intrinsic::x86_3dnow_pfsubr, 89931}, // __builtin_ia32_pfsubr
-+      {Intrinsic::x86_ssse3_phadd_d, 130671}, // __builtin_ia32_phaddd
-+      {Intrinsic::x86_ssse3_phadd_d_128, 130693}, // __builtin_ia32_phaddd128
-+      {Intrinsic::x86_avx2_phadd_d, 93079}, // __builtin_ia32_phaddd256
-+      {Intrinsic::x86_ssse3_phadd_sw, 130718}, // __builtin_ia32_phaddsw
-+      {Intrinsic::x86_ssse3_phadd_sw_128, 130741}, // __builtin_ia32_phaddsw128
-+      {Intrinsic::x86_avx2_phadd_sw, 93104}, // __builtin_ia32_phaddsw256
-+      {Intrinsic::x86_ssse3_phadd_w, 130767}, // __builtin_ia32_phaddw
-+      {Intrinsic::x86_ssse3_phadd_w_128, 130789}, // __builtin_ia32_phaddw128
-+      {Intrinsic::x86_avx2_phadd_w, 93130}, // __builtin_ia32_phaddw256
-+      {Intrinsic::x86_sse41_phminposuw, 129729}, // __builtin_ia32_phminposuw128
-+      {Intrinsic::x86_ssse3_phsub_d, 130814}, // __builtin_ia32_phsubd
-+      {Intrinsic::x86_ssse3_phsub_d_128, 130836}, // __builtin_ia32_phsubd128
-+      {Intrinsic::x86_avx2_phsub_d, 93155}, // __builtin_ia32_phsubd256
-+      {Intrinsic::x86_ssse3_phsub_sw, 130861}, // __builtin_ia32_phsubsw
-+      {Intrinsic::x86_ssse3_phsub_sw_128, 130884}, // __builtin_ia32_phsubsw128
-+      {Intrinsic::x86_avx2_phsub_sw, 93180}, // __builtin_ia32_phsubsw256
-+      {Intrinsic::x86_ssse3_phsub_w, 130910}, // __builtin_ia32_phsubw
-+      {Intrinsic::x86_ssse3_phsub_w_128, 130932}, // __builtin_ia32_phsubw128
-+      {Intrinsic::x86_avx2_phsub_w, 93206}, // __builtin_ia32_phsubw256
-+      {Intrinsic::x86_3dnow_pi2fd, 89953}, // __builtin_ia32_pi2fd
-+      {Intrinsic::x86_3dnowa_pi2fw, 90063}, // __builtin_ia32_pi2fw
-+      {Intrinsic::x86_ssse3_pmadd_ub_sw, 130957}, // __builtin_ia32_pmaddubsw
-+      {Intrinsic::x86_ssse3_pmadd_ub_sw_128, 130982}, // __builtin_ia32_pmaddubsw128
-+      {Intrinsic::x86_avx512_mask_pmaddubs_w_128, 106550}, // __builtin_ia32_pmaddubsw128_mask
-+      {Intrinsic::x86_avx2_pmadd_ub_sw, 93231}, // __builtin_ia32_pmaddubsw256
-+      {Intrinsic::x86_avx512_mask_pmaddubs_w_256, 106583}, // __builtin_ia32_pmaddubsw256_mask
-+      {Intrinsic::x86_avx512_mask_pmaddubs_w_512, 106616}, // __builtin_ia32_pmaddubsw512_mask
-+      {Intrinsic::x86_mmx_pmadd_wd, 125354}, // __builtin_ia32_pmaddwd
-+      {Intrinsic::x86_sse2_pmadd_wd, 128465}, // __builtin_ia32_pmaddwd128
-+      {Intrinsic::x86_avx512_mask_pmaddw_d_128, 106649}, // __builtin_ia32_pmaddwd128_mask
-+      {Intrinsic::x86_avx2_pmadd_wd, 93259}, // __builtin_ia32_pmaddwd256
-+      {Intrinsic::x86_avx512_mask_pmaddw_d_256, 106680}, // __builtin_ia32_pmaddwd256_mask
-+      {Intrinsic::x86_avx512_mask_pmaddw_d_512, 106711}, // __builtin_ia32_pmaddwd512_mask
-+      {Intrinsic::x86_mmx_pmaxs_w, 125377}, // __builtin_ia32_pmaxsw
-+      {Intrinsic::x86_mmx_pmaxu_b, 125399}, // __builtin_ia32_pmaxub
-+      {Intrinsic::x86_mmx_pmins_w, 125421}, // __builtin_ia32_pminsw
-+      {Intrinsic::x86_mmx_pminu_b, 125443}, // __builtin_ia32_pminub
-+      {Intrinsic::x86_avx512_mask_pmov_db_128, 106742}, // __builtin_ia32_pmovdb128_mask
-+      {Intrinsic::x86_avx512_mask_pmov_db_mem_128, 106832}, // __builtin_ia32_pmovdb128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_db_256, 106772}, // __builtin_ia32_pmovdb256_mask
-+      {Intrinsic::x86_avx512_mask_pmov_db_mem_256, 106865}, // __builtin_ia32_pmovdb256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_db_512, 106802}, // __builtin_ia32_pmovdb512_mask
-+      {Intrinsic::x86_avx512_mask_pmov_db_mem_512, 106898}, // __builtin_ia32_pmovdb512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_dw_128, 106931}, // __builtin_ia32_pmovdw128_mask
-+      {Intrinsic::x86_avx512_mask_pmov_dw_mem_128, 107021}, // __builtin_ia32_pmovdw128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_dw_256, 106961}, // __builtin_ia32_pmovdw256_mask
-+      {Intrinsic::x86_avx512_mask_pmov_dw_mem_256, 107054}, // __builtin_ia32_pmovdw256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_dw_512, 106991}, // __builtin_ia32_pmovdw512_mask
-+      {Intrinsic::x86_avx512_mask_pmov_dw_mem_512, 107087}, // __builtin_ia32_pmovdw512mem_mask
-+      {Intrinsic::x86_mmx_pmovmskb, 125465}, // __builtin_ia32_pmovmskb
-+      {Intrinsic::x86_sse2_pmovmskb_128, 128491}, // __builtin_ia32_pmovmskb128
-+      {Intrinsic::x86_avx2_pmovmskb, 93285}, // __builtin_ia32_pmovmskb256
-+      {Intrinsic::x86_avx512_mask_pmov_qb_128, 107120}, // __builtin_ia32_pmovqb128_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qb_mem_128, 107210}, // __builtin_ia32_pmovqb128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qb_256, 107150}, // __builtin_ia32_pmovqb256_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qb_mem_256, 107243}, // __builtin_ia32_pmovqb256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qb_512, 107180}, // __builtin_ia32_pmovqb512_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qb_mem_512, 107276}, // __builtin_ia32_pmovqb512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qd_128, 107309}, // __builtin_ia32_pmovqd128_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qd_mem_128, 107399}, // __builtin_ia32_pmovqd128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qd_256, 107339}, // __builtin_ia32_pmovqd256_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qd_mem_256, 107432}, // __builtin_ia32_pmovqd256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qd_512, 107369}, // __builtin_ia32_pmovqd512_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qd_mem_512, 107465}, // __builtin_ia32_pmovqd512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qw_128, 107498}, // __builtin_ia32_pmovqw128_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qw_mem_128, 107588}, // __builtin_ia32_pmovqw128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qw_256, 107528}, // __builtin_ia32_pmovqw256_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qw_mem_256, 107621}, // __builtin_ia32_pmovqw256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qw_512, 107558}, // __builtin_ia32_pmovqw512_mask
-+      {Intrinsic::x86_avx512_mask_pmov_qw_mem_512, 107654}, // __builtin_ia32_pmovqw512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_db_128, 107876}, // __builtin_ia32_pmovsdb128_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_db_mem_128, 107969}, // __builtin_ia32_pmovsdb128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_db_256, 107907}, // __builtin_ia32_pmovsdb256_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_db_mem_256, 108003}, // __builtin_ia32_pmovsdb256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_db_512, 107938}, // __builtin_ia32_pmovsdb512_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_db_mem_512, 108037}, // __builtin_ia32_pmovsdb512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_dw_128, 108071}, // __builtin_ia32_pmovsdw128_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_dw_mem_128, 108164}, // __builtin_ia32_pmovsdw128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_dw_256, 108102}, // __builtin_ia32_pmovsdw256_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_dw_mem_256, 108198}, // __builtin_ia32_pmovsdw256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_dw_512, 108133}, // __builtin_ia32_pmovsdw512_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_dw_mem_512, 108232}, // __builtin_ia32_pmovsdw512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qb_128, 108266}, // __builtin_ia32_pmovsqb128_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qb_mem_128, 108359}, // __builtin_ia32_pmovsqb128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qb_256, 108297}, // __builtin_ia32_pmovsqb256_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qb_mem_256, 108393}, // __builtin_ia32_pmovsqb256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qb_512, 108328}, // __builtin_ia32_pmovsqb512_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qb_mem_512, 108427}, // __builtin_ia32_pmovsqb512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qd_128, 108461}, // __builtin_ia32_pmovsqd128_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qd_mem_128, 108554}, // __builtin_ia32_pmovsqd128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qd_256, 108492}, // __builtin_ia32_pmovsqd256_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qd_mem_256, 108588}, // __builtin_ia32_pmovsqd256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qd_512, 108523}, // __builtin_ia32_pmovsqd512_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qd_mem_512, 108622}, // __builtin_ia32_pmovsqd512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qw_128, 108656}, // __builtin_ia32_pmovsqw128_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qw_mem_128, 108749}, // __builtin_ia32_pmovsqw128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qw_256, 108687}, // __builtin_ia32_pmovsqw256_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qw_mem_256, 108783}, // __builtin_ia32_pmovsqw256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qw_512, 108718}, // __builtin_ia32_pmovsqw512_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_qw_mem_512, 108817}, // __builtin_ia32_pmovsqw512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_wb_128, 108851}, // __builtin_ia32_pmovswb128_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_wb_mem_128, 108944}, // __builtin_ia32_pmovswb128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_wb_256, 108882}, // __builtin_ia32_pmovswb256_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_wb_mem_256, 108978}, // __builtin_ia32_pmovswb256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_wb_512, 108913}, // __builtin_ia32_pmovswb512_mask
-+      {Intrinsic::x86_avx512_mask_pmovs_wb_mem_512, 109012}, // __builtin_ia32_pmovswb512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_db_128, 109046}, // __builtin_ia32_pmovusdb128_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_db_mem_128, 109142}, // __builtin_ia32_pmovusdb128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_db_256, 109078}, // __builtin_ia32_pmovusdb256_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_db_mem_256, 109177}, // __builtin_ia32_pmovusdb256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_db_512, 109110}, // __builtin_ia32_pmovusdb512_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_db_mem_512, 109212}, // __builtin_ia32_pmovusdb512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_dw_128, 109247}, // __builtin_ia32_pmovusdw128_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_dw_mem_128, 109343}, // __builtin_ia32_pmovusdw128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_dw_256, 109279}, // __builtin_ia32_pmovusdw256_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_dw_mem_256, 109378}, // __builtin_ia32_pmovusdw256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_dw_512, 109311}, // __builtin_ia32_pmovusdw512_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_dw_mem_512, 109413}, // __builtin_ia32_pmovusdw512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qb_128, 109448}, // __builtin_ia32_pmovusqb128_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qb_mem_128, 109544}, // __builtin_ia32_pmovusqb128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qb_256, 109480}, // __builtin_ia32_pmovusqb256_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qb_mem_256, 109579}, // __builtin_ia32_pmovusqb256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qb_512, 109512}, // __builtin_ia32_pmovusqb512_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qb_mem_512, 109614}, // __builtin_ia32_pmovusqb512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qd_128, 109649}, // __builtin_ia32_pmovusqd128_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qd_mem_128, 109745}, // __builtin_ia32_pmovusqd128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qd_256, 109681}, // __builtin_ia32_pmovusqd256_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qd_mem_256, 109780}, // __builtin_ia32_pmovusqd256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qd_512, 109713}, // __builtin_ia32_pmovusqd512_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qd_mem_512, 109815}, // __builtin_ia32_pmovusqd512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qw_128, 109850}, // __builtin_ia32_pmovusqw128_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qw_mem_128, 109946}, // __builtin_ia32_pmovusqw128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qw_256, 109882}, // __builtin_ia32_pmovusqw256_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qw_mem_256, 109981}, // __builtin_ia32_pmovusqw256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qw_512, 109914}, // __builtin_ia32_pmovusqw512_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_qw_mem_512, 110016}, // __builtin_ia32_pmovusqw512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_wb_128, 110051}, // __builtin_ia32_pmovuswb128_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_wb_mem_128, 110147}, // __builtin_ia32_pmovuswb128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_wb_256, 110083}, // __builtin_ia32_pmovuswb256_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_wb_mem_256, 110182}, // __builtin_ia32_pmovuswb256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_wb_512, 110115}, // __builtin_ia32_pmovuswb512_mask
-+      {Intrinsic::x86_avx512_mask_pmovus_wb_mem_512, 110217}, // __builtin_ia32_pmovuswb512mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_wb_128, 107687}, // __builtin_ia32_pmovwb128_mask
-+      {Intrinsic::x86_avx512_mask_pmov_wb_mem_128, 107777}, // __builtin_ia32_pmovwb128mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_wb_256, 107717}, // __builtin_ia32_pmovwb256_mask
-+      {Intrinsic::x86_avx512_mask_pmov_wb_mem_256, 107810}, // __builtin_ia32_pmovwb256mem_mask
-+      {Intrinsic::x86_avx512_mask_pmov_wb_512, 107747}, // __builtin_ia32_pmovwb512_mask
-+      {Intrinsic::x86_avx512_mask_pmov_wb_mem_512, 107843}, // __builtin_ia32_pmovwb512mem_mask
-+      {Intrinsic::x86_sse41_pmuldq, 129758}, // __builtin_ia32_pmuldq128
-+      {Intrinsic::x86_avx512_mask_pmul_dq_128, 110252}, // __builtin_ia32_pmuldq128_mask
-+      {Intrinsic::x86_avx2_pmul_dq, 93312}, // __builtin_ia32_pmuldq256
-+      {Intrinsic::x86_avx512_mask_pmul_dq_256, 110282}, // __builtin_ia32_pmuldq256_mask
-+      {Intrinsic::x86_avx512_mask_pmul_dq_512, 110312}, // __builtin_ia32_pmuldq512_mask
-+      {Intrinsic::x86_ssse3_pmul_hr_sw, 131010}, // __builtin_ia32_pmulhrsw
-+      {Intrinsic::x86_ssse3_pmul_hr_sw_128, 131034}, // __builtin_ia32_pmulhrsw128
-+      {Intrinsic::x86_avx512_mask_pmul_hr_sw_128, 110342}, // __builtin_ia32_pmulhrsw128_mask
-+      {Intrinsic::x86_avx2_pmul_hr_sw, 93337}, // __builtin_ia32_pmulhrsw256
-+      {Intrinsic::x86_avx512_mask_pmul_hr_sw_256, 110374}, // __builtin_ia32_pmulhrsw256_mask
-+      {Intrinsic::x86_avx512_mask_pmul_hr_sw_512, 110406}, // __builtin_ia32_pmulhrsw512_mask
-+      {Intrinsic::x86_3dnow_pmulhrw, 89974}, // __builtin_ia32_pmulhrw
-+      {Intrinsic::x86_mmx_pmulhu_w, 125511}, // __builtin_ia32_pmulhuw
-+      {Intrinsic::x86_sse2_pmulhu_w, 128543}, // __builtin_ia32_pmulhuw128
-+      {Intrinsic::x86_avx512_mask_pmulhu_w_128, 110528}, // __builtin_ia32_pmulhuw128_mask
-+      {Intrinsic::x86_avx2_pmulhu_w, 93389}, // __builtin_ia32_pmulhuw256
-+      {Intrinsic::x86_avx512_mask_pmulhu_w_256, 110559}, // __builtin_ia32_pmulhuw256_mask
-+      {Intrinsic::x86_avx512_mask_pmulhu_w_512, 110590}, // __builtin_ia32_pmulhuw512_mask
-+      {Intrinsic::x86_mmx_pmulh_w, 125489}, // __builtin_ia32_pmulhw
-+      {Intrinsic::x86_sse2_pmulh_w, 128518}, // __builtin_ia32_pmulhw128
-+      {Intrinsic::x86_avx512_mask_pmulh_w_128, 110438}, // __builtin_ia32_pmulhw128_mask
-+      {Intrinsic::x86_avx2_pmulh_w, 93364}, // __builtin_ia32_pmulhw256
-+      {Intrinsic::x86_avx512_mask_pmulh_w_256, 110468}, // __builtin_ia32_pmulhw256_mask
-+      {Intrinsic::x86_avx512_mask_pmulh_w_512, 110498}, // __builtin_ia32_pmulhw512_mask
-+      {Intrinsic::x86_mmx_pmull_w, 125534}, // __builtin_ia32_pmullw
-+      {Intrinsic::x86_mmx_pmulu_dq, 125556}, // __builtin_ia32_pmuludq
-+      {Intrinsic::x86_sse2_pmulu_dq, 128569}, // __builtin_ia32_pmuludq128
-+      {Intrinsic::x86_avx512_mask_pmulu_dq_128, 110735}, // __builtin_ia32_pmuludq128_mask
-+      {Intrinsic::x86_avx2_pmulu_dq, 93415}, // __builtin_ia32_pmuludq256
-+      {Intrinsic::x86_avx512_mask_pmulu_dq_256, 110766}, // __builtin_ia32_pmuludq256_mask
-+      {Intrinsic::x86_avx512_mask_pmulu_dq_512, 110797}, // __builtin_ia32_pmuludq512_mask
-+      {Intrinsic::x86_mmx_por, 125579}, // __builtin_ia32_por
-+      {Intrinsic::x86_avx512_mask_prol_d_128, 110828}, // __builtin_ia32_prold128_mask
-+      {Intrinsic::x86_avx512_mask_prol_d_256, 110857}, // __builtin_ia32_prold256_mask
-+      {Intrinsic::x86_avx512_mask_prol_d_512, 110886}, // __builtin_ia32_prold512_mask
-+      {Intrinsic::x86_avx512_mask_prol_q_128, 110915}, // __builtin_ia32_prolq128_mask
-+      {Intrinsic::x86_avx512_mask_prol_q_256, 110944}, // __builtin_ia32_prolq256_mask
-+      {Intrinsic::x86_avx512_mask_prol_q_512, 110973}, // __builtin_ia32_prolq512_mask
-+      {Intrinsic::x86_avx512_mask_prolv_d_128, 111002}, // __builtin_ia32_prolvd128_mask
-+      {Intrinsic::x86_avx512_mask_prolv_d_256, 111032}, // __builtin_ia32_prolvd256_mask
-+      {Intrinsic::x86_avx512_mask_prolv_d_512, 111062}, // __builtin_ia32_prolvd512_mask
-+      {Intrinsic::x86_avx512_mask_prolv_q_128, 111092}, // __builtin_ia32_prolvq128_mask
-+      {Intrinsic::x86_avx512_mask_prolv_q_256, 111122}, // __builtin_ia32_prolvq256_mask
-+      {Intrinsic::x86_avx512_mask_prolv_q_512, 111152}, // __builtin_ia32_prolvq512_mask
-+      {Intrinsic::x86_avx512_mask_pror_d_128, 111182}, // __builtin_ia32_prord128_mask
-+      {Intrinsic::x86_avx512_mask_pror_d_256, 111211}, // __builtin_ia32_prord256_mask
-+      {Intrinsic::x86_avx512_mask_pror_d_512, 111240}, // __builtin_ia32_prord512_mask
-+      {Intrinsic::x86_avx512_mask_pror_q_128, 111269}, // __builtin_ia32_prorq128_mask
-+      {Intrinsic::x86_avx512_mask_pror_q_256, 111298}, // __builtin_ia32_prorq256_mask
-+      {Intrinsic::x86_avx512_mask_pror_q_512, 111327}, // __builtin_ia32_prorq512_mask
-+      {Intrinsic::x86_avx512_mask_prorv_d_128, 111356}, // __builtin_ia32_prorvd128_mask
-+      {Intrinsic::x86_avx512_mask_prorv_d_256, 111386}, // __builtin_ia32_prorvd256_mask
-+      {Intrinsic::x86_avx512_mask_prorv_d_512, 111416}, // __builtin_ia32_prorvd512_mask
-+      {Intrinsic::x86_avx512_mask_prorv_q_128, 111446}, // __builtin_ia32_prorvq128_mask
-+      {Intrinsic::x86_avx512_mask_prorv_q_256, 111476}, // __builtin_ia32_prorvq256_mask
-+      {Intrinsic::x86_avx512_mask_prorv_q_512, 111506}, // __builtin_ia32_prorvq512_mask
-+      {Intrinsic::x86_mmx_psad_bw, 125598}, // __builtin_ia32_psadbw
-+      {Intrinsic::x86_sse2_psad_bw, 128595}, // __builtin_ia32_psadbw128
-+      {Intrinsic::x86_avx2_psad_bw, 93441}, // __builtin_ia32_psadbw256
-+      {Intrinsic::x86_avx512_psad_bw_512, 119849}, // __builtin_ia32_psadbw512
-+      {Intrinsic::x86_ssse3_pshuf_b, 131061}, // __builtin_ia32_pshufb
-+      {Intrinsic::x86_ssse3_pshuf_b_128, 131083}, // __builtin_ia32_pshufb128
-+      {Intrinsic::x86_avx2_pshuf_b, 93466}, // __builtin_ia32_pshufb256
-+      {Intrinsic::x86_avx512_pshuf_b_512, 119874}, // __builtin_ia32_pshufb512
-+      {Intrinsic::x86_sse_pshuf_w, 127259}, // __builtin_ia32_pshufw
-+      {Intrinsic::x86_ssse3_psign_b, 131108}, // __builtin_ia32_psignb
-+      {Intrinsic::x86_ssse3_psign_b_128, 131130}, // __builtin_ia32_psignb128
-+      {Intrinsic::x86_avx2_psign_b, 93491}, // __builtin_ia32_psignb256
-+      {Intrinsic::x86_ssse3_psign_d, 131155}, // __builtin_ia32_psignd
-+      {Intrinsic::x86_ssse3_psign_d_128, 131177}, // __builtin_ia32_psignd128
-+      {Intrinsic::x86_avx2_psign_d, 93516}, // __builtin_ia32_psignd256
-+      {Intrinsic::x86_ssse3_psign_w, 131202}, // __builtin_ia32_psignw
-+      {Intrinsic::x86_ssse3_psign_w_128, 131224}, // __builtin_ia32_psignw128
-+      {Intrinsic::x86_avx2_psign_w, 93541}, // __builtin_ia32_psignw256
-+      {Intrinsic::x86_mmx_psll_d, 125620}, // __builtin_ia32_pslld
-+      {Intrinsic::x86_sse2_psll_d, 128620}, // __builtin_ia32_pslld128
-+      {Intrinsic::x86_avx2_psll_d, 93566}, // __builtin_ia32_pslld256
-+      {Intrinsic::x86_avx512_psll_d_512, 119899}, // __builtin_ia32_pslld512
-+      {Intrinsic::x86_mmx_pslli_d, 125683}, // __builtin_ia32_pslldi
-+      {Intrinsic::x86_sse2_pslli_d, 128692}, // __builtin_ia32_pslldi128
-+      {Intrinsic::x86_avx2_pslli_d, 93638}, // __builtin_ia32_pslldi256
-+      {Intrinsic::x86_avx512_pslli_d_512, 119971}, // __builtin_ia32_pslldi512
-+      {Intrinsic::x86_mmx_psll_q, 125641}, // __builtin_ia32_psllq
-+      {Intrinsic::x86_sse2_psll_q, 128644}, // __builtin_ia32_psllq128
-+      {Intrinsic::x86_avx2_psll_q, 93590}, // __builtin_ia32_psllq256
-+      {Intrinsic::x86_avx512_psll_q_512, 119923}, // __builtin_ia32_psllq512
-+      {Intrinsic::x86_mmx_pslli_q, 125705}, // __builtin_ia32_psllqi
-+      {Intrinsic::x86_sse2_pslli_q, 128717}, // __builtin_ia32_psllqi128
-+      {Intrinsic::x86_avx2_pslli_q, 93663}, // __builtin_ia32_psllqi256
-+      {Intrinsic::x86_avx512_pslli_q_512, 119996}, // __builtin_ia32_psllqi512
-+      {Intrinsic::x86_avx512_psllv_w_256, 120119}, // __builtin_ia32_psllv16hi
-+      {Intrinsic::x86_avx512_psllv_d_512, 120046}, // __builtin_ia32_psllv16si
-+      {Intrinsic::x86_avx2_psllv_q, 93761}, // __builtin_ia32_psllv2di
-+      {Intrinsic::x86_avx512_psllv_w_512, 120144}, // __builtin_ia32_psllv32hi
-+      {Intrinsic::x86_avx2_psllv_q_256, 93785}, // __builtin_ia32_psllv4di
-+      {Intrinsic::x86_avx2_psllv_d, 93713}, // __builtin_ia32_psllv4si
-+      {Intrinsic::x86_avx512_psllv_q_512, 120071}, // __builtin_ia32_psllv8di
-+      {Intrinsic::x86_avx512_psllv_w_128, 120095}, // __builtin_ia32_psllv8hi
-+      {Intrinsic::x86_avx2_psllv_d_256, 93737}, // __builtin_ia32_psllv8si
-+      {Intrinsic::x86_mmx_psll_w, 125662}, // __builtin_ia32_psllw
-+      {Intrinsic::x86_sse2_psll_w, 128668}, // __builtin_ia32_psllw128
-+      {Intrinsic::x86_avx2_psll_w, 93614}, // __builtin_ia32_psllw256
-+      {Intrinsic::x86_avx512_psll_w_512, 119947}, // __builtin_ia32_psllw512
-+      {Intrinsic::x86_mmx_pslli_w, 125727}, // __builtin_ia32_psllwi
-+      {Intrinsic::x86_sse2_pslli_w, 128742}, // __builtin_ia32_psllwi128
-+      {Intrinsic::x86_avx2_pslli_w, 93688}, // __builtin_ia32_psllwi256
-+      {Intrinsic::x86_avx512_pslli_w_512, 120021}, // __builtin_ia32_psllwi512
-+      {Intrinsic::x86_mmx_psra_d, 125749}, // __builtin_ia32_psrad
-+      {Intrinsic::x86_sse2_psra_d, 128767}, // __builtin_ia32_psrad128
-+      {Intrinsic::x86_avx2_psra_d, 93809}, // __builtin_ia32_psrad256
-+      {Intrinsic::x86_avx512_psra_d_512, 120169}, // __builtin_ia32_psrad512
-+      {Intrinsic::x86_mmx_psrai_d, 125791}, // __builtin_ia32_psradi
-+      {Intrinsic::x86_sse2_psrai_d, 128815}, // __builtin_ia32_psradi128
-+      {Intrinsic::x86_avx2_psrai_d, 93857}, // __builtin_ia32_psradi256
-+      {Intrinsic::x86_avx512_psrai_d_512, 120289}, // __builtin_ia32_psradi512
-+      {Intrinsic::x86_avx512_psra_q_128, 120193}, // __builtin_ia32_psraq128
-+      {Intrinsic::x86_avx512_psra_q_256, 120217}, // __builtin_ia32_psraq256
-+      {Intrinsic::x86_avx512_psra_q_512, 120241}, // __builtin_ia32_psraq512
-+      {Intrinsic::x86_avx512_psrai_q_128, 120314}, // __builtin_ia32_psraqi128
-+      {Intrinsic::x86_avx512_psrai_q_256, 120339}, // __builtin_ia32_psraqi256
-+      {Intrinsic::x86_avx512_psrai_q_512, 120364}, // __builtin_ia32_psraqi512
-+      {Intrinsic::x86_avx512_psrav_w_256, 120537}, // __builtin_ia32_psrav16hi
-+      {Intrinsic::x86_avx512_psrav_d_512, 120414}, // __builtin_ia32_psrav16si
-+      {Intrinsic::x86_avx512_psrav_w_512, 120562}, // __builtin_ia32_psrav32hi
-+      {Intrinsic::x86_avx2_psrav_d, 93907}, // __builtin_ia32_psrav4si
-+      {Intrinsic::x86_avx512_psrav_q_512, 120489}, // __builtin_ia32_psrav8di
-+      {Intrinsic::x86_avx512_psrav_w_128, 120513}, // __builtin_ia32_psrav8hi
-+      {Intrinsic::x86_avx2_psrav_d_256, 93931}, // __builtin_ia32_psrav8si
-+      {Intrinsic::x86_avx512_psrav_q_128, 120439}, // __builtin_ia32_psravq128
-+      {Intrinsic::x86_avx512_psrav_q_256, 120464}, // __builtin_ia32_psravq256
-+      {Intrinsic::x86_mmx_psra_w, 125770}, // __builtin_ia32_psraw
-+      {Intrinsic::x86_sse2_psra_w, 128791}, // __builtin_ia32_psraw128
-+      {Intrinsic::x86_avx2_psra_w, 93833}, // __builtin_ia32_psraw256
-+      {Intrinsic::x86_avx512_psra_w_512, 120265}, // __builtin_ia32_psraw512
-+      {Intrinsic::x86_mmx_psrai_w, 125813}, // __builtin_ia32_psrawi
-+      {Intrinsic::x86_sse2_psrai_w, 128840}, // __builtin_ia32_psrawi128
-+      {Intrinsic::x86_avx2_psrai_w, 93882}, // __builtin_ia32_psrawi256
-+      {Intrinsic::x86_avx512_psrai_w_512, 120389}, // __builtin_ia32_psrawi512
-+      {Intrinsic::x86_mmx_psrl_d, 125835}, // __builtin_ia32_psrld
-+      {Intrinsic::x86_sse2_psrl_d, 128865}, // __builtin_ia32_psrld128
-+      {Intrinsic::x86_avx2_psrl_d, 93955}, // __builtin_ia32_psrld256
-+      {Intrinsic::x86_avx512_psrl_d_512, 120587}, // __builtin_ia32_psrld512
-+      {Intrinsic::x86_mmx_psrli_d, 125898}, // __builtin_ia32_psrldi
-+      {Intrinsic::x86_sse2_psrli_d, 128937}, // __builtin_ia32_psrldi128
-+      {Intrinsic::x86_avx2_psrli_d, 94027}, // __builtin_ia32_psrldi256
-+      {Intrinsic::x86_avx512_psrli_d_512, 120659}, // __builtin_ia32_psrldi512
-+      {Intrinsic::x86_mmx_psrl_q, 125856}, // __builtin_ia32_psrlq
-+      {Intrinsic::x86_sse2_psrl_q, 128889}, // __builtin_ia32_psrlq128
-+      {Intrinsic::x86_avx2_psrl_q, 93979}, // __builtin_ia32_psrlq256
-+      {Intrinsic::x86_avx512_psrl_q_512, 120611}, // __builtin_ia32_psrlq512
-+      {Intrinsic::x86_mmx_psrli_q, 125920}, // __builtin_ia32_psrlqi
-+      {Intrinsic::x86_sse2_psrli_q, 128962}, // __builtin_ia32_psrlqi128
-+      {Intrinsic::x86_avx2_psrli_q, 94052}, // __builtin_ia32_psrlqi256
-+      {Intrinsic::x86_avx512_psrli_q_512, 120684}, // __builtin_ia32_psrlqi512
-+      {Intrinsic::x86_avx512_psrlv_w_256, 120807}, // __builtin_ia32_psrlv16hi
-+      {Intrinsic::x86_avx512_psrlv_d_512, 120734}, // __builtin_ia32_psrlv16si
-+      {Intrinsic::x86_avx2_psrlv_q, 94150}, // __builtin_ia32_psrlv2di
-+      {Intrinsic::x86_avx512_psrlv_w_512, 120832}, // __builtin_ia32_psrlv32hi
-+      {Intrinsic::x86_avx2_psrlv_q_256, 94174}, // __builtin_ia32_psrlv4di
-+      {Intrinsic::x86_avx2_psrlv_d, 94102}, // __builtin_ia32_psrlv4si
-+      {Intrinsic::x86_avx512_psrlv_q_512, 120759}, // __builtin_ia32_psrlv8di
-+      {Intrinsic::x86_avx512_psrlv_w_128, 120783}, // __builtin_ia32_psrlv8hi
-+      {Intrinsic::x86_avx2_psrlv_d_256, 94126}, // __builtin_ia32_psrlv8si
-+      {Intrinsic::x86_mmx_psrl_w, 125877}, // __builtin_ia32_psrlw
-+      {Intrinsic::x86_sse2_psrl_w, 128913}, // __builtin_ia32_psrlw128
-+      {Intrinsic::x86_avx2_psrl_w, 94003}, // __builtin_ia32_psrlw256
-+      {Intrinsic::x86_avx512_psrl_w_512, 120635}, // __builtin_ia32_psrlw512
-+      {Intrinsic::x86_mmx_psrli_w, 125942}, // __builtin_ia32_psrlwi
-+      {Intrinsic::x86_sse2_psrli_w, 128987}, // __builtin_ia32_psrlwi128
-+      {Intrinsic::x86_avx2_psrli_w, 94077}, // __builtin_ia32_psrlwi256
-+      {Intrinsic::x86_avx512_psrli_w_512, 120709}, // __builtin_ia32_psrlwi512
-+      {Intrinsic::x86_mmx_psub_b, 125964}, // __builtin_ia32_psubb
-+      {Intrinsic::x86_mmx_psub_d, 125985}, // __builtin_ia32_psubd
-+      {Intrinsic::x86_mmx_psub_q, 126006}, // __builtin_ia32_psubq
-+      {Intrinsic::x86_mmx_psubs_b, 126048}, // __builtin_ia32_psubsb
-+      {Intrinsic::x86_sse2_psubs_b, 129012}, // __builtin_ia32_psubsb128
-+      {Intrinsic::x86_avx512_mask_psubs_b_128, 111536}, // __builtin_ia32_psubsb128_mask
-+      {Intrinsic::x86_avx2_psubs_b, 94198}, // __builtin_ia32_psubsb256
-+      {Intrinsic::x86_avx512_mask_psubs_b_256, 111566}, // __builtin_ia32_psubsb256_mask
-+      {Intrinsic::x86_avx512_mask_psubs_b_512, 111596}, // __builtin_ia32_psubsb512_mask
-+      {Intrinsic::x86_mmx_psubs_w, 126070}, // __builtin_ia32_psubsw
-+      {Intrinsic::x86_sse2_psubs_w, 129037}, // __builtin_ia32_psubsw128
-+      {Intrinsic::x86_avx512_mask_psubs_w_128, 111626}, // __builtin_ia32_psubsw128_mask
-+      {Intrinsic::x86_avx2_psubs_w, 94223}, // __builtin_ia32_psubsw256
-+      {Intrinsic::x86_avx512_mask_psubs_w_256, 111656}, // __builtin_ia32_psubsw256_mask
-+      {Intrinsic::x86_avx512_mask_psubs_w_512, 111686}, // __builtin_ia32_psubsw512_mask
-+      {Intrinsic::x86_mmx_psubus_b, 126092}, // __builtin_ia32_psubusb
-+      {Intrinsic::x86_sse2_psubus_b, 129062}, // __builtin_ia32_psubusb128
-+      {Intrinsic::x86_avx512_mask_psubus_b_128, 111716}, // __builtin_ia32_psubusb128_mask
-+      {Intrinsic::x86_avx2_psubus_b, 94248}, // __builtin_ia32_psubusb256
-+      {Intrinsic::x86_avx512_mask_psubus_b_256, 111747}, // __builtin_ia32_psubusb256_mask
-+      {Intrinsic::x86_avx512_mask_psubus_b_512, 111778}, // __builtin_ia32_psubusb512_mask
-+      {Intrinsic::x86_mmx_psubus_w, 126115}, // __builtin_ia32_psubusw
-+      {Intrinsic::x86_sse2_psubus_w, 129088}, // __builtin_ia32_psubusw128
-+      {Intrinsic::x86_avx512_mask_psubus_w_128, 111809}, // __builtin_ia32_psubusw128_mask
-+      {Intrinsic::x86_avx2_psubus_w, 94274}, // __builtin_ia32_psubusw256
-+      {Intrinsic::x86_avx512_mask_psubus_w_256, 111840}, // __builtin_ia32_psubusw256_mask
-+      {Intrinsic::x86_avx512_mask_psubus_w_512, 111871}, // __builtin_ia32_psubusw512_mask
-+      {Intrinsic::x86_mmx_psub_w, 126027}, // __builtin_ia32_psubw
-+      {Intrinsic::x86_avx512_mask_pternlog_d_128, 111902}, // __builtin_ia32_pternlogd128_mask
-+      {Intrinsic::x86_avx512_maskz_pternlog_d_128, 118266}, // __builtin_ia32_pternlogd128_maskz
-+      {Intrinsic::x86_avx512_mask_pternlog_d_256, 111935}, // __builtin_ia32_pternlogd256_mask
-+      {Intrinsic::x86_avx512_maskz_pternlog_d_256, 118300}, // __builtin_ia32_pternlogd256_maskz
-+      {Intrinsic::x86_avx512_mask_pternlog_d_512, 111968}, // __builtin_ia32_pternlogd512_mask
-+      {Intrinsic::x86_avx512_maskz_pternlog_d_512, 118334}, // __builtin_ia32_pternlogd512_maskz
-+      {Intrinsic::x86_avx512_mask_pternlog_q_128, 112001}, // __builtin_ia32_pternlogq128_mask
-+      {Intrinsic::x86_avx512_maskz_pternlog_q_128, 118368}, // __builtin_ia32_pternlogq128_maskz
-+      {Intrinsic::x86_avx512_mask_pternlog_q_256, 112034}, // __builtin_ia32_pternlogq256_mask
-+      {Intrinsic::x86_avx512_maskz_pternlog_q_256, 118402}, // __builtin_ia32_pternlogq256_maskz
-+      {Intrinsic::x86_avx512_mask_pternlog_q_512, 112067}, // __builtin_ia32_pternlogq512_mask
-+      {Intrinsic::x86_avx512_maskz_pternlog_q_512, 118436}, // __builtin_ia32_pternlogq512_maskz
-+      {Intrinsic::x86_sse41_ptestc, 129783}, // __builtin_ia32_ptestc128
-+      {Intrinsic::x86_avx_ptestc_256, 91158}, // __builtin_ia32_ptestc256
-+      {Intrinsic::x86_avx512_ptestm_b_128, 120857}, // __builtin_ia32_ptestmb128
-+      {Intrinsic::x86_avx512_ptestm_b_256, 120883}, // __builtin_ia32_ptestmb256
-+      {Intrinsic::x86_avx512_ptestm_b_512, 120909}, // __builtin_ia32_ptestmb512
-+      {Intrinsic::x86_avx512_ptestm_d_128, 120935}, // __builtin_ia32_ptestmd128
-+      {Intrinsic::x86_avx512_ptestm_d_256, 120961}, // __builtin_ia32_ptestmd256
-+      {Intrinsic::x86_avx512_ptestm_d_512, 120987}, // __builtin_ia32_ptestmd512
-+      {Intrinsic::x86_avx512_ptestm_q_128, 121013}, // __builtin_ia32_ptestmq128
-+      {Intrinsic::x86_avx512_ptestm_q_256, 121039}, // __builtin_ia32_ptestmq256
-+      {Intrinsic::x86_avx512_ptestm_q_512, 121065}, // __builtin_ia32_ptestmq512
-+      {Intrinsic::x86_avx512_ptestm_w_128, 121091}, // __builtin_ia32_ptestmw128
-+      {Intrinsic::x86_avx512_ptestm_w_256, 121117}, // __builtin_ia32_ptestmw256
-+      {Intrinsic::x86_avx512_ptestm_w_512, 121143}, // __builtin_ia32_ptestmw512
-+      {Intrinsic::x86_avx512_ptestnm_b_128, 121169}, // __builtin_ia32_ptestnmb128
-+      {Intrinsic::x86_avx512_ptestnm_b_256, 121196}, // __builtin_ia32_ptestnmb256
-+      {Intrinsic::x86_avx512_ptestnm_b_512, 121223}, // __builtin_ia32_ptestnmb512
-+      {Intrinsic::x86_avx512_ptestnm_d_128, 121250}, // __builtin_ia32_ptestnmd128
-+      {Intrinsic::x86_avx512_ptestnm_d_256, 121277}, // __builtin_ia32_ptestnmd256
-+      {Intrinsic::x86_avx512_ptestnm_d_512, 121304}, // __builtin_ia32_ptestnmd512
-+      {Intrinsic::x86_avx512_ptestnm_q_128, 121331}, // __builtin_ia32_ptestnmq128
-+      {Intrinsic::x86_avx512_ptestnm_q_256, 121358}, // __builtin_ia32_ptestnmq256
-+      {Intrinsic::x86_avx512_ptestnm_q_512, 121385}, // __builtin_ia32_ptestnmq512
-+      {Intrinsic::x86_avx512_ptestnm_w_128, 121412}, // __builtin_ia32_ptestnmw128
-+      {Intrinsic::x86_avx512_ptestnm_w_256, 121439}, // __builtin_ia32_ptestnmw256
-+      {Intrinsic::x86_avx512_ptestnm_w_512, 121466}, // __builtin_ia32_ptestnmw512
-+      {Intrinsic::x86_sse41_ptestnzc, 129808}, // __builtin_ia32_ptestnzc128
-+      {Intrinsic::x86_avx_ptestnzc_256, 91183}, // __builtin_ia32_ptestnzc256
-+      {Intrinsic::x86_sse41_ptestz, 129835}, // __builtin_ia32_ptestz128
-+      {Intrinsic::x86_avx_ptestz_256, 91210}, // __builtin_ia32_ptestz256
-+      {Intrinsic::x86_mmx_punpckhbw, 126138}, // __builtin_ia32_punpckhbw
-+      {Intrinsic::x86_mmx_punpckhdq, 126163}, // __builtin_ia32_punpckhdq
-+      {Intrinsic::x86_mmx_punpckhwd, 126188}, // __builtin_ia32_punpckhwd
-+      {Intrinsic::x86_mmx_punpcklbw, 126213}, // __builtin_ia32_punpcklbw
-+      {Intrinsic::x86_mmx_punpckldq, 126238}, // __builtin_ia32_punpckldq
-+      {Intrinsic::x86_mmx_punpcklwd, 126263}, // __builtin_ia32_punpcklwd
-+      {Intrinsic::x86_mmx_pxor, 126288}, // __builtin_ia32_pxor
-+      {Intrinsic::x86_avx512_mask_range_pd_128, 112100}, // __builtin_ia32_rangepd128_mask
-+      {Intrinsic::x86_avx512_mask_range_pd_256, 112131}, // __builtin_ia32_rangepd256_mask
-+      {Intrinsic::x86_avx512_mask_range_pd_512, 112162}, // __builtin_ia32_rangepd512_mask
-+      {Intrinsic::x86_avx512_mask_range_ps_128, 112193}, // __builtin_ia32_rangeps128_mask
-+      {Intrinsic::x86_avx512_mask_range_ps_256, 112224}, // __builtin_ia32_rangeps256_mask
-+      {Intrinsic::x86_avx512_mask_range_ps_512, 112255}, // __builtin_ia32_rangeps512_mask
-+      {Intrinsic::x86_avx512_mask_range_sd, 112286}, // __builtin_ia32_rangesd128_round_mask
-+      {Intrinsic::x86_avx512_mask_range_ss, 112323}, // __builtin_ia32_rangess128_round_mask
-+      {Intrinsic::x86_avx512_rcp14_pd_128, 121493}, // __builtin_ia32_rcp14pd128_mask
-+      {Intrinsic::x86_avx512_rcp14_pd_256, 121524}, // __builtin_ia32_rcp14pd256_mask
-+      {Intrinsic::x86_avx512_rcp14_pd_512, 121555}, // __builtin_ia32_rcp14pd512_mask
-+      {Intrinsic::x86_avx512_rcp14_ps_128, 121586}, // __builtin_ia32_rcp14ps128_mask
-+      {Intrinsic::x86_avx512_rcp14_ps_256, 121617}, // __builtin_ia32_rcp14ps256_mask
-+      {Intrinsic::x86_avx512_rcp14_ps_512, 121648}, // __builtin_ia32_rcp14ps512_mask
-+      {Intrinsic::x86_avx512_rcp14_sd, 121679}, // __builtin_ia32_rcp14sd_mask
-+      {Intrinsic::x86_avx512_rcp14_ss, 121707}, // __builtin_ia32_rcp14ss_mask
-+      {Intrinsic::x86_avx512_rcp28_pd, 121735}, // __builtin_ia32_rcp28pd_mask
-+      {Intrinsic::x86_avx512_rcp28_ps, 121763}, // __builtin_ia32_rcp28ps_mask
-+      {Intrinsic::x86_avx512_rcp28_sd, 121791}, // __builtin_ia32_rcp28sd_round_mask
-+      {Intrinsic::x86_avx512_rcp28_ss, 121825}, // __builtin_ia32_rcp28ss_round_mask
-+      {Intrinsic::x86_sse_rcp_ps, 127281}, // __builtin_ia32_rcpps
-+      {Intrinsic::x86_avx_rcp_ps_256, 91235}, // __builtin_ia32_rcpps256
-+      {Intrinsic::x86_sse_rcp_ss, 127302}, // __builtin_ia32_rcpss
-+      {Intrinsic::x86_rdfsbase_32, 126382}, // __builtin_ia32_rdfsbase32
-+      {Intrinsic::x86_rdfsbase_64, 126408}, // __builtin_ia32_rdfsbase64
-+      {Intrinsic::x86_rdgsbase_32, 126434}, // __builtin_ia32_rdgsbase32
-+      {Intrinsic::x86_rdgsbase_64, 126460}, // __builtin_ia32_rdgsbase64
-+      {Intrinsic::x86_rdpkru, 126486}, // __builtin_ia32_rdpkru
-+      {Intrinsic::x86_rdpmc, 126508}, // __builtin_ia32_rdpmc
-+      {Intrinsic::x86_rdtsc, 126529}, // __builtin_ia32_rdtsc
-+      {Intrinsic::x86_rdtscp, 126550}, // __builtin_ia32_rdtscp
-+      {Intrinsic::x86_flags_read_u32, 123665}, // __builtin_ia32_readeflags_u32
-+      {Intrinsic::x86_flags_read_u64, 123695}, // __builtin_ia32_readeflags_u64
-+      {Intrinsic::x86_avx512_mask_reduce_pd_128, 112360}, // __builtin_ia32_reducepd128_mask
-+      {Intrinsic::x86_avx512_mask_reduce_pd_256, 112392}, // __builtin_ia32_reducepd256_mask
-+      {Intrinsic::x86_avx512_mask_reduce_pd_512, 112424}, // __builtin_ia32_reducepd512_mask
-+      {Intrinsic::x86_avx512_mask_reduce_ps_128, 112456}, // __builtin_ia32_reduceps128_mask
-+      {Intrinsic::x86_avx512_mask_reduce_ps_256, 112488}, // __builtin_ia32_reduceps256_mask
-+      {Intrinsic::x86_avx512_mask_reduce_ps_512, 112520}, // __builtin_ia32_reduceps512_mask
-+      {Intrinsic::x86_avx512_mask_reduce_sd, 112552}, // __builtin_ia32_reducesd_mask
-+      {Intrinsic::x86_avx512_mask_reduce_ss, 112581}, // __builtin_ia32_reducess_mask
-+      {Intrinsic::x86_avx512_mask_rndscale_pd_128, 112610}, // __builtin_ia32_rndscalepd_128_mask
-+      {Intrinsic::x86_avx512_mask_rndscale_pd_256, 112645}, // __builtin_ia32_rndscalepd_256_mask
-+      {Intrinsic::x86_avx512_mask_rndscale_pd_512, 112680}, // __builtin_ia32_rndscalepd_mask
-+      {Intrinsic::x86_avx512_mask_rndscale_ps_128, 112711}, // __builtin_ia32_rndscaleps_128_mask
-+      {Intrinsic::x86_avx512_mask_rndscale_ps_256, 112746}, // __builtin_ia32_rndscaleps_256_mask
-+      {Intrinsic::x86_avx512_mask_rndscale_ps_512, 112781}, // __builtin_ia32_rndscaleps_mask
-+      {Intrinsic::x86_avx512_mask_rndscale_sd, 112812}, // __builtin_ia32_rndscalesd_round_mask
-+      {Intrinsic::x86_avx512_mask_rndscale_ss, 112849}, // __builtin_ia32_rndscaless_round_mask
-+      {Intrinsic::x86_sse41_round_pd, 129860}, // __builtin_ia32_roundpd
-+      {Intrinsic::x86_avx_round_pd_256, 91259}, // __builtin_ia32_roundpd256
-+      {Intrinsic::x86_sse41_round_ps, 129883}, // __builtin_ia32_roundps
-+      {Intrinsic::x86_avx_round_ps_256, 91285}, // __builtin_ia32_roundps256
-+      {Intrinsic::x86_sse41_round_sd, 129906}, // __builtin_ia32_roundsd
-+      {Intrinsic::x86_sse41_round_ss, 129929}, // __builtin_ia32_roundss
-+      {Intrinsic::x86_avx512_rsqrt14_pd_128, 121859}, // __builtin_ia32_rsqrt14pd128_mask
-+      {Intrinsic::x86_avx512_rsqrt14_pd_256, 121892}, // __builtin_ia32_rsqrt14pd256_mask
-+      {Intrinsic::x86_avx512_rsqrt14_pd_512, 121925}, // __builtin_ia32_rsqrt14pd512_mask
-+      {Intrinsic::x86_avx512_rsqrt14_ps_128, 121958}, // __builtin_ia32_rsqrt14ps128_mask
-+      {Intrinsic::x86_avx512_rsqrt14_ps_256, 121991}, // __builtin_ia32_rsqrt14ps256_mask
-+      {Intrinsic::x86_avx512_rsqrt14_ps_512, 122024}, // __builtin_ia32_rsqrt14ps512_mask
-+      {Intrinsic::x86_avx512_rsqrt14_sd, 122057}, // __builtin_ia32_rsqrt14sd_mask
-+      {Intrinsic::x86_avx512_rsqrt14_ss, 122087}, // __builtin_ia32_rsqrt14ss_mask
-+      {Intrinsic::x86_avx512_rsqrt28_pd, 122117}, // __builtin_ia32_rsqrt28pd_mask
-+      {Intrinsic::x86_avx512_rsqrt28_ps, 122147}, // __builtin_ia32_rsqrt28ps_mask
-+      {Intrinsic::x86_avx512_rsqrt28_sd, 122177}, // __builtin_ia32_rsqrt28sd_round_mask
-+      {Intrinsic::x86_avx512_rsqrt28_ss, 122213}, // __builtin_ia32_rsqrt28ss_round_mask
-+      {Intrinsic::x86_sse_rsqrt_ps, 127323}, // __builtin_ia32_rsqrtps
-+      {Intrinsic::x86_avx_rsqrt_ps_256, 91311}, // __builtin_ia32_rsqrtps256
-+      {Intrinsic::x86_sse_rsqrt_ss, 127346}, // __builtin_ia32_rsqrtss
-+      {Intrinsic::x86_avx512_mask_scalef_pd_128, 112886}, // __builtin_ia32_scalefpd128_mask
-+      {Intrinsic::x86_avx512_mask_scalef_pd_256, 112918}, // __builtin_ia32_scalefpd256_mask
-+      {Intrinsic::x86_avx512_mask_scalef_pd_512, 112950}, // __builtin_ia32_scalefpd512_mask
-+      {Intrinsic::x86_avx512_mask_scalef_ps_128, 112982}, // __builtin_ia32_scalefps128_mask
-+      {Intrinsic::x86_avx512_mask_scalef_ps_256, 113014}, // __builtin_ia32_scalefps256_mask
-+      {Intrinsic::x86_avx512_mask_scalef_ps_512, 113046}, // __builtin_ia32_scalefps512_mask
-+      {Intrinsic::x86_avx512_mask_scalef_sd, 113078}, // __builtin_ia32_scalefsd_round_mask
-+      {Intrinsic::x86_avx512_mask_scalef_ss, 113113}, // __builtin_ia32_scalefss_round_mask
-+      {Intrinsic::x86_avx512_scatter_qps_512, 122455}, // __builtin_ia32_scatterdiv16sf
-+      {Intrinsic::x86_avx512_scatter_qpi_512, 122396}, // __builtin_ia32_scatterdiv16si
-+      {Intrinsic::x86_avx512_scatterdiv2_df, 122485}, // __builtin_ia32_scatterdiv2df
-+      {Intrinsic::x86_avx512_scatterdiv2_di, 122514}, // __builtin_ia32_scatterdiv2di
-+      {Intrinsic::x86_avx512_scatterdiv4_df, 122543}, // __builtin_ia32_scatterdiv4df
-+      {Intrinsic::x86_avx512_scatterdiv4_di, 122572}, // __builtin_ia32_scatterdiv4di
-+      {Intrinsic::x86_avx512_scatterdiv4_sf, 122601}, // __builtin_ia32_scatterdiv4sf
-+      {Intrinsic::x86_avx512_scatterdiv4_si, 122630}, // __builtin_ia32_scatterdiv4si
-+      {Intrinsic::x86_avx512_scatter_qpd_512, 122367}, // __builtin_ia32_scatterdiv8df
-+      {Intrinsic::x86_avx512_scatter_qpq_512, 122426}, // __builtin_ia32_scatterdiv8di
-+      {Intrinsic::x86_avx512_scatterdiv8_sf, 122659}, // __builtin_ia32_scatterdiv8sf
-+      {Intrinsic::x86_avx512_scatterdiv8_si, 122688}, // __builtin_ia32_scatterdiv8si
-+      {Intrinsic::x86_avx512_scatterpf_dpd_512, 122717}, // __builtin_ia32_scatterpfdpd
-+      {Intrinsic::x86_avx512_scatterpf_dps_512, 122745}, // __builtin_ia32_scatterpfdps
-+      {Intrinsic::x86_avx512_scatterpf_qpd_512, 122773}, // __builtin_ia32_scatterpfqpd
-+      {Intrinsic::x86_avx512_scatterpf_qps_512, 122801}, // __builtin_ia32_scatterpfqps
-+      {Intrinsic::x86_avx512_scatter_dps_512, 122337}, // __builtin_ia32_scattersiv16sf
-+      {Intrinsic::x86_avx512_scatter_dpi_512, 122278}, // __builtin_ia32_scattersiv16si
-+      {Intrinsic::x86_avx512_scattersiv2_df, 122829}, // __builtin_ia32_scattersiv2df
-+      {Intrinsic::x86_avx512_scattersiv2_di, 122858}, // __builtin_ia32_scattersiv2di
-+      {Intrinsic::x86_avx512_scattersiv4_df, 122887}, // __builtin_ia32_scattersiv4df
-+      {Intrinsic::x86_avx512_scattersiv4_di, 122916}, // __builtin_ia32_scattersiv4di
-+      {Intrinsic::x86_avx512_scattersiv4_sf, 122945}, // __builtin_ia32_scattersiv4sf
-+      {Intrinsic::x86_avx512_scattersiv4_si, 122974}, // __builtin_ia32_scattersiv4si
-+      {Intrinsic::x86_avx512_scatter_dpd_512, 122249}, // __builtin_ia32_scattersiv8df
-+      {Intrinsic::x86_avx512_scatter_dpq_512, 122308}, // __builtin_ia32_scattersiv8di
-+      {Intrinsic::x86_avx512_scattersiv8_sf, 123003}, // __builtin_ia32_scattersiv8sf
-+      {Intrinsic::x86_avx512_scattersiv8_si, 123032}, // __builtin_ia32_scattersiv8si
-+      {Intrinsic::x86_sse_sfence, 127369}, // __builtin_ia32_sfence
-+      {Intrinsic::x86_sha1msg1, 126572}, // __builtin_ia32_sha1msg1
-+      {Intrinsic::x86_sha1msg2, 126596}, // __builtin_ia32_sha1msg2
-+      {Intrinsic::x86_sha1nexte, 126620}, // __builtin_ia32_sha1nexte
-+      {Intrinsic::x86_sha1rnds4, 126645}, // __builtin_ia32_sha1rnds4
-+      {Intrinsic::x86_sha256msg1, 126670}, // __builtin_ia32_sha256msg1
-+      {Intrinsic::x86_sha256msg2, 126696}, // __builtin_ia32_sha256msg2
-+      {Intrinsic::x86_sha256rnds2, 126722}, // __builtin_ia32_sha256rnds2
-+      {Intrinsic::x86_avx512_mask_shuf_f32x4_256, 113179}, // __builtin_ia32_shuf_f32x4_256_mask
-+      {Intrinsic::x86_avx512_mask_shuf_f32x4, 113148}, // __builtin_ia32_shuf_f32x4_mask
-+      {Intrinsic::x86_avx512_mask_shuf_f64x2_256, 113245}, // __builtin_ia32_shuf_f64x2_256_mask
-+      {Intrinsic::x86_avx512_mask_shuf_f64x2, 113214}, // __builtin_ia32_shuf_f64x2_mask
-+      {Intrinsic::x86_avx512_mask_shuf_i32x4_256, 113311}, // __builtin_ia32_shuf_i32x4_256_mask
-+      {Intrinsic::x86_avx512_mask_shuf_i32x4, 113280}, // __builtin_ia32_shuf_i32x4_mask
-+      {Intrinsic::x86_avx512_mask_shuf_i64x2_256, 113377}, // __builtin_ia32_shuf_i64x2_256_mask
-+      {Intrinsic::x86_avx512_mask_shuf_i64x2, 113346}, // __builtin_ia32_shuf_i64x2_mask
-+      {Intrinsic::x86_sse2_sqrt_pd, 129114}, // __builtin_ia32_sqrtpd
-+      {Intrinsic::x86_avx512_mask_sqrt_pd_128, 113412}, // __builtin_ia32_sqrtpd128_mask
-+      {Intrinsic::x86_avx_sqrt_pd_256, 91337}, // __builtin_ia32_sqrtpd256
-+      {Intrinsic::x86_avx512_mask_sqrt_pd_256, 113442}, // __builtin_ia32_sqrtpd256_mask
-+      {Intrinsic::x86_avx512_mask_sqrt_pd_512, 113472}, // __builtin_ia32_sqrtpd512_mask
-+      {Intrinsic::x86_sse_sqrt_ps, 127391}, // __builtin_ia32_sqrtps
-+      {Intrinsic::x86_avx512_mask_sqrt_ps_128, 113502}, // __builtin_ia32_sqrtps128_mask
-+      {Intrinsic::x86_avx_sqrt_ps_256, 91362}, // __builtin_ia32_sqrtps256
-+      {Intrinsic::x86_avx512_mask_sqrt_ps_256, 113532}, // __builtin_ia32_sqrtps256_mask
-+      {Intrinsic::x86_avx512_mask_sqrt_ps_512, 113562}, // __builtin_ia32_sqrtps512_mask
-+      {Intrinsic::x86_sse2_sqrt_sd, 129136}, // __builtin_ia32_sqrtsd
-+      {Intrinsic::x86_avx512_mask_sqrt_sd, 113592}, // __builtin_ia32_sqrtsd_round_mask
-+      {Intrinsic::x86_sse_sqrt_ss, 127413}, // __builtin_ia32_sqrtss
-+      {Intrinsic::x86_avx512_mask_sqrt_ss, 113625}, // __builtin_ia32_sqrtss_round_mask
-+      {Intrinsic::x86_avx512_mask_store_ss, 113658}, // __builtin_ia32_storess_mask
-+      {Intrinsic::x86_subborrow_u32, 131249}, // __builtin_ia32_subborrow_u32
-+      {Intrinsic::x86_subborrow_u64, 131278}, // __builtin_ia32_subborrow_u64
-+      {Intrinsic::x86_avx512_mask_sub_pd_512, 113686}, // __builtin_ia32_subpd512_mask
-+      {Intrinsic::x86_avx512_mask_sub_ps_512, 113715}, // __builtin_ia32_subps512_mask
-+      {Intrinsic::x86_avx512_mask_sub_sd_round, 113744}, // __builtin_ia32_subsd_round_mask
-+      {Intrinsic::x86_avx512_mask_sub_ss_round, 113776}, // __builtin_ia32_subss_round_mask
-+      {Intrinsic::x86_sse_ucomieq_ss, 127435}, // __builtin_ia32_ucomieq
-+      {Intrinsic::x86_sse_ucomige_ss, 127458}, // __builtin_ia32_ucomige
-+      {Intrinsic::x86_sse_ucomigt_ss, 127481}, // __builtin_ia32_ucomigt
-+      {Intrinsic::x86_sse_ucomile_ss, 127504}, // __builtin_ia32_ucomile
-+      {Intrinsic::x86_sse_ucomilt_ss, 127527}, // __builtin_ia32_ucomilt
-+      {Intrinsic::x86_sse_ucomineq_ss, 127550}, // __builtin_ia32_ucomineq
-+      {Intrinsic::x86_sse2_ucomieq_sd, 129158}, // __builtin_ia32_ucomisdeq
-+      {Intrinsic::x86_sse2_ucomige_sd, 129183}, // __builtin_ia32_ucomisdge
-+      {Intrinsic::x86_sse2_ucomigt_sd, 129208}, // __builtin_ia32_ucomisdgt
-+      {Intrinsic::x86_sse2_ucomile_sd, 129233}, // __builtin_ia32_ucomisdle
-+      {Intrinsic::x86_sse2_ucomilt_sd, 129258}, // __builtin_ia32_ucomisdlt
-+      {Intrinsic::x86_sse2_ucomineq_sd, 129283}, // __builtin_ia32_ucomisdneq
-+      {Intrinsic::x86_avx512_vbroadcast_sd_512, 123061}, // __builtin_ia32_vbroadcastsd512
-+      {Intrinsic::x86_avx512_vbroadcast_ss_512, 123092}, // __builtin_ia32_vbroadcastss512
-+      {Intrinsic::x86_avx512_vcomi_sd, 123123}, // __builtin_ia32_vcomisd
-+      {Intrinsic::x86_avx512_vcomi_ss, 123146}, // __builtin_ia32_vcomiss
-+      {Intrinsic::x86_vcvtph2ps_128, 131359}, // __builtin_ia32_vcvtph2ps
-+      {Intrinsic::x86_vcvtph2ps_256, 131384}, // __builtin_ia32_vcvtph2ps256
-+      {Intrinsic::x86_avx512_mask_vcvtph2ps_256, 113838}, // __builtin_ia32_vcvtph2ps256_mask
-+      {Intrinsic::x86_avx512_mask_vcvtph2ps_512, 113871}, // __builtin_ia32_vcvtph2ps512_mask
-+      {Intrinsic::x86_avx512_mask_vcvtph2ps_128, 113808}, // __builtin_ia32_vcvtph2ps_mask
-+      {Intrinsic::x86_vcvtps2ph_128, 131412}, // __builtin_ia32_vcvtps2ph
-+      {Intrinsic::x86_vcvtps2ph_256, 131437}, // __builtin_ia32_vcvtps2ph256
-+      {Intrinsic::x86_avx512_mask_vcvtps2ph_256, 113934}, // __builtin_ia32_vcvtps2ph256_mask
-+      {Intrinsic::x86_avx512_mask_vcvtps2ph_512, 113967}, // __builtin_ia32_vcvtps2ph512_mask
-+      {Intrinsic::x86_avx512_mask_vcvtps2ph_128, 113904}, // __builtin_ia32_vcvtps2ph_mask
-+      {Intrinsic::x86_avx512_vcvtsd2si32, 123169}, // __builtin_ia32_vcvtsd2si32
-+      {Intrinsic::x86_avx512_vcvtsd2si64, 123196}, // __builtin_ia32_vcvtsd2si64
-+      {Intrinsic::x86_avx512_vcvtsd2usi32, 123223}, // __builtin_ia32_vcvtsd2usi32
-+      {Intrinsic::x86_avx512_vcvtsd2usi64, 123251}, // __builtin_ia32_vcvtsd2usi64
-+      {Intrinsic::x86_avx512_vcvtss2si32, 123279}, // __builtin_ia32_vcvtss2si32
-+      {Intrinsic::x86_avx512_vcvtss2si64, 123306}, // __builtin_ia32_vcvtss2si64
-+      {Intrinsic::x86_avx512_vcvtss2usi32, 123333}, // __builtin_ia32_vcvtss2usi32
-+      {Intrinsic::x86_avx512_vcvtss2usi64, 123361}, // __builtin_ia32_vcvtss2usi64
-+      {Intrinsic::x86_avx512_cvttsd2si, 95171}, // __builtin_ia32_vcvttsd2si32
-+      {Intrinsic::x86_avx512_cvttsd2si64, 95199}, // __builtin_ia32_vcvttsd2si64
-+      {Intrinsic::x86_avx512_cvttsd2usi, 95227}, // __builtin_ia32_vcvttsd2usi32
-+      {Intrinsic::x86_avx512_cvttsd2usi64, 95256}, // __builtin_ia32_vcvttsd2usi64
-+      {Intrinsic::x86_avx512_cvttss2si, 95285}, // __builtin_ia32_vcvttss2si32
-+      {Intrinsic::x86_avx512_cvttss2si64, 95313}, // __builtin_ia32_vcvttss2si64
-+      {Intrinsic::x86_avx512_cvttss2usi, 95341}, // __builtin_ia32_vcvttss2usi32
-+      {Intrinsic::x86_avx512_cvttss2usi64, 95370}, // __builtin_ia32_vcvttss2usi64
-+      {Intrinsic::x86_mmx_pextr_w, 125298}, // __builtin_ia32_vec_ext_v4hi
-+      {Intrinsic::x86_mmx_pinsr_w, 125326}, // __builtin_ia32_vec_set_v4hi
-+      {Intrinsic::x86_fma_vfmadd_pd, 123787}, // __builtin_ia32_vfmaddpd
-+      {Intrinsic::x86_avx512_mask_vfmadd_pd_128, 114420}, // __builtin_ia32_vfmaddpd128_mask
-+      {Intrinsic::x86_avx512_mask3_vfmadd_pd_128, 116772}, // __builtin_ia32_vfmaddpd128_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmadd_pd_128, 118470}, // __builtin_ia32_vfmaddpd128_maskz
-+      {Intrinsic::x86_fma_vfmadd_pd_256, 123811}, // __builtin_ia32_vfmaddpd256
-+      {Intrinsic::x86_avx512_mask_vfmadd_pd_256, 114452}, // __builtin_ia32_vfmaddpd256_mask
-+      {Intrinsic::x86_avx512_mask3_vfmadd_pd_256, 116805}, // __builtin_ia32_vfmaddpd256_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmadd_pd_256, 118503}, // __builtin_ia32_vfmaddpd256_maskz
-+      {Intrinsic::x86_avx512_mask_vfmadd_pd_512, 114484}, // __builtin_ia32_vfmaddpd512_mask
-+      {Intrinsic::x86_avx512_mask3_vfmadd_pd_512, 116838}, // __builtin_ia32_vfmaddpd512_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmadd_pd_512, 118536}, // __builtin_ia32_vfmaddpd512_maskz
-+      {Intrinsic::x86_fma_vfmadd_ps, 123838}, // __builtin_ia32_vfmaddps
-+      {Intrinsic::x86_avx512_mask_vfmadd_ps_128, 114516}, // __builtin_ia32_vfmaddps128_mask
-+      {Intrinsic::x86_avx512_mask3_vfmadd_ps_128, 116871}, // __builtin_ia32_vfmaddps128_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmadd_ps_128, 118569}, // __builtin_ia32_vfmaddps128_maskz
-+      {Intrinsic::x86_fma_vfmadd_ps_256, 123862}, // __builtin_ia32_vfmaddps256
-+      {Intrinsic::x86_avx512_mask_vfmadd_ps_256, 114548}, // __builtin_ia32_vfmaddps256_mask
-+      {Intrinsic::x86_avx512_mask3_vfmadd_ps_256, 116904}, // __builtin_ia32_vfmaddps256_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmadd_ps_256, 118602}, // __builtin_ia32_vfmaddps256_maskz
-+      {Intrinsic::x86_avx512_mask_vfmadd_ps_512, 114580}, // __builtin_ia32_vfmaddps512_mask
-+      {Intrinsic::x86_avx512_mask3_vfmadd_ps_512, 116937}, // __builtin_ia32_vfmaddps512_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmadd_ps_512, 118635}, // __builtin_ia32_vfmaddps512_maskz
-+      {Intrinsic::x86_fma_vfmadd_sd, 123889}, // __builtin_ia32_vfmaddsd
-+      {Intrinsic::x86_avx512_mask_vfmadd_sd, 114612}, // __builtin_ia32_vfmaddsd3_mask
-+      {Intrinsic::x86_avx512_mask3_vfmadd_sd, 116970}, // __builtin_ia32_vfmaddsd3_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmadd_sd, 118668}, // __builtin_ia32_vfmaddsd3_maskz
-+      {Intrinsic::x86_fma_vfmadd_ss, 123913}, // __builtin_ia32_vfmaddss
-+      {Intrinsic::x86_avx512_mask_vfmadd_ss, 114642}, // __builtin_ia32_vfmaddss3_mask
-+      {Intrinsic::x86_avx512_mask3_vfmadd_ss, 117001}, // __builtin_ia32_vfmaddss3_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmadd_ss, 118699}, // __builtin_ia32_vfmaddss3_maskz
-+      {Intrinsic::x86_fma_vfmaddsub_pd, 123937}, // __builtin_ia32_vfmaddsubpd
-+      {Intrinsic::x86_avx512_mask_vfmaddsub_pd_128, 114672}, // __builtin_ia32_vfmaddsubpd128_mask
-+      {Intrinsic::x86_avx512_mask3_vfmaddsub_pd_128, 117032}, // __builtin_ia32_vfmaddsubpd128_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmaddsub_pd_128, 118730}, // __builtin_ia32_vfmaddsubpd128_maskz
-+      {Intrinsic::x86_fma_vfmaddsub_pd_256, 123964}, // __builtin_ia32_vfmaddsubpd256
-+      {Intrinsic::x86_avx512_mask_vfmaddsub_pd_256, 114707}, // __builtin_ia32_vfmaddsubpd256_mask
-+      {Intrinsic::x86_avx512_mask3_vfmaddsub_pd_256, 117068}, // __builtin_ia32_vfmaddsubpd256_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmaddsub_pd_256, 118766}, // __builtin_ia32_vfmaddsubpd256_maskz
-+      {Intrinsic::x86_avx512_mask_vfmaddsub_pd_512, 114742}, // __builtin_ia32_vfmaddsubpd512_mask
-+      {Intrinsic::x86_avx512_mask3_vfmaddsub_pd_512, 117104}, // __builtin_ia32_vfmaddsubpd512_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmaddsub_pd_512, 118802}, // __builtin_ia32_vfmaddsubpd512_maskz
-+      {Intrinsic::x86_fma_vfmaddsub_ps, 123994}, // __builtin_ia32_vfmaddsubps
-+      {Intrinsic::x86_avx512_mask_vfmaddsub_ps_128, 114777}, // __builtin_ia32_vfmaddsubps128_mask
-+      {Intrinsic::x86_avx512_mask3_vfmaddsub_ps_128, 117140}, // __builtin_ia32_vfmaddsubps128_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmaddsub_ps_128, 118838}, // __builtin_ia32_vfmaddsubps128_maskz
-+      {Intrinsic::x86_fma_vfmaddsub_ps_256, 124021}, // __builtin_ia32_vfmaddsubps256
-+      {Intrinsic::x86_avx512_mask_vfmaddsub_ps_256, 114812}, // __builtin_ia32_vfmaddsubps256_mask
-+      {Intrinsic::x86_avx512_mask3_vfmaddsub_ps_256, 117176}, // __builtin_ia32_vfmaddsubps256_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmaddsub_ps_256, 118874}, // __builtin_ia32_vfmaddsubps256_maskz
-+      {Intrinsic::x86_avx512_mask_vfmaddsub_ps_512, 114847}, // __builtin_ia32_vfmaddsubps512_mask
-+      {Intrinsic::x86_avx512_mask3_vfmaddsub_ps_512, 117212}, // __builtin_ia32_vfmaddsubps512_mask3
-+      {Intrinsic::x86_avx512_maskz_vfmaddsub_ps_512, 118910}, // __builtin_ia32_vfmaddsubps512_maskz
-+      {Intrinsic::x86_fma_vfmsubadd_pd, 124201}, // __builtin_ia32_vfmsubaddpd
-+      {Intrinsic::x86_avx512_mask3_vfmsubadd_pd_128, 117508}, // __builtin_ia32_vfmsubaddpd128_mask3
-+      {Intrinsic::x86_fma_vfmsubadd_pd_256, 124228}, // __builtin_ia32_vfmsubaddpd256
-+      {Intrinsic::x86_avx512_mask3_vfmsubadd_pd_256, 117544}, // __builtin_ia32_vfmsubaddpd256_mask3
-+      {Intrinsic::x86_avx512_mask3_vfmsubadd_pd_512, 117580}, // __builtin_ia32_vfmsubaddpd512_mask3
-+      {Intrinsic::x86_fma_vfmsubadd_ps, 124258}, // __builtin_ia32_vfmsubaddps
-+      {Intrinsic::x86_avx512_mask3_vfmsubadd_ps_128, 117616}, // __builtin_ia32_vfmsubaddps128_mask3
-+      {Intrinsic::x86_fma_vfmsubadd_ps_256, 124285}, // __builtin_ia32_vfmsubaddps256
-+      {Intrinsic::x86_avx512_mask3_vfmsubadd_ps_256, 117652}, // __builtin_ia32_vfmsubaddps256_mask3
-+      {Intrinsic::x86_avx512_mask3_vfmsubadd_ps_512, 117688}, // __builtin_ia32_vfmsubaddps512_mask3
-+      {Intrinsic::x86_fma_vfmsub_pd, 124051}, // __builtin_ia32_vfmsubpd
-+      {Intrinsic::x86_avx512_mask3_vfmsub_pd_128, 117248}, // __builtin_ia32_vfmsubpd128_mask3
-+      {Intrinsic::x86_fma_vfmsub_pd_256, 124075}, // __builtin_ia32_vfmsubpd256
-+      {Intrinsic::x86_avx512_mask3_vfmsub_pd_256, 117281}, // __builtin_ia32_vfmsubpd256_mask3
-+      {Intrinsic::x86_avx512_mask3_vfmsub_pd_512, 117314}, // __builtin_ia32_vfmsubpd512_mask3
-+      {Intrinsic::x86_fma_vfmsub_ps, 124102}, // __builtin_ia32_vfmsubps
-+      {Intrinsic::x86_avx512_mask3_vfmsub_ps_128, 117347}, // __builtin_ia32_vfmsubps128_mask3
-+      {Intrinsic::x86_fma_vfmsub_ps_256, 124126}, // __builtin_ia32_vfmsubps256
-+      {Intrinsic::x86_avx512_mask3_vfmsub_ps_256, 117380}, // __builtin_ia32_vfmsubps256_mask3
-+      {Intrinsic::x86_avx512_mask3_vfmsub_ps_512, 117413}, // __builtin_ia32_vfmsubps512_mask3
-+      {Intrinsic::x86_fma_vfmsub_sd, 124153}, // __builtin_ia32_vfmsubsd
-+      {Intrinsic::x86_avx512_mask3_vfmsub_sd, 117446}, // __builtin_ia32_vfmsubsd3_mask3
-+      {Intrinsic::x86_fma_vfmsub_ss, 124177}, // __builtin_ia32_vfmsubss
-+      {Intrinsic::x86_avx512_mask3_vfmsub_ss, 117477}, // __builtin_ia32_vfmsubss3_mask3
-+      {Intrinsic::x86_fma_vfnmadd_pd, 124315}, // __builtin_ia32_vfnmaddpd
-+      {Intrinsic::x86_avx512_mask_vfnmadd_pd_128, 114882}, // __builtin_ia32_vfnmaddpd128_mask
-+      {Intrinsic::x86_fma_vfnmadd_pd_256, 124340}, // __builtin_ia32_vfnmaddpd256
-+      {Intrinsic::x86_avx512_mask_vfnmadd_pd_256, 114915}, // __builtin_ia32_vfnmaddpd256_mask
-+      {Intrinsic::x86_avx512_mask_vfnmadd_pd_512, 114948}, // __builtin_ia32_vfnmaddpd512_mask
-+      {Intrinsic::x86_fma_vfnmadd_ps, 124368}, // __builtin_ia32_vfnmaddps
-+      {Intrinsic::x86_avx512_mask_vfnmadd_ps_128, 114981}, // __builtin_ia32_vfnmaddps128_mask
-+      {Intrinsic::x86_fma_vfnmadd_ps_256, 124393}, // __builtin_ia32_vfnmaddps256
-+      {Intrinsic::x86_avx512_mask_vfnmadd_ps_256, 115014}, // __builtin_ia32_vfnmaddps256_mask
-+      {Intrinsic::x86_avx512_mask_vfnmadd_ps_512, 115047}, // __builtin_ia32_vfnmaddps512_mask
-+      {Intrinsic::x86_fma_vfnmadd_sd, 124421}, // __builtin_ia32_vfnmaddsd
-+      {Intrinsic::x86_fma_vfnmadd_ss, 124446}, // __builtin_ia32_vfnmaddss
-+      {Intrinsic::x86_fma_vfnmsub_pd, 124471}, // __builtin_ia32_vfnmsubpd
-+      {Intrinsic::x86_avx512_mask_vfnmsub_pd_128, 115080}, // __builtin_ia32_vfnmsubpd128_mask
-+      {Intrinsic::x86_avx512_mask3_vfnmsub_pd_128, 117724}, // __builtin_ia32_vfnmsubpd128_mask3
-+      {Intrinsic::x86_fma_vfnmsub_pd_256, 124496}, // __builtin_ia32_vfnmsubpd256
-+      {Intrinsic::x86_avx512_mask_vfnmsub_pd_256, 115113}, // __builtin_ia32_vfnmsubpd256_mask
-+      {Intrinsic::x86_avx512_mask3_vfnmsub_pd_256, 117758}, // __builtin_ia32_vfnmsubpd256_mask3
-+      {Intrinsic::x86_avx512_mask_vfnmsub_pd_512, 115146}, // __builtin_ia32_vfnmsubpd512_mask
-+      {Intrinsic::x86_avx512_mask3_vfnmsub_pd_512, 117792}, // __builtin_ia32_vfnmsubpd512_mask3
-+      {Intrinsic::x86_fma_vfnmsub_ps, 124524}, // __builtin_ia32_vfnmsubps
-+      {Intrinsic::x86_avx512_mask_vfnmsub_ps_128, 115179}, // __builtin_ia32_vfnmsubps128_mask
-+      {Intrinsic::x86_avx512_mask3_vfnmsub_ps_128, 117826}, // __builtin_ia32_vfnmsubps128_mask3
-+      {Intrinsic::x86_fma_vfnmsub_ps_256, 124549}, // __builtin_ia32_vfnmsubps256
-+      {Intrinsic::x86_avx512_mask_vfnmsub_ps_256, 115212}, // __builtin_ia32_vfnmsubps256_mask
-+      {Intrinsic::x86_avx512_mask3_vfnmsub_ps_256, 117860}, // __builtin_ia32_vfnmsubps256_mask3
-+      {Intrinsic::x86_avx512_mask_vfnmsub_ps_512, 115245}, // __builtin_ia32_vfnmsubps512_mask
-+      {Intrinsic::x86_avx512_mask3_vfnmsub_ps_512, 117894}, // __builtin_ia32_vfnmsubps512_mask3
-+      {Intrinsic::x86_fma_vfnmsub_sd, 124577}, // __builtin_ia32_vfnmsubsd
-+      {Intrinsic::x86_avx512_mask3_vfnmsub_sd, 117928}, // __builtin_ia32_vfnmsubsd3_mask3
-+      {Intrinsic::x86_fma_vfnmsub_ss, 124602}, // __builtin_ia32_vfnmsubss
-+      {Intrinsic::x86_avx512_mask3_vfnmsub_ss, 117960}, // __builtin_ia32_vfnmsubss3_mask3
-+      {Intrinsic::x86_xop_vfrcz_pd, 131655}, // __builtin_ia32_vfrczpd
-+      {Intrinsic::x86_xop_vfrcz_pd_256, 131678}, // __builtin_ia32_vfrczpd256
-+      {Intrinsic::x86_xop_vfrcz_ps, 131704}, // __builtin_ia32_vfrczps
-+      {Intrinsic::x86_xop_vfrcz_ps_256, 131727}, // __builtin_ia32_vfrczps256
-+      {Intrinsic::x86_xop_vfrcz_sd, 131753}, // __builtin_ia32_vfrczsd
-+      {Intrinsic::x86_xop_vfrcz_ss, 131776}, // __builtin_ia32_vfrczss
-+      {Intrinsic::x86_xop_vpcmov, 131799}, // __builtin_ia32_vpcmov
-+      {Intrinsic::x86_xop_vpcmov_256, 131821}, // __builtin_ia32_vpcmov_256
-+      {Intrinsic::x86_xop_vpcomb, 131847}, // __builtin_ia32_vpcomb
-+      {Intrinsic::x86_xop_vpcomd, 131869}, // __builtin_ia32_vpcomd
-+      {Intrinsic::x86_xop_vpcomq, 131891}, // __builtin_ia32_vpcomq
-+      {Intrinsic::x86_xop_vpcomub, 131913}, // __builtin_ia32_vpcomub
-+      {Intrinsic::x86_xop_vpcomud, 131936}, // __builtin_ia32_vpcomud
-+      {Intrinsic::x86_xop_vpcomuq, 131959}, // __builtin_ia32_vpcomuq
-+      {Intrinsic::x86_xop_vpcomuw, 131982}, // __builtin_ia32_vpcomuw
-+      {Intrinsic::x86_xop_vpcomw, 132005}, // __builtin_ia32_vpcomw
-+      {Intrinsic::x86_avx512_mask_conflict_q_128, 98680}, // __builtin_ia32_vpconflictdi_128_mask
-+      {Intrinsic::x86_avx512_mask_conflict_q_256, 98717}, // __builtin_ia32_vpconflictdi_256_mask
-+      {Intrinsic::x86_avx512_mask_conflict_q_512, 98754}, // __builtin_ia32_vpconflictdi_512_mask
-+      {Intrinsic::x86_avx512_mask_conflict_d_128, 98569}, // __builtin_ia32_vpconflictsi_128_mask
-+      {Intrinsic::x86_avx512_mask_conflict_d_256, 98606}, // __builtin_ia32_vpconflictsi_256_mask
-+      {Intrinsic::x86_avx512_mask_conflict_d_512, 98643}, // __builtin_ia32_vpconflictsi_512_mask
-+      {Intrinsic::x86_avx_vperm2f128_pd_256, 91387}, // __builtin_ia32_vperm2f128_pd256
-+      {Intrinsic::x86_avx_vperm2f128_ps_256, 91419}, // __builtin_ia32_vperm2f128_ps256
-+      {Intrinsic::x86_avx_vperm2f128_si_256, 91451}, // __builtin_ia32_vperm2f128_si256
-+      {Intrinsic::x86_avx512_mask_vpermi2var_d_128, 115278}, // __builtin_ia32_vpermi2vard128_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_d_256, 115313}, // __builtin_ia32_vpermi2vard256_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_d_512, 115348}, // __builtin_ia32_vpermi2vard512_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_hi_128, 115383}, // __builtin_ia32_vpermi2varhi128_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_hi_256, 115419}, // __builtin_ia32_vpermi2varhi256_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_hi_512, 115455}, // __builtin_ia32_vpermi2varhi512_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_pd_128, 115491}, // __builtin_ia32_vpermi2varpd128_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_pd_256, 115527}, // __builtin_ia32_vpermi2varpd256_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_pd_512, 115563}, // __builtin_ia32_vpermi2varpd512_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_ps_128, 115599}, // __builtin_ia32_vpermi2varps128_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_ps_256, 115635}, // __builtin_ia32_vpermi2varps256_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_ps_512, 115671}, // __builtin_ia32_vpermi2varps512_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_q_128, 115707}, // __builtin_ia32_vpermi2varq128_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_q_256, 115742}, // __builtin_ia32_vpermi2varq256_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_q_512, 115777}, // __builtin_ia32_vpermi2varq512_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_qi_128, 115812}, // __builtin_ia32_vpermi2varqi128_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_qi_256, 115848}, // __builtin_ia32_vpermi2varqi256_mask
-+      {Intrinsic::x86_avx512_mask_vpermi2var_qi_512, 115884}, // __builtin_ia32_vpermi2varqi512_mask
-+      {Intrinsic::x86_xop_vpermil2pd, 132027}, // __builtin_ia32_vpermil2pd
-+      {Intrinsic::x86_xop_vpermil2pd_256, 132053}, // __builtin_ia32_vpermil2pd256
-+      {Intrinsic::x86_xop_vpermil2ps, 132082}, // __builtin_ia32_vpermil2ps
-+      {Intrinsic::x86_xop_vpermil2ps_256, 132108}, // __builtin_ia32_vpermil2ps256
-+      {Intrinsic::x86_avx_vpermilvar_pd, 91483}, // __builtin_ia32_vpermilvarpd
-+      {Intrinsic::x86_avx_vpermilvar_pd_256, 91511}, // __builtin_ia32_vpermilvarpd256
-+      {Intrinsic::x86_avx512_vpermilvar_pd_512, 123389}, // __builtin_ia32_vpermilvarpd512
-+      {Intrinsic::x86_avx_vpermilvar_ps, 91542}, // __builtin_ia32_vpermilvarps
-+      {Intrinsic::x86_avx_vpermilvar_ps_256, 91570}, // __builtin_ia32_vpermilvarps256
-+      {Intrinsic::x86_avx512_vpermilvar_ps_512, 123420}, // __builtin_ia32_vpermilvarps512
-+      {Intrinsic::x86_avx512_mask_vpermt2var_d_128, 115920}, // __builtin_ia32_vpermt2vard128_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_d_128, 118946}, // __builtin_ia32_vpermt2vard128_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_d_256, 115955}, // __builtin_ia32_vpermt2vard256_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_d_256, 118982}, // __builtin_ia32_vpermt2vard256_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_d_512, 115990}, // __builtin_ia32_vpermt2vard512_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_d_512, 119018}, // __builtin_ia32_vpermt2vard512_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_hi_128, 116025}, // __builtin_ia32_vpermt2varhi128_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_hi_128, 119054}, // __builtin_ia32_vpermt2varhi128_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_hi_256, 116061}, // __builtin_ia32_vpermt2varhi256_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_hi_256, 119091}, // __builtin_ia32_vpermt2varhi256_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_hi_512, 116097}, // __builtin_ia32_vpermt2varhi512_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_hi_512, 119128}, // __builtin_ia32_vpermt2varhi512_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_pd_128, 116133}, // __builtin_ia32_vpermt2varpd128_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_pd_128, 119165}, // __builtin_ia32_vpermt2varpd128_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_pd_256, 116169}, // __builtin_ia32_vpermt2varpd256_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_pd_256, 119202}, // __builtin_ia32_vpermt2varpd256_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_pd_512, 116205}, // __builtin_ia32_vpermt2varpd512_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_pd_512, 119239}, // __builtin_ia32_vpermt2varpd512_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_ps_128, 116241}, // __builtin_ia32_vpermt2varps128_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_ps_128, 119276}, // __builtin_ia32_vpermt2varps128_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_ps_256, 116277}, // __builtin_ia32_vpermt2varps256_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_ps_256, 119313}, // __builtin_ia32_vpermt2varps256_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_ps_512, 116313}, // __builtin_ia32_vpermt2varps512_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_ps_512, 119350}, // __builtin_ia32_vpermt2varps512_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_q_128, 116349}, // __builtin_ia32_vpermt2varq128_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_q_128, 119387}, // __builtin_ia32_vpermt2varq128_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_q_256, 116384}, // __builtin_ia32_vpermt2varq256_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_q_256, 119423}, // __builtin_ia32_vpermt2varq256_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_q_512, 116419}, // __builtin_ia32_vpermt2varq512_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_q_512, 119459}, // __builtin_ia32_vpermt2varq512_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_qi_128, 116454}, // __builtin_ia32_vpermt2varqi128_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_qi_128, 119495}, // __builtin_ia32_vpermt2varqi128_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_qi_256, 116490}, // __builtin_ia32_vpermt2varqi256_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_qi_256, 119532}, // __builtin_ia32_vpermt2varqi256_maskz
-+      {Intrinsic::x86_avx512_mask_vpermt2var_qi_512, 116526}, // __builtin_ia32_vpermt2varqi512_mask
-+      {Intrinsic::x86_avx512_maskz_vpermt2var_qi_512, 119569}, // __builtin_ia32_vpermt2varqi512_maskz
-+      {Intrinsic::x86_xop_vphaddbd, 132137}, // __builtin_ia32_vphaddbd
-+      {Intrinsic::x86_xop_vphaddbq, 132161}, // __builtin_ia32_vphaddbq
-+      {Intrinsic::x86_xop_vphaddbw, 132185}, // __builtin_ia32_vphaddbw
-+      {Intrinsic::x86_xop_vphadddq, 132209}, // __builtin_ia32_vphadddq
-+      {Intrinsic::x86_xop_vphaddubd, 132233}, // __builtin_ia32_vphaddubd
-+      {Intrinsic::x86_xop_vphaddubq, 132258}, // __builtin_ia32_vphaddubq
-+      {Intrinsic::x86_xop_vphaddubw, 132283}, // __builtin_ia32_vphaddubw
-+      {Intrinsic::x86_xop_vphaddudq, 132308}, // __builtin_ia32_vphaddudq
-+      {Intrinsic::x86_xop_vphadduwd, 132333}, // __builtin_ia32_vphadduwd
-+      {Intrinsic::x86_xop_vphadduwq, 132358}, // __builtin_ia32_vphadduwq
-+      {Intrinsic::x86_xop_vphaddwd, 132383}, // __builtin_ia32_vphaddwd
-+      {Intrinsic::x86_xop_vphaddwq, 132407}, // __builtin_ia32_vphaddwq
-+      {Intrinsic::x86_xop_vphsubbw, 132431}, // __builtin_ia32_vphsubbw
-+      {Intrinsic::x86_xop_vphsubdq, 132455}, // __builtin_ia32_vphsubdq
-+      {Intrinsic::x86_xop_vphsubwd, 132479}, // __builtin_ia32_vphsubwd
-+      {Intrinsic::x86_xop_vpmacsdd, 132503}, // __builtin_ia32_vpmacsdd
-+      {Intrinsic::x86_xop_vpmacsdqh, 132527}, // __builtin_ia32_vpmacsdqh
-+      {Intrinsic::x86_xop_vpmacsdql, 132552}, // __builtin_ia32_vpmacsdql
-+      {Intrinsic::x86_xop_vpmacssdd, 132577}, // __builtin_ia32_vpmacssdd
-+      {Intrinsic::x86_xop_vpmacssdqh, 132602}, // __builtin_ia32_vpmacssdqh
-+      {Intrinsic::x86_xop_vpmacssdql, 132628}, // __builtin_ia32_vpmacssdql
-+      {Intrinsic::x86_xop_vpmacsswd, 132654}, // __builtin_ia32_vpmacsswd
-+      {Intrinsic::x86_xop_vpmacssww, 132679}, // __builtin_ia32_vpmacssww
-+      {Intrinsic::x86_xop_vpmacswd, 132704}, // __builtin_ia32_vpmacswd
-+      {Intrinsic::x86_xop_vpmacsww, 132728}, // __builtin_ia32_vpmacsww
-+      {Intrinsic::x86_xop_vpmadcsswd, 132752}, // __builtin_ia32_vpmadcsswd
-+      {Intrinsic::x86_xop_vpmadcswd, 132778}, // __builtin_ia32_vpmadcswd
-+      {Intrinsic::x86_avx512_mask_vpmadd52h_uq_128, 116562}, // __builtin_ia32_vpmadd52huq128_mask
-+      {Intrinsic::x86_avx512_maskz_vpmadd52h_uq_128, 119606}, // __builtin_ia32_vpmadd52huq128_maskz
-+      {Intrinsic::x86_avx512_mask_vpmadd52h_uq_256, 116597}, // __builtin_ia32_vpmadd52huq256_mask
-+      {Intrinsic::x86_avx512_maskz_vpmadd52h_uq_256, 119642}, // __builtin_ia32_vpmadd52huq256_maskz
-+      {Intrinsic::x86_avx512_mask_vpmadd52h_uq_512, 116632}, // __builtin_ia32_vpmadd52huq512_mask
-+      {Intrinsic::x86_avx512_maskz_vpmadd52h_uq_512, 119678}, // __builtin_ia32_vpmadd52huq512_maskz
-+      {Intrinsic::x86_avx512_mask_vpmadd52l_uq_128, 116667}, // __builtin_ia32_vpmadd52luq128_mask
-+      {Intrinsic::x86_avx512_maskz_vpmadd52l_uq_128, 119714}, // __builtin_ia32_vpmadd52luq128_maskz
-+      {Intrinsic::x86_avx512_mask_vpmadd52l_uq_256, 116702}, // __builtin_ia32_vpmadd52luq256_mask
-+      {Intrinsic::x86_avx512_maskz_vpmadd52l_uq_256, 119750}, // __builtin_ia32_vpmadd52luq256_maskz
-+      {Intrinsic::x86_avx512_mask_vpmadd52l_uq_512, 116737}, // __builtin_ia32_vpmadd52luq512_mask
-+      {Intrinsic::x86_avx512_maskz_vpmadd52l_uq_512, 119786}, // __builtin_ia32_vpmadd52luq512_maskz
-+      {Intrinsic::x86_avx512_mask_pmultishift_qb_128, 110621}, // __builtin_ia32_vpmultishiftqb128_mask
-+      {Intrinsic::x86_avx512_mask_pmultishift_qb_256, 110659}, // __builtin_ia32_vpmultishiftqb256_mask
-+      {Intrinsic::x86_avx512_mask_pmultishift_qb_512, 110697}, // __builtin_ia32_vpmultishiftqb512_mask
-+      {Intrinsic::x86_xop_vpperm, 132803}, // __builtin_ia32_vpperm
-+      {Intrinsic::x86_xop_vprotb, 132825}, // __builtin_ia32_vprotb
-+      {Intrinsic::x86_xop_vprotbi, 132847}, // __builtin_ia32_vprotbi
-+      {Intrinsic::x86_xop_vprotd, 132870}, // __builtin_ia32_vprotd
-+      {Intrinsic::x86_xop_vprotdi, 132892}, // __builtin_ia32_vprotdi
-+      {Intrinsic::x86_xop_vprotq, 132915}, // __builtin_ia32_vprotq
-+      {Intrinsic::x86_xop_vprotqi, 132937}, // __builtin_ia32_vprotqi
-+      {Intrinsic::x86_xop_vprotw, 132960}, // __builtin_ia32_vprotw
-+      {Intrinsic::x86_xop_vprotwi, 132982}, // __builtin_ia32_vprotwi
-+      {Intrinsic::x86_xop_vpshab, 133005}, // __builtin_ia32_vpshab
-+      {Intrinsic::x86_xop_vpshad, 133027}, // __builtin_ia32_vpshad
-+      {Intrinsic::x86_xop_vpshaq, 133049}, // __builtin_ia32_vpshaq
-+      {Intrinsic::x86_xop_vpshaw, 133071}, // __builtin_ia32_vpshaw
-+      {Intrinsic::x86_xop_vpshlb, 133093}, // __builtin_ia32_vpshlb
-+      {Intrinsic::x86_xop_vpshld, 133115}, // __builtin_ia32_vpshld
-+      {Intrinsic::x86_xop_vpshlq, 133137}, // __builtin_ia32_vpshlq
-+      {Intrinsic::x86_xop_vpshlw, 133159}, // __builtin_ia32_vpshlw
-+      {Intrinsic::x86_avx_vtestc_pd, 91601}, // __builtin_ia32_vtestcpd
-+      {Intrinsic::x86_avx_vtestc_pd_256, 91625}, // __builtin_ia32_vtestcpd256
-+      {Intrinsic::x86_avx_vtestc_ps, 91652}, // __builtin_ia32_vtestcps
-+      {Intrinsic::x86_avx_vtestc_ps_256, 91676}, // __builtin_ia32_vtestcps256
-+      {Intrinsic::x86_avx_vtestnzc_pd, 91703}, // __builtin_ia32_vtestnzcpd
-+      {Intrinsic::x86_avx_vtestnzc_pd_256, 91729}, // __builtin_ia32_vtestnzcpd256
-+      {Intrinsic::x86_avx_vtestnzc_ps, 91758}, // __builtin_ia32_vtestnzcps
-+      {Intrinsic::x86_avx_vtestnzc_ps_256, 91784}, // __builtin_ia32_vtestnzcps256
-+      {Intrinsic::x86_avx_vtestz_pd, 91813}, // __builtin_ia32_vtestzpd
-+      {Intrinsic::x86_avx_vtestz_pd_256, 91837}, // __builtin_ia32_vtestzpd256
-+      {Intrinsic::x86_avx_vtestz_ps, 91864}, // __builtin_ia32_vtestzps
-+      {Intrinsic::x86_avx_vtestz_ps_256, 91888}, // __builtin_ia32_vtestzps256
-+      {Intrinsic::x86_avx_vzeroall, 91915}, // __builtin_ia32_vzeroall
-+      {Intrinsic::x86_avx_vzeroupper, 91939}, // __builtin_ia32_vzeroupper
-+      {Intrinsic::x86_wrfsbase_32, 131465}, // __builtin_ia32_wrfsbase32
-+      {Intrinsic::x86_wrfsbase_64, 131491}, // __builtin_ia32_wrfsbase64
-+      {Intrinsic::x86_wrgsbase_32, 131517}, // __builtin_ia32_wrgsbase32
-+      {Intrinsic::x86_wrgsbase_64, 131543}, // __builtin_ia32_wrgsbase64
-+      {Intrinsic::x86_flags_write_u32, 123725}, // __builtin_ia32_writeeflags_u32
-+      {Intrinsic::x86_flags_write_u64, 123756}, // __builtin_ia32_writeeflags_u64
-+      {Intrinsic::x86_wrpkru, 131569}, // __builtin_ia32_wrpkru
-+      {Intrinsic::x86_xabort, 131591}, // __builtin_ia32_xabort
-+      {Intrinsic::x86_xbegin, 131613}, // __builtin_ia32_xbegin
-+      {Intrinsic::x86_xend, 131635}, // __builtin_ia32_xend
-+      {Intrinsic::x86_xtest, 133181}, // __builtin_ia32_xtest
-+    };
-+    auto I = std::lower_bound(std::begin(x86Names),
-+                              std::end(x86Names),
-+                              BuiltinNameStr);
-+    if (I != std::end(x86Names) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  if (TargetPrefix == "xcore") {
-+    static const BuiltinEntry xcoreNames[] = {
-+      {Intrinsic::xcore_bitrev, 133202}, // __builtin_bitrev
-+      {Intrinsic::xcore_getid, 133219}, // __builtin_getid
-+      {Intrinsic::xcore_getps, 133235}, // __builtin_getps
-+      {Intrinsic::xcore_setps, 133251}, // __builtin_setps
-+    };
-+    auto I = std::lower_bound(std::begin(xcoreNames),
-+                              std::end(xcoreNames),
-+                              BuiltinNameStr);
-+    if (I != std::end(xcoreNames) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  return Intrinsic::not_intrinsic;
-+}
-+#endif
-+
-+// Get the LLVM intrinsic that corresponds to a builtin.
-+// This is used by the C front-end.  The builtin name is passed
-+// in as BuiltinName, and a target prefix (e.g. 'ppc') is passed
-+// in as TargetPrefix.  The result is assigned to 'IntrinsicID'.
-+#ifdef GET_LLVM_INTRINSIC_FOR_MS_BUILTIN
-+Intrinsic::ID Intrinsic::getIntrinsicForMSBuiltin(const char *TargetPrefixStr, StringRef BuiltinNameStr) {
-+  static const char BuiltinNames[] = {
-+  '_', '_', 'd', 'm', 'b', '\000', '_', '_', 'd', 's', 'b', '\000', '_', '_', 'i',
-+  's', 'b', '\000', '_', 'M', 'o', 'v', 'e', 'F', 'r', 'o', 'm', 'C', 'o', 'p',
-+  'r', 'o', 'c', 'e', 's', 's', 'o', 'r', '\000', '_', 'M', 'o', 'v', 'e', 'F',
-+  'r', 'o', 'm', 'C', 'o', 'p', 'r', 'o', 'c', 'e', 's', 's', 'o', 'r', '2',
-+  '\000',
-+  };
-+
-+  struct BuiltinEntry {
-+    Intrinsic::ID IntrinID;
-+    unsigned StrTabOffset;
-+    const char *getName() const {
-+      return &BuiltinNames[StrTabOffset];
-+    }
-+    bool operator<(StringRef RHS) const {
-+      return strncmp(getName(), RHS.data(), RHS.size()) < 0;
-+    }
-+  };
-+  StringRef TargetPrefix(TargetPrefixStr);
-+
-+  if (TargetPrefix == "arm") {
-+    static const BuiltinEntry armNames[] = {
-+      {Intrinsic::arm_mrc, 18}, // _MoveFromCoprocessor
-+      {Intrinsic::arm_mrc2, 39}, // _MoveFromCoprocessor2
-+      {Intrinsic::arm_dmb, 0}, // __dmb
-+      {Intrinsic::arm_dsb, 6}, // __dsb
-+      {Intrinsic::arm_isb, 12}, // __isb
-+    };
-+    auto I = std::lower_bound(std::begin(armNames),
-+                              std::end(armNames),
-+                              BuiltinNameStr);
-+    if (I != std::end(armNames) &&
-+        I->getName() == BuiltinNameStr)
-+      return I->IntrinID;
-+  }
-+  return Intrinsic::not_intrinsic;
-+}
-+#endif
-+
-+#if defined(_MSC_VER) && defined(setjmp_undefined_for_msvc)
-+// let's return it to _setjmp state
-+#  pragma pop_macro("setjmp")
-+#  undef setjmp_undefined_for_msvc
-+#endif
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Makefile b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Makefile
deleted file mode 100644
index 5e4f4d3263..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_Makefile
+++ /dev/null
@@ -1,249 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/Makefile.orig	2020-07-23 08:46:21.614204461 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/Makefile
-@@ -0,0 +1,244 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Default target executed when no arguments are given to make.
-+default_target: all
-+
-+.PHONY : default_target
-+
-+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
-+.NOTPARALLEL:
-+
-+
-+#=============================================================================
-+# Special targets provided by cmake.
-+
-+# Disable implicit rules so canonical targets will work.
-+.SUFFIXES:
-+
-+
-+# Disable VCS-based implicit rules.
-+% : %,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : SCCS/s.%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : s.%
-+
-+
-+.SUFFIXES: .hpux_make_needs_suffix_list
-+
-+
-+# Command-line flag to silence nested $(MAKE).
-+$(VERBOSE)MAKESILENT = -s
-+
-+# Suppress display of executed commands.
-+$(VERBOSE).SILENT:
-+
-+
-+# A target that is always out of date.
-+cmake_force:
-+
-+.PHONY : cmake_force
-+
-+#=============================================================================
-+# Set environment variables for the build.
-+
-+# The shell in which to execute make rules.
-+SHELL = /bin/sh
-+
-+# The CMake executable.
-+CMAKE_COMMAND = /usr/pkg/bin/cmake
-+
-+# The command to remove a file.
-+RM = /usr/pkg/bin/cmake -E rm -f
-+
-+# Escaping for special characters.
-+EQUALS = =
-+
-+# The top-level source directory on which CMake was run.
-+CMAKE_SOURCE_DIR = /home/ryoon/tmp4/llvm-7.0.1.src
-+
-+# The top-level build directory on which CMake was run.
-+CMAKE_BINARY_DIR = /home/ryoon/tmp4/build
-+
-+#=============================================================================
-+# Targets provided globally by CMake.
-+
-+# Special rule for the target install/strip
-+install/strip: preinstall
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+	/usr/pkg/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip
-+
-+# Special rule for the target install/strip
-+install/strip/fast: preinstall/fast
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+	/usr/pkg/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip/fast
-+
-+# Special rule for the target install/local
-+install/local: preinstall
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+	/usr/pkg/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local
-+
-+# Special rule for the target install/local
-+install/local/fast: preinstall/fast
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+	/usr/pkg/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local/fast
-+
-+# Special rule for the target install
-+install: preinstall
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+	/usr/pkg/bin/cmake -P cmake_install.cmake
-+.PHONY : install
-+
-+# Special rule for the target install
-+install/fast: preinstall/fast
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+	/usr/pkg/bin/cmake -P cmake_install.cmake
-+.PHONY : install/fast
-+
-+# Special rule for the target package
-+package: preinstall
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
-+	cd /home/ryoon/tmp4/build && /usr/pkg/bin/cpack --config ./CPackConfig.cmake
-+.PHONY : package
-+
-+# Special rule for the target package
-+package/fast: package
-+
-+.PHONY : package/fast
-+
-+# Special rule for the target package_source
-+package_source:
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
-+	cd /home/ryoon/tmp4/build && /usr/pkg/bin/cpack --config ./CPackSourceConfig.cmake /home/ryoon/tmp4/build/CPackSourceConfig.cmake
-+.PHONY : package_source
-+
-+# Special rule for the target package_source
-+package_source/fast: package_source
-+
-+.PHONY : package_source/fast
-+
-+# Special rule for the target edit_cache
-+edit_cache:
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
-+	/usr/pkg/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : edit_cache
-+
-+# Special rule for the target edit_cache
-+edit_cache/fast: edit_cache
-+
-+.PHONY : edit_cache/fast
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache:
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
-+	/usr/pkg/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : rebuild_cache
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache/fast: rebuild_cache
-+
-+.PHONY : rebuild_cache/fast
-+
-+# Special rule for the target list_install_components
-+list_install_components:
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"LLVMAArch64AsmParser\" \"LLVMAArch64AsmPrinter\" \"LLVMAArch64CodeGen\" \"LLVMAArch64Desc\" \"LLVMAArch64Disassembler\" \"LLVMAArch64Info\" \"LLVMAArch64Utils\" \"LLVMAMDGPUAsmParser\" \"LLVMAMDGPUAsmPrinter\" \"LLVMAMDGPUCodeGen\" \"LLVMAMDGPUDesc\" \"LLVMAMDGPUDisassembler\" \"LLVMAMDGPUInfo\" \"LLVMAMDGPUUtils\" \"LLVMARMAsmParser\" \"LLVMARMAsmPrinter\" \"LLVMARMCodeGen\" \"LLVMARMDesc\" \"LLVMARMDisassembler\" \"LLVMARMInfo\" \"LLVMARMUtils\" \"LLVMAggressiveInstCombine\" \"LLVMAnalysis\" \"LLVMAsmParser\" \"LLVMAsmPrinter\" \"LLVMBPFAsmParser\" \"LLVMBPFAsmPrinter\" \"LLVMBPFCodeGen\" \"LLVMBPFDesc\" \"LLVMBPFDisassembler\" \"LLVMBPFInfo\" \"LLVMBinaryFormat\" \"LLVMBitReader\" \"LLVMBitWriter\" \"LLVMCodeGen\" \"LLVMCore\" \"LLVMCoroutines\" \"LLVMCoverage\" \"LLVMDebugInfoCodeView\" \"LLVMDebugInfoDWARF\" \"LLVMDebugInfoMSF\" \"LLVMDebugInfoPDB\" \"LLVMDemangle\" \"L
LVMDlltoolDriver\" \"LLVMExecutionEngine\" \"LLVMFuzzMutate\" \"LLVMGlobalISel\" \"LLVMHexagonAsmParser\" \"LLVMHexagonCodeGen\" \"LLVMHexagonDesc\" \"LLVMHexagonDisassembler\" \"LLVMHexagonInfo\" \"LLVMIRReader\" \"LLVMInstCombine\" \"LLVMInstrumentation\" \"LLVMInterpreter\" \"LLVMLTO\" \"LLVMLanaiAsmParser\" \"LLVMLanaiAsmPrinter\" \"LLVMLanaiCodeGen\" \"LLVMLanaiDesc\" \"LLVMLanaiDisassembler\" \"LLVMLanaiInfo\" \"LLVMLibDriver\" \"LLVMLineEditor\" \"LLVMLinker\" \"LLVMMC\" \"LLVMMCDisassembler\" \"LLVMMCJIT\" \"LLVMMCParser\" \"LLVMMIRParser\" \"LLVMMSP430AsmPrinter\" \"LLVMMSP430CodeGen\" \"LLVMMSP430Desc\" \"LLVMMSP430Info\" \"LLVMMipsAsmParser\" \"LLVMMipsAsmPrinter\" \"LLVMMipsCodeGen\" \"LLVMMipsDesc\" \"LLVMMipsDisassembler\" \"LLVMMipsInfo\" \"LLVMNVPTXAsmPrinter\" \"LLVMNVPTXCodeGen\" \"LLVMNVPTXDesc\" \"LLVMNVPTXInfo\" \"LLVMObjCARCOpts\" \"LLVMObject\" \"LLVMObjectYAML\" \"LLVMOption\" \"LLVMOrcJIT\" \"LLVMPasses\" \"LLVMPowerPCAsmParser\" \"LLVMPowerPCAsmPrinter\" \"L
 LVMPowerPCCodeGen\" \"LLVMPowerPCDesc\" \"LLVMPowerPCDisassembler\" \"LLVMPowerPCInfo\" \"LLVMProfileData\" \"LLVMRuntimeDyld\" \"LLVMScalarOpts\" \"LLVMSelectionDAG\" \"LLVMSparcAsmParser\" \"LLVMSparcAsmPrinter\" \"LLVMSparcCodeGen\" \"LLVMSparcDesc\" \"LLVMSparcDisassembler\" \"LLVMSparcInfo\" \"LLVMSupport\" \"LLVMSymbolize\" \"LLVMSystemZAsmParser\" \"LLVMSystemZAsmPrinter\" \"LLVMSystemZCodeGen\" \"LLVMSystemZDesc\" \"LLVMSystemZDisassembler\" \"LLVMSystemZInfo\" \"LLVMTableGen\" \"LLVMTarget\" \"LLVMTransformUtils\" \"LLVMVectorize\" \"LLVMWindowsManifest\" \"LLVMX86AsmParser\" \"LLVMX86AsmPrinter\" \"LLVMX86CodeGen\" \"LLVMX86Desc\" \"LLVMX86Disassembler\" \"LLVMX86Info\" \"LLVMX86Utils\" \"LLVMXCoreAsmPrinter\" \"LLVMXCoreCodeGen\" \"LLVMXCoreDesc\" \"LLVMXCoreDisassembler\" \"LLVMXCoreInfo\" \"LLVMXRay\" \"LLVMipo\" \"LTO\" \"Unspecified\" \"bugpoint\" \"cmake-exports\" \"dsymutil\" \"llc\" \"lli\" \"llvm-ar\" \"llvm-as\" \"llvm-bcanalyzer\" \"llvm-c-test\" \"llvm-cat\" \"
 llvm-cfi-verify\" \"llvm-config\" \"llvm-cov\" \"llvm-cvtres\" \"llvm-cxxdump\" \"llvm-cxxfilt\" \"llvm-diff\" \"llvm-dis\" \"llvm-dlltool\" \"llvm-dwarfdump\" \"llvm-dwp\" \"llvm-exegesis\" \"llvm-extract\" \"llvm-headers\" \"llvm-lib\" \"llvm-link\" \"llvm-lto\" \"llvm-lto2\" \"llvm-mc\" \"llvm-mca\" \"llvm-modextract\" \"llvm-mt\" \"llvm-nm\" \"llvm-objcopy\" \"llvm-objdump\" \"llvm-opt-report\" \"llvm-pdbutil\" \"llvm-profdata\" \"llvm-ranlib\" \"llvm-rc\" \"llvm-readelf\" \"llvm-readobj\" \"llvm-rtdyld\" \"llvm-size\" \"llvm-split\" \"llvm-stress\" \"llvm-strings\" \"llvm-strip\" \"llvm-symbolizer\" \"llvm-undname\" \"llvm-xray\" \"obj2yaml\" \"opt\" \"opt-viewer\" \"sancov\" \"sanstats\" \"verify-uselistorder\" \"yaml2obj\""
-+.PHONY : list_install_components
-+
-+# Special rule for the target list_install_components
-+list_install_components/fast: list_install_components
-+
-+.PHONY : list_install_components/fast
-+
-+# The main all target
-+all: cmake_check_build_system
-+	cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/ryoon/tmp4/build/CMakeFiles /home/ryoon/tmp4/build/include/llvm/IR/CMakeFiles/progress.marks
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/IR/all
-+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ryoon/tmp4/build/CMakeFiles 0
-+.PHONY : all
-+
-+# The main clean target
-+clean:
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/IR/clean
-+.PHONY : clean
-+
-+# The main clean target
-+clean/fast: clean
-+
-+.PHONY : clean/fast
-+
-+# Prepare targets for installation.
-+preinstall: all
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/IR/preinstall
-+.PHONY : preinstall
-+
-+# Prepare targets for installation.
-+preinstall/fast:
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/IR/preinstall
-+.PHONY : preinstall/fast
-+
-+# clear depends
-+depend:
-+	cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
-+.PHONY : depend
-+
-+# Convenience name for target.
-+include/llvm/IR/CMakeFiles/intrinsics_gen.dir/rule:
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/IR/CMakeFiles/intrinsics_gen.dir/rule
-+.PHONY : include/llvm/IR/CMakeFiles/intrinsics_gen.dir/rule
-+
-+# Convenience name for target.
-+intrinsics_gen: include/llvm/IR/CMakeFiles/intrinsics_gen.dir/rule
-+
-+.PHONY : intrinsics_gen
-+
-+# fast build rule for target.
-+intrinsics_gen/fast:
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build.make include/llvm/IR/CMakeFiles/intrinsics_gen.dir/build
-+.PHONY : intrinsics_gen/fast
-+
-+# Help Target
-+help:
-+	@echo "The following are some of the valid targets for this Makefile:"
-+	@echo "... all (the default if no target is provided)"
-+	@echo "... clean"
-+	@echo "... depend"
-+	@echo "... edit_cache"
-+	@echo "... install"
-+	@echo "... install/local"
-+	@echo "... install/strip"
-+	@echo "... list_install_components"
-+	@echo "... package"
-+	@echo "... package_source"
-+	@echo "... rebuild_cache"
-+	@echo "... intrinsics_gen"
-+.PHONY : help
-+
-+
-+
-+#=============================================================================
-+# Special targets to cleanup operation of make.
-+
-+# Special rule to run CMake to check the build system integrity.
-+# No rule that depends on this can have commands that come from listfiles
-+# because they might be regenerated.
-+cmake_check_build_system:
-+	cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-+.PHONY : cmake_check_build_system
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_cmake__install.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_cmake__install.cmake
deleted file mode 100644
index 91c6672bc9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_IR_cmake__install.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/cmake_install.cmake.orig	2020-07-23 08:46:21.618402824 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/IR/cmake_install.cmake
-@@ -0,0 +1,34 @@
-+# Install script for directory: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/IR
-+
-+# Set the install prefix
-+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
-+  set(CMAKE_INSTALL_PREFIX "/usr/local")
-+endif()
-+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-+
-+# Set the install configuration name.
-+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
-+  if(BUILD_TYPE)
-+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
-+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
-+  else()
-+    set(CMAKE_INSTALL_CONFIG_NAME "Debug")
-+  endif()
-+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-+endif()
-+
-+# Set the component getting installed.
-+if(NOT CMAKE_INSTALL_COMPONENT)
-+  if(COMPONENT)
-+    message(STATUS "Install component: \"${COMPONENT}\"")
-+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
-+  else()
-+    set(CMAKE_INSTALL_COMPONENT)
-+  endif()
-+endif()
-+
-+# Is this installation the result of a crosscompile?
-+if(NOT DEFINED CMAKE_CROSSCOMPILING)
-+  set(CMAKE_CROSSCOMPILING "FALSE")
-+endif()
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Makefile b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Makefile
deleted file mode 100644
index 1ab0763cdd..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Makefile
+++ /dev/null
@@ -1,233 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Makefile.orig	2020-07-23 08:46:21.680270007 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Makefile
-@@ -0,0 +1,228 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Default target executed when no arguments are given to make.
-+default_target: all
-+
-+.PHONY : default_target
-+
-+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
-+.NOTPARALLEL:
-+
-+
-+#=============================================================================
-+# Special targets provided by cmake.
-+
-+# Disable implicit rules so canonical targets will work.
-+.SUFFIXES:
-+
-+
-+# Disable VCS-based implicit rules.
-+% : %,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : SCCS/s.%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : s.%
-+
-+
-+.SUFFIXES: .hpux_make_needs_suffix_list
-+
-+
-+# Command-line flag to silence nested $(MAKE).
-+$(VERBOSE)MAKESILENT = -s
-+
-+# Suppress display of executed commands.
-+$(VERBOSE).SILENT:
-+
-+
-+# A target that is always out of date.
-+cmake_force:
-+
-+.PHONY : cmake_force
-+
-+#=============================================================================
-+# Set environment variables for the build.
-+
-+# The shell in which to execute make rules.
-+SHELL = /bin/sh
-+
-+# The CMake executable.
-+CMAKE_COMMAND = /usr/pkg/bin/cmake
-+
-+# The command to remove a file.
-+RM = /usr/pkg/bin/cmake -E rm -f
-+
-+# Escaping for special characters.
-+EQUALS = =
-+
-+# The top-level source directory on which CMake was run.
-+CMAKE_SOURCE_DIR = /home/ryoon/tmp4/llvm-7.0.1.src
-+
-+# The top-level build directory on which CMake was run.
-+CMAKE_BINARY_DIR = /home/ryoon/tmp4/build
-+
-+#=============================================================================
-+# Targets provided globally by CMake.
-+
-+# Special rule for the target install/strip
-+install/strip: preinstall
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+	/usr/pkg/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip
-+
-+# Special rule for the target install/strip
-+install/strip/fast: preinstall/fast
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+	/usr/pkg/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip/fast
-+
-+# Special rule for the target install/local
-+install/local: preinstall
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+	/usr/pkg/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local
-+
-+# Special rule for the target install/local
-+install/local/fast: preinstall/fast
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+	/usr/pkg/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local/fast
-+
-+# Special rule for the target package_source
-+package_source:
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
-+	cd /home/ryoon/tmp4/build && /usr/pkg/bin/cpack --config ./CPackSourceConfig.cmake /home/ryoon/tmp4/build/CPackSourceConfig.cmake
-+.PHONY : package_source
-+
-+# Special rule for the target package_source
-+package_source/fast: package_source
-+
-+.PHONY : package_source/fast
-+
-+# Special rule for the target package
-+package: preinstall
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
-+	cd /home/ryoon/tmp4/build && /usr/pkg/bin/cpack --config ./CPackConfig.cmake
-+.PHONY : package
-+
-+# Special rule for the target package
-+package/fast: package
-+
-+.PHONY : package/fast
-+
-+# Special rule for the target install
-+install: preinstall
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+	/usr/pkg/bin/cmake -P cmake_install.cmake
-+.PHONY : install
-+
-+# Special rule for the target install
-+install/fast: preinstall/fast
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+	/usr/pkg/bin/cmake -P cmake_install.cmake
-+.PHONY : install/fast
-+
-+# Special rule for the target edit_cache
-+edit_cache:
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
-+	/usr/pkg/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : edit_cache
-+
-+# Special rule for the target edit_cache
-+edit_cache/fast: edit_cache
-+
-+.PHONY : edit_cache/fast
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache:
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
-+	/usr/pkg/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : rebuild_cache
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache/fast: rebuild_cache
-+
-+.PHONY : rebuild_cache/fast
-+
-+# Special rule for the target list_install_components
-+list_install_components:
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"LLVMAArch64AsmParser\" \"LLVMAArch64AsmPrinter\" \"LLVMAArch64CodeGen\" \"LLVMAArch64Desc\" \"LLVMAArch64Disassembler\" \"LLVMAArch64Info\" \"LLVMAArch64Utils\" \"LLVMAMDGPUAsmParser\" \"LLVMAMDGPUAsmPrinter\" \"LLVMAMDGPUCodeGen\" \"LLVMAMDGPUDesc\" \"LLVMAMDGPUDisassembler\" \"LLVMAMDGPUInfo\" \"LLVMAMDGPUUtils\" \"LLVMARMAsmParser\" \"LLVMARMAsmPrinter\" \"LLVMARMCodeGen\" \"LLVMARMDesc\" \"LLVMARMDisassembler\" \"LLVMARMInfo\" \"LLVMARMUtils\" \"LLVMAggressiveInstCombine\" \"LLVMAnalysis\" \"LLVMAsmParser\" \"LLVMAsmPrinter\" \"LLVMBPFAsmParser\" \"LLVMBPFAsmPrinter\" \"LLVMBPFCodeGen\" \"LLVMBPFDesc\" \"LLVMBPFDisassembler\" \"LLVMBPFInfo\" \"LLVMBinaryFormat\" \"LLVMBitReader\" \"LLVMBitWriter\" \"LLVMCodeGen\" \"LLVMCore\" \"LLVMCoroutines\" \"LLVMCoverage\" \"LLVMDebugInfoCodeView\" \"LLVMDebugInfoDWARF\" \"LLVMDebugInfoMSF\" \"LLVMDebugInfoPDB\" \"LLVMDemangle\" \"L
LVMDlltoolDriver\" \"LLVMExecutionEngine\" \"LLVMFuzzMutate\" \"LLVMGlobalISel\" \"LLVMHexagonAsmParser\" \"LLVMHexagonCodeGen\" \"LLVMHexagonDesc\" \"LLVMHexagonDisassembler\" \"LLVMHexagonInfo\" \"LLVMIRReader\" \"LLVMInstCombine\" \"LLVMInstrumentation\" \"LLVMInterpreter\" \"LLVMLTO\" \"LLVMLanaiAsmParser\" \"LLVMLanaiAsmPrinter\" \"LLVMLanaiCodeGen\" \"LLVMLanaiDesc\" \"LLVMLanaiDisassembler\" \"LLVMLanaiInfo\" \"LLVMLibDriver\" \"LLVMLineEditor\" \"LLVMLinker\" \"LLVMMC\" \"LLVMMCDisassembler\" \"LLVMMCJIT\" \"LLVMMCParser\" \"LLVMMIRParser\" \"LLVMMSP430AsmPrinter\" \"LLVMMSP430CodeGen\" \"LLVMMSP430Desc\" \"LLVMMSP430Info\" \"LLVMMipsAsmParser\" \"LLVMMipsAsmPrinter\" \"LLVMMipsCodeGen\" \"LLVMMipsDesc\" \"LLVMMipsDisassembler\" \"LLVMMipsInfo\" \"LLVMNVPTXAsmPrinter\" \"LLVMNVPTXCodeGen\" \"LLVMNVPTXDesc\" \"LLVMNVPTXInfo\" \"LLVMObjCARCOpts\" \"LLVMObject\" \"LLVMObjectYAML\" \"LLVMOption\" \"LLVMOrcJIT\" \"LLVMPasses\" \"LLVMPowerPCAsmParser\" \"LLVMPowerPCAsmPrinter\" \"L
 LVMPowerPCCodeGen\" \"LLVMPowerPCDesc\" \"LLVMPowerPCDisassembler\" \"LLVMPowerPCInfo\" \"LLVMProfileData\" \"LLVMRuntimeDyld\" \"LLVMScalarOpts\" \"LLVMSelectionDAG\" \"LLVMSparcAsmParser\" \"LLVMSparcAsmPrinter\" \"LLVMSparcCodeGen\" \"LLVMSparcDesc\" \"LLVMSparcDisassembler\" \"LLVMSparcInfo\" \"LLVMSupport\" \"LLVMSymbolize\" \"LLVMSystemZAsmParser\" \"LLVMSystemZAsmPrinter\" \"LLVMSystemZCodeGen\" \"LLVMSystemZDesc\" \"LLVMSystemZDisassembler\" \"LLVMSystemZInfo\" \"LLVMTableGen\" \"LLVMTarget\" \"LLVMTransformUtils\" \"LLVMVectorize\" \"LLVMWindowsManifest\" \"LLVMX86AsmParser\" \"LLVMX86AsmPrinter\" \"LLVMX86CodeGen\" \"LLVMX86Desc\" \"LLVMX86Disassembler\" \"LLVMX86Info\" \"LLVMX86Utils\" \"LLVMXCoreAsmPrinter\" \"LLVMXCoreCodeGen\" \"LLVMXCoreDesc\" \"LLVMXCoreDisassembler\" \"LLVMXCoreInfo\" \"LLVMXRay\" \"LLVMipo\" \"LTO\" \"Unspecified\" \"bugpoint\" \"cmake-exports\" \"dsymutil\" \"llc\" \"lli\" \"llvm-ar\" \"llvm-as\" \"llvm-bcanalyzer\" \"llvm-c-test\" \"llvm-cat\" \"
 llvm-cfi-verify\" \"llvm-config\" \"llvm-cov\" \"llvm-cvtres\" \"llvm-cxxdump\" \"llvm-cxxfilt\" \"llvm-diff\" \"llvm-dis\" \"llvm-dlltool\" \"llvm-dwarfdump\" \"llvm-dwp\" \"llvm-exegesis\" \"llvm-extract\" \"llvm-headers\" \"llvm-lib\" \"llvm-link\" \"llvm-lto\" \"llvm-lto2\" \"llvm-mc\" \"llvm-mca\" \"llvm-modextract\" \"llvm-mt\" \"llvm-nm\" \"llvm-objcopy\" \"llvm-objdump\" \"llvm-opt-report\" \"llvm-pdbutil\" \"llvm-profdata\" \"llvm-ranlib\" \"llvm-rc\" \"llvm-readelf\" \"llvm-readobj\" \"llvm-rtdyld\" \"llvm-size\" \"llvm-split\" \"llvm-stress\" \"llvm-strings\" \"llvm-strip\" \"llvm-symbolizer\" \"llvm-undname\" \"llvm-xray\" \"obj2yaml\" \"opt\" \"opt-viewer\" \"sancov\" \"sanstats\" \"verify-uselistorder\" \"yaml2obj\""
-+.PHONY : list_install_components
-+
-+# Special rule for the target list_install_components
-+list_install_components/fast: list_install_components
-+
-+.PHONY : list_install_components/fast
-+
-+# The main all target
-+all: cmake_check_build_system
-+	cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/ryoon/tmp4/build/CMakeFiles /home/ryoon/tmp4/build/include/llvm/CMakeFiles/progress.marks
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/all
-+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ryoon/tmp4/build/CMakeFiles 0
-+.PHONY : all
-+
-+# The main clean target
-+clean:
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/clean
-+.PHONY : clean
-+
-+# The main clean target
-+clean/fast: clean
-+
-+.PHONY : clean/fast
-+
-+# Prepare targets for installation.
-+preinstall: all
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/preinstall
-+.PHONY : preinstall
-+
-+# Prepare targets for installation.
-+preinstall/fast:
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/preinstall
-+.PHONY : preinstall/fast
-+
-+# clear depends
-+depend:
-+	cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
-+.PHONY : depend
-+
-+# Help Target
-+help:
-+	@echo "The following are some of the valid targets for this Makefile:"
-+	@echo "... all (the default if no target is provided)"
-+	@echo "... clean"
-+	@echo "... depend"
-+	@echo "... edit_cache"
-+	@echo "... install"
-+	@echo "... install/local"
-+	@echo "... install/strip"
-+	@echo "... list_install_components"
-+	@echo "... package"
-+	@echo "... package_source"
-+	@echo "... rebuild_cache"
-+.PHONY : help
-+
-+
-+
-+#=============================================================================
-+# Special targets to cleanup operation of make.
-+
-+# Special rule to run CMake to check the build system integrity.
-+# No rule that depends on this can have commands that come from listfiles
-+# because they might be regenerated.
-+cmake_check_build_system:
-+	cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-+.PHONY : cmake_check_build_system
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_CMakeDirectoryInformation.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_CMakeDirectoryInformation.cmake
deleted file mode 100644
index f15d120aa9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_CMakeDirectoryInformation.cmake
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/CMakeDirectoryInformation.cmake.orig	2020-07-23 08:46:21.656229238 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/CMakeDirectoryInformation.cmake
-@@ -0,0 +1,16 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Relative path conversion top directories.
-+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ryoon/tmp4/llvm-7.0.1.src")
-+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ryoon/tmp4/build")
-+
-+# Force unix paths in dependencies.
-+set(CMAKE_FORCE_UNIX_PATHS 1)
-+
-+
-+# The C and CXX include file regular expressions for this directory.
-+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
-+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
-+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
-+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_DependInfo.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_DependInfo.cmake
deleted file mode 100644
index ab901f02e2..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_DependInfo.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/DependInfo.cmake.orig	2020-07-23 08:46:21.652278771 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/DependInfo.cmake
-@@ -0,0 +1,11 @@
-+# The set of languages for which implicit dependencies are needed:
-+set(CMAKE_DEPENDS_LANGUAGES
-+  )
-+# The set of files for implicit dependencies of each language:
-+
-+# Targets to which this target links.
-+set(CMAKE_TARGET_LINKED_INFO_FILES
-+  )
-+
-+# Fortran module output directory.
-+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_build.make b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_build.make
deleted file mode 100644
index e40266d418..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_build.make
+++ /dev/null
@@ -1,101 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build.make.orig	2020-07-23 08:46:21.648283690 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build.make
-@@ -0,0 +1,96 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Delete rule output on recipe failure.
-+.DELETE_ON_ERROR:
-+
-+
-+#=============================================================================
-+# Special targets provided by cmake.
-+
-+# Disable implicit rules so canonical targets will work.
-+.SUFFIXES:
-+
-+
-+# Disable VCS-based implicit rules.
-+% : %,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : SCCS/s.%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : s.%
-+
-+
-+.SUFFIXES: .hpux_make_needs_suffix_list
-+
-+
-+# Command-line flag to silence nested $(MAKE).
-+$(VERBOSE)MAKESILENT = -s
-+
-+# Suppress display of executed commands.
-+$(VERBOSE).SILENT:
-+
-+
-+# A target that is always out of date.
-+cmake_force:
-+
-+.PHONY : cmake_force
-+
-+#=============================================================================
-+# Set environment variables for the build.
-+
-+# The shell in which to execute make rules.
-+SHELL = /bin/sh
-+
-+# The CMake executable.
-+CMAKE_COMMAND = /usr/pkg/bin/cmake
-+
-+# The command to remove a file.
-+RM = /usr/pkg/bin/cmake -E rm -f
-+
-+# Escaping for special characters.
-+EQUALS = =
-+
-+# The top-level source directory on which CMake was run.
-+CMAKE_SOURCE_DIR = /home/ryoon/tmp4/llvm-7.0.1.src
-+
-+# The top-level build directory on which CMake was run.
-+CMAKE_BINARY_DIR = /home/ryoon/tmp4/build
-+
-+# Utility rule file for llvm_vcsrevision_h.
-+
-+# Include the progress variables for this target.
-+include include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/progress.make
-+
-+include/llvm/Support/CMakeFiles/llvm_vcsrevision_h: include/llvm/Support/VCSRevision.h
-+
-+
-+llvm_vcsrevision_h: include/llvm/Support/CMakeFiles/llvm_vcsrevision_h
-+llvm_vcsrevision_h: include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build.make
-+
-+.PHONY : llvm_vcsrevision_h
-+
-+# Rule to build all files generated by this target.
-+include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build: llvm_vcsrevision_h
-+
-+.PHONY : include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build
-+
-+include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/clean:
-+	cd /home/ryoon/tmp4/build/include/llvm/Support && $(CMAKE_COMMAND) -P CMakeFiles/llvm_vcsrevision_h.dir/cmake_clean.cmake
-+.PHONY : include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/clean
-+
-+include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/depend:
-+	cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ryoon/tmp4/llvm-7.0.1.src /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Support /home/ryoon/tmp4/build /home/ryoon/tmp4/build/include/llvm/Support /home/ryoon/tmp4/build/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/DependInfo.cmake --color=$(COLOR)
-+.PHONY : include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/depend
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_cmake__clean.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_cmake__clean.cmake
deleted file mode 100644
index fc42a9cd83..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_cmake__clean.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/cmake_clean.cmake.orig	2020-07-23 08:46:21.644309495 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/cmake_clean.cmake
-@@ -0,0 +1,8 @@
-+file(REMOVE_RECURSE
-+  "CMakeFiles/llvm_vcsrevision_h"
-+)
-+
-+# Per-language clean rules from dependency scanning.
-+foreach(lang )
-+  include(CMakeFiles/llvm_vcsrevision_h.dir/cmake_clean_${lang}.cmake OPTIONAL)
-+endforeach()
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_progress.make b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_progress.make
deleted file mode 100644
index 4eaf0bc670..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_llvm__vcsrevision__h.dir_progress.make
+++ /dev/null
@@ -1,6 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/progress.make.orig	2020-07-23 08:46:21.640106101 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/progress.make
-@@ -0,0 +1 @@
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_progress.marks b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_progress.marks
deleted file mode 100644
index bbf210eecc..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_CMakeFiles_progress.marks
+++ /dev/null
@@ -1,6 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/progress.marks.orig	2020-07-23 08:46:21.660209050 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/CMakeFiles/progress.marks
-@@ -0,0 +1 @@
-+0
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_Makefile b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_Makefile
deleted file mode 100644
index ca30d8b64d..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_Makefile
+++ /dev/null
@@ -1,249 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/Makefile.orig	2020-07-23 08:46:21.672351207 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/Makefile
-@@ -0,0 +1,244 @@
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.17
-+
-+# Default target executed when no arguments are given to make.
-+default_target: all
-+
-+.PHONY : default_target
-+
-+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
-+.NOTPARALLEL:
-+
-+
-+#=============================================================================
-+# Special targets provided by cmake.
-+
-+# Disable implicit rules so canonical targets will work.
-+.SUFFIXES:
-+
-+
-+# Disable VCS-based implicit rules.
-+% : %,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : RCS/%,v
-+
-+
-+# Disable VCS-based implicit rules.
-+% : SCCS/s.%
-+
-+
-+# Disable VCS-based implicit rules.
-+% : s.%
-+
-+
-+.SUFFIXES: .hpux_make_needs_suffix_list
-+
-+
-+# Command-line flag to silence nested $(MAKE).
-+$(VERBOSE)MAKESILENT = -s
-+
-+# Suppress display of executed commands.
-+$(VERBOSE).SILENT:
-+
-+
-+# A target that is always out of date.
-+cmake_force:
-+
-+.PHONY : cmake_force
-+
-+#=============================================================================
-+# Set environment variables for the build.
-+
-+# The shell in which to execute make rules.
-+SHELL = /bin/sh
-+
-+# The CMake executable.
-+CMAKE_COMMAND = /usr/pkg/bin/cmake
-+
-+# The command to remove a file.
-+RM = /usr/pkg/bin/cmake -E rm -f
-+
-+# Escaping for special characters.
-+EQUALS = =
-+
-+# The top-level source directory on which CMake was run.
-+CMAKE_SOURCE_DIR = /home/ryoon/tmp4/llvm-7.0.1.src
-+
-+# The top-level build directory on which CMake was run.
-+CMAKE_BINARY_DIR = /home/ryoon/tmp4/build
-+
-+#=============================================================================
-+# Targets provided globally by CMake.
-+
-+# Special rule for the target install/strip
-+install/strip: preinstall
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+	/usr/pkg/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip
-+
-+# Special rule for the target install/strip
-+install/strip/fast: preinstall/fast
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+	/usr/pkg/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip/fast
-+
-+# Special rule for the target install/local
-+install/local: preinstall
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+	/usr/pkg/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local
-+
-+# Special rule for the target install/local
-+install/local/fast: preinstall/fast
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+	/usr/pkg/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local/fast
-+
-+# Special rule for the target install
-+install: preinstall
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+	/usr/pkg/bin/cmake -P cmake_install.cmake
-+.PHONY : install
-+
-+# Special rule for the target install
-+install/fast: preinstall/fast
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+	/usr/pkg/bin/cmake -P cmake_install.cmake
-+.PHONY : install/fast
-+
-+# Special rule for the target package
-+package: preinstall
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
-+	cd /home/ryoon/tmp4/build && /usr/pkg/bin/cpack --config ./CPackConfig.cmake
-+.PHONY : package
-+
-+# Special rule for the target package
-+package/fast: package
-+
-+.PHONY : package/fast
-+
-+# Special rule for the target package_source
-+package_source:
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
-+	cd /home/ryoon/tmp4/build && /usr/pkg/bin/cpack --config ./CPackSourceConfig.cmake /home/ryoon/tmp4/build/CPackSourceConfig.cmake
-+.PHONY : package_source
-+
-+# Special rule for the target package_source
-+package_source/fast: package_source
-+
-+.PHONY : package_source/fast
-+
-+# Special rule for the target edit_cache
-+edit_cache:
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
-+	/usr/pkg/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : edit_cache
-+
-+# Special rule for the target edit_cache
-+edit_cache/fast: edit_cache
-+
-+.PHONY : edit_cache/fast
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache:
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
-+	/usr/pkg/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : rebuild_cache
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache/fast: rebuild_cache
-+
-+.PHONY : rebuild_cache/fast
-+
-+# Special rule for the target list_install_components
-+list_install_components:
-+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"LLVMAArch64AsmParser\" \"LLVMAArch64AsmPrinter\" \"LLVMAArch64CodeGen\" \"LLVMAArch64Desc\" \"LLVMAArch64Disassembler\" \"LLVMAArch64Info\" \"LLVMAArch64Utils\" \"LLVMAMDGPUAsmParser\" \"LLVMAMDGPUAsmPrinter\" \"LLVMAMDGPUCodeGen\" \"LLVMAMDGPUDesc\" \"LLVMAMDGPUDisassembler\" \"LLVMAMDGPUInfo\" \"LLVMAMDGPUUtils\" \"LLVMARMAsmParser\" \"LLVMARMAsmPrinter\" \"LLVMARMCodeGen\" \"LLVMARMDesc\" \"LLVMARMDisassembler\" \"LLVMARMInfo\" \"LLVMARMUtils\" \"LLVMAggressiveInstCombine\" \"LLVMAnalysis\" \"LLVMAsmParser\" \"LLVMAsmPrinter\" \"LLVMBPFAsmParser\" \"LLVMBPFAsmPrinter\" \"LLVMBPFCodeGen\" \"LLVMBPFDesc\" \"LLVMBPFDisassembler\" \"LLVMBPFInfo\" \"LLVMBinaryFormat\" \"LLVMBitReader\" \"LLVMBitWriter\" \"LLVMCodeGen\" \"LLVMCore\" \"LLVMCoroutines\" \"LLVMCoverage\" \"LLVMDebugInfoCodeView\" \"LLVMDebugInfoDWARF\" \"LLVMDebugInfoMSF\" \"LLVMDebugInfoPDB\" \"LLVMDemangle\" \"L
LVMDlltoolDriver\" \"LLVMExecutionEngine\" \"LLVMFuzzMutate\" \"LLVMGlobalISel\" \"LLVMHexagonAsmParser\" \"LLVMHexagonCodeGen\" \"LLVMHexagonDesc\" \"LLVMHexagonDisassembler\" \"LLVMHexagonInfo\" \"LLVMIRReader\" \"LLVMInstCombine\" \"LLVMInstrumentation\" \"LLVMInterpreter\" \"LLVMLTO\" \"LLVMLanaiAsmParser\" \"LLVMLanaiAsmPrinter\" \"LLVMLanaiCodeGen\" \"LLVMLanaiDesc\" \"LLVMLanaiDisassembler\" \"LLVMLanaiInfo\" \"LLVMLibDriver\" \"LLVMLineEditor\" \"LLVMLinker\" \"LLVMMC\" \"LLVMMCDisassembler\" \"LLVMMCJIT\" \"LLVMMCParser\" \"LLVMMIRParser\" \"LLVMMSP430AsmPrinter\" \"LLVMMSP430CodeGen\" \"LLVMMSP430Desc\" \"LLVMMSP430Info\" \"LLVMMipsAsmParser\" \"LLVMMipsAsmPrinter\" \"LLVMMipsCodeGen\" \"LLVMMipsDesc\" \"LLVMMipsDisassembler\" \"LLVMMipsInfo\" \"LLVMNVPTXAsmPrinter\" \"LLVMNVPTXCodeGen\" \"LLVMNVPTXDesc\" \"LLVMNVPTXInfo\" \"LLVMObjCARCOpts\" \"LLVMObject\" \"LLVMObjectYAML\" \"LLVMOption\" \"LLVMOrcJIT\" \"LLVMPasses\" \"LLVMPowerPCAsmParser\" \"LLVMPowerPCAsmPrinter\" \"L
 LVMPowerPCCodeGen\" \"LLVMPowerPCDesc\" \"LLVMPowerPCDisassembler\" \"LLVMPowerPCInfo\" \"LLVMProfileData\" \"LLVMRuntimeDyld\" \"LLVMScalarOpts\" \"LLVMSelectionDAG\" \"LLVMSparcAsmParser\" \"LLVMSparcAsmPrinter\" \"LLVMSparcCodeGen\" \"LLVMSparcDesc\" \"LLVMSparcDisassembler\" \"LLVMSparcInfo\" \"LLVMSupport\" \"LLVMSymbolize\" \"LLVMSystemZAsmParser\" \"LLVMSystemZAsmPrinter\" \"LLVMSystemZCodeGen\" \"LLVMSystemZDesc\" \"LLVMSystemZDisassembler\" \"LLVMSystemZInfo\" \"LLVMTableGen\" \"LLVMTarget\" \"LLVMTransformUtils\" \"LLVMVectorize\" \"LLVMWindowsManifest\" \"LLVMX86AsmParser\" \"LLVMX86AsmPrinter\" \"LLVMX86CodeGen\" \"LLVMX86Desc\" \"LLVMX86Disassembler\" \"LLVMX86Info\" \"LLVMX86Utils\" \"LLVMXCoreAsmPrinter\" \"LLVMXCoreCodeGen\" \"LLVMXCoreDesc\" \"LLVMXCoreDisassembler\" \"LLVMXCoreInfo\" \"LLVMXRay\" \"LLVMipo\" \"LTO\" \"Unspecified\" \"bugpoint\" \"cmake-exports\" \"dsymutil\" \"llc\" \"lli\" \"llvm-ar\" \"llvm-as\" \"llvm-bcanalyzer\" \"llvm-c-test\" \"llvm-cat\" \"
 llvm-cfi-verify\" \"llvm-config\" \"llvm-cov\" \"llvm-cvtres\" \"llvm-cxxdump\" \"llvm-cxxfilt\" \"llvm-diff\" \"llvm-dis\" \"llvm-dlltool\" \"llvm-dwarfdump\" \"llvm-dwp\" \"llvm-exegesis\" \"llvm-extract\" \"llvm-headers\" \"llvm-lib\" \"llvm-link\" \"llvm-lto\" \"llvm-lto2\" \"llvm-mc\" \"llvm-mca\" \"llvm-modextract\" \"llvm-mt\" \"llvm-nm\" \"llvm-objcopy\" \"llvm-objdump\" \"llvm-opt-report\" \"llvm-pdbutil\" \"llvm-profdata\" \"llvm-ranlib\" \"llvm-rc\" \"llvm-readelf\" \"llvm-readobj\" \"llvm-rtdyld\" \"llvm-size\" \"llvm-split\" \"llvm-stress\" \"llvm-strings\" \"llvm-strip\" \"llvm-symbolizer\" \"llvm-undname\" \"llvm-xray\" \"obj2yaml\" \"opt\" \"opt-viewer\" \"sancov\" \"sanstats\" \"verify-uselistorder\" \"yaml2obj\""
-+.PHONY : list_install_components
-+
-+# Special rule for the target list_install_components
-+list_install_components/fast: list_install_components
-+
-+.PHONY : list_install_components/fast
-+
-+# The main all target
-+all: cmake_check_build_system
-+	cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/ryoon/tmp4/build/CMakeFiles /home/ryoon/tmp4/build/include/llvm/Support/CMakeFiles/progress.marks
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/Support/all
-+	$(CMAKE_COMMAND) -E cmake_progress_start /home/ryoon/tmp4/build/CMakeFiles 0
-+.PHONY : all
-+
-+# The main clean target
-+clean:
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/Support/clean
-+.PHONY : clean
-+
-+# The main clean target
-+clean/fast: clean
-+
-+.PHONY : clean/fast
-+
-+# Prepare targets for installation.
-+preinstall: all
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/Support/preinstall
-+.PHONY : preinstall
-+
-+# Prepare targets for installation.
-+preinstall/fast:
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/Support/preinstall
-+.PHONY : preinstall/fast
-+
-+# clear depends
-+depend:
-+	cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
-+.PHONY : depend
-+
-+# Convenience name for target.
-+include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/rule:
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/rule
-+.PHONY : include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/rule
-+
-+# Convenience name for target.
-+llvm_vcsrevision_h: include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/rule
-+
-+.PHONY : llvm_vcsrevision_h
-+
-+# fast build rule for target.
-+llvm_vcsrevision_h/fast:
-+	cd /home/ryoon/tmp4/build && $(MAKE) $(MAKESILENT) -f include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build.make include/llvm/Support/CMakeFiles/llvm_vcsrevision_h.dir/build
-+.PHONY : llvm_vcsrevision_h/fast
-+
-+# Help Target
-+help:
-+	@echo "The following are some of the valid targets for this Makefile:"
-+	@echo "... all (the default if no target is provided)"
-+	@echo "... clean"
-+	@echo "... depend"
-+	@echo "... edit_cache"
-+	@echo "... install"
-+	@echo "... install/local"
-+	@echo "... install/strip"
-+	@echo "... list_install_components"
-+	@echo "... package"
-+	@echo "... package_source"
-+	@echo "... rebuild_cache"
-+	@echo "... llvm_vcsrevision_h"
-+.PHONY : help
-+
-+
-+
-+#=============================================================================
-+# Special targets to cleanup operation of make.
-+
-+# Special rule to run CMake to check the build system integrity.
-+# No rule that depends on this can have commands that come from listfiles
-+# because they might be regenerated.
-+cmake_check_build_system:
-+	cd /home/ryoon/tmp4/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-+.PHONY : cmake_check_build_system
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_VCSRevision.h b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_VCSRevision.h
deleted file mode 100644
index c9293a35b3..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_VCSRevision.h
+++ /dev/null
@@ -1,6 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/VCSRevision.h.orig	2020-07-23 08:46:21.668378518 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/VCSRevision.h
-@@ -0,0 +1 @@
-+#undef LLVM_REVISION
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_cmake__install.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_cmake__install.cmake
deleted file mode 100644
index 7ad563a89d..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_Support_cmake__install.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/cmake_install.cmake.orig	2020-07-23 08:46:21.664385560 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/Support/cmake_install.cmake
-@@ -0,0 +1,34 @@
-+# Install script for directory: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm/Support
-+
-+# Set the install prefix
-+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
-+  set(CMAKE_INSTALL_PREFIX "/usr/local")
-+endif()
-+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-+
-+# Set the install configuration name.
-+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
-+  if(BUILD_TYPE)
-+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
-+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
-+  else()
-+    set(CMAKE_INSTALL_CONFIG_NAME "Debug")
-+  endif()
-+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-+endif()
-+
-+# Set the component getting installed.
-+if(NOT CMAKE_INSTALL_COMPONENT)
-+  if(COMPONENT)
-+    message(STATUS "Install component: \"${COMPONENT}\"")
-+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
-+  else()
-+    set(CMAKE_INSTALL_COMPONENT)
-+  endif()
-+endif()
-+
-+# Is this installation the result of a crosscompile?
-+if(NOT DEFINED CMAKE_CROSSCOMPILING)
-+  set(CMAKE_CROSSCOMPILING "FALSE")
-+endif()
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_cmake__install.cmake b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_cmake__install.cmake
deleted file mode 100644
index fd41826f98..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_cmake__install.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/cmake_install.cmake.orig	2020-07-23 08:46:21.684214528 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/cmake_install.cmake
-@@ -0,0 +1,41 @@
-+# Install script for directory: /home/ryoon/tmp4/llvm-7.0.1.src/include/llvm
-+
-+# Set the install prefix
-+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
-+  set(CMAKE_INSTALL_PREFIX "/usr/local")
-+endif()
-+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-+
-+# Set the install configuration name.
-+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
-+  if(BUILD_TYPE)
-+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
-+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
-+  else()
-+    set(CMAKE_INSTALL_CONFIG_NAME "Debug")
-+  endif()
-+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-+endif()
-+
-+# Set the component getting installed.
-+if(NOT CMAKE_INSTALL_COMPONENT)
-+  if(COMPONENT)
-+    message(STATUS "Install component: \"${COMPONENT}\"")
-+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
-+  else()
-+    set(CMAKE_INSTALL_COMPONENT)
-+  endif()
-+endif()
-+
-+# Is this installation the result of a crosscompile?
-+if(NOT DEFINED CMAKE_CROSSCOMPILING)
-+  set(CMAKE_CROSSCOMPILING "FALSE")
-+endif()
-+
-+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
-+  # Include the install script for each subdirectory.
-+  include("/home/ryoon/tmp4/build/include/llvm/IR/cmake_install.cmake")
-+  include("/home/ryoon/tmp4/build/include/llvm/Support/cmake_install.cmake")
-+
-+endif()
-+
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_module.modulemap b/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_module.modulemap
deleted file mode 100644
index c31e26f7a9..0000000000
--- a/chromium/patches/patch-third__party_swiftshader_third__party_llvm-subzero_build_NetBSD_include_llvm_module.modulemap
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD$
-
---- third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/module.modulemap.orig	2020-07-23 08:46:21.676308616 +0000
-+++ third_party/swiftshader/third_party/llvm-subzero/build/NetBSD/include/llvm/module.modulemap
-@@ -0,0 +1,13 @@
-+// This is copied into the build area for a $src != $build compilation.
-+module LLVM_Support_DataTypes {
-+  header "Support/DataTypes.h"
-+  export *
-+}
-+module LLVM_Config_ABI_Breaking {
-+  header "Config/abi-breaking.h"
-+  export *
-+}
-+module LLVM_Config_Config {
-+  header "Config/llvm-config.h"
-+  export *
-+}
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_memory.cpp b/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_memory.cpp
index b1e8e8babe..8278a1e4a5 100644
--- a/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_memory.cpp
+++ b/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_memory.cpp
@@ -1,13 +1,18 @@
 $NetBSD$
 
---- third_party/swiftshader/third_party/marl/src/memory.cpp.orig	2020-07-15 19:01:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/third_party/marl/src/memory.cpp.orig	2024-07-24 02:45:44.719376000 +0000
 +++ third_party/swiftshader/third_party/marl/src/memory.cpp
-@@ -19,7 +19,7 @@
+@@ -19,7 +19,8 @@
  
  #include <cstring>
  
--#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)
-+#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__NetBSD__)
+-#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__EMSCRIPTEN__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__EMSCRIPTEN__) || defined(__OpenBSD__) || \
++      defined(__NetBSD__)
  #include <sys/mman.h>
  #include <unistd.h>
  namespace {
diff --git a/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_thread.cpp b/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_thread.cpp
index 4437c5353d..3b22af28a4 100644
--- a/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_thread.cpp
+++ b/chromium/patches/patch-third__party_swiftshader_third__party_marl_src_thread.cpp
@@ -1,13 +1,29 @@
 $NetBSD$
 
---- third_party/swiftshader/third_party/marl/src/thread.cpp.orig	2020-07-15 19:01:48.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/swiftshader/third_party/marl/src/thread.cpp.orig	2024-07-24 02:45:44.719376000 +0000
 +++ third_party/swiftshader/third_party/marl/src/thread.cpp
-@@ -420,6 +420,8 @@ void Thread::setName(const char* fmt, ..
+@@ -46,6 +46,9 @@
+ #include <unistd.h>
+ #include <thread>
+ #endif
++#if defined(__NetBSD__)
++#include <stdarg.h>
++#endif
+ 
+ namespace {
+ 
+@@ -444,7 +447,9 @@ void Thread::setName(const char* fmt, ..
    pthread_setname_np(name);
  #elif defined(__FreeBSD__)
    pthread_set_name_np(pthread_self(), name);
+-#elif !defined(__Fuchsia__) && !defined(__EMSCRIPTEN__)
 +#elif defined(__NetBSD__)
-+  pthread_setname_np(pthread_self(), "%s", name);
- #elif !defined(__Fuchsia__)
++  pthread_setname_np(pthread_self(), "%s", (void *)name);
++#elif !defined(__Fuchsia__) && !defined(__EMSCRIPTEN__) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
    pthread_setname_np(pthread_self(), name);
  #endif
+ 
diff --git a/chromium/patches/patch-third__party_test__fonts_fontconfig_BUILD.gn b/chromium/patches/patch-third__party_test__fonts_fontconfig_BUILD.gn
new file mode 100644
index 0000000000..dbe2656071
--- /dev/null
+++ b/chromium/patches/patch-third__party_test__fonts_fontconfig_BUILD.gn
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/test_fonts/fontconfig/BUILD.gn.orig	2024-07-24 02:45:07.771797200 +0000
++++ third_party/test_fonts/fontconfig/BUILD.gn
+@@ -26,7 +26,11 @@ if (is_linux || is_chromeos) {
+ 
+   copy("fonts_conf") {
+     sources = [ "fonts.conf" ]
+-    outputs = [ "$root_out_dir/etc/fonts/{{source_file_part}}" ]
++    if (is_freebsd) {
++      outputs = [ "$root_out_dir/usr/local/etc/fonts/{{source_file_part}}" ]
++    } else {
++      outputs = [ "$root_out_dir/etc/fonts/{{source_file_part}}" ]
++    }
+   }
+ 
+   if (current_toolchain == host_toolchain) {
diff --git a/chromium/patches/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc b/chromium/patches/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc
new file mode 100644
index 0000000000..abadb1813a
--- /dev/null
+++ b/chromium/patches/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc
@@ -0,0 +1,33 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/test_fonts/fontconfig/fontconfig_util_linux.cc.orig	2024-07-24 02:45:07.771797200 +0000
++++ third_party/test_fonts/fontconfig/fontconfig_util_linux.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include "build/build_config.h"
++
+ #include "third_party/test_fonts/fontconfig/fontconfig_util_linux.h"
+ 
+ #include <fontconfig/fontconfig.h>
+@@ -16,11 +18,15 @@
+ namespace test_fonts {
+ 
+ std::string GetSysrootDir() {
++#if BUILDFLAG(IS_BSD)
++  return std::string(".");
++#else
+   char buf[PATH_MAX + 1];
+   auto count = readlink("/proc/self/exe", buf, PATH_MAX);
+   assert(count > 0);
+   buf[count] = '\0';
+   return dirname(buf);
++#endif
+ }
+ 
+ void SetUpFontconfig() {
diff --git a/chromium/patches/patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc b/chromium/patches/patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc
new file mode 100644
index 0000000000..d823b39449
--- /dev/null
+++ b/chromium/patches/patch-third__party_test__fonts_fontconfig_generate__fontconfig__caches.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc.orig	2024-07-24 02:45:07.771797200 +0000
++++ third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
+@@ -28,7 +28,7 @@ int main() {
+   // fontconfig cache.
+   //     $ echo -n /test_fonts | md5sum
+   //     fb5c91b2895aa445d23aebf7f9e2189c  -
+-  static const char kCacheKey[] = "fb5c91b2895aa445d23aebf7f9e2189c";
++  static const char kCacheKey[] = "cd4b5bc7-6cfc-41dc-8982-f2db624179ba";
+ 
+   // fontconfig writes the mtime of the test_fonts directory into the cache. It
+   // presumably checks this later to ensure that the cache is still up to date.
+@@ -56,7 +56,7 @@ int main() {
+   FcFini();
+ 
+   // Check existence of intended fontconfig cache file.
+-  auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-9";
++  auto cache = fontconfig_caches + "/" + kCacheKey + "-x86_64.cache-" + FC_CACHE_VERSION;
+   bool cache_exists = access(cache.c_str(), F_OK) == 0;
+   return !cache_exists;
+ }
diff --git a/chromium/patches/patch-third__party_tflite_features.gni b/chromium/patches/patch-third__party_tflite_features.gni
new file mode 100644
index 0000000000..6e185038ec
--- /dev/null
+++ b/chromium/patches/patch-third__party_tflite_features.gni
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/tflite/features.gni.orig	2024-07-24 02:45:07.775797600 +0000
++++ third_party/tflite/features.gni
+@@ -9,8 +9,8 @@ declare_args() {
+   # This enables building TFLite with XNNPACK. Currently only available for
+   # Linux, macOS and Windows arm64/x64/x86 targets and ChromeOS non-ARM targets.
+   build_tflite_with_xnnpack =
+-      (is_win || is_mac || is_linux || (is_chromeos && overlay_include_cbx)) &&
+-      (current_cpu == "arm64" || current_cpu == "x64" || current_cpu == "x86")
++      ((is_win || is_mac || is_linux || (is_chromeos && overlay_include_cbx)) &&
++      (current_cpu == "arm64" || current_cpu == "x64" || current_cpu == "x86")) && !is_bsd
+ 
+   # Turns on TFLITE_WITH_RUY, using ruy as the gemm backend instead of gemmlowp.
+   build_tflite_with_ruy = true
diff --git a/chromium/patches/patch-third__party_unrar_src_crypt.cpp b/chromium/patches/patch-third__party_unrar_src_crypt.cpp
new file mode 100644
index 0000000000..df9a74b568
--- /dev/null
+++ b/chromium/patches/patch-third__party_unrar_src_crypt.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/unrar/src/crypt.cpp.orig	2024-07-24 02:45:08.511869000 +0000
++++ third_party/unrar/src/crypt.cpp
+@@ -116,6 +116,8 @@ void GetRnd(byte *RndBuf,size_t BufSize)
+     Success=CryptGenRandom(hProvider, (DWORD)BufSize, RndBuf) != FALSE;
+     CryptReleaseContext(hProvider, 0);
+   }
++#elif defined(__OpenBSD__)
++  arc4random_buf(RndBuf, BufSize);
+ #elif defined(_UNIX)
+   FILE *rndf = fopen("/dev/urandom", "r");
+   if (rndf!=NULL)
diff --git a/chromium/patches/patch-third__party_usrsctp_BUILD.gn b/chromium/patches/patch-third__party_usrsctp_BUILD.gn
deleted file mode 100644
index b7c6b01a61..0000000000
--- a/chromium/patches/patch-third__party_usrsctp_BUILD.gn
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/usrsctp/BUILD.gn.orig	2020-06-25 09:32:13.000000000 +0000
-+++ third_party/usrsctp/BUILD.gn
-@@ -126,6 +126,10 @@ static_library("usrsctp") {
-       "__Userspace_os_Linux",
-       "_GNU_SOURCE",
-     ]
-+  } else if (is_netbsd) {
-+    defines += [
-+      "__Userspace_os_NetBSD",
-+    ]
-   } else if (is_mac || is_ios) {
-     defines += [
-       "HAVE_SA_LEN",
diff --git a/chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h b/chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h
new file mode 100644
index 0000000000..4c6ada9673
--- /dev/null
+++ b/chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_external_vma_vk__mem__alloc.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.orig	2024-07-24 02:45:48.759767300 +0000
++++ third_party/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+@@ -2740,7 +2740,7 @@ static void* vma_aligned_alloc(size_t al
+ 
+     return memalign(alignment, size);
+ }
+-#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC))
++#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <cstdlib>
+ 
+ #if defined(__APPLE__)
diff --git a/chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_vulkan_generated_vk__function__pointers.cpp b/chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_vulkan_generated_vk__function__pointers.cpp
new file mode 100644
index 0000000000..94630a8328
--- /dev/null
+++ b/chromium/patches/patch-third__party_vulkan-validation-layers_src_layers_vulkan_generated_vk__function__pointers.cpp
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/vulkan-validation-layers/src/layers/vulkan/generated/vk_function_pointers.cpp.orig	2024-07-24 02:45:48.887779700 +0000
++++ third_party/vulkan-validation-layers/src/layers/vulkan/generated/vk_function_pointers.cpp
+@@ -53,7 +53,8 @@ static void *get_proc_address(dl_handle 
+     assert(name);
+     return (void *)GetProcAddress(library, name);
+ }
+-#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__QNX__)
++#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__QNX__) || \
++         defined(__NetBSD__)
+ 
+ #include <dlfcn.h>
+ 
diff --git a/chromium/patches/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h b/chromium/patches/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h
new file mode 100644
index 0000000000..60ec4e8580
--- /dev/null
+++ b/chromium/patches/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.orig	2024-07-24 02:45:40.578975000 +0000
++++ third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
+@@ -2760,7 +2760,7 @@ void* vma_aligned_alloc(size_t alignment
+ 
+     return memalign(alignment, size);
+ }
+-#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC))
++#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)) || defined(__OpenBSD__) || defined(__FreeBSD__)
+ #include <cstdlib>
+ 
+ #if defined(__APPLE__)
diff --git a/chromium/patches/patch-third__party_wayland_BUILD.gn b/chromium/patches/patch-third__party_wayland_BUILD.gn
new file mode 100644
index 0000000000..666311436a
--- /dev/null
+++ b/chromium/patches/patch-third__party_wayland_BUILD.gn
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/wayland/BUILD.gn.orig	2024-07-24 02:45:08.547872300 +0000
++++ third_party/wayland/BUILD.gn
+@@ -22,6 +22,11 @@ config("wayland_config") {
+     "src/src",
+   ]
+ 
++  if (is_bsd) {
++    include_dirs += [ "/usr/local/include/libepoll-shim" ]
++    libs = [ "epoll-shim" ]
++  }
++
+   # Client/Server headers are automatically generated. Though, we still need
+   # to pass the path where these headers are located.
+   include_dirs += [ "$root_gen_dir/third_party/wayland/src/protocol" ]
diff --git a/chromium/patches/patch-third__party_wayland_include_config.h b/chromium/patches/patch-third__party_wayland_include_config.h
new file mode 100644
index 0000000000..b911a93144
--- /dev/null
+++ b/chromium/patches/patch-third__party_wayland_include_config.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/wayland/include/config.h.orig	2024-07-24 02:45:08.547872300 +0000
++++ third_party/wayland/include/config.h
+@@ -9,7 +9,14 @@
+ 
+ #define HAVE_BROKEN_MSG_CMSG_CLOEXEC 0
+ 
++#if defined(__FreeBSD__)
++#include <osreldate.h>
++#if defined(__FreeBSD_version) && __FreeBSD_version < 1300048
++#undef HAVE_MEMFD_CREATE
++#else
+ #define HAVE_MEMFD_CREATE
++#endif
++#endif
+ 
+ #define HAVE_MKOSTEMP
+ 
+@@ -25,7 +32,11 @@
+ 
+ #undef HAVE_SYS_PROCCTL_H
+ 
++#if defined(__FreeBSD__)
++#define HAVE_SYS_UCRED_H
++#else
+ #undef HAVE_SYS_UCRED_H
++#endif
+ 
+ #define HAVE_XUCRED_CR_PID 0
+ 
diff --git a/chromium/patches/patch-third__party_webrtc_BUILD.gn b/chromium/patches/patch-third__party_webrtc_BUILD.gn
index 627e536a5c..6ae435b155 100644
--- a/chromium/patches/patch-third__party_webrtc_BUILD.gn
+++ b/chromium/patches/patch-third__party_webrtc_BUILD.gn
@@ -1,9 +1,13 @@
 $NetBSD$
 
---- third_party/webrtc/BUILD.gn.orig	2020-06-25 09:34:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/BUILD.gn.orig	2024-07-24 02:47:04.823135100 +0000
 +++ third_party/webrtc/BUILD.gn
-@@ -172,6 +172,9 @@ config("common_inherited_config") {
-   if (is_linux) {
+@@ -219,6 +219,9 @@ config("common_inherited_config") {
+   if (is_linux || is_chromeos) {
      defines += [ "WEBRTC_LINUX" ]
    }
 +  if (is_bsd) {
diff --git a/chromium/patches/patch-third__party_webrtc_audio_BUILD.gn b/chromium/patches/patch-third__party_webrtc_audio_BUILD.gn
deleted file mode 100644
index a543df1f82..0000000000
--- a/chromium/patches/patch-third__party_webrtc_audio_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/audio/BUILD.gn.orig	2020-07-15 19:01:40.000000000 +0000
-+++ third_party/webrtc/audio/BUILD.gn
-@@ -252,7 +252,7 @@ if (rtc_include_tests) {
-         data += [ "${root_out_dir}/low_bandwidth_audio_test" ]
-       }
- 
--      if (is_linux || is_android) {
-+      if (is_linux || is_android || is_bsd) {
-         data += [
-           "../tools_webrtc/audio_quality/linux/PolqaOem64",
-           "../tools_webrtc/audio_quality/linux/pesq",
diff --git a/chromium/patches/patch-third__party_webrtc_examples_BUILD.gn b/chromium/patches/patch-third__party_webrtc_examples_BUILD.gn
deleted file mode 100644
index feea47678d..0000000000
--- a/chromium/patches/patch-third__party_webrtc_examples_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/examples/BUILD.gn.orig	2020-07-15 19:01:41.000000000 +0000
-+++ third_party/webrtc/examples/BUILD.gn
-@@ -44,7 +44,7 @@ group("examples") {
-     deps += [ ":AppRTCMobile" ]
-   }
- 
--  if (is_linux || is_win) {
-+  if (is_linux || is_win || is_bsd) {
-     deps += [
-       ":peerconnection_server",
-       ":stunserver",
-@@ -642,7 +642,7 @@ if (is_ios || (is_mac && target_cpu != "
-   }
- }
- 
--if (is_linux || is_win) {
-+if (is_linux || is_win || is_bsd) {
-   rtc_executable("peerconnection_client") {
-     testonly = true
-     sources = [
-@@ -686,7 +686,7 @@ if (is_linux || is_win) {
-       configs += [ "//build/config/win:windowed" ]
-       deps += [ "../media:rtc_media_base" ]
-     }
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources += [
-         "peerconnection/client/linux/main.cc",
-         "peerconnection/client/linux/main_wnd.cc",
diff --git a/chromium/patches/patch-third__party_webrtc_modules_audio__coding_BUILD.gn b/chromium/patches/patch-third__party_webrtc_modules_audio__coding_BUILD.gn
deleted file mode 100644
index 63f88bf2e8..0000000000
--- a/chromium/patches/patch-third__party_webrtc_modules_audio__coding_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/modules/audio_coding/BUILD.gn.orig	2020-07-15 19:01:41.000000000 +0000
-+++ third_party/webrtc/modules/audio_coding/BUILD.gn
-@@ -482,7 +482,7 @@ rtc_library("isac_c") {
-     "codecs/isac/main/source/transform.c",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     libs = [ "m" ]
-   }
- 
diff --git a/chromium/patches/patch-third__party_webrtc_modules_audio__device_BUILD.gn b/chromium/patches/patch-third__party_webrtc_modules_audio__device_BUILD.gn
index f2564f9dca..827a467454 100644
--- a/chromium/patches/patch-third__party_webrtc_modules_audio__device_BUILD.gn
+++ b/chromium/patches/patch-third__party_webrtc_modules_audio__device_BUILD.gn
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- third_party/webrtc/modules/audio_device/BUILD.gn.orig	2020-07-15 19:01:41.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/modules/audio_device/BUILD.gn.orig	2024-07-24 02:47:05.463197000 +0000
 +++ third_party/webrtc/modules/audio_device/BUILD.gn
-@@ -259,7 +259,7 @@ rtc_library("audio_device_impl") {
+@@ -333,7 +333,7 @@ rtc_library("audio_device_impl") {
      if (rtc_use_dummy_audio_file_devices) {
        defines += [ "WEBRTC_DUMMY_FILE_DEVICES" ]
      } else {
--      if (is_linux) {
-+      if (is_linux || is_bsd || is_bsd) {
+-      if (is_linux || is_chromeos) {
++      if ((is_linux || is_chromeos) && !is_bsd) {
          sources += [
            "linux/alsasymboltable_linux.cc",
            "linux/alsasymboltable_linux.h",
-@@ -387,7 +387,7 @@ if (rtc_include_tests) {
-       "../utility",
-     ]
-     absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
--    if (is_linux || is_mac || is_win) {
-+    if (is_linux || is_mac || is_win || is_bsd) {
-       sources += [ "audio_device_unittest.cc" ]
-     }
-     if (is_win) {
diff --git a/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_BUILD.gn b/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_BUILD.gn
deleted file mode 100644
index 637ca6a0d5..0000000000
--- a/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/modules/desktop_capture/BUILD.gn.orig	2020-07-15 19:01:41.000000000 +0000
-+++ third_party/webrtc/modules/desktop_capture/BUILD.gn
-@@ -140,7 +140,7 @@ if (rtc_include_tests) {
-       "screen_drawer.h",
-     ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources += [ "screen_drawer_linux.cc" ]
-     }
- 
-@@ -186,7 +186,7 @@ if (rtc_include_tests) {
-   }
- }
- 
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   if (rtc_use_pipewire) {
-     pkg_config("gio") {
-       packages = [
-@@ -357,7 +357,7 @@ rtc_library("desktop_capture_generic") {
-       "window_capturer_linux.cc",
-     ]
- 
--    if (build_with_mozilla && is_linux) {
-+    if (build_with_mozilla && (is_linux || is_bsd)) {
-       sources += [
-         "app_capturer_linux.cc",
-         "linux/app_capturer_x11.cc",
diff --git a/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc b/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc
new file mode 100644
index 0000000000..b5de97a23d
--- /dev/null
+++ b/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_wayland_egl__dmabuf.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc.orig	2024-07-24 02:47:05.547205200 +0000
++++ third_party/webrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc
+@@ -10,11 +10,15 @@
+ 
+ #include "modules/desktop_capture/linux/wayland/egl_dmabuf.h"
+ 
++#if !defined(WEBRTC_BSD)
+ #include <asm/ioctl.h>
++#endif
+ #include <dlfcn.h>
+ #include <fcntl.h>
+ #include <libdrm/drm_fourcc.h>
++#if !defined(WEBRTC_BSD)
+ #include <linux/types.h>
++#endif
+ #include <spa/param/video/format-utils.h>
+ #include <unistd.h>
+ #include <xf86drm.h>
diff --git a/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc b/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc
new file mode 100644
index 0000000000..3bcdbb9093
--- /dev/null
+++ b/chromium/patches/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc.orig	2024-07-24 02:47:05.551205600 +0000
++++ third_party/webrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc
+@@ -203,6 +203,12 @@ bool XServerPixelBuffer::Init(XAtomCache
+ void XServerPixelBuffer::InitShm(const XWindowAttributes& attributes) {
+   Visual* default_visual = attributes.visual;
+   int default_depth = attributes.depth;
++#if defined(__OpenBSD__)
++// pledge(2)
++  RTC_LOG(LS_WARNING) << "Unable to use shmget(2) while using pledge(2). "
++                         "Performance may be degraded.";
++  return;
++#endif
+ 
+   int major, minor;
+   Bool have_pixmaps;
diff --git a/chromium/patches/patch-third__party_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc b/chromium/patches/patch-third__party_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc
deleted file mode 100644
index a88a654265..0000000000
--- a/chromium/patches/patch-third__party_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc.orig	2020-07-15 19:01:41.000000000 +0000
-+++ third_party/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc
-@@ -13,6 +13,7 @@
- #include <string.h>
- 
- #include <algorithm>
-+#include <cstdlib>
- #include <utility>
- 
- #include "absl/algorithm/container.h"
diff --git a/chromium/patches/patch-third__party_webrtc_modules_video__capture_BUILD.gn b/chromium/patches/patch-third__party_webrtc_modules_video__capture_BUILD.gn
deleted file mode 100644
index 0795c53b9d..0000000000
--- a/chromium/patches/patch-third__party_webrtc_modules_video__capture_BUILD.gn
+++ /dev/null
@@ -1,29 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/modules/video_capture/BUILD.gn.orig	2020-07-15 19:01:41.000000000 +0000
-+++ third_party/webrtc/modules/video_capture/BUILD.gn
-@@ -54,7 +54,7 @@ if (!build_with_chromium) {
-       "../../system_wrappers",
-     ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources = [
-         "linux/device_info_linux.cc",
-         "linux/device_info_linux.h",
-@@ -106,13 +106,13 @@ if (!build_with_chromium) {
-     rtc_test("video_capture_tests") {
-       sources = [ "test/video_capture_unittest.cc" ]
-       ldflags = []
--      if (is_linux || is_mac) {
-+      if (is_linux || is_mac || is_bsd) {
-         ldflags += [
-           "-lpthread",
-           "-lm",
-         ]
-       }
--      if (is_linux) {
-+      if (is_linux || is_bsd) {
-         ldflags += [
-           "-lrt",
-           "-lXext",
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_BUILD.gn b/chromium/patches/patch-third__party_webrtc_rtc__base_BUILD.gn
deleted file mode 100644
index 895d86902d..0000000000
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_BUILD.gn
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/rtc_base/BUILD.gn.orig	2020-07-15 19:01:42.000000000 +0000
-+++ third_party/webrtc/rtc_base/BUILD.gn
-@@ -961,6 +961,12 @@ rtc_library("rtc_base") {
-     ]
-   }
- 
-+  if (is_bsd) {
-+    libs += [
-+      "rt",
-+    ]
-+  }
-+
-   if (is_ios) {
-     libs += [
-       "CFNetwork.framework",
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_byte__order.h b/chromium/patches/patch-third__party_webrtc_rtc__base_byte__order.h
new file mode 100644
index 0000000000..5c2547a0ac
--- /dev/null
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_byte__order.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/byte_order.h.orig	2024-07-24 02:47:05.739223700 +0000
++++ third_party/webrtc/rtc_base/byte_order.h
+@@ -90,6 +90,8 @@
+ #error WEBRTC_ARCH_BIG_ENDIAN or WEBRTC_ARCH_LITTLE_ENDIAN must be defined.
+ #endif  // defined(WEBRTC_ARCH_LITTLE_ENDIAN)
+ 
++#elif defined(WEBRTC_BSD)
++#include <sys/endian.h>
+ #elif defined(WEBRTC_POSIX)
+ #include <endian.h>
+ #else
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_ifaddrs__converter.h b/chromium/patches/patch-third__party_webrtc_rtc__base_ifaddrs__converter.h
deleted file mode 100644
index 3f5db0c976..0000000000
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_ifaddrs__converter.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/rtc_base/ifaddrs_converter.h.orig	2020-07-15 19:01:42.000000000 +0000
-+++ third_party/webrtc/rtc_base/ifaddrs_converter.h
-@@ -14,6 +14,8 @@
- #if defined(WEBRTC_ANDROID)
- #include "rtc_base/ifaddrs_android.h"
- #else
-+#include <sys/types.h>
-+#include <sys/socket.h>
- #include <ifaddrs.h>
- #endif  // WEBRTC_ANDROID
- 
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.cc b/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.cc
index 524efab987..f343ec246f 100644
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.cc
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.cc
@@ -1,14 +1,18 @@
 $NetBSD$
 
---- third_party/webrtc/rtc_base/ip_address.cc.orig	2020-07-15 19:01:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/ip_address.cc.orig	2024-07-24 02:47:05.751225000 +0000
 +++ third_party/webrtc/rtc_base/ip_address.cc
-@@ -11,6 +11,9 @@
- #if defined(WEBRTC_POSIX)
- #include <netinet/in.h>
+@@ -13,7 +13,8 @@
  #include <sys/socket.h>
+ 
+ #include "absl/strings/string_view.h"
+-#ifdef OPENBSD
 +#if defined(WEBRTC_BSD)
 +#include <sys/types.h>
-+#endif
- #ifdef OPENBSD
  #include <netinet/in_systm.h>
  #endif
+ #ifndef __native_client__
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.h b/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.h
deleted file mode 100644
index 1fa274c9d0..0000000000
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_ip__address.h
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/rtc_base/ip_address.h.orig	2020-07-15 19:01:42.000000000 +0000
-+++ third_party/webrtc/rtc_base/ip_address.h
-@@ -17,6 +17,10 @@
- #include <netinet/in.h>
- #include <sys/socket.h>
- #endif
-+#if defined(WEBRTC_BSD)
-+#include <sys/types.h>
-+#include <sys/socket.h>
-+#endif
- #if defined(WEBRTC_WIN)
- #include <winsock2.h>
- #include <ws2tcpip.h>
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_net__test__helpers.cc b/chromium/patches/patch-third__party_webrtc_rtc__base_net__test__helpers.cc
new file mode 100644
index 0000000000..910e2c6aac
--- /dev/null
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_net__test__helpers.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/net_test_helpers.cc.orig	2024-07-24 02:47:05.755225400 +0000
++++ third_party/webrtc/rtc_base/net_test_helpers.cc
+@@ -21,6 +21,7 @@
+ #endif
+ #if defined(WEBRTC_POSIX) && !defined(__native_client__)
+ #include <arpa/inet.h>
++#include <sys/socket.h>
+ #if defined(WEBRTC_ANDROID)
+ #include "rtc_base/ifaddrs_android.h"
+ #else
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_network.cc b/chromium/patches/patch-third__party_webrtc_rtc__base_network.cc
index b6f5db8914..cbe8985ae2 100644
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_network.cc
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_network.cc
@@ -1,8 +1,12 @@
 $NetBSD$
 
---- third_party/webrtc/rtc_base/network.cc.orig	2020-07-15 19:01:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/network.cc.orig	2024-07-24 02:47:05.755225400 +0000
 +++ third_party/webrtc/rtc_base/network.cc
-@@ -244,7 +244,12 @@ AdapterType GetAdapterTypeFromName(const
+@@ -290,7 +290,12 @@ AdapterType GetAdapterTypeFromName(absl:
    }
  #endif
  
@@ -14,4 +18,4 @@ $NetBSD$
 +#endif
  }
  
- NetworkManager::NetworkManager() {}
+ NetworkManager::EnumerationPermission NetworkManager::enumeration_permission()
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_network.h b/chromium/patches/patch-third__party_webrtc_rtc__base_network.h
deleted file mode 100644
index b38ac13fbe..0000000000
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_network.h
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/rtc_base/network.h.orig	2020-07-15 19:01:42.000000000 +0000
-+++ third_party/webrtc/rtc_base/network.h
-@@ -27,6 +27,10 @@
- #include "rtc_base/third_party/sigslot/sigslot.h"
- 
- #if defined(WEBRTC_POSIX)
-+#include <sys/types.h>
-+#endif
-+
-+#if defined(WEBRTC_POSIX)
- struct ifaddrs;
- #endif  // defined(WEBRTC_POSIX)
- 
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.cc b/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.cc
index f8e7e4a91f..86761e1cef 100644
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.cc
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.cc
@@ -1,8 +1,21 @@
 $NetBSD$
 
---- third_party/webrtc/rtc_base/physical_socket_server.cc.orig	2020-07-15 19:01:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/physical_socket_server.cc.orig	2024-07-24 02:47:05.763226000 +0000
 +++ third_party/webrtc/rtc_base/physical_socket_server.cc
-@@ -69,7 +69,7 @@ typedef void* SockOptArg;
+@@ -54,7 +54,7 @@
+ #include "rtc_base/time_utils.h"
+ #include "system_wrappers/include/field_trial.h"
+ 
+-#if defined(WEBRTC_LINUX)
++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD)
+ #include <linux/sockios.h>
+ #endif
+ 
+@@ -74,7 +74,7 @@ typedef void* SockOptArg;
  
  #endif  // WEBRTC_POSIX
  
@@ -11,7 +24,7 @@ $NetBSD$
  
  int64_t GetSocketRecvTimestamp(int socket) {
    struct timeval tv_ioctl;
-@@ -291,7 +291,7 @@ int PhysicalSocket::GetOption(Option opt
+@@ -329,7 +329,7 @@ int PhysicalSocket::GetOption(Option opt
      return -1;
    }
    if (opt == OPT_DONTFRAGMENT) {
@@ -20,7 +33,7 @@ $NetBSD$
      *value = (*value != IP_PMTUDISC_DONT) ? 1 : 0;
  #endif
    } else if (opt == OPT_DSCP) {
-@@ -309,7 +309,7 @@ int PhysicalSocket::SetOption(Option opt
+@@ -358,7 +358,7 @@ int PhysicalSocket::SetOption(Option opt
    if (TranslateOption(opt, &slevel, &sopt) == -1)
      return -1;
    if (opt == OPT_DONTFRAGMENT) {
@@ -29,16 +42,79 @@ $NetBSD$
      value = (value) ? IP_PMTUDISC_DO : IP_PMTUDISC_DONT;
  #endif
    } else if (opt == OPT_DSCP) {
-@@ -550,10 +550,10 @@ int PhysicalSocket::TranslateOption(Opti
+@@ -389,7 +389,7 @@ int PhysicalSocket::SetOption(Option opt
+ int PhysicalSocket::Send(const void* pv, size_t cb) {
+   int sent = DoSend(
+       s_, reinterpret_cast<const char*>(pv), static_cast<int>(cb),
+-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID)
++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD)
+       // Suppress SIGPIPE. Without this, attempting to send on a socket whose
+       // other end is closed will result in a SIGPIPE signal being raised to
+       // our process, which by default will terminate the process, which we
+@@ -418,7 +418,7 @@ int PhysicalSocket::SendTo(const void* b
+   size_t len = addr.ToSockAddrStorage(&saddr);
+   int sent =
+       DoSendTo(s_, static_cast<const char*>(buffer), static_cast<int>(length),
+-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID)
++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD)
+                // Suppress SIGPIPE. See above for explanation.
+                MSG_NOSIGNAL,
+ #else
+@@ -697,7 +697,7 @@ int PhysicalSocket::TranslateOption(Opti
        *slevel = IPPROTO_IP;
        *sopt = IP_DONTFRAGMENT;
        break;
 -#elif defined(WEBRTC_MAC) || defined(BSD) || defined(__native_client__)
-+#elif defined(WEBRTC_MAC) || defined(WEBRTC_BSD) || defined(__native_client__) && !defined(WEBRTC_BSD)
++#elif defined(WEBRTC_MAC) || defined(WEBRTC_BSD) || defined(__native_client__)
        RTC_LOG(LS_WARNING) << "Socket::OPT_DONTFRAGMENT not supported.";
        return -1;
--#elif defined(WEBRTC_POSIX)
-+#elif defined(WEBRTC_POSIX) || 
-       *slevel = IPPROTO_IP;
-       *sopt = IP_MTU_DISCOVER;
+ #elif defined(WEBRTC_POSIX)
+@@ -746,7 +746,7 @@ int PhysicalSocket::TranslateOption(Opti
+       return -1;
+ #endif
+     case OPT_RECV_ECN:
+-#if defined(WEBRTC_POSIX)
++#if defined(WEBRTC_POSIX) && defined(IP_RECVTOS) 
+       if (family_ == AF_INET6) {
+         *slevel = IPPROTO_IPV6;
+         *sopt = IPV6_RECVTCLASS;
+@@ -766,10 +766,19 @@ int PhysicalSocket::TranslateOption(Opti
+       *sopt = SO_KEEPALIVE;
+       break;
+     case OPT_TCP_KEEPCNT:
++#if !defined(TCP_KEEPCNT)
++      RTC_LOG(LS_WARNING) << "Socket::OPT_TCP_KEEPCNT not supported.";
++      return -1;
++#else
+       *slevel = IPPROTO_TCP;
+       *sopt = TCP_KEEPCNT;
+       break;
++#endif
+     case OPT_TCP_KEEPIDLE:
++#if !defined(TCP_KEEPALIVE)
++      RTC_LOG(LS_WARNING) << "Socket::OPT_TCP_KEEPALIVE not supported.";
++      return -1;
++#else
+       *slevel = IPPROTO_TCP;
+ #if !defined(WEBRTC_MAC)
+       *sopt = TCP_KEEPIDLE;
+@@ -777,12 +786,18 @@ int PhysicalSocket::TranslateOption(Opti
+       *sopt = TCP_KEEPALIVE;
+ #endif
+       break;
++#endif
+     case OPT_TCP_KEEPINTVL:
++#if !defined(TCP_KEEPALIVE)
++      RTC_LOG(LS_WARNING) << "Socket::OPT_TCP_KEEPINTVL not supported.";
++      return -1;
++#else
+       *slevel = IPPROTO_TCP;
+       *sopt = TCP_KEEPINTVL;
+       break;
++#endif
+     case OPT_TCP_USER_TIMEOUT:
+-#if defined(WEBRTC_LINUX) || defined(WEBRTC_ANDROID)
++#if (defined(WEBRTC_LINUX) || defined(WEBRTC_ANDROID)) && defined(TCP_USER_TIMEOUT)
+       *slevel = IPPROTO_TCP;
+       *sopt = TCP_USER_TIMEOUT;
        break;
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.h b/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.h
index d4cd1d3683..0810ee09ee 100644
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.h
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_physical__socket__server.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- third_party/webrtc/rtc_base/physical_socket_server.h.orig	2020-07-15 19:01:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/physical_socket_server.h.orig	2024-07-24 02:47:05.763226000 +0000
 +++ third_party/webrtc/rtc_base/physical_socket_server.h
-@@ -11,7 +11,7 @@
- #ifndef RTC_BASE_PHYSICAL_SOCKET_SERVER_H_
- #define RTC_BASE_PHYSICAL_SOCKET_SERVER_H_
+@@ -18,7 +18,7 @@
+ #include "rtc_base/third_party/sigslot/sigslot.h"
  
--#if defined(WEBRTC_POSIX) && defined(WEBRTC_LINUX)
-+#if defined(WEBRTC_POSIX) && defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD)
+ #if defined(WEBRTC_POSIX)
+-#if defined(WEBRTC_LINUX)
++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD)
+ // On Linux, use epoll.
  #include <sys/epoll.h>
- #define WEBRTC_USE_EPOLL 1
- #endif
+ 
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_platform__thread__types.cc b/chromium/patches/patch-third__party_webrtc_rtc__base_platform__thread__types.cc
index 31957248ed..6a0851121d 100644
--- a/chromium/patches/patch-third__party_webrtc_rtc__base_platform__thread__types.cc
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_platform__thread__types.cc
@@ -1,33 +1,43 @@
 $NetBSD$
 
---- third_party/webrtc/rtc_base/platform_thread_types.cc.orig	2020-07-15 19:01:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/platform_thread_types.cc.orig	2024-07-24 02:47:05.763226000 +0000
 +++ third_party/webrtc/rtc_base/platform_thread_types.cc
-@@ -14,6 +14,10 @@
+@@ -11,7 +11,9 @@
+ #include "rtc_base/platform_thread_types.h"
+ 
+ #if defined(WEBRTC_LINUX)
++#if !defined(WEBRTC_BSD)
  #include <sys/prctl.h>
++#endif
  #include <sys/syscall.h>
  #endif
-+#if defined(WEBRTC_BSD)
-+#include <lwp.h>
-+#include <pthread.h>
-+#endif
  
- #if defined(WEBRTC_WIN)
- #include "rtc_base/arraysize.h"
-@@ -41,6 +45,8 @@ PlatformThreadId CurrentThreadId() {
+@@ -44,6 +46,8 @@ PlatformThreadId CurrentThreadId() {
+   return gettid();
+ #elif defined(WEBRTC_FUCHSIA)
+   return zx_thread_self();
++#elif defined(WEBRTC_BSD)
++  return reinterpret_cast<uint64_t>(pthread_self());
+ #elif defined(WEBRTC_LINUX)
    return syscall(__NR_gettid);
  #elif defined(__EMSCRIPTEN__)
-   return static_cast<PlatformThreadId>(pthread_self());
-+#elif defined(WEBRTC_BSD)
-+  return static_cast<PlatformThreadId>(_lwp_self());
- #else
-   // Default implementation for nacl and solaris.
-   return reinterpret_cast<PlatformThreadId>(pthread_self());
-@@ -109,6 +115,8 @@ void SetCurrentThreadName(const char* na
-   prctl(PR_SET_NAME, reinterpret_cast<unsigned long>(name));  // NOLINT
- #elif defined(WEBRTC_MAC) || defined(WEBRTC_IOS)
-   pthread_setname_np(name);
-+#elif defined(__NetBSD__)
-+  pthread_setname_np(pthread_self(), "%s", (void *)name);
+@@ -74,6 +78,7 @@ bool IsThreadRefEqual(const PlatformThre
+ }
+ 
+ void SetCurrentThreadName(const char* name) {
++#if !defined(WEBRTC_BSD)
+ #if defined(WEBRTC_WIN)
+   // The SetThreadDescription API works even if no debugger is attached.
+   // The names set with this API also show up in ETW traces. Very handy.
+@@ -121,6 +126,7 @@ void SetCurrentThreadName(const char* na
+                                               name, strlen(name));
+   RTC_DCHECK_EQ(status, ZX_OK);
  #endif
++#endif
  }
  
+ }  // namespace rtc
diff --git a/chromium/patches/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h b/chromium/patches/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h
new file mode 100644
index 0000000000..951b0fbd12
--- /dev/null
+++ b/chromium/patches/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/rtc_base/third_party/sigslot/sigslot.h.orig	2024-07-24 02:47:05.779227700 +0000
++++ third_party/webrtc/rtc_base/third_party/sigslot/sigslot.h
+@@ -178,6 +178,10 @@ class multi_threaded_local {
+ #endif  // _SIGSLOT_HAS_WIN32_THREADS
+ 
+ #ifdef _SIGSLOT_HAS_POSIX_THREADS
++#if defined(OS_FREEBSD)
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wthread-safety-analysis"
++#endif
+ // The multi threading policies only get compiled in if they are enabled.
+ class multi_threaded_global {
+  public:
+@@ -201,6 +205,9 @@ class multi_threaded_local {
+  private:
+   pthread_mutex_t m_mutex;
+ };
++#if defined(OS_FREEBSD)
++#pragma GCC diagnostic pop
++#endif
+ #endif  // _SIGSLOT_HAS_POSIX_THREADS
+ 
+ template <class mt_policy>
diff --git a/chromium/patches/patch-third__party_webrtc_system__wrappers_BUILD.gn b/chromium/patches/patch-third__party_webrtc_system__wrappers_BUILD.gn
index 32fe793d88..ae593a806c 100644
--- a/chromium/patches/patch-third__party_webrtc_system__wrappers_BUILD.gn
+++ b/chromium/patches/patch-third__party_webrtc_system__wrappers_BUILD.gn
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- third_party/webrtc/system_wrappers/BUILD.gn.orig	2020-07-15 19:01:42.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/webrtc/system_wrappers/BUILD.gn.orig	2024-07-24 02:47:05.959245200 +0000
 +++ third_party/webrtc/system_wrappers/BUILD.gn
-@@ -55,7 +55,7 @@ rtc_library("system_wrappers") {
-     libs += [ "log" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
+@@ -63,8 +63,6 @@ rtc_library("system_wrappers") {
      if (!build_with_chromium) {
-       deps += [ ":cpu_features_linux" ]
+       sources += [ "source/cpu_features_linux.cc" ]
      }
-@@ -117,7 +117,7 @@ if (is_android && !build_with_mozilla) {
+-
+-    libs += [ "rt" ]
    }
- }
  
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   rtc_library("cpu_features_linux") {
-     sources = [ "source/cpu_features_linux.c" ]
-     deps = [
+   if (is_win) {
diff --git a/chromium/patches/patch-third__party_webrtc_test_BUILD.gn b/chromium/patches/patch-third__party_webrtc_test_BUILD.gn
deleted file mode 100644
index df63896de4..0000000000
--- a/chromium/patches/patch-third__party_webrtc_test_BUILD.gn
+++ /dev/null
@@ -1,25 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/test/BUILD.gn.orig	2020-07-15 19:01:42.000000000 +0000
-+++ third_party/webrtc/test/BUILD.gn
-@@ -956,17 +956,17 @@ rtc_library("test_renderer_generic") {
-     ]
-     deps += [ "../api:scoped_refptr" ]
-   }
--  if (!(is_linux && rtc_use_x11) && !is_mac && !is_win) {
-+  if (!((is_linux || is_bsd) && rtc_use_x11) && !is_mac && !is_win) {
-     sources += [ "null_platform_renderer.cc" ]
-   }
--  if ((is_linux && rtc_use_x11) || is_mac) {
-+  if (((is_linux || is_bsd) && rtc_use_x11) || is_mac) {
-     sources += [
-       "gl/gl_renderer.cc",
-       "gl/gl_renderer.h",
-     ]
-   }
- 
--  if (is_linux && rtc_use_x11) {
-+  if ((is_linux || is_bsd) && rtc_use_x11) {
-     sources += [
-       "linux/glx_renderer.cc",
-       "linux/glx_renderer.h",
diff --git a/chromium/patches/patch-third__party_webrtc_webrtc.gni b/chromium/patches/patch-third__party_webrtc_webrtc.gni
deleted file mode 100644
index bf9d207b35..0000000000
--- a/chromium/patches/patch-third__party_webrtc_webrtc.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- third_party/webrtc/webrtc.gni.orig	2020-07-15 19:01:42.000000000 +0000
-+++ third_party/webrtc/webrtc.gni
-@@ -275,7 +275,7 @@ rtc_opus_dir = "//third_party/opus"
- # Desktop capturer is supported only on Windows, OSX and Linux.
- rtc_desktop_capture_supported =
-     (is_win && current_os != "winuwp") || is_mac ||
--    (is_linux && (rtc_use_x11_extensions || rtc_use_pipewire))
-+    ((is_linux || is_bsd) && (rtc_use_x11_extensions || rtc_use_pipewire))
- 
- ###############################################################################
- # Templates
diff --git a/chromium/patches/patch-third__party_widevine_cdm_widevine.gni b/chromium/patches/patch-third__party_widevine_cdm_widevine.gni
new file mode 100644
index 0000000000..a700bd318d
--- /dev/null
+++ b/chromium/patches/patch-third__party_widevine_cdm_widevine.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/widevine/cdm/widevine.gni.orig	2024-07-24 02:45:08.647882000 +0000
++++ third_party/widevine/cdm/widevine.gni
+@@ -28,6 +28,8 @@ library_widevine_cdm_available =
+     (is_chromeos &&
+      (target_cpu == "x64" || target_cpu == "arm" || target_cpu == "arm64")) ||
+     (target_os == "linux" && target_cpu == "x64") ||
++    (target_os == "openbsd" && target_cpu == "x64") ||
++    (target_os == "freebsd" && target_cpu == "x64") ||
+     (target_os == "mac" && (target_cpu == "x64" || target_cpu == "arm64")) ||
+     (target_os == "win" &&
+      (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm64"))
diff --git a/chromium/patches/patch-third__party_zlib_BUILD.gn b/chromium/patches/patch-third__party_zlib_BUILD.gn
index 10f9751336..cd87d84e6d 100644
--- a/chromium/patches/patch-third__party_zlib_BUILD.gn
+++ b/chromium/patches/patch-third__party_zlib_BUILD.gn
@@ -1,13 +1,37 @@
 $NetBSD$
 
---- third_party/zlib/BUILD.gn.orig	2020-06-25 09:32:39.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/zlib/BUILD.gn.orig	2024-07-24 02:45:08.787895700 +0000
 +++ third_party/zlib/BUILD.gn
-@@ -356,7 +356,7 @@ static_library("minizip") {
+@@ -128,7 +128,7 @@ if (use_arm_neon_optimizations) {
+     defines = [ "CRC32_ARMV8_CRC32" ]
+     if (is_android) {
+       defines += [ "ARMV8_OS_ANDROID" ]
+-    } else if (is_linux || is_chromeos) {
++    } else if ((is_linux || is_chromeos) && !is_bsd) {
+       defines += [ "ARMV8_OS_LINUX" ]
+     } else if (is_mac) {
+       defines += [ "ARMV8_OS_MACOS" ]
+@@ -138,6 +138,10 @@ if (use_arm_neon_optimizations) {
+       defines += [ "ARMV8_OS_FUCHSIA" ]
+     } else if (is_win) {
+       defines += [ "ARMV8_OS_WINDOWS" ]
++    } else if (is_openbsd) {
++      defines += [ "ARMV8_OS_OPENBSD" ]
++    } else if (is_freebsd) {
++      defines += [ "ARMV8_OS_FREEBSD" ]
+     } else {
+       assert(false, "Unsupported ARM OS")
+     }
+@@ -413,7 +417,7 @@ static_library("minizip") {
      ]
    }
  
--  if (is_mac || is_ios || is_android || is_nacl) {
-+  if (is_mac || is_ios || is_android || is_nacl || is_bsd) {
+-  if (is_apple || is_android || is_nacl) {
++  if (is_apple || is_android || is_nacl || is_bsd) {
      # Mac, Android and the BSDs don't have fopen64, ftello64, or fseeko64. We
      # use fopen, ftell, and fseek instead on these systems.
      defines = [ "USE_FILE32API" ]
diff --git a/chromium/patches/patch-third__party_zlib_cpu__features.c b/chromium/patches/patch-third__party_zlib_cpu__features.c
index 29a2ee6972..6bfab843e5 100644
--- a/chromium/patches/patch-third__party_zlib_cpu__features.c
+++ b/chromium/patches/patch-third__party_zlib_cpu__features.c
@@ -1,13 +1,57 @@
 $NetBSD$
 
---- third_party/zlib/cpu_features.c.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- third_party/zlib/cpu_features.c.orig	2024-07-24 02:45:08.791896000 +0000
 +++ third_party/zlib/cpu_features.c
-@@ -25,7 +25,7 @@ int ZLIB_INTERNAL x86_cpu_enable_simd = 
- 
+@@ -39,7 +39,8 @@ int ZLIB_INTERNAL riscv_cpu_enable_vclmu
  #ifndef CPU_NO_SIMD
  
--#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_FUCHSIA)
-+#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_FUCHSIA) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || \
+-    defined(ARMV8_OS_FUCHSIA) || defined(ARMV8_OS_IOS)
++    defined(ARMV8_OS_FUCHSIA) || defined(ARMV8_OS_IOS) || \
++    defined(ARMV8_OS_OPENBSD) || defined(ARMV8_OS_FREEBSD)
  #include <pthread.h>
  #endif
  
+@@ -56,6 +57,10 @@ int ZLIB_INTERNAL riscv_cpu_enable_vclmu
+ #include <windows.h>
+ #elif defined(ARMV8_OS_IOS)
+ #include <sys/sysctl.h>
++#elif defined(ARMV8_OS_OPENBSD)
++#include <sys/sysctl.h>
++#include <machine/cpu.h>
++#include <machine/armreg.h>
+ #elif !defined(_MSC_VER)
+ #include <pthread.h>
+ #else
+@@ -69,7 +74,8 @@ static void _cpu_check_features(void);
+ #if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || \
+     defined(ARMV8_OS_MACOS) || defined(ARMV8_OS_FUCHSIA) || \
+     defined(X86_NOT_WINDOWS) || defined(ARMV8_OS_IOS) || \
+-    defined(RISCV_RVV)
++    defined(RISCV_RVV) || defined(ARMV8_OS_OPENBSD) || \
++    defined(ARMV8_OS_FREEBSD)
+ #if !defined(ARMV8_OS_MACOS)
+ // _cpu_check_features() doesn't need to do anything on mac/arm since all
+ // features are known at build time, so don't call it.
+@@ -122,6 +128,17 @@ static void _cpu_check_features(void)
+     unsigned long features = getauxval(AT_HWCAP2);
+     arm_cpu_enable_crc32 = !!(features & HWCAP2_CRC32);
+     arm_cpu_enable_pmull = !!(features & HWCAP2_PMULL);
++#elif defined(ARMV8_OS_OPENBSD)
++    int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 };
++    uint64_t cpu_id = 0;
++    size_t len = sizeof(cpu_id);
++    if (sysctl(isar0_mib, 2, &cpu_id, &len, NULL, 0) < 0)
++        return;
++    if (ID_AA64ISAR0_AES(cpu_id) >= ID_AA64ISAR0_AES_PMULL)
++        arm_cpu_enable_pmull = 1;
++
++    if (ID_AA64ISAR0_CRC32(cpu_id) >= ID_AA64ISAR0_CRC32_BASE)
++        arm_cpu_enable_crc32 = 1;
+ #elif defined(ARMV8_OS_FUCHSIA)
+     uint32_t features;
+     zx_status_t rc = zx_system_get_features(ZX_FEATURE_KIND_CPU, &features);
diff --git a/chromium/patches/patch-tools_binary__size_BUILD.gn b/chromium/patches/patch-tools_binary__size_BUILD.gn
deleted file mode 100644
index 7f6b64827a..0000000000
--- a/chromium/patches/patch-tools_binary__size_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- tools/binary_size/BUILD.gn.orig	2020-07-15 18:56:32.000000000 +0000
-+++ tools/binary_size/BUILD.gn
-@@ -21,7 +21,7 @@ python_library("sizes_py") {
-   data_deps = [ "//third_party/catapult/tracing:convert_chart_json" ]
- }
- 
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   group("caspian") {
-     deps = [ "//tools/binary_size/libsupersize/caspian:cli($host_toolchain)" ]
-   }
diff --git a/chromium/patches/patch-tools_binary__size_libsupersize_caspian_BUILD.gn b/chromium/patches/patch-tools_binary__size_libsupersize_caspian_BUILD.gn
deleted file mode 100644
index c5f39dace0..0000000000
--- a/chromium/patches/patch-tools_binary__size_libsupersize_caspian_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- tools/binary_size/libsupersize/caspian/BUILD.gn.orig	2020-07-15 18:56:32.000000000 +0000
-+++ tools/binary_size/libsupersize/caspian/BUILD.gn
-@@ -9,7 +9,7 @@ if (!defined(is_wasm)) {
-   is_wasm = current_os == "wasm"
- }
- 
--assert(is_linux || is_wasm)
-+assert(is_linux || is_wasm || is_bsd)
- 
- source_set("caspian-lib") {
-   sources = [
diff --git a/chromium/patches/patch-tools_generate__shim__headers_generate__shim__headers.py b/chromium/patches/patch-tools_generate__shim__headers_generate__shim__headers.py
new file mode 100644
index 0000000000..0194778de0
--- /dev/null
+++ b/chromium/patches/patch-tools_generate__shim__headers_generate__shim__headers.py
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/generate_shim_headers/generate_shim_headers.py.orig	2024-07-24 02:45:09.243939900 +0000
++++ tools/generate_shim_headers/generate_shim_headers.py
+@@ -18,7 +18,7 @@ import sys
+ 
+ 
+ SHIM_TEMPLATE = """
+-#if defined(OFFICIAL_BUILD)
++#if defined(GOOGLE_CHROME_BUILD)
+ #error shim headers must not be used in official builds!
+ #endif
+ """
+@@ -65,6 +65,9 @@ def GeneratorMain(argv):
+       if options.outputs:
+         yield os.path.join(target_directory, header_filename)
+       if options.generate:
++        source_file = os.path.join(root, header_filename)
++        if os.path.exists(source_file):
++          os.unlink(source_file)
+         header_path = os.path.join(target_directory, header_filename)
+         header_dir = os.path.dirname(header_path)
+         if not os.path.exists(header_dir):
diff --git a/chromium/patches/patch-tools_generate__stubs_rules.gni b/chromium/patches/patch-tools_generate__stubs_rules.gni
new file mode 100644
index 0000000000..69dc4a535a
--- /dev/null
+++ b/chromium/patches/patch-tools_generate__stubs_rules.gni
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/generate_stubs/rules.gni.orig	2024-07-24 02:45:09.243939900 +0000
++++ tools/generate_stubs/rules.gni
+@@ -110,7 +110,6 @@ template("generate_stubs") {
+       "${target_gen_dir}/${invoker.output_name}.cc",
+       "${target_gen_dir}/${invoker.output_name}.h",
+     ]
+-    libs = [ "dl" ]
+     include_dirs = [ target_gen_dir ]
+     if (defined(invoker.configs)) {
+       configs += invoker.configs
diff --git a/chromium/patches/patch-tools_gn_build_build__linux.ninja.template b/chromium/patches/patch-tools_gn_build_build__linux.ninja.template
new file mode 100644
index 0000000000..7e8b543e26
--- /dev/null
+++ b/chromium/patches/patch-tools_gn_build_build__linux.ninja.template
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/gn/build/build_linux.ninja.template.orig	2024-07-24 02:59:26.306955600 +0000
++++ tools/gn/build/build_linux.ninja.template
+@@ -5,7 +5,7 @@ rule cxx
+   deps = gcc
+ 
+ rule alink_thin
+-  command = $ar rcsT $out $in
++  command = $ar rcs $out $in
+   description = AR $out
+ 
+ rule link
diff --git a/chromium/patches/patch-tools_gn_build_gen.py b/chromium/patches/patch-tools_gn_build_gen.py
index 1603f9fee3..9e2698c842 100644
--- a/chromium/patches/patch-tools_gn_build_gen.py
+++ b/chromium/patches/patch-tools_gn_build_gen.py
@@ -1,54 +1,40 @@
 $NetBSD$
 
-https://gn-review.googlesource.com/c/gn/+/9700
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
 
---- tools/gn/build/gen.py.orig	2020-06-25 09:40:29.000000000 +0000
+--- tools/gn/build/gen.py.orig	2024-07-24 02:59:26.306955600 +0000
 +++ tools/gn/build/gen.py
-@@ -45,6 +45,8 @@ class Platform(object):
-       self._platform = 'fuchsia'
-     elif self._platform.startswith('freebsd'):
-       self._platform = 'freebsd'
-+    elif self._platform.startswith('netbsd'):
-+      self._platform = 'netbsd'
-     elif self._platform.startswith('openbsd'):
-       self._platform = 'openbsd'
-     elif self._platform.startswith('haiku'):
-@@ -52,7 +54,7 @@ class Platform(object):
+@@ -94,6 +94,12 @@ class Platform(object):
+   def is_solaris(self):
+     return self._platform == 'solaris'
  
-   @staticmethod
-   def known_platforms():
--    return ['linux', 'darwin', 'mingw', 'msvc', 'aix', 'fuchsia', 'freebsd', 'openbsd', 'haiku']
-+    return ['linux', 'darwin', 'mingw', 'msvc', 'aix', 'fuchsia', 'freebsd', 'netbsd', 'openbsd', 'haiku']
- 
-   def platform(self):
-     return self._platform
-@@ -78,8 +80,20 @@ class Platform(object):
-   def is_haiku(self):
-     return self._platform == 'haiku'
- 
-+  def is_freebsd(self):
-+    return self._platform == 'freebsd'
-+
-+  def is_netbsd(self):
-+    return self._platform == 'netbsd'
-+
 +  def is_openbsd(self):
 +    return self._platform == 'openbsd'
 +
-+  def is_bsd(self):
-+    return self._platform in ['freebsd', 'openbsd', 'netbsd']
++  def is_freebsd(self):
++    return self._platform == 'freebsd'
 +
    def is_posix(self):
--    return self._platform in ['linux', 'freebsd', 'darwin', 'aix', 'openbsd', 'haiku']
-+    return self._platform in ['linux', 'freebsd', 'darwin', 'aix', 'openbsd', 'haiku', 'netbsd']
+     return self._platform in ['linux', 'freebsd', 'darwin', 'aix', 'openbsd', 'haiku', 'solaris', 'msys', 'netbsd', 'serenity']
  
- 
- def main(argv):
-@@ -203,6 +217,7 @@ def WriteGenericNinja(path, static_libra
+@@ -304,7 +310,7 @@ def WriteGenericNinja(path, static_libra
+       'linux': 'build_linux.ninja.template',
+       'freebsd': 'build_linux.ninja.template',
        'aix': 'build_aix.ninja.template',
-       'openbsd': 'build_openbsd.ninja.template',
+-      'openbsd': 'build_openbsd.ninja.template',
++      'openbsd': 'build_linux.ninja.template',
        'haiku': 'build_haiku.ninja.template',
-+      'netbsd': 'build_linux.ninja.template',
-   }[platform.platform()])
+       'solaris': 'build_linux.ninja.template',
+       'netbsd': 'build_linux.ninja.template',
+@@ -540,6 +546,9 @@ def WriteGNNinja(path, platform, host, o
+     if platform.is_posix() and not platform.is_haiku():
+       ldflags.append('-pthread')
  
-   with open(template_filename) as f:
++    if platform.is_openbsd():
++      libs.append('-lkvm')
++
+     if platform.is_mingw() or platform.is_msys():
+       cflags.extend(['-DUNICODE',
+                      '-DNOMINMAX',
diff --git a/chromium/patches/patch-tools_gn_src_base_files_file__posix.cc b/chromium/patches/patch-tools_gn_src_base_files_file__posix.cc
new file mode 100644
index 0000000000..e2d42a2346
--- /dev/null
+++ b/chromium/patches/patch-tools_gn_src_base_files_file__posix.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/gn/src/base/files/file_posix.cc.orig	2024-07-24 02:59:26.322957000 +0000
++++ tools/gn/src/base/files/file_posix.cc
+@@ -371,7 +371,7 @@ void File::DoInitialize(const FilePath& 
+ bool File::Flush() {
+   DCHECK(IsValid());
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   return !HANDLE_EINTR(fdatasync(file_.get()));
+ #else
+   return !HANDLE_EINTR(fsync(file_.get()));
diff --git a/chromium/patches/patch-tools_gn_src_base_files_file__util.h b/chromium/patches/patch-tools_gn_src_base_files_file__util.h
deleted file mode 100644
index 804738f393..0000000000
--- a/chromium/patches/patch-tools_gn_src_base_files_file__util.h
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-https://gn-review.googlesource.com/c/gn/+/9700
-
---- tools/gn/src/base/files/file_util.h.orig	2020-07-15 19:07:32.000000000 +0000
-+++ tools/gn/src/base/files/file_util.h
-@@ -325,7 +325,7 @@ bool VerifyPathControlledByAdmin(const b
- // the directory |path|, in the number of FilePath::CharType, or -1 on failure.
- int GetMaximumPathComponentLength(const base::FilePath& path);
- 
--#if defined(OS_LINUX) || defined(OS_AIX)
-+#if defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
- // Broad categories of file systems as returned by statfs() on Linux.
- enum FileSystemType {
-   FILE_SYSTEM_UNKNOWN,   // statfs failed.
diff --git a/chromium/patches/patch-tools_gn_src_base_files_file__util__posix.cc b/chromium/patches/patch-tools_gn_src_base_files_file__util__posix.cc
deleted file mode 100644
index a2e9859d45..0000000000
--- a/chromium/patches/patch-tools_gn_src_base_files_file__util__posix.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-https://gn-review.googlesource.com/c/gn/+/9700
-
---- tools/gn/src/base/files/file_util_posix.cc.orig	2020-07-15 19:07:32.000000000 +0000
-+++ tools/gn/src/base/files/file_util_posix.cc
-@@ -210,7 +210,7 @@ bool ReplaceFile(const FilePath& from_pa
- }
- 
- bool CreateLocalNonBlockingPipe(int fds[2]) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   return pipe2(fds, O_CLOEXEC | O_NONBLOCK) == 0;
- #else
-   int raw_fds[2];
diff --git a/chromium/patches/patch-tools_gn_src_base_files_scoped__file.cc b/chromium/patches/patch-tools_gn_src_base_files_scoped__file.cc
deleted file mode 100644
index 47d8199426..0000000000
--- a/chromium/patches/patch-tools_gn_src_base_files_scoped__file.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-https://gn-review.googlesource.com/c/gn/+/9700
-
---- tools/gn/src/base/files/scoped_file.cc.orig	2020-07-15 19:07:32.000000000 +0000
-+++ tools/gn/src/base/files/scoped_file.cc
-@@ -31,7 +31,7 @@ void ScopedFDCloseTraits::Free(int fd) {
-   int ret = IGNORE_EINTR(close(fd));
- 
- #if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_FUCHSIA) || \
--    defined(OS_ANDROID)
-+    defined(OS_ANDROID) || defined(OS_BSD)
-   // NB: Some file descriptors can return errors from close() e.g. network
-   // filesystems such as NFS and Linux input devices. On Linux, macOS, and
-   // Fuchsia's POSIX layer, errors from close other than EBADF do not indicate
diff --git a/chromium/patches/patch-tools_gn_src_gn_args.cc b/chromium/patches/patch-tools_gn_src_gn_args.cc
deleted file mode 100644
index 72aecc0a6d..0000000000
--- a/chromium/patches/patch-tools_gn_src_gn_args.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-https://gn-review.googlesource.com/c/gn/+/9700
-
---- tools/gn/src/gn/args.cc.orig	2020-06-25 09:40:29.000000000 +0000
-+++ tools/gn/src/gn/args.cc
-@@ -316,6 +316,8 @@ void Args::SetSystemVarsLocked(Scope* de
-   os = "openbsd";
- #elif defined(OS_HAIKU)
-   os = "haiku";
-+#elif defined(OS_NETBSD)
-+  os = "netbsd";
- #else
- #error Unknown OS type.
- #endif
diff --git a/chromium/patches/patch-tools_gn_src_gn_version.h b/chromium/patches/patch-tools_gn_src_gn_version.h
index 9aabe0149e..1ad704fcb9 100644
--- a/chromium/patches/patch-tools_gn_src_gn_version.h
+++ b/chromium/patches/patch-tools_gn_src_gn_version.h
@@ -1,19 +1,21 @@
 $NetBSD$
 
---- tools/gn/src/gn/version.h.orig	2020-06-25 09:40:29.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/gn/src/gn/version.h.orig	2024-07-24 02:59:26.378962500 +0000
 +++ tools/gn/src/gn/version.h
-@@ -8,6 +8,14 @@
- #include <optional>
- #include <string>
+@@ -22,9 +22,9 @@ class Version {
+ 
+   static std::optional<Version> FromString(std::string s);
+ 
+-  int major() const { return major_; }
+-  int minor() const { return minor_; }
+-  int patch() const { return patch_; }
++  int gmajor() const { return major_; }
++  int gminor() const { return minor_; }
++  int gpatch() const { return patch_; }
  
-+#if defined(major)
-+#undef major
-+#endif
-+
-+#if defined(minor)
-+#undef minor
-+#endif
-+
- // Represents a semantic version.
- class Version {
-  public:
+   bool operator==(const Version& other) const;
+   bool operator<(const Version& other) const;
diff --git a/chromium/patches/patch-tools_gn_src_util_exe__path.cc b/chromium/patches/patch-tools_gn_src_util_exe__path.cc
index fd66a89e97..8ed603d3f1 100644
--- a/chromium/patches/patch-tools_gn_src_util_exe__path.cc
+++ b/chromium/patches/patch-tools_gn_src_util_exe__path.cc
@@ -1,34 +1,96 @@
 $NetBSD$
 
-https://gn-review.googlesource.com/c/gn/+/9700
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
 
---- tools/gn/src/util/exe_path.cc.orig	2020-06-25 09:40:29.000000000 +0000
+--- tools/gn/src/util/exe_path.cc.orig	2024-07-24 02:59:26.382963000 +0000
 +++ tools/gn/src/util/exe_path.cc
 @@ -15,7 +15,7 @@
  #include <windows.h>
  
  #include "base/win/win_util.h"
--#elif defined(OS_FREEBSD)
-+#elif defined(OS_FREEBSD) || defined(OS_NETBSD)
+-#elif defined(OS_FREEBSD) || defined(OS_NETBSD)
++#elif defined(OS_FREEBSD) || defined(OS_NETBSD) || defined(OS_OPENBSD)
  #include <limits.h>
  #include <sys/sysctl.h>
  #include <sys/types.h>
-@@ -67,6 +67,18 @@ base::FilePath GetExePath() {
-   return base::FilePath(buf);
+@@ -26,6 +26,10 @@
+ #include <stdlib.h>
+ #endif
+ 
++#if defined(OS_OPENBSD)
++#include <kvm.h>
++#endif
++
+ #if defined(OS_MACOSX)
+ 
+ base::FilePath GetExePath() {
+@@ -104,6 +108,67 @@ base::FilePath GetExePath() {
+   return base::FilePath(raw);
  }
  
-+#elif defined(OS_NETBSD)
++#elif defined(OS_OPENBSD)
 +
 +base::FilePath GetExePath() {
-+  int mib[] = {CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_PATHNAME};
-+  char buf[PATH_MAX];
-+  size_t buf_size = PATH_MAX;
-+  if (sysctl(mib, 4, buf, &buf_size, nullptr, 0) == -1) {
-+    return base::FilePath();
++  struct kinfo_file *files;
++  kvm_t *kd = NULL;
++  char errbuf[_POSIX2_LINE_MAX];
++  char **retvalargs;
++#define MAXTOKENS 2
++  char *tokens[MAXTOKENS];
++  static char retval[PATH_MAX];
++  int cnt;
++  size_t len;
++  struct stat sb;
++  pid_t cpid = getpid();
++
++  int mib[] = { CTL_KERN, KERN_PROC_ARGS, cpid, KERN_PROC_ARGV };
++
++  if (sysctl(mib, 4, NULL, &len, NULL, 0) != -1) {
++    retvalargs = static_cast<char**>(malloc(len));
++    if (!retvalargs)
++      goto out;
++
++    if (sysctl(mib, 4, retvalargs, &len, NULL, 0) < 0)
++      goto out;
++
++    char *cr = strdup(retvalargs[0]);
++    free(retvalargs);
++
++    *tokens = strtok(cr, ":");
++    if (tokens[0] == NULL)
++      goto out;
++
++    if (realpath(tokens[0], retval) == NULL)
++      goto out;
++
++    if (stat(retval, &sb) < 0)
++      goto out;
++
++    if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, errbuf)) == NULL)
++      goto out;
++
++    if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, cpid,
++                              sizeof(struct kinfo_file), &cnt)) == NULL) {
++      kvm_close(kd); 
++      goto out;
++    }
++
++    for (int i = 0; i < cnt; i++) {
++      if (files[i].fd_fd == KERN_FILE_TEXT &&
++          files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) &&
++          files[i].va_fileid == sb.st_ino) {
++        kvm_close(kd);
++        return base::FilePath(retval);
++      }
++    }
 +  }
-+  return base::FilePath(buf);
++
++out:
++  return base::FilePath();
 +}
 +
- #elif defined(OS_HAIKU)
+ #elif defined(OS_ZOS)
  
  base::FilePath GetExePath() {
diff --git a/chromium/patches/patch-tools_grit_grit__rule.gni b/chromium/patches/patch-tools_grit_grit__rule.gni
deleted file mode 100644
index 6908df17db..0000000000
--- a/chromium/patches/patch-tools_grit_grit__rule.gni
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- tools/grit/grit_rule.gni.orig	2020-07-15 18:56:33.000000000 +0000
-+++ tools/grit/grit_rule.gni
-@@ -104,7 +104,7 @@ if (enable_resource_whitelist_generation
- 
- grit_defines = []
- 
--if (is_mac || is_win || is_linux || is_ios) {
-+if (is_mac || is_win || is_linux || is_ios || is_bsd) {
-   grit_defines += [
-     "-D",
-     "scale_factors=2x",
-@@ -199,7 +199,7 @@ if (current_toolchain != host_toolchain)
-       "ios",
-     ]
-   }
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     grit_defines += [
-       "-t",
-       "linux2",
diff --git a/chromium/patches/patch-tools_grit_grit_node_base.py b/chromium/patches/patch-tools_grit_grit_node_base.py
new file mode 100644
index 0000000000..ce8fc1ccd7
--- /dev/null
+++ b/chromium/patches/patch-tools_grit_grit_node_base.py
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/grit/grit/node/base.py.orig	2024-07-24 02:45:09.255941000 +0000
++++ tools/grit/grit/node/base.py
+@@ -498,7 +498,8 @@ class Node:
+         value = defs
+ 
+       elif name == 'is_linux':
+-        value = target_platform == 'linux'
++        value = (target_platform == 'linux'
++                 or 'bsd' in target_platform)
+       elif name == 'is_chromeos':
+         value = target_platform == 'chromeos'
+       elif name == 'is_macosx':
diff --git a/chromium/patches/patch-tools_ipc__fuzzer_ipc__fuzzer.gni b/chromium/patches/patch-tools_ipc__fuzzer_ipc__fuzzer.gni
deleted file mode 100644
index 7751482bc4..0000000000
--- a/chromium/patches/patch-tools_ipc__fuzzer_ipc__fuzzer.gni
+++ /dev/null
@@ -1,11 +0,0 @@
-$NetBSD$
-
---- tools/ipc_fuzzer/ipc_fuzzer.gni.orig	2020-07-15 18:56:33.000000000 +0000
-+++ tools/ipc_fuzzer/ipc_fuzzer.gni
-@@ -13,5 +13,5 @@ declare_args() {
-   # (especially MSan).
-   enable_ipc_fuzzer =
-       is_clang && !is_component_build && !is_official_build && !is_chromecast &&
--      !using_sanitizer && (is_linux || is_mac || is_win) && !use_ozone
-+      !using_sanitizer && (is_linux || is_mac || is_win || is_bsd) && !use_ozone
- }
diff --git a/chromium/patches/patch-tools_json__schema__compiler_cpp__bundle__generator.py b/chromium/patches/patch-tools_json__schema__compiler_cpp__bundle__generator.py
new file mode 100644
index 0000000000..1b633f0f4c
--- /dev/null
+++ b/chromium/patches/patch-tools_json__schema__compiler_cpp__bundle__generator.py
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/json_schema_compiler/cpp_bundle_generator.py.orig	2024-07-24 02:45:09.291944500 +0000
++++ tools/json_schema_compiler/cpp_bundle_generator.py
+@@ -149,7 +149,7 @@ class CppBundleGenerator(object):
+         # BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(IS_CHROMEOS_LACROS).
+         ifdefs.append('BUILDFLAG(IS_CHROMEOS_LACROS)')
+       elif platform == Platforms.LINUX:
+-        ifdefs.append('BUILDFLAG(IS_LINUX)')
++        ifdefs.append('BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)')
+       elif platform == Platforms.MAC:
+         ifdefs.append('BUILDFLAG(IS_MAC)')
+       elif platform == Platforms.WIN:
diff --git a/chromium/patches/patch-tools_json__schema__compiler_feature__compiler.py b/chromium/patches/patch-tools_json__schema__compiler_feature__compiler.py
index e1807cd091..283f65e356 100644
--- a/chromium/patches/patch-tools_json__schema__compiler_feature__compiler.py
+++ b/chromium/patches/patch-tools_json__schema__compiler_feature__compiler.py
@@ -1,12 +1,17 @@
 $NetBSD$
 
---- tools/json_schema_compiler/feature_compiler.py.orig	2020-07-15 18:56:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/json_schema_compiler/feature_compiler.py.orig	2024-07-24 02:45:09.295945000 +0000
 +++ tools/json_schema_compiler/feature_compiler.py
-@@ -238,6 +238,8 @@ FEATURE_GRAMMAR = ({
+@@ -277,6 +277,9 @@ FEATURE_GRAMMAR = ({
                  'linux': 'Feature::LINUX_PLATFORM',
                  'mac': 'Feature::MACOSX_PLATFORM',
                  'win': 'Feature::WIN_PLATFORM',
-+                'bsd': 'Feature::LINUX_PLATFORM',
++                'openbsd': 'Feature::LINUX_PLATFORM',
++                'freebsd': 'Feature::LINUX_PLATFORM',
 +                'netbsd': 'Feature::LINUX_PLATFORM',
              }
          }
diff --git a/chromium/patches/patch-tools_json__schema__compiler_model.py b/chromium/patches/patch-tools_json__schema__compiler_model.py
deleted file mode 100644
index 656c1bcca8..0000000000
--- a/chromium/patches/patch-tools_json__schema__compiler_model.py
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- tools/json_schema_compiler/model.py.orig	2020-07-15 18:56:33.000000000 +0000
-+++ tools/json_schema_compiler/model.py
-@@ -605,7 +605,7 @@ class Platforms(object):
-   """
-   CHROMEOS = _PlatformInfo("chromeos")
-   CHROMEOS_TOUCH = _PlatformInfo("chromeos_touch")
--  LINUX = _PlatformInfo("linux")
-+  LINUX = _PlatformInfo("linux") or _PlatformInfo("bsd")
-   MAC = _PlatformInfo("mac")
-   WIN = _PlatformInfo("win")
- 
diff --git a/chromium/patches/patch-tools_memory_partition__allocator_inspect__utils.h b/chromium/patches/patch-tools_memory_partition__allocator_inspect__utils.h
new file mode 100644
index 0000000000..bbf882891e
--- /dev/null
+++ b/chromium/patches/patch-tools_memory_partition__allocator_inspect__utils.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/memory/partition_allocator/inspect_utils.h.orig	2024-07-24 02:45:09.323947700 +0000
++++ tools/memory/partition_allocator/inspect_utils.h
+@@ -61,7 +61,7 @@ class RemoteProcessMemoryReader {
+   const pid_t pid_;
+   bool is_valid_;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   base::ScopedFD mem_fd_;
+ #elif BUILDFLAG(IS_MAC)
+   task_t task_;
diff --git a/chromium/patches/patch-tools_perf_chrome__telemetry__build_BUILD.gn b/chromium/patches/patch-tools_perf_chrome__telemetry__build_BUILD.gn
index 9b1f0634f0..f12735128a 100644
--- a/chromium/patches/patch-tools_perf_chrome__telemetry__build_BUILD.gn
+++ b/chromium/patches/patch-tools_perf_chrome__telemetry__build_BUILD.gn
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- tools/perf/chrome_telemetry_build/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/perf/chrome_telemetry_build/BUILD.gn.orig	2024-07-24 02:45:09.487963400 +0000
 +++ tools/perf/chrome_telemetry_build/BUILD.gn
 @@ -47,7 +47,7 @@ group("telemetry_chrome_test") {
      data_deps += [ "//chrome:reorder_imports" ]
    }
  
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
      data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
  
      # CrOS currently has issues with the locally compiled version of
+@@ -178,7 +178,7 @@ group("telemetry_chrome_test_without_chr
+   ]
+ 
+   # Cr-Fuchsia doesn't support breakpad.
+-  if (!is_win && !is_fuchsia) {
++  if (!is_win && !is_fuchsia && !is_bsd) {
+     data_deps += [
+       # This is defined for Windows, but is unused by Telemetry on
+       # Windows, and including it can have issues when cross-compiling
diff --git a/chromium/patches/patch-tools_protoc__wrapper_protoc__wrapper.py b/chromium/patches/patch-tools_protoc__wrapper_protoc__wrapper.py
new file mode 100644
index 0000000000..c9f636e218
--- /dev/null
+++ b/chromium/patches/patch-tools_protoc__wrapper_protoc__wrapper.py
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/protoc_wrapper/protoc_wrapper.py.orig	2024-07-24 02:45:09.767990600 +0000
++++ tools/protoc_wrapper/protoc_wrapper.py
+@@ -183,15 +183,19 @@ def main(argv):
+     if not options.exclude_imports:
+       protoc_cmd += ["--include_imports"]
+ 
++  nenv = os.environ.copy()
++  nenv["PATH"] = "${WRKOBJDIR}/bin:" + nenv["PATH"]
++  nenv["LD_LIBRARY_PATH"] = "${WRKSRC}/out/Release"
++
+   dependency_file_data = None
+   if options.descriptor_set_out and options.descriptor_set_dependency_file:
+     protoc_cmd += ['--dependency_out', options.descriptor_set_dependency_file]
+-    ret = subprocess.call(protoc_cmd)
++    ret = subprocess.call(protoc_cmd, env=nenv)
+ 
+     with open(options.descriptor_set_dependency_file, 'rb') as f:
+       dependency_file_data = f.read().decode('utf-8')
+ 
+-  ret = subprocess.call(protoc_cmd)
++  ret = subprocess.call(protoc_cmd, env=nenv)
+   if ret != 0:
+     if ret <= -100:
+       # Windows error codes such as 0xC0000005 and 0xC0000409 are much easier to
diff --git a/chromium/patches/patch-tools_v8__context__snapshot_BUILD.gn b/chromium/patches/patch-tools_v8__context__snapshot_BUILD.gn
new file mode 100644
index 0000000000..6779cea3e6
--- /dev/null
+++ b/chromium/patches/patch-tools_v8__context__snapshot_BUILD.gn
@@ -0,0 +1,46 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/v8_context_snapshot/BUILD.gn.orig	2024-07-24 02:45:09.815995200 +0000
++++ tools/v8_context_snapshot/BUILD.gn
+@@ -36,6 +36,24 @@ buildflag_header("buildflags") {
+   ]
+ }
+ 
++action("run_paxctl_v8_context_snapshot_generator") {
++  deps = [ ":v8_context_snapshot_generator($v8_snapshot_toolchain)" ]
++
++  script = "//v8/tools/run-paxctl.py"
++  stamp = "$target_gen_dir/paxctl_stamp"
++  outputs = [ stamp ]
++
++  sources = []
++  data = []
++
++  args = [
++    rebase_path(stamp, root_build_dir),
++    "/usr/sbin/paxctl", "+m",
++    "./" + rebase_path(get_label_info(":v8_context_snapshot_generator", "root_out_dir") + "/v8_context_snapshot_generator",
++    root_build_dir),
++  ]
++}
++
+ if (use_v8_context_snapshot) {
+   if (v8_snapshot_toolchain == current_toolchain) {
+     action("generate_v8_context_snapshot") {
+@@ -52,7 +70,11 @@ if (use_v8_context_snapshot) {
+         "--output_file=$output_path",
+       ]
+ 
+-      deps = [ ":v8_context_snapshot_generator" ]
++      if (target_os == "netbsd") {
++        deps = [ ":v8_context_snapshot_generator", ":run_paxctl_v8_context_snapshot_generator" ]
++      } else {
++        deps = [ ":v8_context_snapshot_generator" ]
++      }
+ 
+       # TODO(sky): figure out why this doesn't work on android cross compile.
+       # In the case of compiling for the snapshot `shlib_extension` is ".so"
diff --git a/chromium/patches/patch-tools_variations_fieldtrial__to__struct.py b/chromium/patches/patch-tools_variations_fieldtrial__to__struct.py
index 11f768a62f..6b0151f06c 100644
--- a/chromium/patches/patch-tools_variations_fieldtrial__to__struct.py
+++ b/chromium/patches/patch-tools_variations_fieldtrial__to__struct.py
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- tools/variations/fieldtrial_to_struct.py.orig	2020-07-15 18:56:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- tools/variations/fieldtrial_to_struct.py.orig	2024-07-24 02:45:09.815995200 +0000
 +++ tools/variations/fieldtrial_to_struct.py
-@@ -40,6 +40,9 @@ _platforms = [
+@@ -41,6 +41,9 @@ _platforms = [
      'linux',
      'mac',
      'windows',
-+    'freebsd',
 +    'openbsd',
++    'freebsd',
 +    'netbsd',
  ]
  
diff --git a/chromium/patches/patch-ui_aura_BUILD.gn b/chromium/patches/patch-ui_aura_BUILD.gn
deleted file mode 100644
index 6d04bf4562..0000000000
--- a/chromium/patches/patch-ui_aura_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/aura/BUILD.gn.orig	2020-07-15 18:56:33.000000000 +0000
-+++ ui/aura/BUILD.gn
-@@ -267,7 +267,7 @@ jumbo_static_library("test_support") {
-     sources += [ "test/ui_controls_factory_ozone.cc" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//ui/platform_window/common" ]
-   }
- }
diff --git a/chromium/patches/patch-ui_aura_client_drag__drop__client.h b/chromium/patches/patch-ui_aura_client_drag__drop__client.h
new file mode 100644
index 0000000000..84e421d86f
--- /dev/null
+++ b/chromium/patches/patch-ui_aura_client_drag__drop__client.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/aura/client/drag_drop_client.h.orig	2024-07-24 02:45:10.212033500 +0000
++++ ui/aura/client/drag_drop_client.h
+@@ -44,7 +44,7 @@ class AURA_EXPORT DragDropClient {
+       int allowed_operations,
+       ui::mojom::DragEventSource source) = 0;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Updates the drag image. An empty |image| may be used to hide a previously
+   // set non-empty drag image, and a non-empty |image| shows the drag image
+   // again if it was previously hidden.
diff --git a/chromium/patches/patch-ui_aura_screen__ozone.cc b/chromium/patches/patch-ui_aura_screen__ozone.cc
new file mode 100644
index 0000000000..53adf36725
--- /dev/null
+++ b/chromium/patches/patch-ui_aura_screen__ozone.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/aura/screen_ozone.cc.orig	2024-07-24 02:45:10.216034000 +0000
++++ ui/aura/screen_ozone.cc
+@@ -107,7 +107,7 @@ display::Display ScreenOzone::GetPrimary
+   return platform_screen_->GetPrimaryDisplay();
+ }
+ 
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ ScreenOzone::ScreenSaverSuspenderOzone::ScreenSaverSuspenderOzone(
+     std::unique_ptr<ui::PlatformScreen::PlatformScreenSaverSuspender> suspender)
+     : suspender_(std::move(suspender)) {}
diff --git a/chromium/patches/patch-ui_aura_screen__ozone.h b/chromium/patches/patch-ui_aura_screen__ozone.h
new file mode 100644
index 0000000000..0bd02db8cf
--- /dev/null
+++ b/chromium/patches/patch-ui_aura_screen__ozone.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/aura/screen_ozone.h.orig	2024-07-24 02:45:10.216034000 +0000
++++ ui/aura/screen_ozone.h
+@@ -45,7 +45,7 @@ class AURA_EXPORT ScreenOzone : public d
+   display::Display GetDisplayMatching(
+       const gfx::Rect& match_rect) const override;
+   display::Display GetPrimaryDisplay() const override;
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   std::unique_ptr<display::Screen::ScreenSaverSuspender> SuspendScreenSaver()
+       override;
+ #endif  // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
+@@ -74,7 +74,7 @@ class AURA_EXPORT ScreenOzone : public d
+   ui::PlatformScreen* platform_screen() { return platform_screen_.get(); }
+ 
+  private:
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   class ScreenSaverSuspenderOzone
+       : public display::Screen::ScreenSaverSuspender {
+    public:
diff --git a/chromium/patches/patch-ui_base_BUILD.gn b/chromium/patches/patch-ui_base_BUILD.gn
deleted file mode 100644
index 7aca3f06d9..0000000000
--- a/chromium/patches/patch-ui_base_BUILD.gn
+++ /dev/null
@@ -1,108 +0,0 @@
-$NetBSD$
-
---- ui/base/BUILD.gn.orig	2020-06-25 09:32:19.000000000 +0000
-+++ ui/base/BUILD.gn
-@@ -354,7 +354,7 @@ jumbo_component("base") {
-       "user_activity/user_activity_observer.h",
-     ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources += [
-         "accelerators/menu_label_accelerator_util_linux.cc",
-         "accelerators/menu_label_accelerator_util_linux.h",
-@@ -404,7 +404,7 @@ jumbo_component("base") {
-     sources += [ "pointer/pointer_device_android.cc" ]
-   } else if (is_ios) {
-     sources += [ "pointer/pointer_device_ios.cc" ]
--  } else if (is_linux) {
-+  } else if (is_linux || is_bsd) {
-     sources += [ "pointer/pointer_device_linux.cc" ]
-   } else {
-     # Empty implementation for all other cases.
-@@ -515,11 +515,11 @@ jumbo_component("base") {
-     }
-   }
- 
--  if (use_aura && is_linux) {
-+  if (use_aura && (is_linux || is_bsd)) {
-     sources += [ "resource/resource_bundle_auralinux.cc" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//third_party/fontconfig" ]
-   }
- 
-@@ -532,7 +532,7 @@ jumbo_component("base") {
-     ]
-   }
- 
--  if (is_chromeos || (use_aura && is_linux && !use_x11)) {
-+  if (is_chromeos || (use_aura && (is_linux || is_bsd) && !use_x11)) {
-     sources += [
-       "dragdrop/os_exchange_data_provider_non_backed.cc",
-       "dragdrop/os_exchange_data_provider_non_backed.h",
-@@ -635,7 +635,7 @@ component("features") {
- }
- 
- # TODO(crbug.com/1091985): Support CrOS.
--if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+if (is_win || is_mac || ((is_linux || is_bsd) && !is_chromeos)) {
-   jumbo_static_library("pixel_diff_test_support") {
-     testonly = true
-     sources = [
-@@ -955,7 +955,7 @@ test("ui_base_unittests") {
-     ]
-     deps += [ "//components/system_media_controls:test_support" ]
- 
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       sources +=
-           [ "accelerators/menu_label_accelerator_util_linux_unittest.cc" ]
-     }
-@@ -977,7 +977,7 @@ test("ui_base_unittests") {
-   }
- 
-   # TODO(crbug.com/1091985): Support CrOS.
--  if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+  if (is_win || is_mac || ((is_linux || is_bsd) && !is_chromeos)) {
-     sources += [
-       "test/skia_gold_matching_algorithm_unittest.cc",
-       "test/skia_gold_pixel_diff_unittest.cc",
-@@ -1011,7 +1011,7 @@ test("ui_base_unittests") {
-       ]
-       deps += [ "//ui/base/ime/chromeos" ]
-     }
--    if (is_linux && use_aura && !is_chromeos) {
-+    if ((is_linux || is_bsd) && use_aura && !is_chromeos) {
-       if (use_x11 || use_ozone) {
-         sources += [ "ime/linux/input_method_auralinux_unittest.cc" ]
-         deps += [
-@@ -1113,7 +1113,7 @@ test("ui_base_unittests") {
-     deps += [ "//ui/events:dom_keycode_converter" ]
-   }
- 
--  if (is_android || is_linux || is_mac || is_win || is_fuchsia) {
-+  if (is_android || is_linux || is_mac || is_win || is_fuchsia || is_bsd) {
-     # TODO(brettw): We should be able to depend on //ui/resources:ui_test_pak
-     # instead of depending directly on the non-test .pak files, but depending
-     # on ui_test_pak seems to have no effect.
-@@ -1126,7 +1126,7 @@ test("ui_base_unittests") {
-       "//ui/resources:ui_test_pak",  # TODO(brettw): this does nothing.
-     ]
-   }
--  if (is_linux || is_win || is_fuchsia) {
-+  if (is_linux || is_win || is_fuchsia || is_bsd) {
-     data += [
-       # TODO(brettw): Remove these two lines.
-       "$root_out_dir/ui/en-US.pak",
-@@ -1162,7 +1162,7 @@ if (is_win) {
-   }
- }
- 
--if (is_linux) {
-+if (is_linux || is_bsd) {
-   # This source set defines linux wm role names and must not have any external
-   # dependencies and be kept as minimal as possible.
-   source_set("wm_role_names") {
diff --git a/chromium/patches/patch-ui_base_clipboard_clipboard__constants.cc b/chromium/patches/patch-ui_base_clipboard_clipboard__constants.cc
new file mode 100644
index 0000000000..3303382cc3
--- /dev/null
+++ b/chromium/patches/patch-ui_base_clipboard_clipboard__constants.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/clipboard/clipboard_constants.cc.orig	2024-07-24 02:45:10.232035600 +0000
++++ ui/base/clipboard/clipboard_constants.cc
+@@ -25,7 +25,7 @@ const char kMimeTypeOctetStream[] = "app
+ // Used for window dragging on some platforms.
+ const char kMimeTypeWindowDrag[] = "chromium/x-window-drag";
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ const char kMimeTypeLinuxUtf8String[] = "UTF8_STRING";
+ const char kMimeTypeLinuxString[] = "STRING";
+ const char kMimeTypeLinuxText[] = "TEXT";
diff --git a/chromium/patches/patch-ui_base_clipboard_clipboard__constants.h b/chromium/patches/patch-ui_base_clipboard_clipboard__constants.h
new file mode 100644
index 0000000000..aad105a9b6
--- /dev/null
+++ b/chromium/patches/patch-ui_base_clipboard_clipboard__constants.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/clipboard/clipboard_constants.h.orig	2024-07-24 02:45:10.232035600 +0000
++++ ui/base/clipboard/clipboard_constants.h
+@@ -48,7 +48,7 @@ extern const char kMimeTypeDataTransferE
+ 
+ // ----- LINUX & CHROMEOS & FUCHSIA MIME TYPES -----
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES)
+ extern const char kMimeTypeLinuxUtf8String[];
+ COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES)
diff --git a/chromium/patches/patch-ui_base_clipboard_clipboard__non__backed.cc b/chromium/patches/patch-ui_base_clipboard_clipboard__non__backed.cc
new file mode 100644
index 0000000000..140e9b6453
--- /dev/null
+++ b/chromium/patches/patch-ui_base_clipboard_clipboard__non__backed.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/clipboard/clipboard_non_backed.cc.orig	2024-07-24 02:45:10.232035600 +0000
++++ ui/base/clipboard/clipboard_non_backed.cc
+@@ -461,7 +461,7 @@ ClipboardNonBacked::ClipboardNonBacked()
+   // so create internal clipboards for platform supported clipboard buffers.
+   constexpr ClipboardBuffer kClipboardBuffers[] = {
+     ClipboardBuffer::kCopyPaste,
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+     ClipboardBuffer::kSelection,
+ #endif
+ #if BUILDFLAG(IS_MAC)
diff --git a/chromium/patches/patch-ui_base_cursor_cursor__factory.cc b/chromium/patches/patch-ui_base_cursor_cursor__factory.cc
new file mode 100644
index 0000000000..2bdbb973c5
--- /dev/null
+++ b/chromium/patches/patch-ui_base_cursor_cursor__factory.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/cursor/cursor_factory.cc.orig	2024-07-24 02:45:10.240036200 +0000
++++ ui/base/cursor/cursor_factory.cc
+@@ -97,7 +97,7 @@ void CursorFactory::ObserveThemeChanges(
+   NOTIMPLEMENTED();
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ 
+ // Returns a cursor name compatible with either X11 or the FreeDesktop.org
+ // cursor spec ([1] and [2]), followed by fallbacks that can work as
diff --git a/chromium/patches/patch-ui_base_cursor_cursor__factory.h b/chromium/patches/patch-ui_base_cursor_cursor__factory.h
new file mode 100644
index 0000000000..adf3ae6179
--- /dev/null
+++ b/chromium/patches/patch-ui_base_cursor_cursor__factory.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/cursor/cursor_factory.h.orig	2024-07-24 02:45:10.240036200 +0000
++++ ui/base/cursor/cursor_factory.h
+@@ -93,7 +93,7 @@ class COMPONENT_EXPORT(UI_BASE_CURSOR) C
+   base::ObserverList<CursorFactoryObserver>::Unchecked observers_;
+ };
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(UI_BASE_CURSOR)
+ std::vector<std::string> CursorNamesFromType(mojom::CursorType type);
+ #endif
diff --git a/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc b/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc
index e383056980..40eda0a8cd 100644
--- a/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc
+++ b/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- ui/base/dragdrop/os_exchange_data_provider_factory.cc.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/dragdrop/os_exchange_data_provider_factory.cc.orig	2024-07-24 02:45:10.244036700 +0000
 +++ ui/base/dragdrop/os_exchange_data_provider_factory.cc
-@@ -9,7 +9,7 @@
+@@ -7,7 +7,7 @@
+ #include "base/notreached.h"
+ #include "build/build_config.h"
  
- #if defined(USE_X11)
- #include "ui/base/dragdrop/os_exchange_data_provider_x11.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #if defined(USE_OZONE)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
  #include "ui/base/dragdrop/os_exchange_data_provider_factory_ozone.h"
- #endif
-@@ -27,7 +27,7 @@ std::unique_ptr<OSExchangeDataProvider>
+ #include "ui/base/dragdrop/os_exchange_data_provider_non_backed.h"
+ #elif BUILDFLAG(IS_APPLE)
+@@ -21,7 +21,7 @@ namespace ui {
+ // static
+ std::unique_ptr<OSExchangeDataProvider>
  OSExchangeDataProviderFactory::CreateProvider() {
- #if defined(USE_X11)
-   return std::make_unique<OSExchangeDataProviderX11>();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #if defined(USE_OZONE)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // The instance can be nullptr in tests that do not instantiate the platform,
    // or on platforms that do not implement specific drag'n'drop.  For them,
+   // falling back to the Aura provider should be fine.
diff --git a/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc b/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc
new file mode 100644
index 0000000000..dd4b702220
--- /dev/null
+++ b/chromium/patches/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/dragdrop/os_exchange_data_provider_non_backed.cc.orig	2024-07-24 02:45:10.244036700 +0000
++++ ui/base/dragdrop/os_exchange_data_provider_non_backed.cc
+@@ -99,7 +99,7 @@ void OSExchangeDataProviderNonBacked::Se
+ 
+ std::optional<std::u16string> OSExchangeDataProviderNonBacked::GetString()
+     const {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   if (HasFile()) {
+     // Various Linux file managers both pass a list of file:// URIs and set the
+     // string representation to the URI. We explicitly don't want to return use
diff --git a/chromium/patches/patch-ui_base_idle_BUILD.gn b/chromium/patches/patch-ui_base_idle_BUILD.gn
deleted file mode 100644
index 8dd6cd2dc1..0000000000
--- a/chromium/patches/patch-ui_base_idle_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/base/idle/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
-+++ ui/base/idle/BUILD.gn
-@@ -56,7 +56,7 @@ component("idle") {
-     sources += [ "idle_fuchsia.cc" ]
-   }
- 
--  if (is_linux && !is_chromeos) {
-+  if ((is_linux || is_bsd) && !is_chromeos) {
-     sources += [ "idle_linux.cc" ]
-   }
- 
diff --git a/chromium/patches/patch-ui_base_ime_dummy__text__input__client.cc b/chromium/patches/patch-ui_base_ime_dummy__text__input__client.cc
new file mode 100644
index 0000000000..d80826251c
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ime_dummy__text__input__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/dummy_text_input_client.cc.orig	2024-07-24 02:45:10.260038100 +0000
++++ ui/base/ime/dummy_text_input_client.cc
+@@ -159,7 +159,7 @@ bool DummyTextInputClient::ShouldDoLearn
+   return false;
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool DummyTextInputClient::SetCompositionFromExistingText(
+     const gfx::Range& range,
+     const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) {
diff --git a/chromium/patches/patch-ui_base_ime_dummy__text__input__client.h b/chromium/patches/patch-ui_base_ime_dummy__text__input__client.h
new file mode 100644
index 0000000000..fe69c4e92b
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ime_dummy__text__input__client.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/dummy_text_input_client.h.orig	2024-07-24 02:45:10.260038100 +0000
++++ ui/base/ime/dummy_text_input_client.h
+@@ -65,7 +65,7 @@ class DummyTextInputClient : public Text
+   ukm::SourceId GetClientSourceForMetrics() const override;
+   bool ShouldDoLearning() override;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   bool SetCompositionFromExistingText(
+       const gfx::Range& range,
+       const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override;
diff --git a/chromium/patches/patch-ui_base_ime_fake__text__input__client.cc b/chromium/patches/patch-ui_base_ime_fake__text__input__client.cc
new file mode 100644
index 0000000000..c5a03d7de8
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ime_fake__text__input__client.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/fake_text_input_client.cc.orig	2024-07-24 02:45:10.260038100 +0000
++++ ui/base/ime/fake_text_input_client.cc
+@@ -210,7 +210,7 @@ bool FakeTextInputClient::ShouldDoLearni
+   return false;
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool FakeTextInputClient::SetCompositionFromExistingText(
+     const gfx::Range& range,
+     const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) {
diff --git a/chromium/patches/patch-ui_base_ime_fake__text__input__client.h b/chromium/patches/patch-ui_base_ime_fake__text__input__client.h
new file mode 100644
index 0000000000..508c4dc891
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ime_fake__text__input__client.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/fake_text_input_client.h.orig	2024-07-24 02:45:10.260038100 +0000
++++ ui/base/ime/fake_text_input_client.h
+@@ -98,7 +98,7 @@ class FakeTextInputClient : public TextI
+   void SetTextEditCommandForNextKeyEvent(TextEditCommand command) override;
+   ukm::SourceId GetClientSourceForMetrics() const override;
+   bool ShouldDoLearning() override;
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   bool SetCompositionFromExistingText(
+       const gfx::Range& range,
+       const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override;
diff --git a/chromium/patches/patch-ui_base_ime_init_input__method__initializer.cc b/chromium/patches/patch-ui_base_ime_init_input__method__initializer.cc
index a9ff0249ff..173e298ef5 100644
--- a/chromium/patches/patch-ui_base_ime_init_input__method__initializer.cc
+++ b/chromium/patches/patch-ui_base_ime_init_input__method__initializer.cc
@@ -1,40 +1,35 @@
 $NetBSD$
 
---- ui/base/ime/init/input_method_initializer.cc.orig	2020-07-15 18:56:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/init/input_method_initializer.cc.orig	2024-07-24 02:45:10.264038600 +0000
 +++ ui/base/ime/init/input_method_initializer.cc
 @@ -10,7 +10,7 @@
+ #include "build/chromeos_buildflags.h"
  
- #if defined(OS_CHROMEOS)
- #include "ui/base/ime/chromeos/ime_bridge.h"
--#elif defined(USE_AURA) && defined(OS_LINUX)
-+#elif defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- #include "base/check.h"
- // TODO(crbug.com/1085700): Remove nogncheck when we can build both Ozone
- // Wayland and X11 on Linux codesearch-gen bots.
-@@ -22,7 +22,7 @@
- 
- namespace {
+ #if !BUILDFLAG(IS_CHROMEOS_ASH) && defined(USE_AURA) && \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+ #include "ui/base/ime/linux/fake_input_method_context.h"
+ #include "ui/base/ime/linux/linux_input_method_context_factory.h"
+ #elif BUILDFLAG(IS_WIN)
+@@ -33,7 +33,7 @@ void ShutdownInputMethod() {
+ }
  
--#if !defined(OS_CHROMEOS) && defined(USE_AURA) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- const ui::LinuxInputMethodContextFactory*
-     g_linux_input_method_context_factory_for_testing;
- #endif
-@@ -50,7 +50,7 @@ void ShutdownInputMethod() {
  void InitializeInputMethodForTesting() {
- #if defined(OS_CHROMEOS)
-   IMEBridge::Initialize();
--#elif defined(USE_AURA) && defined(OS_LINUX)
-+#elif defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
-   if (!g_linux_input_method_context_factory_for_testing)
-     g_linux_input_method_context_factory_for_testing =
-         new FakeInputMethodContextFactory();
-@@ -69,7 +69,7 @@ void InitializeInputMethodForTesting() {
+-#if defined(USE_AURA) && BUILDFLAG(IS_LINUX)
++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+   GetInputMethodContextFactoryForTest() =
+       base::BindRepeating([](LinuxInputMethodContextDelegate* delegate)
+                               -> std::unique_ptr<LinuxInputMethodContext> {
+@@ -46,7 +46,7 @@ void InitializeInputMethodForTesting() {
+ 
  void ShutdownInputMethodForTesting() {
- #if defined(OS_CHROMEOS)
-   IMEBridge::Shutdown();
--#elif defined(USE_AURA) && defined(OS_LINUX)
-+#elif defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
-   const LinuxInputMethodContextFactory* factory =
-       LinuxInputMethodContextFactory::instance();
-   CHECK(!factory || factory == g_linux_input_method_context_factory_for_testing)
+ #if !BUILDFLAG(IS_CHROMEOS_ASH) && defined(USE_AURA) && \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))
+   // The function owns the factory (as a static variable that's returned by
+   // reference), so setting this to an empty factory will free the old one.
+   GetInputMethodContextFactoryForTest() = LinuxInputMethodContextFactory();
diff --git a/chromium/patches/patch-ui_base_ime_linux_BUILD.gn b/chromium/patches/patch-ui_base_ime_linux_BUILD.gn
deleted file mode 100644
index 3aae0fcadc..0000000000
--- a/chromium/patches/patch-ui_base_ime_linux_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/base/ime/linux/BUILD.gn.orig	2020-06-25 09:32:19.000000000 +0000
-+++ ui/base/ime/linux/BUILD.gn
-@@ -12,7 +12,7 @@ import("//build/config/linux/pangocairo/
- # both ozone and x11 on Linux yet, but when we can we should remove this.
- # TODO(crbug.com/1085700): Remove || enable_kythe_annotations here.
- import("//build/toolchain/kythe.gni")
--assert((is_linux && !is_chromeos) || enable_kythe_annotations)
-+assert((is_linux && !is_chromeos) || is_bsd || enable_kythe_annotations)
- 
- jumbo_component("linux") {
-   output_name = "ui_base_ime_linux"
diff --git a/chromium/patches/patch-ui_base_ime_linux_linux__input__method__context__factory.cc b/chromium/patches/patch-ui_base_ime_linux_linux__input__method__context__factory.cc
new file mode 100644
index 0000000000..de189277aa
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ime_linux_linux__input__method__context__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/linux/linux_input_method_context_factory.cc.orig	2024-07-24 02:45:10.264038600 +0000
++++ ui/base/ime/linux/linux_input_method_context_factory.cc
+@@ -9,7 +9,7 @@
+ #include "build/build_config.h"
+ #include "ui/base/ime/linux/fake_input_method_context.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #include "ui/linux/linux_ui_delegate.h"
+ #endif
+@@ -32,7 +32,7 @@ std::unique_ptr<LinuxInputMethodContext>
+   if (auto factory = GetInputMethodContextFactoryForTest())
+     return factory.Run(delegate);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Give the toolkit a chance to create the context.
+   if (auto* linux_ui = LinuxUi::instance()) {
+     if (auto context = linux_ui->CreateInputMethodContext(delegate))
diff --git a/chromium/patches/patch-ui_base_ime_text__input__client.h b/chromium/patches/patch-ui_base_ime_text__input__client.h
new file mode 100644
index 0000000000..1cf389de5d
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ime_text__input__client.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ime/text_input_client.h.orig	2024-07-24 02:45:10.268039000 +0000
++++ ui/base/ime/text_input_client.h
+@@ -266,7 +266,7 @@ class COMPONENT_EXPORT(UI_BASE_IME) Text
+   // fields that are considered 'private' (e.g. in incognito tabs).
+   virtual bool ShouldDoLearning() = 0;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Start composition over a given UTF-16 code range from existing text. This
+   // should only be used for composition scenario when IME wants to start
+   // composition on existing text. Returns whether the operation was successful.
diff --git a/chromium/patches/patch-ui_base_resource_resource__bundle.cc b/chromium/patches/patch-ui_base_resource_resource__bundle.cc
index 4133ab24ef..a5ab0a98ed 100644
--- a/chromium/patches/patch-ui_base_resource_resource__bundle.cc
+++ b/chromium/patches/patch-ui_base_resource_resource__bundle.cc
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- ui/base/resource/resource_bundle.cc.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/resource/resource_bundle.cc.orig	2024-07-24 02:45:10.288040900 +0000
 +++ ui/base/resource/resource_bundle.cc
-@@ -841,7 +841,7 @@ void ResourceBundle::ReloadFonts() {
+@@ -926,7 +926,7 @@ void ResourceBundle::ReloadFonts() {
  }
  
- ScaleFactor ResourceBundle::GetMaxScaleFactor() const {
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+ ResourceScaleFactor ResourceBundle::GetMaxResourceScaleFactor() const {
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    return max_scale_factor_;
  #else
-   return GetSupportedScaleFactors().back();
-@@ -894,7 +894,7 @@ void ResourceBundle::InitSharedInstance(
-   // On platforms other than iOS, 100P is always a supported scale factor.
-   // For Windows we have a separate case in this function.
-   supported_scale_factors.push_back(SCALE_FACTOR_100P);
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
-   supported_scale_factors.push_back(SCALE_FACTOR_200P);
- #endif
- #endif
+   return GetMaxSupportedResourceScaleFactor();
diff --git a/chromium/patches/patch-ui_base_resource_resource__bundle__netbsd.cc b/chromium/patches/patch-ui_base_resource_resource__bundle__netbsd.cc
deleted file mode 100644
index ff4b1df51b..0000000000
--- a/chromium/patches/patch-ui_base_resource_resource__bundle__netbsd.cc
+++ /dev/null
@@ -1,26 +0,0 @@
-$NetBSD$
-
---- ui/base/resource/resource_bundle_netbsd.cc.orig	2020-07-18 12:14:11.789023668 +0000
-+++ ui/base/resource/resource_bundle_netbsd.cc
-@@ -0,0 +1,21 @@
-+// Copyright 2017 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 "ui/base/resource/resource_bundle.h"
-+
-+#include "base/logging.h"
-+#include "base/macros.h"
-+#include "ui/gfx/image/image.h"
-+
-+namespace ui {
-+
-+void ResourceBundle::LoadCommonResources() {
-+  LoadChromeResources();
-+}
-+
-+gfx::Image& ResourceBundle::GetNativeImageNamed(int resource_id) {
-+  return GetImageNamed(resource_id);
-+}
-+
-+}  // namespace ui
diff --git a/chromium/patches/patch-ui_base_test_skia__gold__pixel__diff.cc b/chromium/patches/patch-ui_base_test_skia__gold__pixel__diff.cc
new file mode 100644
index 0000000000..533199048b
--- /dev/null
+++ b/chromium/patches/patch-ui_base_test_skia__gold__pixel__diff.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/test/skia_gold_pixel_diff.cc.orig	2024-07-24 02:45:10.296041700 +0000
++++ ui/base/test/skia_gold_pixel_diff.cc
+@@ -115,7 +115,7 @@ const char* GetPlatformName() {
+   return "macOS";
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return "linux";
+ #elif BUILDFLAG(IS_CHROMEOS_LACROS)
+   return "lacros";
diff --git a/chromium/patches/patch-ui_base_test_ui__controls.h b/chromium/patches/patch-ui_base_test_ui__controls.h
new file mode 100644
index 0000000000..40c57092e3
--- /dev/null
+++ b/chromium/patches/patch-ui_base_test_ui__controls.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/test/ui_controls.h.orig	2024-07-24 02:45:10.296041700 +0000
++++ ui/base/test/ui_controls.h
+@@ -186,7 +186,7 @@ bool SendTouchEventsNotifyWhenDone(int a
+                                    base::OnceClosure task);
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Forces the platform implementation to use screen coordinates, even if they're
+ // not really available, the next time that ui_controls::SendMouseMove() or
+ // ui_controls::SendMouseMoveNotifyWhenDone() is called, or some other method
diff --git a/chromium/patches/patch-ui_base_ui__base__features.cc b/chromium/patches/patch-ui_base_ui__base__features.cc
index 1c5ce13a37..772ac4183d 100644
--- a/chromium/patches/patch-ui_base_ui__base__features.cc
+++ b/chromium/patches/patch-ui_base_ui__base__features.cc
@@ -1,31 +1,26 @@
 $NetBSD$
 
---- ui/base/ui_base_features.cc.orig	2020-07-15 18:56:33.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ui_base_features.cc.orig	2024-07-24 02:45:10.296041700 +0000
 +++ ui/base/ui_base_features.cc
-@@ -98,7 +98,7 @@ const base::Feature kCompositorThreadedS
- // native apps on Windows.
- const base::Feature kExperimentalFlingAnimation {
-   "ExperimentalFlingAnimation",
--#if defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if defined(OS_WIN) || ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS))
-       base::FEATURE_ENABLED_BY_DEFAULT
- #else
-       base::FEATURE_DISABLED_BY_DEFAULT
-@@ -130,7 +130,7 @@ const base::Feature kPrecisionTouchpadLo
-     "PrecisionTouchpadLogging", base::FEATURE_DISABLED_BY_DEFAULT};
- #endif  // defined(OS_WIN)
- 
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- // Enables stylus appearing as touch when in contact with digitizer.
- const base::Feature kDirectManipulationStylus = {
-     "DirectManipulationStylus",
-@@ -179,7 +179,7 @@ bool IsCSSColorSchemeUARenderingEnabled(
- // Mac launch bug.
- const base::Feature kFormControlsRefresh = {"FormControlsRefresh",
- #if defined(OS_WIN) || defined(OS_CHROMEOS) || defined(OS_LINUX) || \
--    defined(OS_MACOSX)
-+    defined(OS_MACOSX) || defined(OS_BSD)
-                                             base::FEATURE_ENABLED_BY_DEFAULT
+@@ -245,7 +245,7 @@ BASE_FEATURE(kExperimentalFlingAnimation
+              "ExperimentalFlingAnimation",
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_WIN) ||                                   \
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) ||              \
+     (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \
+      !BUILDFLAG(IS_CHROMEOS_LACROS))
+              base::FEATURE_ENABLED_BY_DEFAULT
+@@ -339,7 +339,7 @@ bool IsForcedColorsEnabled() {
+ BASE_FEATURE(kEyeDropper,
+              "EyeDropper",
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
  #else
-                                             base::FEATURE_DISABLED_BY_DEFAULT
+              base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-ui_base_ui__base__features.h b/chromium/patches/patch-ui_base_ui__base__features.h
deleted file mode 100644
index 7705ae5d13..0000000000
--- a/chromium/patches/patch-ui_base_ui__base__features.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/base/ui_base_features.h.orig	2020-07-15 18:56:33.000000000 +0000
-+++ ui/base/ui_base_features.h
-@@ -60,7 +60,7 @@ COMPONENT_EXPORT(UI_BASE_FEATURES) exter
- COMPONENT_EXPORT(UI_BASE_FEATURES) bool IsUsingWMPointerForTouch();
- #endif  // defined(OS_WIN)
- 
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- COMPONENT_EXPORT(UI_BASE_FEATURES)
- extern const base::Feature kDirectManipulationStylus;
- #endif  // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
diff --git a/chromium/patches/patch-ui_base_ui__base__switches.cc b/chromium/patches/patch-ui_base_ui__base__switches.cc
new file mode 100644
index 0000000000..103633e6e1
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ui__base__switches.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ui_base_switches.cc.orig	2024-07-24 02:45:10.296041700 +0000
++++ ui/base/ui_base_switches.cc
+@@ -31,13 +31,13 @@ const char kShowMacOverlayBorders[] = "s
+ const char kEnableResourcesFileSharing[] = "enable-resources-file-sharing";
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Specifies system font family name. Improves determenism when rendering
+ // pages in headless mode.
+ const char kSystemFontFamily[] = "system-font-family";
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Specify the toolkit used to construct the Linux GUI.
+ const char kUiToolkitFlag[] = "ui-toolkit";
+ #endif
diff --git a/chromium/patches/patch-ui_base_ui__base__switches.h b/chromium/patches/patch-ui_base_ui__base__switches.h
new file mode 100644
index 0000000000..89caa06650
--- /dev/null
+++ b/chromium/patches/patch-ui_base_ui__base__switches.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/ui_base_switches.h.orig	2024-07-24 02:45:10.296041700 +0000
++++ ui/base/ui_base_switches.h
+@@ -27,11 +27,11 @@ COMPONENT_EXPORT(UI_BASE) extern const c
+ COMPONENT_EXPORT(UI_BASE) extern const char kEnableResourcesFileSharing[];
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(UI_BASE) extern const char kSystemFontFamily[];
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ COMPONENT_EXPORT(UI_BASE) extern const char kUiToolkitFlag[];
+ #endif
+ 
diff --git a/chromium/patches/patch-ui_base_ui__features.gni b/chromium/patches/patch-ui_base_ui__features.gni
deleted file mode 100644
index 2bbdce5eb8..0000000000
--- a/chromium/patches/patch-ui_base_ui__features.gni
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD$
-
---- ui/base/ui_features.gni.orig	2020-07-15 18:56:33.000000000 +0000
-+++ ui/base/ui_features.gni
-@@ -6,13 +6,13 @@ import("//build/config/ui.gni")
- 
- declare_args() {
-   # Optional system library.
--  use_xkbcommon = use_ozone && is_linux && !is_chromecast
-+  use_xkbcommon = use_ozone && (is_linux || is_bsd) && !is_chromecast
- 
-   # Whether the platform provides a native accessibility toolkit.
-   has_native_accessibility = use_atk || is_win || is_mac
- 
-   # Whether the message center should be included for displaying notifications.
--  enable_message_center = is_win || is_mac || is_linux || is_fuchsia
-+  enable_message_center = is_win || is_mac || is_linux || is_fuchsia || is_bsd
- }
- 
--enable_hidpi = is_mac || is_win || is_linux || is_ios
-+enable_hidpi = is_mac || is_win || is_linux || is_ios || is_bsd
diff --git a/chromium/patches/patch-ui_base_webui_web__ui__util.cc b/chromium/patches/patch-ui_base_webui_web__ui__util.cc
index 9e6cea4c24..1d7df22074 100644
--- a/chromium/patches/patch-ui_base_webui_web__ui__util.cc
+++ b/chromium/patches/patch-ui_base_webui_web__ui__util.cc
@@ -1,13 +1,26 @@
 $NetBSD$
 
---- ui/base/webui/web_ui_util.cc.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/webui/web_ui_util.cc.orig	2024-07-24 02:45:10.300042200 +0000
 +++ ui/base/webui/web_ui_util.cc
-@@ -228,7 +228,7 @@ std::string GetFontFamily() {
+@@ -39,7 +39,7 @@ namespace {
+ constexpr float kMaxScaleFactor = 1000.0f;
+ 
+ std::string GetFontFamilyMd() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return "Roboto, " + GetFontFamily();
+ #else
+   return GetFontFamily();
+@@ -216,7 +216,7 @@ std::string GetFontFamily() {
  
- // TODO(dnicoara) Remove Ozone check when PlatformFont support is introduced
- // into Ozone: crbug.com/320050
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(USE_OZONE)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) && !defined(USE_OZONE)
-   font_family = ui::ResourceBundle::GetSharedInstance().GetFont(
-       ui::ResourceBundle::BaseFont).GetFontName() + ", " + font_family;
- #endif
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   std::string font_name = ui::ResourceBundle::GetSharedInstance()
+                               .GetFont(ui::ResourceBundle::BaseFont)
+                               .GetFontName();
diff --git a/chromium/patches/patch-ui_base_x_x11__cursor__factory.cc b/chromium/patches/patch-ui_base_x_x11__cursor__factory.cc
new file mode 100644
index 0000000000..91d7ceaabe
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__cursor__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_cursor_factory.cc.orig	2024-07-24 02:45:10.304042600 +0000
++++ ui/base/x/x11_cursor_factory.cc
+@@ -13,7 +13,7 @@
+ #include "ui/gfx/geometry/point.h"
+ #include "ui/gfx/x/connection.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+ 
+@@ -70,7 +70,7 @@ scoped_refptr<PlatformCursor> X11CursorF
+ }
+ 
+ void X11CursorFactory::ObserveThemeChanges() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   auto* linux_ui = LinuxUi::instance();
+   DCHECK(linux_ui);
+   cursor_theme_observation_.Observe(linux_ui);
diff --git a/chromium/patches/patch-ui_base_x_x11__cursor__factory.h b/chromium/patches/patch-ui_base_x_x11__cursor__factory.h
new file mode 100644
index 0000000000..78911be605
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__cursor__factory.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_cursor_factory.h.orig	2024-07-24 02:45:10.304042600 +0000
++++ ui/base/x/x11_cursor_factory.h
+@@ -20,7 +20,7 @@ namespace ui {
+ class X11Cursor;
+ class XCursorLoader;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ class LinuxUi;
+ #endif
+ 
+@@ -62,7 +62,7 @@ class COMPONENT_EXPORT(UI_BASE_X) X11Cur
+   // initializing `cursor_loader_` will modify `default_cursors_`.
+   std::unique_ptr<XCursorLoader> cursor_loader_;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   base::ScopedObservation<LinuxUi, CursorThemeManagerObserver>
+       cursor_theme_observation_{this};
+ #endif
diff --git a/chromium/patches/patch-ui_base_x_x11__cursor__loader.cc b/chromium/patches/patch-ui_base_x_x11__cursor__loader.cc
new file mode 100644
index 0000000000..178d82fe10
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__cursor__loader.cc
@@ -0,0 +1,47 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_cursor_loader.cc.orig	2024-07-24 02:45:10.304042600 +0000
++++ ui/base/x/x11_cursor_loader.cc
+@@ -33,7 +33,7 @@
+ #include "ui/gfx/x/connection.h"
+ #include "ui/gfx/x/xproto.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+ 
+@@ -139,7 +139,11 @@ std::string CursorPathFromLibXcursor() {
+     void operator()(void* ptr) const { dlclose(ptr); }
+   };
+ 
++#if BUILDFLAG(IS_BSD)
++  std::unique_ptr<void, DlCloser> lib(dlopen("libXcursor.so", RTLD_LAZY));
++#else
+   std::unique_ptr<void, DlCloser> lib(dlopen("libXcursor.so.1", RTLD_LAZY));
++#endif
+   if (!lib)
+     return "";
+ 
+@@ -250,7 +254,7 @@ scoped_refptr<base::RefCountedMemory> Re
+     const std::string& rm_xcursor_theme) {
+   constexpr const char kDefaultTheme[] = "default";
+   std::string themes[] = {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     // The toolkit theme has the highest priority.
+     LinuxUi::instance() ? LinuxUi::instance()->GetCursorThemeName()
+                         : std::string(),
+@@ -442,7 +446,7 @@ uint32_t XCursorLoader::GetPreferredCurs
+     return size;
+   }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Let the toolkit have the next say.
+   auto* linux_ui = LinuxUi::instance();
+   size = linux_ui ? linux_ui->GetCursorThemeSize() : 0;
diff --git a/chromium/patches/patch-ui_base_x_x11__display__manager.cc b/chromium/patches/patch-ui_base_x_x11__display__manager.cc
new file mode 100644
index 0000000000..886602bd0d
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__display__manager.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_display_manager.cc.orig	2024-07-24 02:45:10.304042600 +0000
++++ ui/base/x/x11_display_manager.cc
+@@ -16,7 +16,7 @@
+ #include "ui/gfx/x/randr.h"
+ #include "ui/gfx/x/xproto.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+ 
+@@ -92,7 +92,7 @@ void XDisplayManager::FetchDisplayList()
+           ? display::Display::GetForcedDeviceScaleFactor()
+           : 1.0f};
+   const auto* display_config = &empty_display_config;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (const auto* linux_ui = ui::LinuxUi::instance()) {
+     display_config = &linux_ui->display_config();
+   }
diff --git a/chromium/patches/patch-ui_base_x_x11__display__util.cc b/chromium/patches/patch-ui_base_x_x11__display__util.cc
new file mode 100644
index 0000000000..ee213b2ac3
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__display__util.cc
@@ -0,0 +1,371 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_display_util.cc.orig	2024-07-24 02:45:10.304042600 +0000
++++ ui/base/x/x11_display_util.cc
+@@ -14,7 +14,6 @@
+ 
+ #include "base/bits.h"
+ #include "base/command_line.h"
+-#include "base/containers/flat_map.h"
+ #include "base/logging.h"
+ #include "base/numerics/clamped_math.h"
+ #include "base/ranges/algorithm.h"
+@@ -28,7 +27,6 @@
+ #include "ui/gfx/geometry/rect.h"
+ #include "ui/gfx/geometry/rect_conversions.h"
+ #include "ui/gfx/geometry/rect_f.h"
+-#include "ui/gfx/switches.h"
+ #include "ui/gfx/x/atom_cache.h"
+ #include "ui/gfx/x/connection.h"
+ #include "ui/gfx/x/randr.h"
+@@ -43,89 +41,42 @@ constexpr std::pair<uint32_t, uint32_t> 
+ 
+ constexpr const char kRandrEdidProperty[] = "EDID";
+ 
+-std::map<x11::RandR::Output, size_t> GetMonitors(
+-    const x11::Response<x11::RandR::GetMonitorsReply>& reply) {
+-  std::map<x11::RandR::Output, size_t> output_to_monitor;
+-  if (!reply) {
+-    return output_to_monitor;
+-  }
+-  for (size_t monitor = 0; monitor < reply->monitors.size(); monitor++) {
+-    for (x11::RandR::Output output : reply->monitors[monitor].outputs) {
+-      output_to_monitor[output] = monitor;
++std::map<x11::RandR::Output, int> GetMonitors(
++    std::pair<uint32_t, uint32_t> version,
++    x11::RandR* randr,
++    x11::Window window) {
++  std::map<x11::RandR::Output, int> output_to_monitor;
++  if (version >= std::pair<uint32_t, uint32_t>{1, 5}) {
++    if (auto reply = randr->GetMonitors({window}).Sync()) {
++      for (size_t monitor = 0; monitor < reply->monitors.size(); monitor++) {
++        for (x11::RandR::Output output : reply->monitors[monitor].outputs) {
++          output_to_monitor[output] = monitor;
++        }
++      }
+     }
+   }
+   return output_to_monitor;
+ }
+ 
+-x11::Future<x11::GetPropertyReply> GetWorkAreaFuture(
+-    x11::Connection* connection) {
+-  return connection->GetProperty({
+-      .window = connection->default_root(),
+-      .property = connection->GetAtom("_NET_WORKAREA"),
+-      .long_length = 4,
+-  });
+-}
+-
+-gfx::Rect GetWorkAreaSync(x11::Future<x11::GetPropertyReply> future) {
+-  auto response = future.Sync();
+-  if (!response || response->format != 32 || response->value_len != 4) {
+-    return gfx::Rect();
+-  }
+-  const uint32_t* value = response->value->cast_to<uint32_t>();
+-  return gfx::Rect(value[0], value[1], value[2], value[3]);
+-}
+-
+-x11::Future<x11::GetPropertyReply> GetIccProfileFuture(
+-    x11::Connection* connection,
+-    size_t monitor) {
+-  std::string atom_name = monitor == 0
+-                              ? "_ICC_PROFILE"
+-                              : base::StringPrintf("_ICC_PROFILE_%zu", monitor);
+-  auto future = connection->GetProperty({
+-      .window = connection->default_root(),
+-      .property = x11::GetAtom(atom_name.c_str()),
+-      .long_length = std::numeric_limits<uint32_t>::max(),
+-  });
+-  future.IgnoreError();
+-  return future;
+-}
+-
+-gfx::ICCProfile GetIccProfileSync(x11::Future<x11::GetPropertyReply> future) {
+-  auto response = future.Sync();
+-  if (!response || !response->value_len) {
+-    return gfx::ICCProfile();
+-  }
+-  return gfx::ICCProfile::FromData(response->value->bytes(),
+-                                   response->value_len * response->format / 8u);
+-}
+-
+-x11::Future<x11::RandR::GetOutputPropertyReply> GetEdidFuture(
+-    x11::Connection* connection,
+-    x11::RandR::Output output) {
+-  auto future = connection->randr().GetOutputProperty({
+-      .output = output,
+-      .property = x11::GetAtom(kRandrEdidProperty),
+-      .long_length = 128,
+-  });
+-  future.IgnoreError();
+-  return future;
+-}
+-
+ // Sets the work area on a list of displays.  The work area for each display
+ // must already be initialized to the display bounds.  At most one display out
+ // of |displays| will be affected.
+ void ClipWorkArea(std::vector<display::Display>* displays,
+-                  size_t primary_display_index,
+-                  const gfx::Rect& net_workarea) {
+-  if (net_workarea.IsEmpty()) {
++                  size_t primary_display_index) {
++  x11::Window x_root_window = ui::GetX11RootWindow();
++
++  std::vector<int32_t> value;
++  if (!x11::Connection::Get()->GetArrayProperty(
++          x_root_window, x11::GetAtom("_NET_WORKAREA"), &value) ||
++      value.size() < 4) {
+     return;
+   }
+-
+   auto get_work_area = [&](const display::Display& display) {
+     float scale = display::Display::HasForceDeviceScaleFactor()
+                       ? display::Display::GetForcedDeviceScaleFactor()
+                       : display.device_scale_factor();
+-    return gfx::ScaleToEnclosingRect(net_workarea, 1.0f / scale);
++    return gfx::ScaleToEnclosingRect(
++        gfx::Rect(value[0], value[1], value[2], value[3]), 1.0f / scale);
+   };
+ 
+   // If the work area entirely contains exactly one display, assume it's meant
+@@ -207,9 +158,14 @@ int DefaultBitsPerComponent() {
+   return visual.bits_per_rgb_value;
+ }
+ 
+-// Get the EDID data from the `output` and stores to `edid`.
+-std::vector<uint8_t> GetEdidProperty(
+-    x11::Response<x11::RandR::GetOutputPropertyReply> response) {
++// Get the EDID data from the |output| and stores to |edid|.
++std::vector<uint8_t> GetEDIDProperty(x11::RandR* randr,
++                                     x11::RandR::Output output) {
++  auto future = randr->GetOutputProperty(x11::RandR::GetOutputPropertyRequest{
++      .output = output,
++      .property = x11::GetAtom(kRandrEdidProperty),
++      .long_length = 128});
++  auto response = future.Sync();
+   std::vector<uint8_t> edid;
+   if (response && response->format == 8 && response->type != x11::Atom::None) {
+     edid = std::move(response->data);
+@@ -261,8 +217,7 @@ gfx::PointF DisplayOriginPxToDip(const d
+ std::vector<display::Display> GetFallbackDisplayList(
+     float scale,
+     size_t* primary_display_index_out) {
+-  auto* connection = x11::Connection::Get();
+-  const auto& screen = connection->default_screen();
++  const auto& screen = x11::Connection::Get()->default_screen();
+   gfx::Size physical_size(screen.width_in_millimeters,
+                           screen.height_in_millimeters);
+ 
+@@ -289,9 +244,7 @@ std::vector<display::Display> GetFallbac
+   std::vector<display::Display> displays{gfx_display};
+   *primary_display_index_out = 0;
+ 
+-  ClipWorkArea(&displays, *primary_display_index_out,
+-               GetWorkAreaSync(GetWorkAreaFuture(connection)));
+-
++  ClipWorkArea(&displays, *primary_display_index_out);
+   return displays;
+ }
+ 
+@@ -307,16 +260,7 @@ std::vector<display::Display> BuildDispl
+   auto x_root_window = ui::GetX11RootWindow();
+   std::vector<display::Display> displays;
+ 
+-  auto resources_future = randr.GetScreenResourcesCurrent({x_root_window});
+-  auto output_primary_future = randr.GetOutputPrimary({x_root_window});
+-  x11::Future<x11::RandR::GetMonitorsReply> monitors_future;
+-  if (connection->randr_version() >= std::pair<uint32_t, uint32_t>{1, 5}) {
+-    monitors_future = randr.GetMonitors(x_root_window);
+-  }
+-  auto work_area_future = GetWorkAreaFuture(connection);
+-  connection->Flush();
+-
+-  auto resources = resources_future.Sync();
++  auto resources = randr.GetScreenResourcesCurrent({x_root_window}).Sync();
+   if (!resources) {
+     LOG(ERROR) << "XRandR returned no displays; falling back to root window";
+     return GetFallbackDisplayList(primary_scale, primary_display_index_out);
+@@ -325,65 +269,21 @@ std::vector<display::Display> BuildDispl
+   const int depth = connection->default_screen().root_depth;
+   const int bits_per_component = DefaultBitsPerComponent();
+ 
+-  auto output_primary = output_primary_future.Sync();
++  std::map<x11::RandR::Output, int> output_to_monitor =
++      GetMonitors(connection->randr_version(), &randr, x_root_window);
++  auto output_primary = randr.GetOutputPrimary({x_root_window}).Sync();
+   if (!output_primary) {
+     return GetFallbackDisplayList(primary_scale, primary_display_index_out);
+   }
+   x11::RandR::Output primary_display_id = output_primary->output;
+ 
+-  const auto monitors_reply = monitors_future.Sync();
+-  const auto output_to_monitor = GetMonitors(monitors_reply);
+-  const size_t n_iccs =
+-      monitors_reply ? std::max<size_t>(1, monitors_reply->monitors.size()) : 1;
+-
+   int explicit_primary_display_index = -1;
+   int monitor_order_primary_display_index = -1;
+ 
+-  std::vector<x11::Future<x11::RandR::GetCrtcInfoReply>> crtc_futures{};
+-  crtc_futures.reserve(resources->crtcs.size());
+-  for (auto crtc : resources->crtcs) {
+-    crtc_futures.push_back(
+-        randr.GetCrtcInfo({crtc, resources->config_timestamp}));
+-  }
+-  connection->Flush();
+-
+-  std::vector<x11::Future<x11::GetPropertyReply>> icc_futures{n_iccs};
+-  if (!base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kHeadless)) {
+-    for (size_t monitor = 0; monitor < n_iccs; ++monitor) {
+-      icc_futures[monitor] = GetIccProfileFuture(connection, monitor);
+-    }
+-    connection->Flush();
+-  }
+-
+-  std::vector<x11::Future<x11::RandR::GetOutputInfoReply>> output_futures{};
+-  output_futures.reserve(resources->outputs.size());
+-  for (auto output : resources->outputs) {
+-    output_futures.push_back(
+-        randr.GetOutputInfo({output, resources->config_timestamp}));
+-  }
+-  connection->Flush();
+-
+-  std::vector<x11::Future<x11::RandR::GetOutputPropertyReply>> edid_futures{};
+-  edid_futures.reserve(resources->outputs.size());
+-  for (auto output : resources->outputs) {
+-    edid_futures.push_back(GetEdidFuture(connection, output));
+-  }
+-  connection->Flush();
+-
+-  base::flat_map<x11::RandR::Crtc, x11::RandR::GetCrtcInfoResponse> crtcs;
+-  for (size_t i = 0; i < resources->crtcs.size(); ++i) {
+-    crtcs.emplace(resources->crtcs[i], crtc_futures[i].Sync());
+-  }
+-
+-  std::vector<gfx::ICCProfile> iccs;
+-  iccs.reserve(n_iccs);
+-  for (auto& future : icc_futures) {
+-    iccs.push_back(GetIccProfileSync(std::move(future)));
+-  }
+-
+   for (size_t i = 0; i < resources->outputs.size(); i++) {
+     x11::RandR::Output output_id = resources->outputs[i];
+-    auto output_info = output_futures[i].Sync();
++    auto output_info =
++        randr.GetOutputInfo({output_id, resources->config_timestamp}).Sync();
+     if (!output_info) {
+       continue;
+     }
+@@ -398,16 +298,15 @@ std::vector<display::Display> BuildDispl
+       continue;
+     }
+ 
+-    auto crtc_it = crtcs.find(output_info->crtc);
+-    if (crtc_it == crtcs.end()) {
+-      continue;
+-    }
+-    const auto& crtc = crtc_it->second;
++    auto crtc =
++        randr.GetCrtcInfo({output_info->crtc, resources->config_timestamp})
++            .Sync();
+     if (!crtc) {
+       continue;
+     }
+ 
+-    display::EdidParser edid_parser(GetEdidProperty(edid_futures[i].Sync()));
++    display::EdidParser edid_parser(
++        GetEDIDProperty(&randr, static_cast<x11::RandR::Output>(output_id)));
+     auto output_32 = static_cast<uint32_t>(output_id);
+     int64_t display_id =
+         output_32 > 0xff ? 0 : edid_parser.GetIndexBasedDisplayId(output_32);
+@@ -462,9 +361,8 @@ std::vector<display::Display> BuildDispl
+     }
+ 
+     if (!display::HasForceDisplayColorProfile()) {
+-      const size_t monitor =
+-          monitor_iter == output_to_monitor.end() ? 0 : monitor_iter->second;
+-      const auto& icc_profile = iccs[monitor < iccs.size() ? monitor : 0];
++      gfx::ICCProfile icc_profile = ui::GetICCProfileForMonitor(
++          monitor_iter == output_to_monitor.end() ? 0 : monitor_iter->second);
+       gfx::ColorSpace color_space = icc_profile.GetPrimariesOnlyColorSpace();
+ 
+       // Most folks do not have an ICC profile set up, but we still want to
+@@ -509,24 +407,63 @@ std::vector<display::Display> BuildDispl
+     ConvertDisplayBoundsToDips(&displays, *primary_display_index_out);
+   }
+ 
+-  ClipWorkArea(&displays, *primary_display_index_out,
+-               GetWorkAreaSync(std::move(work_area_future)));
++  ClipWorkArea(&displays, *primary_display_index_out);
+   return displays;
+ }
+ 
+ base::TimeDelta GetPrimaryDisplayRefreshIntervalFromXrandr() {
+   constexpr base::TimeDelta kDefaultInterval = base::Seconds(1. / 60);
+-
+-  size_t primary_display_index = 0;
+-  auto displays = BuildDisplaysFromXRandRInfo(display::DisplayConfig(),
+-                                              &primary_display_index);
+-  CHECK_LT(primary_display_index, displays.size());
+-
++  x11::RandR randr = x11::Connection::Get()->randr();
++  auto root = ui::GetX11RootWindow();
++  auto resources = randr.GetScreenResourcesCurrent({root}).Sync();
++  if (!resources) {
++    return kDefaultInterval;
++  }
+   // TODO(crbug.com/41321728): It might make sense here to pick the output that
+   // the window is on. On the other hand, if compositing is enabled, all drawing
+   // might be synced to the primary output anyway. Needs investigation.
+-  auto frequency = displays[primary_display_index].display_frequency();
+-  return frequency > 0 ? base::Seconds(1. / frequency) : kDefaultInterval;
++  auto output_primary = randr.GetOutputPrimary({root}).Sync();
++  if (!output_primary) {
++    return kDefaultInterval;
++  }
++  x11::RandR::Output primary_output = output_primary->output;
++  bool disconnected_primary = false;
++  for (size_t i = 0; i < resources->outputs.size(); i++) {
++    if (!disconnected_primary && resources->outputs[i] != primary_output) {
++      continue;
++    }
++
++    auto output_info =
++        randr.GetOutputInfo({primary_output, resources->config_timestamp})
++            .Sync();
++    if (!output_info) {
++      continue;
++    }
++
++    if (output_info->connection != x11::RandR::RandRConnection::Connected) {
++      // If the primary monitor is disconnected, then start over and choose the
++      // first connected monitor instead.
++      if (!disconnected_primary) {
++        disconnected_primary = true;
++        i = -1;
++      }
++      continue;
++    }
++    auto crtc =
++        randr.GetCrtcInfo({output_info->crtc, resources->config_timestamp})
++            .Sync();
++    if (!crtc) {
++      continue;
++    }
++    float refresh_rate =
++        GetRefreshRateFromXRRModeInfo(resources->modes, crtc->mode);
++    if (refresh_rate == 0) {
++      continue;
++    }
++
++    return base::Seconds(1. / refresh_rate);
++  }
++  return kDefaultInterval;
+ }
+ 
+ int RangeDistance(int min1, int max1, int min2, int max2) {
diff --git a/chromium/patches/patch-ui_base_x_x11__shm__image__pool.cc b/chromium/patches/patch-ui_base_x_x11__shm__image__pool.cc
index 71fd77929f..946851ee8e 100644
--- a/chromium/patches/patch-ui_base_x_x11__shm__image__pool.cc
+++ b/chromium/patches/patch-ui_base_x_x11__shm__image__pool.cc
@@ -1,20 +1,24 @@
 $NetBSD$
 
---- ui/base/x/x11_shm_image_pool.cc.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_shm_image_pool.cc.orig	2024-07-24 02:45:10.308042800 +0000
 +++ ui/base/x/x11_shm_image_pool.cc
 @@ -16,6 +16,7 @@
- #include "base/environment.h"
+ #include "base/functional/callback.h"
  #include "base/location.h"
  #include "base/strings/string_util.h"
 +#include "base/system/sys_info.h"
- #include "base/threading/thread_task_runner_handle.h"
  #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
  #include "net/base/url_util.h"
-@@ -44,10 +45,14 @@ constexpr float kShmResizeShrinkThreshol
+@@ -45,10 +46,14 @@ constexpr float kShmResizeShrinkThreshol
      1.0f / (kShmResizeThreshold * kShmResizeThreshold);
  
  std::size_t MaxShmSegmentSizeImpl() {
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
 +  return base::SysInfo::MaxSharedMemorySize();
 +#else
    struct shminfo info;
@@ -25,21 +29,49 @@ $NetBSD$
  }
  
  std::size_t MaxShmSegmentSize() {
-@@ -201,7 +206,7 @@ bool XShmImagePool::Resize(const gfx::Si
-         shmctl(state.shminfo_.shmid, IPC_RMID, nullptr);
+@@ -57,14 +62,19 @@ std::size_t MaxShmSegmentSize() {
+ }
+ 
+ #if !BUILDFLAG(IS_CHROMEOS_ASH)
++#if !BUILDFLAG(IS_BSD)
+ bool IsRemoteHost(const std::string& name) {
+   if (name.empty())
+     return false;
+ 
+   return !net::HostStringIsLocalhost(name);
+ }
++#endif
+ 
+ bool ShouldUseMitShm(x11::Connection* connection) {
++#if BUILDFLAG(IS_BSD)
++  return false;
++#else
+   // MIT-SHM may be available on remote connetions, but it will be unusable.  Do
+   // a best-effort check to see if the host is remote to disable the SHM
+   // codepath.  It may be possible in contrived cases for there to be a
+@@ -93,6 +103,7 @@ bool ShouldUseMitShm(x11::Connection* co
+     return false;
+ 
+   return true;
++#endif
+ }
+ #endif
+ 
+@@ -183,7 +194,7 @@ bool XShmImagePool::Resize(const gfx::Si
+         shmctl(state.shmid, IPC_RMID, nullptr);
          return false;
        }
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
        // On Linux, a shmid can still be attached after IPC_RMID if otherwise
        // kept alive.  Detach before XShmAttach to prevent a memory leak in case
        // the process dies.
-@@ -211,7 +216,7 @@ bool XShmImagePool::Resize(const gfx::Si
-       if (!XShmAttach(display_, &state.shminfo_))
+@@ -202,7 +213,7 @@ bool XShmImagePool::Resize(const gfx::Si
          return false;
-       state.shmem_attached_to_server_ = true;
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
+       state.shmseg = shmseg;
+       state.shmem_attached_to_server = true;
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
        // The Linux-specific shmctl behavior above may not be portable, so we're
        // forced to do IPC_RMID after the server has attached to the segment.
-       // XShmAttach is asynchronous, so we must also sync.
+       shmctl(state.shmid, IPC_RMID, nullptr);
diff --git a/chromium/patches/patch-ui_base_x_x11__util.cc b/chromium/patches/patch-ui_base_x_x11__util.cc
new file mode 100644
index 0000000000..5d486190c8
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__util.cc
@@ -0,0 +1,29 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_util.cc.orig	2024-07-24 02:45:10.308042800 +0000
++++ ui/base/x/x11_util.cc
+@@ -703,4 +703,20 @@ gfx::ImageSkia GetNativeWindowIcon(intpt
+   return gfx::ImageSkia::CreateFrom1xBitmap(result);
+ }
+ 
++gfx::ICCProfile GetICCProfileForMonitor(int monitor) {
++  gfx::ICCProfile icc_profile;
++  if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kHeadless)) {
++    return icc_profile;
++  }
++  std::string atom_name = monitor == 0
++                              ? "_ICC_PROFILE"
++                              : base::StringPrintf("_ICC_PROFILE_%d", monitor);
++  scoped_refptr<base::RefCountedMemory> data;
++  if (GetRawBytesOfProperty(GetX11RootWindow(), x11::GetAtom(atom_name.c_str()),
++                            &data, nullptr)) {
++    icc_profile = gfx::ICCProfile::FromData(data->data(), data->size());
++  }
++  return icc_profile;
++}
++
+ }  // namespace ui
diff --git a/chromium/patches/patch-ui_base_x_x11__util.h b/chromium/patches/patch-ui_base_x_x11__util.h
new file mode 100644
index 0000000000..ac2c4214c5
--- /dev/null
+++ b/chromium/patches/patch-ui_base_x_x11__util.h
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/base/x/x11_util.h.orig	2024-07-24 02:45:10.308042800 +0000
++++ ui/base/x/x11_util.h
+@@ -256,6 +256,10 @@ COMPONENT_EXPORT(UI_BASE_X) bool IsVulka
+ COMPONENT_EXPORT(UI_BASE_X)
+ gfx::ImageSkia GetNativeWindowIcon(intptr_t target_window_id);
+ 
++// Returns the ICCProfile corresponding to |monitor| using XGetWindowProperty.
++COMPONENT_EXPORT(UI_BASE_X)
++gfx::ICCProfile GetICCProfileForMonitor(int monitor);
++
+ }  // namespace ui
+ 
+ #endif  // UI_BASE_X_X11_UTIL_H_
diff --git a/chromium/patches/patch-ui_color_BUILD.gn b/chromium/patches/patch-ui_color_BUILD.gn
deleted file mode 100644
index e1bf671314..0000000000
--- a/chromium/patches/patch-ui_color_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/color/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
-+++ ui/color/BUILD.gn
-@@ -87,7 +87,7 @@ jumbo_component("mixers") {
-     sources += [ "cros/native_color_mixers.cc" ]
-   } else if (is_fuchsia) {
-     sources += [ "fuchsia/native_color_mixers.cc" ]
--  } else if (is_linux) {
-+  } else if (is_linux || is_bsd) {
-     sources += [ "linux/native_color_mixers.cc" ]
-   } else if (is_mac) {
-     libs = [ "AppKit.framework" ]
diff --git a/chromium/patches/patch-ui_color_color__id.h b/chromium/patches/patch-ui_color_color__id.h
new file mode 100644
index 0000000000..b0f7f00129
--- /dev/null
+++ b/chromium/patches/patch-ui_color_color__id.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/color/color_id.h.orig	2024-07-24 02:45:10.408052700 +0000
++++ ui/color/color_id.h
+@@ -624,7 +624,7 @@
+   \
+   E_CPONLY(kColorCrosSysPositive) \
+   E_CPONLY(kColorCrosSysComplementVariant)
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #define PLATFORM_SPECIFIC_COLOR_IDS \
+   E_CPONLY(kColorNativeButtonBorder)\
+   E_CPONLY(kColorNativeHeaderButtonBorderActive) \
diff --git a/chromium/patches/patch-ui_color_color__provider__utils.cc b/chromium/patches/patch-ui_color_color__provider__utils.cc
new file mode 100644
index 0000000000..7d44b3be32
--- /dev/null
+++ b/chromium/patches/patch-ui_color_color__provider__utils.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/color/color_provider_utils.cc.orig	2024-07-24 02:45:10.412052900 +0000
++++ ui/color/color_provider_utils.cc
+@@ -186,7 +186,7 @@ std::string_view SystemThemeName(ui::Sys
+   switch (system_theme) {
+     case ui::SystemTheme::kDefault:
+       return "kDefault";
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     case ui::SystemTheme::kGtk:
+       return "kGtk";
+     case ui::SystemTheme::kQt:
diff --git a/chromium/patches/patch-ui_color_system__theme.h b/chromium/patches/patch-ui_color_system__theme.h
new file mode 100644
index 0000000000..20b124e834
--- /dev/null
+++ b/chromium/patches/patch-ui_color_system__theme.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/color/system_theme.h.orig	2024-07-24 02:45:10.412052900 +0000
++++ ui/color/system_theme.h
+@@ -15,7 +15,7 @@ namespace ui {
+ enum class SystemTheme {
+   // Classic theme, used in the default or users' chosen theme.
+   kDefault = 0,
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   kGtk = 1,
+   kQt = 2,
+   kMaxValue = kQt,
diff --git a/chromium/patches/patch-ui_compositor_BUILD.gn b/chromium/patches/patch-ui_compositor_BUILD.gn
deleted file mode 100644
index b0802ed74f..0000000000
--- a/chromium/patches/patch-ui_compositor_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/compositor/BUILD.gn.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/compositor/BUILD.gn
-@@ -258,7 +258,7 @@ test("compositor_unittests") {
-     "//ui/resources",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//third_party/mesa_headers" ]
-   }
- }
diff --git a/chromium/patches/patch-ui_compositor_compositor.cc b/chromium/patches/patch-ui_compositor_compositor.cc
index 6695ba757c..45f090f9d2 100644
--- a/chromium/patches/patch-ui_compositor_compositor.cc
+++ b/chromium/patches/patch-ui_compositor_compositor.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/compositor/compositor.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/compositor/compositor.cc.orig	2024-07-24 02:45:10.416053300 +0000
 +++ ui/compositor/compositor.cc
-@@ -731,7 +731,7 @@ void Compositor::CancelThroughtputTracke
-   throughput_tracker_map_.erase(tracker_id);
+@@ -922,7 +922,7 @@ void Compositor::OnResume() {
+     obs.ResetIfActive();
  }
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
  void Compositor::OnCompleteSwapWithNewSize(const gfx::Size& size) {
    for (auto& observer : observer_list_)
      observer.OnCompositingCompleteSwapWithNewSize(this, size);
diff --git a/chromium/patches/patch-ui_compositor_compositor.h b/chromium/patches/patch-ui_compositor_compositor.h
index 4fb36729eb..4179210b88 100644
--- a/chromium/patches/patch-ui_compositor_compositor.h
+++ b/chromium/patches/patch-ui_compositor_compositor.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/compositor/compositor.h.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/compositor/compositor.h.orig	2024-07-24 02:45:10.416053300 +0000
 +++ ui/compositor/compositor.h
-@@ -370,7 +370,7 @@ class COMPOSITOR_EXPORT Compositor : pub
-   void StopThroughtputTracker(TrackerId tracker_id) override;
-   void CancelThroughtputTracker(TrackerId tracker_id) override;
+@@ -456,7 +456,7 @@ class COMPOSITOR_EXPORT Compositor : pub
+   // base::PowerSuspendObserver:
+   void OnResume() override;
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
    void OnCompleteSwapWithNewSize(const gfx::Size& size);
- #endif
+ #endif  // BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
  
diff --git a/chromium/patches/patch-ui_compositor_compositor__observer.h b/chromium/patches/patch-ui_compositor_compositor__observer.h
index 1da9495f0c..6ad3a0c4b7 100644
--- a/chromium/patches/patch-ui_compositor_compositor__observer.h
+++ b/chromium/patches/patch-ui_compositor_compositor__observer.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/compositor/compositor_observer.h.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/compositor/compositor_observer.h.orig	2024-07-24 02:45:10.416053300 +0000
 +++ ui/compositor/compositor_observer.h
-@@ -42,7 +42,7 @@ class COMPOSITOR_EXPORT CompositorObserv
+@@ -52,7 +52,7 @@ class COMPOSITOR_EXPORT CompositorObserv
    // Called when a child of the compositor is resizing.
    virtual void OnCompositingChildResizing(Compositor* compositor) {}
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && BUILDFLAG(IS_OZONE_X11)
    // Called when a swap with new size is completed.
    virtual void OnCompositingCompleteSwapWithNewSize(ui::Compositor* compositor,
                                                      const gfx::Size& size) {}
diff --git a/chromium/patches/patch-ui_display_screen.cc b/chromium/patches/patch-ui_display_screen.cc
new file mode 100644
index 0000000000..a3f3fa5dc8
--- /dev/null
+++ b/chromium/patches/patch-ui_display_screen.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/display/screen.cc.orig	2024-07-24 02:45:10.444056000 +0000
++++ ui/display/screen.cc
+@@ -86,7 +86,7 @@ void Screen::SetDisplayForNewWindows(int
+   display_id_for_new_windows_ = display_id;
+ }
+ 
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ Screen::ScreenSaverSuspender::~ScreenSaverSuspender() = default;
+ 
+ std::unique_ptr<Screen::ScreenSaverSuspender> Screen::SuspendScreenSaver() {
diff --git a/chromium/patches/patch-ui_display_screen.h b/chromium/patches/patch-ui_display_screen.h
new file mode 100644
index 0000000000..b408311f87
--- /dev/null
+++ b/chromium/patches/patch-ui_display_screen.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/display/screen.h.orig	2024-07-24 02:45:10.444056000 +0000
++++ ui/display/screen.h
+@@ -140,7 +140,7 @@ class DISPLAY_EXPORT Screen {
+   // (both of which may or may not be `nearest_id`).
+   display::ScreenInfos GetScreenInfosNearestDisplay(int64_t nearest_id) const;
+ 
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Object which suspends the platform-specific screensaver for the duration of
+   // its existence.
+   class ScreenSaverSuspender {
+@@ -248,7 +248,7 @@ class DISPLAY_EXPORT Screen {
+   int64_t display_id_for_new_windows_;
+   int64_t scoped_display_id_for_new_windows_ = display::kInvalidDisplayId;
+ 
+-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   uint32_t screen_saver_suspension_count_ = 0;
+ #endif  // BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX)
+ };
diff --git a/chromium/patches/patch-ui_events_devices_BUILD.gn b/chromium/patches/patch-ui_events_devices_BUILD.gn
deleted file mode 100644
index 9c5208b870..0000000000
--- a/chromium/patches/patch-ui_events_devices_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/events/devices/BUILD.gn.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/events/devices/BUILD.gn
-@@ -33,7 +33,7 @@ jumbo_component("devices") {
-     "touchscreen_device.h",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "device_util_linux.cc",
-       "device_util_linux.h",
diff --git a/chromium/patches/patch-ui_events_devices_x11_device__data__manager__x11.cc b/chromium/patches/patch-ui_events_devices_x11_device__data__manager__x11.cc
index 19f7dbdc1d..4a2807c7ae 100644
--- a/chromium/patches/patch-ui_events_devices_x11_device__data__manager__x11.cc
+++ b/chromium/patches/patch-ui_events_devices_x11_device__data__manager__x11.cc
@@ -1,22 +1,16 @@
 $NetBSD$
 
---- ui/events/devices/x11/device_data_manager_x11.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/events/devices/x11/device_data_manager_x11.cc.orig	2024-07-24 02:45:10.460057500 +0000
 +++ ui/events/devices/x11/device_data_manager_x11.cc
-@@ -875,6 +875,7 @@ void DeviceDataManagerX11::SetDisabledKe
+@@ -844,6 +844,7 @@ void DeviceDataManagerX11::SetDisabledKe
  }
  
- void DeviceDataManagerX11::DisableDevice(int deviceid) {
-+#if !defined(OS_BSD)
-   blocked_devices_.set(deviceid, true);
-   // TODO(rsadam@): Support blocking touchscreen devices.
-   std::vector<InputDevice> keyboards = GetKeyboardDevices();
-@@ -885,6 +886,9 @@ void DeviceDataManagerX11::DisableDevice
-     keyboards.erase(it);
-     DeviceDataManager::OnKeyboardDevicesUpdated(keyboards);
-   }
-+#else
+ void DeviceDataManagerX11::DisableDevice(x11::Input::DeviceId deviceid) {
 +  NOTIMPLEMENTED();
-+#endif
- }
- 
- void DeviceDataManagerX11::EnableDevice(int deviceid) {
+   blocked_devices_.set(static_cast<uint32_t>(deviceid), true);
+   // TODO(rsadam@): Support blocking touchscreen devices.
+   std::vector<KeyboardDevice> keyboards = GetKeyboardDevices();
diff --git a/chromium/patches/patch-ui_events_event.cc b/chromium/patches/patch-ui_events_event.cc
new file mode 100644
index 0000000000..07dc749859
--- /dev/null
+++ b/chromium/patches/patch-ui_events_event.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/events/event.cc.orig	2024-07-24 02:45:10.460057500 +0000
++++ ui/events/event.cc
+@@ -438,7 +438,7 @@ std::string LocatedEvent::ToString() con
+ MouseEvent::MouseEvent(const PlatformEvent& native_event)
+     : LocatedEvent(native_event),
+       changed_button_flags_(GetChangedMouseButtonFlagsFromNative(native_event)),
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       movement_(GetMouseMovementFromNative(native_event)),
+ #endif
+       pointer_details_(GetMousePointerDetailsFromNative(native_event)) {
+@@ -688,7 +688,7 @@ std::unique_ptr<Event> MouseWheelEvent::
+   return std::make_unique<MouseWheelEvent>(*this);
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // This value matches Windows, Fuchsia WHEEL_DELTA, and (roughly) Firefox on
+ // Linux.
+ // static
+@@ -948,7 +948,7 @@ void KeyEvent::InitializeNative() {
+   if (synthesize_key_repeat_enabled_ && IsRepeated(GetLastKeyEvent()))
+     SetFlags(flags() | EF_IS_REPEAT);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   NormalizeFlags();
+ #elif BUILDFLAG(IS_WIN)
+   // Only Windows has native character events.
diff --git a/chromium/patches/patch-ui_events_event__switches.cc b/chromium/patches/patch-ui_events_event__switches.cc
index f485e27886..f2b095ecda 100644
--- a/chromium/patches/patch-ui_events_event__switches.cc
+++ b/chromium/patches/patch-ui_events_event__switches.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/events/event_switches.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/events/event_switches.cc.orig	2024-07-24 02:45:10.464058000 +0000
 +++ ui/events/event_switches.cc
-@@ -14,7 +14,7 @@ namespace switches {
- const char kCompensateForUnstablePinchZoom[] =
-     "compensate-for-unstable-pinch-zoom";
+@@ -21,7 +21,7 @@ const char kCompensateForUnstablePinchZo
+ // value is a floating point number that is interpreted as a distance in pixels.
+ const char kTouchSlopDistance[] = "touch-slop-distance";
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // Tells chrome to interpret events from these devices as touch events. Only
  // available with XInput 2 (i.e. X server 1.8 or above). The id's of the
  // devices can be retrieved from 'xinput list'.
diff --git a/chromium/patches/patch-ui_events_event__switches.h b/chromium/patches/patch-ui_events_event__switches.h
index 9aaf8abd90..5e582b4376 100644
--- a/chromium/patches/patch-ui_events_event__switches.h
+++ b/chromium/patches/patch-ui_events_event__switches.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/events/event_switches.h.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/events/event_switches.h.orig	2024-07-24 02:45:10.464058000 +0000
 +++ ui/events/event_switches.h
 @@ -13,7 +13,7 @@ namespace switches {
- 
  EVENTS_BASE_EXPORT extern const char kCompensateForUnstablePinchZoom[];
+ EVENTS_BASE_EXPORT extern const char kTouchSlopDistance[];
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  EVENTS_BASE_EXPORT extern const char kTouchDevices[];
  EVENTS_BASE_EXPORT extern const char kPenDevices[];
  #endif
diff --git a/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.cc b/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.cc
index 284b88cf54..f22a513110 100644
--- a/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.cc
+++ b/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.cc
@@ -1,13 +1,44 @@
 $NetBSD$
 
---- ui/events/keycodes/dom/keycode_converter.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/events/keycodes/dom/keycode_converter.cc.orig	2024-07-24 02:45:10.476059200 +0000
 +++ ui/events/keycodes/dom/keycode_converter.cc
-@@ -20,7 +20,7 @@ namespace {
- #if defined(OS_WIN)
+@@ -13,7 +13,7 @@
+ #include "ui/events/keycodes/dom/dom_code.h"
+ #include "ui/events/keycodes/dom/dom_key.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD)
+ #include <linux/input.h>
+ #endif
+ 
+@@ -26,7 +26,7 @@ namespace {
+ #if BUILDFLAG(IS_WIN)
  #define DOM_CODE(usb, evdev, xkb, win, mac, code, id) \
    { usb, win, code }
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #define DOM_CODE(usb, evdev, xkb, win, mac, code, id) \
    { usb, xkb, code }
- #elif defined(OS_MACOSX)
+ #elif BUILDFLAG(IS_APPLE)
+@@ -65,7 +65,7 @@ struct DomKeyMapEntry {
+ #undef DOM_KEY_UNI
+ #undef DOM_KEY_MAP_DECLARATION_END
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD)
+ 
+ // The offset between XKB Keycode and evdev code.
+ constexpr int kXkbKeycodeOffset = 8;
+@@ -186,7 +186,7 @@ int KeycodeConverter::DomCodeToNativeKey
+   return UsbKeycodeToNativeKeycode(static_cast<uint32_t>(code));
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD)
+ // static
+ DomCode KeycodeConverter::XkbKeycodeToDomCode(uint32_t xkb_keycode) {
+   // Currently XKB keycode is the native keycode.
diff --git a/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.h b/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.h
new file mode 100644
index 0000000000..eada6386af
--- /dev/null
+++ b/chromium/patches/patch-ui_events_keycodes_dom_keycode__converter.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/events/keycodes/dom/keycode_converter.h.orig	2024-07-24 02:45:10.476059200 +0000
++++ ui/events/keycodes/dom/keycode_converter.h
+@@ -64,7 +64,7 @@ class KeycodeConverter {
+   // Convert a DomCode into a native keycode.
+   static int DomCodeToNativeKeycode(DomCode code);
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD)
+   // Convert a XKB keycode into a DomCode.
+   static DomCode XkbKeycodeToDomCode(uint32_t xkb_keycode);
+ 
diff --git a/chromium/patches/patch-ui_events_ozone_BUILD.gn b/chromium/patches/patch-ui_events_ozone_BUILD.gn
deleted file mode 100644
index 1dfdc117eb..0000000000
--- a/chromium/patches/patch-ui_events_ozone_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/events/ozone/BUILD.gn.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/events/ozone/BUILD.gn
-@@ -70,7 +70,7 @@ source_set("unittests") {
-     sources += [ "chromeos/cursor_controller_unittest.cc" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//ui/events/ozone/evdev:unittests" ]
-   }
- }
diff --git a/chromium/patches/patch-ui_gfx_BUILD.gn b/chromium/patches/patch-ui_gfx_BUILD.gn
index 0ba68e800f..6b97308dcc 100644
--- a/chromium/patches/patch-ui_gfx_BUILD.gn
+++ b/chromium/patches/patch-ui_gfx_BUILD.gn
@@ -1,67 +1,17 @@
 $NetBSD$
 
---- ui/gfx/BUILD.gn.orig	2020-06-25 09:32:23.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/BUILD.gn.orig	2024-07-24 02:45:10.580069300 +0000
 +++ ui/gfx/BUILD.gn
-@@ -150,7 +150,7 @@ jumbo_component("gfx") {
-       "android/view_configuration.h",
-     ]
-   }
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "font_fallback_linux.cc",
-       "font_fallback_linux.h",
-@@ -386,7 +386,7 @@ jumbo_component("gfx") {
-   }
- 
-   # Linux.
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//third_party/fontconfig" ]
-   }
- 
-@@ -566,7 +566,7 @@ jumbo_source_set("memory_buffer_sources"
-     "//ui/gfx/geometry",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "linux/client_native_pixmap_dmabuf.cc",
-       "linux/client_native_pixmap_dmabuf.h",
-@@ -596,7 +596,7 @@ jumbo_source_set("memory_buffer_sources"
-     public_deps += [ "//ipc:message_support" ]
-   }
- 
--  if ((is_linux || use_ozone) && !is_nacl) {
-+  if ((is_linux || use_ozone || is_bsd) && !is_nacl) {
-     sources += [
-       "native_pixmap_handle.cc",
-       "native_pixmap_handle.h",
-@@ -672,7 +672,7 @@ test("gfx_unittests") {
-     "text_elider_unittest.cc",
-     "text_utils_unittest.cc",
-   ]
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "font_fallback_linux_unittest.cc",
-       "font_render_params_linux_unittest.cc",
-@@ -763,7 +763,7 @@ test("gfx_unittests") {
-     sources += [ "system_fonts_win_unittest.cc" ]
-   }
- 
--  if (is_linux || is_android || is_fuchsia || is_win) {
-+  if (is_linux || is_android || is_fuchsia || is_win || is_bsd) {
-     sources += [ "platform_font_skia_unittest.cc" ]
+@@ -663,7 +663,7 @@ source_set("memory_buffer_sources") {
+     deps += [ "//build/config/linux/libdrm" ]
    }
  
-@@ -855,7 +855,7 @@ test("gfx_unittests") {
-     ]
+-  if (is_linux || is_chromeos || is_android) {
++  if ((is_linux || is_chromeos || is_android) && !is_bsd) {
+     deps += [ "//third_party/libsync" ]
    }
  
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "linux/fontconfig_util_unittest.cc",
-       "linux/native_pixmap_dmabuf_unittest.cc",
diff --git a/chromium/patches/patch-ui_gfx_canvas__skia.cc b/chromium/patches/patch-ui_gfx_canvas__skia.cc
index 7ee506dd6b..2101da4c60 100644
--- a/chromium/patches/patch-ui_gfx_canvas__skia.cc
+++ b/chromium/patches/patch-ui_gfx_canvas__skia.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/gfx/canvas_skia.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/canvas_skia.cc.orig	2024-07-24 02:45:10.588070000 +0000
 +++ ui/gfx/canvas_skia.cc
-@@ -206,7 +206,7 @@ void Canvas::DrawStringRectWithFlags(con
+@@ -213,7 +213,7 @@ void Canvas::DrawStringRectWithFlags(con
      Range range = StripAcceleratorChars(flags, &adjusted_text);
      bool elide_text = ((flags & NO_ELLIPSIS) == 0);
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      // On Linux, eliding really means fading the end of the string. But only
      // for LTR text. RTL text is still elided (on the left) with "...".
      if (elide_text) {
diff --git a/chromium/patches/patch-ui_gfx_codec_jpeg__codec.cc b/chromium/patches/patch-ui_gfx_codec_jpeg__codec.cc
deleted file mode 100644
index cecba29adf..0000000000
--- a/chromium/patches/patch-ui_gfx_codec_jpeg__codec.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- ui/gfx/codec/jpeg_codec.cc.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/codec/jpeg_codec.cc
-@@ -208,6 +208,7 @@ bool JPEGCodec::Decode(const unsigned ch
-     case JCS_GRAYSCALE:
-     case JCS_RGB:
-     case JCS_YCbCr:
-+#if defined(JCS_EXTENSIONS)
-       // Choose an output colorspace and return if it is an unsupported one.
-       // Same as JPEGCodec::Encode(), libjpeg-turbo supports all input formats
-       // used by Chromium (i.e. RGBA and BGRA) and we just map the input
-@@ -224,6 +225,9 @@ bool JPEGCodec::Decode(const unsigned ch
-         NOTREACHED() << "Invalid pixel format";
-         return false;
-       }
-+#else
-+      cinfo.out_color_space = JCS_RGB;
-+#endif
-       break;
-     case JCS_CMYK:
-     case JCS_YCCK:
diff --git a/chromium/patches/patch-ui_gfx_font__fallback__linux.cc b/chromium/patches/patch-ui_gfx_font__fallback__linux.cc
index 856a081b2a..edc18bc445 100644
--- a/chromium/patches/patch-ui_gfx_font__fallback__linux.cc
+++ b/chromium/patches/patch-ui_gfx_font__fallback__linux.cc
@@ -1,14 +1,16 @@
 $NetBSD$
 
---- ui/gfx/font_fallback_linux.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/font_fallback_linux.cc.orig	2024-07-24 02:45:10.596070800 +0000
 +++ ui/gfx/font_fallback_linux.cc
-@@ -24,6 +24,10 @@
+@@ -27,6 +27,8 @@
  #include "ui/gfx/linux/fontconfig_util.h"
  #include "ui/gfx/platform_font.h"
  
-+#if defined(OS_BSD)
 +#include <unistd.h>
-+#endif
 +
  namespace gfx {
  
diff --git a/chromium/patches/patch-ui_gfx_font__list.cc b/chromium/patches/patch-ui_gfx_font__list.cc
deleted file mode 100644
index a6056e1f2a..0000000000
--- a/chromium/patches/patch-ui_gfx_font__list.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/gfx/font_list.cc.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/font_list.cc
-@@ -24,7 +24,7 @@ base::LazyInstance<scoped_refptr<gfx::Fo
- bool g_default_impl_initialized = false;
- 
- bool IsFontFamilyAvailable(const std::string& family, SkFontMgr* fontManager) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   return !!fontManager->legacyMakeTypeface(family.c_str(), SkFontStyle());
- #else
-   sk_sp<SkFontStyleSet> set(fontManager->matchFamily(family.c_str()));
diff --git a/chromium/patches/patch-ui_gfx_font__names__testing.cc b/chromium/patches/patch-ui_gfx_font__names__testing.cc
deleted file mode 100644
index 88c8a54aff..0000000000
--- a/chromium/patches/patch-ui_gfx_font__names__testing.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- ui/gfx/font_names_testing.cc.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/font_names_testing.cc
-@@ -22,7 +22,7 @@ Note that we have to support the full ra
- dessert.
- */
- 
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- const char kTestFontName[] = "Arimo";
- #elif defined(OS_ANDROID)
- const char kTestFontName[] = "sans-serif";
-@@ -30,7 +30,7 @@ const char kTestFontName[] = "sans-serif
- const char kTestFontName[] = "Arial";
- #endif
- 
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- const char kSymbolFontName[] = "DejaVu Sans";
- #elif defined(OS_ANDROID)
- const char kSymbolFontName[] = "monospace";
-@@ -40,7 +40,7 @@ const char kSymbolFontName[] = "Segoe UI
- const char kSymbolFontName[] = "Symbol";
- #endif
- 
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- const char kCJKFontName[] = "Noto Sans CJK JP";
- #elif defined(OS_ANDROID)
- const char kCJKFontName[] = "serif";
diff --git a/chromium/patches/patch-ui_gfx_font__render__params.h b/chromium/patches/patch-ui_gfx_font__render__params.h
index d81b6f9c6b..4a7e094cfd 100644
--- a/chromium/patches/patch-ui_gfx_font__render__params.h
+++ b/chromium/patches/patch-ui_gfx_font__render__params.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- ui/gfx/font_render_params.h.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/font_render_params.h.orig	2024-07-24 02:45:10.596070800 +0000
 +++ ui/gfx/font_render_params.h
-@@ -111,7 +111,7 @@ GFX_EXPORT FontRenderParams GetFontRende
+@@ -115,7 +115,7 @@ GFX_EXPORT FontRenderParams GetFontRende
      const FontRenderParamsQuery& query,
      std::string* family_out);
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
  // Clears GetFontRenderParams()'s cache. Intended to be called by tests that are
  // changing Fontconfig's configuration.
  GFX_EXPORT void ClearFontRenderParamsCacheForTest();
-@@ -121,7 +121,7 @@ GFX_EXPORT void ClearFontRenderParamsCac
+@@ -125,7 +125,7 @@ GFX_EXPORT void ClearFontRenderParamsCac
  GFX_EXPORT float GetFontRenderParamsDeviceScaleFactor();
  
- #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_ANDROID) || \
--    defined(OS_FUCHSIA)
-+    defined(OS_FUCHSIA) || defined(OS_BSD)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+-    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
++    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
  // Sets the device scale factor for FontRenderParams to decide
  // if it should enable subpixel positioning.
  GFX_EXPORT void SetFontRenderParamsDeviceScaleFactor(
diff --git a/chromium/patches/patch-ui_gfx_font__render__params__linux.cc b/chromium/patches/patch-ui_gfx_font__render__params__linux.cc
new file mode 100644
index 0000000000..43581c3131
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_font__render__params__linux.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/font_render_params_linux.cc.orig	2024-07-24 02:45:10.596070800 +0000
++++ ui/gfx/font_render_params_linux.cc
+@@ -25,7 +25,7 @@
+ #include "ui/gfx/linux/fontconfig_util.h"
+ #include "ui/gfx/switches.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+ 
+@@ -212,7 +212,7 @@ FontRenderParams GetFontRenderParams(con
+ 
+   // Start with the delegate's settings, but let Fontconfig have the final say.
+   FontRenderParams params;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (auto* linux_ui = ui::LinuxUi::instance()) {
+     params = linux_ui->GetDefaultFontRenderParams();
+   }
diff --git a/chromium/patches/patch-ui_gfx_font__util.cc b/chromium/patches/patch-ui_gfx_font__util.cc
index 85ffe6a401..30d43ab96c 100644
--- a/chromium/patches/patch-ui_gfx_font__util.cc
+++ b/chromium/patches/patch-ui_gfx_font__util.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/gfx/font_util.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/font_util.cc.orig	2024-07-24 02:45:10.596070800 +0000
 +++ ui/gfx/font_util.cc
 @@ -6,7 +6,7 @@
  
  #include "build/build_config.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include <fontconfig/fontconfig.h>
  #include "ui/gfx/linux/fontconfig_util.h"
  #endif
@@ -15,8 +19,8 @@ $NetBSD$
    // background (resources have not yet been granted to cast) since it prevents
    // the long delay the user would have seen on first rendering.
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Ensures the config is created on this thread.
-   FcConfig* config = GetGlobalFontConfig();
-   DCHECK(config);
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // Early initialize FontConfig.
+   InitializeGlobalFontConfigAsync();
+ #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/chromium/patches/patch-ui_gfx_gpu__memory__buffer.cc b/chromium/patches/patch-ui_gfx_gpu__memory__buffer.cc
index 1cb58a18ec..f694343fd9 100644
--- a/chromium/patches/patch-ui_gfx_gpu__memory__buffer.cc
+++ b/chromium/patches/patch-ui_gfx_gpu__memory__buffer.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/gfx/gpu_memory_buffer.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/gpu_memory_buffer.cc.orig	2024-07-24 02:45:10.608072000 +0000
 +++ ui/gfx/gpu_memory_buffer.cc
-@@ -34,7 +34,7 @@ GpuMemoryBufferHandle GpuMemoryBufferHan
+@@ -55,7 +55,7 @@ GpuMemoryBufferHandle GpuMemoryBufferHan
    handle.region = region.Duplicate();
    handle.offset = offset;
    handle.stride = stride;
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
    handle.native_pixmap_handle = CloneHandleForIPC(native_pixmap_handle);
- #elif defined(OS_MACOSX) && !defined(OS_IOS)
-   NOTIMPLEMENTED();
+ #elif BUILDFLAG(IS_APPLE)
+   handle.io_surface = io_surface;
diff --git a/chromium/patches/patch-ui_gfx_gpu__memory__buffer.h b/chromium/patches/patch-ui_gfx_gpu__memory__buffer.h
index 04abaa6687..269f2348f8 100644
--- a/chromium/patches/patch-ui_gfx_gpu__memory__buffer.h
+++ b/chromium/patches/patch-ui_gfx_gpu__memory__buffer.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- ui/gfx/gpu_memory_buffer.h.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/gpu_memory_buffer.h.orig	2024-07-24 02:45:10.612072200 +0000
 +++ ui/gfx/gpu_memory_buffer.h
 @@ -15,7 +15,7 @@
  #include "ui/gfx/geometry/rect.h"
  #include "ui/gfx/gfx_export.h"
  
--#if defined(USE_OZONE) || defined(OS_LINUX)
-+#if defined(USE_OZONE) || defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "ui/gfx/native_pixmap_handle.h"
- #elif defined(OS_MACOSX) && !defined(OS_IOS)
+ #elif BUILDFLAG(IS_APPLE)
  #include "ui/gfx/mac/io_surface.h"
-@@ -69,7 +69,7 @@ struct GFX_EXPORT GpuMemoryBufferHandle 
+@@ -76,7 +76,7 @@ struct GFX_EXPORT GpuMemoryBufferHandle 
    base::UnsafeSharedMemoryRegion region;
    uint32_t offset = 0;
-   int32_t stride = 0;
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
+   uint32_t stride = 0;
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
    NativePixmapHandle native_pixmap_handle;
- #elif defined(OS_MACOSX) && !defined(OS_IOS)
-   ScopedRefCountedIOSurfaceMachPort mach_port;
+ #elif BUILDFLAG(IS_APPLE)
+   ScopedIOSurface io_surface;
diff --git a/chromium/patches/patch-ui_gfx_ipc_gfx__param__traits__macros.h b/chromium/patches/patch-ui_gfx_ipc_gfx__param__traits__macros.h
deleted file mode 100644
index 3bcf172bb5..0000000000
--- a/chromium/patches/patch-ui_gfx_ipc_gfx__param__traits__macros.h
+++ /dev/null
@@ -1,46 +0,0 @@
-$NetBSD$
-
---- ui/gfx/ipc/gfx_param_traits_macros.h.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/ipc/gfx_param_traits_macros.h
-@@ -18,7 +18,7 @@
- #include "ui/gfx/selection_bound.h"
- #include "ui/gfx/swap_result.h"
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "ui/gfx/native_pixmap_handle.h"
- #endif
- 
-@@ -51,7 +51,7 @@ IPC_STRUCT_TRAITS_BEGIN(gfx::GpuMemoryBu
-   IPC_STRUCT_TRAITS_MEMBER(region)
-   IPC_STRUCT_TRAITS_MEMBER(offset)
-   IPC_STRUCT_TRAITS_MEMBER(stride)
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
-   IPC_STRUCT_TRAITS_MEMBER(native_pixmap_handle)
- #elif defined(OS_MACOSX)
-   IPC_STRUCT_TRAITS_MEMBER(mach_port)
-@@ -66,12 +66,12 @@ IPC_STRUCT_TRAITS_BEGIN(gfx::GpuMemoryBu
-   IPC_STRUCT_TRAITS_MEMBER(id)
- IPC_STRUCT_TRAITS_END()
- 
--#if defined(OS_LINUX) || defined(OS_FUCHSIA)
-+#if defined(OS_LINUX) || defined(OS_FUCHSIA) || defined(OS_BSD)
- IPC_STRUCT_TRAITS_BEGIN(gfx::NativePixmapPlane)
-   IPC_STRUCT_TRAITS_MEMBER(stride)
-   IPC_STRUCT_TRAITS_MEMBER(offset)
-   IPC_STRUCT_TRAITS_MEMBER(size)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   IPC_STRUCT_TRAITS_MEMBER(fd)
- #elif defined(OS_FUCHSIA)
-   IPC_STRUCT_TRAITS_MEMBER(vmo)
-@@ -80,7 +80,7 @@ IPC_STRUCT_TRAITS_END()
- 
- IPC_STRUCT_TRAITS_BEGIN(gfx::NativePixmapHandle)
-   IPC_STRUCT_TRAITS_MEMBER(planes)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   IPC_STRUCT_TRAITS_MEMBER(modifier)
- #endif
- #if defined(OS_FUCHSIA)
diff --git a/chromium/patches/patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc b/chromium/patches/patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc
deleted file mode 100644
index fc38bd43b1..0000000000
--- a/chromium/patches/patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc
+++ /dev/null
@@ -1,48 +0,0 @@
-$NetBSD$
-
---- ui/gfx/linux/client_native_pixmap_dmabuf.cc.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/linux/client_native_pixmap_dmabuf.cc
-@@ -4,8 +4,12 @@
- 
- #include "ui/gfx/linux/client_native_pixmap_dmabuf.h"
- 
-+#include "build/build_config.h"
-+
- #include <fcntl.h>
-+#if defined(OS_LINUX)
- #include <linux/version.h>
-+#endif
- #include <stddef.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
-@@ -27,6 +31,8 @@
- #include "ui/gfx/buffer_format_util.h"
- #include "ui/gfx/switches.h"
- 
-+#if defined(OS_LINUX)
-+#if defined(OS_LINUX)
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
- #include <linux/dma-buf.h>
- #else
-@@ -45,6 +51,21 @@ struct dma_buf_sync {
- #define DMA_BUF_BASE 'b'
- #define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
- #endif
-+#endif
-+#elif (OS_BSD)
-+struct dma_buf_sync {
-+  __u64 flags;
-+};
-+
-+#define DMA_BUF_SYNC_READ (1 << 0)
-+#define DMA_BUF_SYNC_WRITE (2 << 0)
-+#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE)
-+#define DMA_BUF_SYNC_START (0 << 2)
-+#define DMA_BUF_SYNC_END (1 << 2)
-+
-+#define DMA_BUF_BASE 'b'
-+#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
-+#endif
- 
- namespace gfx {
- 
diff --git a/chromium/patches/patch-ui_gfx_linux_dmabuf__uapi.h b/chromium/patches/patch-ui_gfx_linux_dmabuf__uapi.h
new file mode 100644
index 0000000000..874a5ca19e
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_linux_dmabuf__uapi.h
@@ -0,0 +1,42 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/linux/dmabuf_uapi.h.orig	2024-07-24 02:45:10.620073000 +0000
++++ ui/gfx/linux/dmabuf_uapi.h
+@@ -5,12 +5,11 @@
+ #ifndef UI_GFX_LINUX_DMABUF_UAPI_H_
+ #define UI_GFX_LINUX_DMABUF_UAPI_H_
+ 
+-#include <linux/version.h>
++#include <sys/types.h>
+ 
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+-#include <linux/dma-buf.h>
+-#else
+-#include <linux/types.h>
++typedef int32_t  __s32;
++typedef uint32_t __u32;
++typedef uint64_t __u64;
+ 
+ struct dma_buf_sync {
+   __u64 flags;
+@@ -26,9 +25,7 @@ constexpr __u64 DMA_BUF_SYNC_END = 1 << 
+ constexpr char DMA_BUF_BASE = 'b';
+ constexpr unsigned long DMA_BUF_IOCTL_SYNC =
+     _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync);
+-#endif
+ 
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
+ struct dma_buf_export_sync_file {
+   __u32 flags;
+   __s32 fd;
+@@ -43,6 +40,5 @@ constexpr unsigned long DMA_BUF_IOCTL_EX
+     _IOWR(DMA_BUF_BASE, 2, struct dma_buf_export_sync_file);
+ constexpr unsigned long DMA_BUF_IOCTL_IMPORT_SYNC_FILE =
+     _IOW(DMA_BUF_BASE, 3, struct dma_buf_import_sync_file);
+-#endif
+ 
+ #endif  // UI_GFX_LINUX_DMABUF_UAPI_H_
diff --git a/chromium/patches/patch-ui_gfx_linux_gbm__wrapper.cc b/chromium/patches/patch-ui_gfx_linux_gbm__wrapper.cc
new file mode 100644
index 0000000000..ebce0b0bc1
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_linux_gbm__wrapper.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/linux/gbm_wrapper.cc.orig	2024-07-24 02:45:10.624073500 +0000
++++ ui/gfx/linux/gbm_wrapper.cc
+@@ -314,7 +314,7 @@ class Device final : public ui::GbmDevic
+     // of 1x1 BOs which are destroyed before creating the final BO creation used
+     // to instantiate the returned GbmBuffer.
+     gfx::Size size_for_verification =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+         gfx::Size(1, 1);
+ #else
+         requested_size;
diff --git a/chromium/patches/patch-ui_gfx_mojom_BUILD.gn b/chromium/patches/patch-ui_gfx_mojom_BUILD.gn
deleted file mode 100644
index 806351713d..0000000000
--- a/chromium/patches/patch-ui_gfx_mojom_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/gfx/mojom/BUILD.gn.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/mojom/BUILD.gn
-@@ -212,7 +212,7 @@ mojom("mojom") {
- 
- mojom("native_handle_types") {
-   sources = [ "native_handle_types.mojom" ]
--  if (is_linux || use_ozone) {
-+  if (is_linux || use_ozone || is_bsd) {
-     enabled_features = [ "supports_native_pixmap" ]
-   }
-   public_deps = [ "//mojo/public/mojom/base" ]
diff --git a/chromium/patches/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc b/chromium/patches/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc
index 32ae7d0bc2..01f4ecd99e 100644
--- a/chromium/patches/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc
+++ b/chromium/patches/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- ui/gfx/mojom/buffer_types_mojom_traits.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/mojom/buffer_types_mojom_traits.cc.orig	2024-07-24 02:45:10.624073500 +0000
 +++ ui/gfx/mojom/buffer_types_mojom_traits.cc
 @@ -33,7 +33,7 @@ gfx::mojom::GpuMemoryBufferPlatformHandl
        return gfx::mojom::GpuMemoryBufferPlatformHandle::NewSharedMemoryHandle(
            std::move(handle.region));
      case gfx::NATIVE_PIXMAP:
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
        return gfx::mojom::GpuMemoryBufferPlatformHandle::NewNativePixmapHandle(
            std::move(handle.native_pixmap_handle));
  #else
-@@ -109,7 +109,7 @@ bool StructTraits<gfx::mojom::GpuMemoryB
+@@ -115,7 +115,7 @@ bool StructTraits<gfx::mojom::GpuMemoryB
        out->type = gfx::SHARED_MEMORY_BUFFER;
        out->region = std::move(platform_handle->get_shared_memory_handle());
        return true;
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
      case gfx::mojom::GpuMemoryBufferPlatformHandleDataView::Tag::
-         NATIVE_PIXMAP_HANDLE:
+         kNativePixmapHandle:
        out->type = gfx::NATIVE_PIXMAP;
diff --git a/chromium/patches/patch-ui_gfx_mojom_native__handle__types.mojom b/chromium/patches/patch-ui_gfx_mojom_native__handle__types.mojom
deleted file mode 100644
index 9a54375975..0000000000
--- a/chromium/patches/patch-ui_gfx_mojom_native__handle__types.mojom
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/gfx/mojom/native_handle_types.mojom.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/gfx/mojom/native_handle_types.mojom
-@@ -25,6 +25,8 @@ struct NativePixmapHandle {
- 
-   [EnableIf=is_linux]
-   uint64 modifier;
-+  [EnableIf=is_bsd]
-+  uint64 modifier;
-   [EnableIf=is_chromeos]
-   uint64 modifier;
- 
diff --git a/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc b/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc
index 18e80d5f77..454ac67020 100644
--- a/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc
+++ b/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc
@@ -1,36 +1,40 @@
 $NetBSD$
 
---- ui/gfx/mojom/native_handle_types_mojom_traits.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/mojom/native_handle_types_mojom_traits.cc.orig	2024-07-24 02:45:10.628074000 +0000
 +++ ui/gfx/mojom/native_handle_types_mojom_traits.cc
 @@ -8,11 +8,11 @@
  
  namespace mojo {
  
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
  mojo::PlatformHandle StructTraits<
      gfx::mojom::NativePixmapPlaneDataView,
      gfx::NativePixmapPlane>::buffer_handle(gfx::NativePixmapPlane& plane) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    return mojo::PlatformHandle(std::move(plane.fd));
- #elif defined(OS_FUCHSIA)
+ #elif BUILDFLAG(IS_FUCHSIA)
    return mojo::PlatformHandle(std::move(plane.vmo));
 @@ -28,7 +28,7 @@ bool StructTraits<
    out->size = data.size();
  
    mojo::PlatformHandle handle = data.TakeBufferHandle();
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    if (!handle.is_fd())
      return false;
    out->fd = handle.TakeFD();
-@@ -45,7 +45,7 @@ bool StructTraits<
+@@ -54,7 +54,7 @@ bool StructTraits<
      gfx::mojom::NativePixmapHandleDataView,
      gfx::NativePixmapHandle>::Read(gfx::mojom::NativePixmapHandleDataView data,
                                     gfx::NativePixmapHandle* out) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    out->modifier = data.modifier();
- #endif
- 
+   out->supports_zero_copy_webgpu_import =
+       data.supports_zero_copy_webgpu_import();
diff --git a/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h b/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h
index ee8b9e81f0..fb7342b829 100644
--- a/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h
+++ b/chromium/patches/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h
@@ -1,29 +1,42 @@
 $NetBSD$
 
---- ui/gfx/mojom/native_handle_types_mojom_traits.h.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/mojom/native_handle_types_mojom_traits.h.orig	2024-07-24 02:45:10.628074000 +0000
 +++ ui/gfx/mojom/native_handle_types_mojom_traits.h
-@@ -14,13 +14,13 @@
+@@ -16,7 +16,7 @@
  #include "mojo/public/cpp/system/platform_handle.h"
  #include "ui/gfx/mojom/native_handle_types.mojom-shared.h"
  
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
  #include "ui/gfx/native_pixmap_handle.h"
  #endif
  
+@@ -26,7 +26,7 @@
+ 
  namespace mojo {
  
--#if defined(OS_LINUX) || defined(USE_OZONE)
-+#if defined(OS_LINUX) || defined(USE_OZONE) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_BSD)
  template <>
  struct COMPONENT_EXPORT(GFX_NATIVE_HANDLE_TYPES_SHARED_MOJOM_TRAITS)
      StructTraits<gfx::mojom::NativePixmapPlaneDataView,
-@@ -48,7 +48,7 @@ struct COMPONENT_EXPORT(GFX_NATIVE_HANDL
+@@ -54,13 +54,13 @@ struct COMPONENT_EXPORT(GFX_NATIVE_HANDL
      return pixmap_handle.planes;
    }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    static uint64_t modifier(const gfx::NativePixmapHandle& pixmap_handle) {
      return pixmap_handle.modifier;
    }
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   static bool supports_zero_copy_webgpu_import(
+       const gfx::NativePixmapHandle& pixmap_handle) {
+     return pixmap_handle.supports_zero_copy_webgpu_import;
diff --git a/chromium/patches/patch-ui_gfx_native__pixmap__handle.cc b/chromium/patches/patch-ui_gfx_native__pixmap__handle.cc
index ad03827147..a59a1c5ac3 100644
--- a/chromium/patches/patch-ui_gfx_native__pixmap__handle.cc
+++ b/chromium/patches/patch-ui_gfx_native__pixmap__handle.cc
@@ -1,66 +1,68 @@
 $NetBSD$
 
---- ui/gfx/native_pixmap_handle.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/native_pixmap_handle.cc.orig	2024-07-24 02:45:10.628074000 +0000
 +++ ui/gfx/native_pixmap_handle.cc
-@@ -9,11 +9,15 @@
- #include "base/logging.h"
- #include "build/build_config.h"
+@@ -11,7 +11,7 @@
+ #include "ui/gfx/buffer_format_util.h"
+ #include "ui/gfx/geometry/size.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include <drm_fourcc.h>
- #include "base/posix/eintr_wrapper.h"
+ #include <unistd.h>
+ 
+@@ -23,9 +23,13 @@
+ #include "base/fuchsia/fuchsia_logging.h"
  #endif
  
-+#if defined(OS_BSD)
++#if BUILDFLAG(IS_BSD)
 +#include <unistd.h>
 +#endif
 +
- #if defined(OS_FUCHSIA)
- #include <lib/zx/vmo.h>
- #include "base/fuchsia/fuchsia_logging.h"
-@@ -21,7 +25,7 @@
- 
  namespace gfx {
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  static_assert(NativePixmapHandle::kNoModifier == DRM_FORMAT_MOD_INVALID,
                "gfx::NativePixmapHandle::kNoModifier should be an alias for"
                "DRM_FORMAT_MOD_INVALID");
-@@ -32,7 +36,7 @@ NativePixmapPlane::NativePixmapPlane() :
+@@ -36,7 +40,7 @@ NativePixmapPlane::NativePixmapPlane() :
  NativePixmapPlane::NativePixmapPlane(int stride,
                                       int offset,
                                       uint64_t size
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
                                       ,
                                       base::ScopedFD fd
- #elif defined(OS_FUCHSIA)
-@@ -43,7 +47,7 @@ NativePixmapPlane::NativePixmapPlane(int
+ #elif BUILDFLAG(IS_FUCHSIA)
+@@ -47,7 +51,7 @@ NativePixmapPlane::NativePixmapPlane(int
      : stride(stride),
        offset(offset),
        size(size)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
        ,
        fd(std::move(fd))
- #elif defined(OS_FUCHSIA)
-@@ -71,7 +75,7 @@ NativePixmapHandle& NativePixmapHandle::
+ #elif BUILDFLAG(IS_FUCHSIA)
+@@ -75,7 +79,7 @@ NativePixmapHandle& NativePixmapHandle::
  NativePixmapHandle CloneHandleForIPC(const NativePixmapHandle& handle) {
    NativePixmapHandle clone;
    for (auto& plane : handle.planes) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      DCHECK(plane.fd.is_valid());
-     base::ScopedFD fd_dup(HANDLE_EINTR(dup(plane.fd.get())));
-     if (!fd_dup.is_valid()) {
-@@ -97,7 +101,7 @@ NativePixmapHandle CloneHandleForIPC(con
+     // Combining the HANDLE_EINTR and ScopedFD's constructor causes the compiler
+     // to emit some very strange assembly that tends to cause FD ownership
+@@ -113,7 +117,7 @@ NativePixmapHandle CloneHandleForIPC(con
  #endif
    }
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    clone.modifier = handle.modifier;
- #endif
- 
+   clone.supports_zero_copy_webgpu_import =
+       handle.supports_zero_copy_webgpu_import;
diff --git a/chromium/patches/patch-ui_gfx_native__pixmap__handle.h b/chromium/patches/patch-ui_gfx_native__pixmap__handle.h
index 7f8974e2c6..2341be77f5 100644
--- a/chromium/patches/patch-ui_gfx_native__pixmap__handle.h
+++ b/chromium/patches/patch-ui_gfx_native__pixmap__handle.h
@@ -1,40 +1,44 @@
 $NetBSD$
 
---- ui/gfx/native_pixmap_handle.h.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/native_pixmap_handle.h.orig	2024-07-24 02:45:10.628074000 +0000
 +++ ui/gfx/native_pixmap_handle.h
-@@ -15,7 +15,7 @@
- #include "build/build_config.h"
+@@ -14,7 +14,7 @@
+ #include "ui/gfx/buffer_types.h"
  #include "ui/gfx/gfx_export.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  #include "base/files/scoped_file.h"
  #endif
  
-@@ -32,7 +32,7 @@ struct GFX_EXPORT NativePixmapPlane {
+@@ -34,7 +34,7 @@ struct GFX_EXPORT NativePixmapPlane {
    NativePixmapPlane(int stride,
                      int offset,
                      uint64_t size
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
                      ,
                      base::ScopedFD fd
- #elif defined(OS_FUCHSIA)
-@@ -53,7 +53,7 @@ struct GFX_EXPORT NativePixmapPlane {
+ #elif BUILDFLAG(IS_FUCHSIA)
+@@ -55,7 +55,7 @@ struct GFX_EXPORT NativePixmapPlane {
    // This is necessary to map the buffers.
    uint64_t size;
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // File descriptor for the underlying memory object (usually dmabuf).
    base::ScopedFD fd;
- #elif defined(OS_FUCHSIA)
-@@ -82,7 +82,7 @@ struct GFX_EXPORT NativePixmapHandle {
+ #elif BUILDFLAG(IS_FUCHSIA)
+@@ -78,7 +78,7 @@ struct GFX_EXPORT NativePixmapHandle {
  
    std::vector<NativePixmapPlane> planes;
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // The modifier is retrieved from GBM library and passed to EGL driver.
    // Generally it's platform specific, and we don't need to modify it in
    // Chromium code. Also one per plane per entry.
diff --git a/chromium/patches/patch-ui_gfx_native__widget__types.h b/chromium/patches/patch-ui_gfx_native__widget__types.h
index 30780b25a7..c272213182 100644
--- a/chromium/patches/patch-ui_gfx_native__widget__types.h
+++ b/chromium/patches/patch-ui_gfx_native__widget__types.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- ui/gfx/native_widget_types.h.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/native_widget_types.h.orig	2024-07-24 02:45:10.628074000 +0000
 +++ ui/gfx/native_widget_types.h
-@@ -103,7 +103,7 @@ class ViewAndroid;
- #endif
- class SkBitmap;
+@@ -104,7 +104,7 @@ class SkBitmap;
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  extern "C" {
  struct _AtkObject;
- typedef struct _AtkObject AtkObject;
-@@ -210,7 +210,7 @@ typedef id NativeViewAccessible;
- #elif defined(OS_MACOSX)
- typedef NSFont* NativeFont;
- typedef id NativeViewAccessible;
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ using AtkObject = struct _AtkObject;
+@@ -220,7 +220,7 @@ using NativeViewAccessible = struct objc
+ #endif
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
  // Linux doesn't have a native font type.
- typedef AtkObject* NativeViewAccessible;
+ using NativeViewAccessible = AtkObject*;
  #else
diff --git a/chromium/patches/patch-ui_gfx_platform__font__skia.cc b/chromium/patches/patch-ui_gfx_platform__font__skia.cc
new file mode 100644
index 0000000000..65655a821a
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_platform__font__skia.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/platform_font_skia.cc.orig	2024-07-24 02:45:10.632074400 +0000
++++ ui/gfx/platform_font_skia.cc
+@@ -30,7 +30,7 @@
+ #include "ui/gfx/system_fonts_win.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+ 
+@@ -168,7 +168,7 @@ void PlatformFontSkia::EnsuresDefaultFon
+   weight = system_font.GetWeight();
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // On Linux, LinuxUi is used to query the native toolkit (e.g.
+   // GTK) for the default UI font.
+   if (auto* linux_ui = ui::LinuxUi::instance()) {
diff --git a/chromium/patches/patch-ui_gfx_render__text__api__fuzzer.cc b/chromium/patches/patch-ui_gfx_render__text__api__fuzzer.cc
new file mode 100644
index 0000000000..04ebe0fbff
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_render__text__api__fuzzer.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/render_text_api_fuzzer.cc.orig	2024-07-24 02:45:10.632074400 +0000
++++ ui/gfx/render_text_api_fuzzer.cc
+@@ -20,7 +20,7 @@
+ #include "ui/gfx/font_util.h"
+ #include "ui/gfx/render_text.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "third_party/test_fonts/fontconfig/fontconfig_util_linux.h"
+ #endif
+ 
+@@ -47,7 +47,7 @@ struct Environment {
+ 
+     CHECK(base::i18n::InitializeICU());
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     test_fonts::SetUpFontconfig();
+ #endif
+     gfx::InitializeFonts();
diff --git a/chromium/patches/patch-ui_gfx_render__text__fuzzer.cc b/chromium/patches/patch-ui_gfx_render__text__fuzzer.cc
new file mode 100644
index 0000000000..e3695063ec
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_render__text__fuzzer.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/render_text_fuzzer.cc.orig	2024-07-24 02:45:10.632074400 +0000
++++ ui/gfx/render_text_fuzzer.cc
+@@ -17,7 +17,7 @@
+ #include "ui/gfx/canvas.h"
+ #include "ui/gfx/font_util.h"
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "third_party/test_fonts/fontconfig/fontconfig_util_linux.h"
+ #endif
+ 
+@@ -40,7 +40,7 @@ struct Environment {
+ 
+     CHECK(base::i18n::InitializeICU());
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+     test_fonts::SetUpFontconfig();
+ #endif
+     gfx::InitializeFonts();
diff --git a/chromium/patches/patch-ui_gfx_switches.cc b/chromium/patches/patch-ui_gfx_switches.cc
new file mode 100644
index 0000000000..eaf5e9a04e
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_switches.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/switches.cc.orig	2024-07-24 02:45:10.640075000 +0000
++++ ui/gfx/switches.cc
+@@ -32,7 +32,7 @@ const char kForcePrefersNoReducedMotion[
+ // Run in headless mode, i.e., without a UI or display server dependencies.
+ const char kHeadless[] = "headless";
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // Which X11 display to connect to. Emulates the GTK+ "--display=" command line
+ // argument. In use only with Ozone/X11.
+ const char kX11Display[] = "display";
diff --git a/chromium/patches/patch-ui_gfx_switches.h b/chromium/patches/patch-ui_gfx_switches.h
new file mode 100644
index 0000000000..f8648793be
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_switches.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/switches.h.orig	2024-07-24 02:45:10.640075000 +0000
++++ ui/gfx/switches.h
+@@ -19,7 +19,7 @@ GFX_SWITCHES_EXPORT extern const char kF
+ GFX_SWITCHES_EXPORT extern const char kForcePrefersNoReducedMotion[];
+ GFX_SWITCHES_EXPORT extern const char kHeadless[];
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ GFX_SWITCHES_EXPORT extern const char kX11Display[];
+ GFX_SWITCHES_EXPORT extern const char kNoXshm[];
+ #endif
diff --git a/chromium/patches/patch-ui_gfx_x_generated__protos_dri3.cc b/chromium/patches/patch-ui_gfx_x_generated__protos_dri3.cc
new file mode 100644
index 0000000000..16cf2f92ba
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_x_generated__protos_dri3.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/x/generated_protos/dri3.cc.orig	2024-07-24 02:45:10.648075800 +0000
++++ ui/gfx/x/generated_protos/dri3.cc
+@@ -27,6 +27,8 @@
+ #include <xcb/xcb.h>
+ #include <xcb/xcbext.h>
+ 
++#include <unistd.h>
++
+ #include "base/logging.h"
+ #include "base/posix/eintr_wrapper.h"
+ #include "ui/gfx/x/connection.h"
diff --git a/chromium/patches/patch-ui_gfx_x_generated__protos_shm.cc b/chromium/patches/patch-ui_gfx_x_generated__protos_shm.cc
new file mode 100644
index 0000000000..e2d0cd2b4e
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_x_generated__protos_shm.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/x/generated_protos/shm.cc.orig	2024-07-24 02:45:10.652076200 +0000
++++ ui/gfx/x/generated_protos/shm.cc
+@@ -27,6 +27,8 @@
+ #include <xcb/xcb.h>
+ #include <xcb/xcbext.h>
+ 
++#include <unistd.h>
++
+ #include "base/logging.h"
+ #include "base/posix/eintr_wrapper.h"
+ #include "ui/gfx/x/connection.h"
diff --git a/chromium/patches/patch-ui_gfx_x_xlib__support.cc b/chromium/patches/patch-ui_gfx_x_xlib__support.cc
new file mode 100644
index 0000000000..010d22327a
--- /dev/null
+++ b/chromium/patches/patch-ui_gfx_x_xlib__support.cc
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gfx/x/xlib_support.cc.orig	2024-07-24 02:45:10.660077000 +0000
++++ ui/gfx/x/xlib_support.cc
+@@ -39,10 +39,18 @@ void InitXlib() {
+     return;
+   }
+ 
++#if BUILDFLAG(IS_BSD)
++  CHECK(xlib_loader->Load("libX11.so"));
++#else
+   CHECK(xlib_loader->Load("libX11.so.6"));
++#endif
+ 
+   auto* xlib_xcb_loader = GetXlibXcbLoader();
++#if BUILDFLAG(IS_BSD)
++  CHECK(xlib_xcb_loader->Load("libX11-xcb.so"));
++#else
+   CHECK(xlib_xcb_loader->Load("libX11-xcb.so.1"));
++#endif
+ 
+   CHECK(xlib_loader->XInitThreads());
+ 
diff --git a/chromium/patches/patch-ui_gl_BUILD.gn b/chromium/patches/patch-ui_gl_BUILD.gn
index a0442a2aee..7ef0778526 100644
--- a/chromium/patches/patch-ui_gl_BUILD.gn
+++ b/chromium/patches/patch-ui_gl_BUILD.gn
@@ -1,31 +1,41 @@
 $NetBSD$
 
---- ui/gl/BUILD.gn.orig	2020-06-25 09:32:24.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/BUILD.gn.orig	2024-07-24 02:45:10.660077000 +0000
 +++ ui/gl/BUILD.gn
-@@ -214,7 +214,7 @@ jumbo_component("gl") {
-       "shared_gl_fence_egl.h",
-     ]
+@@ -153,8 +153,6 @@ component("gl") {
+     defines += [ "GPU_ENABLE_SERVICE_LOGGING" ]
+   }
  
--    if (is_linux || use_ozone) {
-+    if (is_linux || use_ozone || is_bsd) {
-       sources += [
-         "gl_image_native_pixmap.cc",
-         "gl_image_native_pixmap.h",
-@@ -230,7 +230,7 @@ jumbo_component("gl") {
-       ]
-     }
+-  include_dirs = [ "//third_party/mesa_headers" ]
+-
+   all_dependent_configs = [ ":gl_config" ]
  
--    if (is_posix && !is_fuchsia && !is_mac) {
-+    if (is_posix && !is_fuchsia && !is_mac && !is_bsd) {
-       # Windows has USE_EGL but doesn't support base::FileDescriptor.
-       # libsync isn't supported or needed on MacOSX.
-       # Fuchsia is excluded due to a libsync dependency and because it's
-@@ -499,7 +499,7 @@ jumbo_static_library("test_support") {
-     "//ui/base",
+   public_configs = [ "//third_party/khronos:khronos_headers" ]
+@@ -171,7 +169,6 @@ component("gl") {
    ]
+   public_deps = [
+     "//base",
+-    "//third_party/mesa_headers",
+     "//ui/events/platform",
+     "//ui/gfx",
+     "//ui/gfx/geometry",
+@@ -374,7 +371,6 @@ component("gl") {
+     data_deps += [
+       "//third_party/angle:libEGL",
+       "//third_party/angle:libGLESv2",
+-      "//third_party/mesa_headers",
+     ]
+     if (enable_swiftshader) {
+       data_deps += [
+@@ -573,7 +569,6 @@ test("gl_unittests") {
  
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//ui/platform_window/common" ]
-   }
+   data_deps = [
+     "//testing/buildbot/filters:gl_unittests_filters",
+-    "//third_party/mesa_headers",
+   ]
  
+   if (is_win) {
diff --git a/chromium/patches/patch-ui_gl_features.gni b/chromium/patches/patch-ui_gl_features.gni
deleted file mode 100644
index 49f509e111..0000000000
--- a/chromium/patches/patch-ui_gl_features.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/gl/features.gni.orig	2020-06-25 09:32:24.000000000 +0000
-+++ ui/gl/features.gni
-@@ -9,7 +9,7 @@ declare_args() {
- 
-   # Should EGL support be compiled?
-   # Can be overriden to test during bring up of EGL support on other platforms.
--  use_egl = is_win || is_android || is_linux || is_fuchsia || is_mac
-+  use_egl = is_win || is_android || is_linux || is_fuchsia || is_mac || is_bsd
- 
-   # Should Dawn support be compiled to back the WebGPU implementation?
-   # Also controls linking Dawn depedencies in such as SPIRV-Tools/SPIRV-Cross.
diff --git a/chromium/patches/patch-ui_gl_gl__bindings.h b/chromium/patches/patch-ui_gl_gl__bindings.h
new file mode 100644
index 0000000000..e2f6a06a1e
--- /dev/null
+++ b/chromium/patches/patch-ui_gl_gl__bindings.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/gl_bindings.h.orig	2024-07-24 02:45:10.668077700 +0000
++++ ui/gl/gl_bindings.h
+@@ -36,7 +36,7 @@
+ #include <GL/wglext.h>
+ #elif BUILDFLAG(IS_MAC)
+ #include <OpenGL/OpenGL.h>
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ using Display = struct _XDisplay;
+ using Bool = int;
+ using Status = int;
diff --git a/chromium/patches/patch-ui_gl_gl__context.cc b/chromium/patches/patch-ui_gl_gl__context.cc
new file mode 100644
index 0000000000..82762cc166
--- /dev/null
+++ b/chromium/patches/patch-ui_gl_gl__context.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/gl_context.cc.orig	2024-07-24 02:45:10.676078600 +0000
++++ ui/gl/gl_context.cc
+@@ -472,7 +472,7 @@ bool GLContext::MakeVirtuallyCurrent(
+   DCHECK(virtual_context->IsCurrent(surface));
+ 
+   if (switched_real_contexts || virtual_context != current_virtual_context_) {
+-#if DCHECK_IS_ON()
++#if DCHECK_IS_ON() && !BUILDFLAG(IS_BSD)
+     GLenum error = glGetError();
+     // Accepting a context loss error here enables using debug mode to work on
+     // context loss handling in virtual context mode.
diff --git a/chromium/patches/patch-ui_gl_gl__fence.cc b/chromium/patches/patch-ui_gl_gl__fence.cc
index 45e8dbcc5f..d4279f6ca5 100644
--- a/chromium/patches/patch-ui_gl_gl__fence.cc
+++ b/chromium/patches/patch-ui_gl_gl__fence.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/gl/gl_fence.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/gl_fence.cc.orig	2024-07-24 02:45:10.680079000 +0000
 +++ ui/gl/gl_fence.cc
-@@ -18,7 +18,7 @@
- #include "ui/gl/gl_fence_apple.h"
+@@ -20,7 +20,7 @@
  #endif
  
--#if defined(USE_EGL) && defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(USE_EGL) && defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ #if defined(USE_EGL)
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
  #define USE_GL_FENCE_ANDROID_NATIVE_FENCE_SYNC
  #include "ui/gl/gl_fence_android_native_fence_sync.h"
- #include "ui/gl/gl_surface_egl.h"
+ #endif
diff --git a/chromium/patches/patch-ui_gl_gl__implementation.cc b/chromium/patches/patch-ui_gl_gl__implementation.cc
new file mode 100644
index 0000000000..6cf1932366
--- /dev/null
+++ b/chromium/patches/patch-ui_gl_gl__implementation.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/gl_implementation.cc.orig	2024-07-24 02:45:10.680079000 +0000
++++ ui/gl/gl_implementation.cc
+@@ -272,7 +272,7 @@ GetRequestedGLImplementationFromCommandL
+   *fallback_to_software_gl = false;
+   bool overrideUseSoftwareGL =
+       command_line->HasSwitch(switches::kOverrideUseSoftwareGLForTests);
+-#if BUILDFLAG(IS_LINUX) || \
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \
+     (BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_CHROMEOS_DEVICE))
+   if (std::getenv("RUNNING_UNDER_RR")) {
+     // https://rr-project.org/ is a Linux-only record-and-replay debugger that
diff --git a/chromium/patches/patch-ui_gl_gl__switches.cc b/chromium/patches/patch-ui_gl_gl__switches.cc
new file mode 100644
index 0000000000..eeb549ee5e
--- /dev/null
+++ b/chromium/patches/patch-ui_gl_gl__switches.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/gl_switches.cc.orig	2024-07-24 02:45:10.684079400 +0000
++++ ui/gl/gl_switches.cc
+@@ -11,7 +11,7 @@
+ #include "base/android/build_info.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include <vulkan/vulkan_core.h>
+ #include "third_party/angle/src/gpu_info_util/SystemInfo.h"  // nogncheck
+ #endif
+@@ -299,7 +299,7 @@ bool IsDefaultANGLEVulkan() {
+       base::android::SDK_VERSION_Q)
+     return false;
+ #endif  // BUILDFLAG(IS_ANDROID)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   angle::SystemInfo system_info;
+   if (!angle::GetSystemInfoVulkan(&system_info))
+     return false;
+@@ -311,7 +311,7 @@ bool IsDefaultANGLEVulkan() {
+ 
+   const auto& active_gpu = system_info.gpus[system_info.activeGPUIndex];
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Vulkan 1.1 is required.
+   if (active_gpu.driverApiVersion < VK_VERSION_1_1)
+     return false;
diff --git a/chromium/patches/patch-ui_gl_sync__control__vsync__provider.cc b/chromium/patches/patch-ui_gl_sync__control__vsync__provider.cc
index c86e5118a8..b9f88b119f 100644
--- a/chromium/patches/patch-ui_gl_sync__control__vsync__provider.cc
+++ b/chromium/patches/patch-ui_gl_sync__control__vsync__provider.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/gl/sync_control_vsync_provider.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/sync_control_vsync_provider.cc.orig	2024-07-24 02:45:10.692080000 +0000
 +++ ui/gl/sync_control_vsync_provider.cc
 @@ -11,7 +11,7 @@
  #include "base/trace_event/trace_event.h"
  #include "build/build_config.h"
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  // These constants define a reasonable range for a calculated refresh interval.
  // Calculating refreshes out of this range will be considered a fatal error.
  const int64_t kMinVsyncIntervalUs = base::Time::kMicrosecondsPerSecond / 400;
@@ -15,8 +19,8 @@ $NetBSD$
  namespace gl {
  
  SyncControlVSyncProvider::SyncControlVSyncProvider() : gfx::VSyncProvider() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // On platforms where we can't get an accurate reading on the refresh
    // rate we fall back to the assumption that we're displaying 60 frames
    // per second.
@@ -24,17 +28,17 @@ $NetBSD$
      base::TimeTicks* timebase_out,
      base::TimeDelta* interval_out) {
    TRACE_EVENT0("gpu", "SyncControlVSyncProvider::GetVSyncParameters");
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // The actual clock used for the system time returned by glXGetSyncValuesOML
-   // is unspecified. In practice, the clock used is likely to be either
-   // CLOCK_REALTIME or CLOCK_MONOTONIC, so we compare the returned time to the
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   // The actual clock used for the system time returned by
+   // eglGetSyncValuesCHROMIUM is unspecified. In practice, the clock used is
+   // likely to be either CLOCK_REALTIME or CLOCK_MONOTONIC, so we compare the
 @@ -160,7 +160,7 @@ bool SyncControlVSyncProvider::GetVSyncP
  }
  
  bool SyncControlVSyncProvider::SupportGetVSyncParametersIfAvailable() const {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    return true;
  #else
    return false;
diff --git a/chromium/patches/patch-ui_gl_sync__control__vsync__provider.h b/chromium/patches/patch-ui_gl_sync__control__vsync__provider.h
index d83d3c38d2..5eba7c0fb7 100644
--- a/chromium/patches/patch-ui_gl_sync__control__vsync__provider.h
+++ b/chromium/patches/patch-ui_gl_sync__control__vsync__provider.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- ui/gl/sync_control_vsync_provider.h.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gl/sync_control_vsync_provider.h.orig	2024-07-24 02:45:10.692080000 +0000
 +++ ui/gl/sync_control_vsync_provider.h
-@@ -26,7 +26,7 @@ class SyncControlVSyncProvider : public 
+@@ -31,7 +31,7 @@ class SyncControlVSyncProvider : public 
    bool SupportGetVSyncParametersIfAvailable() const override;
  
    static constexpr bool IsSupported() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
      return true;
  #else
      return false;
-@@ -41,7 +41,7 @@ class SyncControlVSyncProvider : public 
+@@ -46,7 +46,7 @@ class SyncControlVSyncProvider : public 
    virtual bool GetMscRate(int32_t* numerator, int32_t* denominator) = 0;
  
   private:
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    base::TimeTicks last_timebase_;
    uint64_t last_media_stream_counter_ = 0;
    base::TimeDelta last_good_interval_;
diff --git a/chromium/patches/patch-ui_gtk_BUILD.gn b/chromium/patches/patch-ui_gtk_BUILD.gn
deleted file mode 100644
index cfa41d9a1e..0000000000
--- a/chromium/patches/patch-ui_gtk_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/gtk/BUILD.gn.orig	2020-06-25 09:32:24.000000000 +0000
-+++ ui/gtk/BUILD.gn
-@@ -2,7 +2,7 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- 
--assert(is_linux, "This file should only be referenced on Linux")
-+assert(is_linux || is_bsd, "This file should only be referenced on Linux")
- 
- import("//build/config/features.gni")
- import("//build/config/jumbo.gni")
diff --git a/chromium/patches/patch-ui_gtk_gtk__compat.cc b/chromium/patches/patch-ui_gtk_gtk__compat.cc
new file mode 100644
index 0000000000..6db49d54a5
--- /dev/null
+++ b/chromium/patches/patch-ui_gtk_gtk__compat.cc
@@ -0,0 +1,56 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gtk/gtk_compat.cc.orig	2024-07-24 02:45:10.692080000 +0000
++++ ui/gtk/gtk_compat.cc
+@@ -62,27 +62,47 @@ auto DlCast(void* symbol) {
+ }
+ 
+ void* GetLibGio() {
++#if BUILDFLAG(IS_BSD)
++  static void* libgio = DlOpen("libgio-2.0.so");
++#else
+   static void* libgio = DlOpen("libgio-2.0.so.0");
++#endif
+   return libgio;
+ }
+ 
+ void* GetLibGdkPixbuf() {
++#if BUILDFLAG(IS_BSD)
++  static void* libgdk_pixbuf = DlOpen("libgdk_pixbuf-2.0.so");
++#else
+   static void* libgdk_pixbuf = DlOpen("libgdk_pixbuf-2.0.so.0");
++#endif
+   return libgdk_pixbuf;
+ }
+ 
+ void* GetLibGdk3() {
++#if BUILDFLAG(IS_BSD)
++  static void* libgdk3 = DlOpen("libgdk-3.so");
++#else
+   static void* libgdk3 = DlOpen("libgdk-3.so.0");
++#endif
+   return libgdk3;
+ }
+ 
+ void* GetLibGtk3(bool check = true) {
++#if BUILDFLAG(IS_BSD)
++  static void* libgtk3 = DlOpen("libgtk-3.so", check);
++#else
+   static void* libgtk3 = DlOpen("libgtk-3.so.0", check);
++#endif
+   return libgtk3;
+ }
+ 
+ void* GetLibGtk4(bool check = true) {
++#if BUILDFLAG(IS_BSD)
++  static void* libgtk4 = DlOpen("libgtk-4.so", check);
++#else
+   static void* libgtk4 = DlOpen("libgtk-4.so.1", check);
++#endif
+   return libgtk4;
+ }
+ 
diff --git a/chromium/patches/patch-ui_gtk_printing_print__dialog__gtk.cc b/chromium/patches/patch-ui_gtk_printing_print__dialog__gtk.cc
index dd084ade1f..db3776f369 100644
--- a/chromium/patches/patch-ui_gtk_printing_print__dialog__gtk.cc
+++ b/chromium/patches/patch-ui_gtk_printing_print__dialog__gtk.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/gtk/printing/print_dialog_gtk.cc.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/gtk/printing/print_dialog_gtk.cc.orig	2024-07-24 02:45:10.696080400 +0000
 +++ ui/gtk/printing/print_dialog_gtk.cc
-@@ -352,7 +352,7 @@ void PrintDialogGtk::ShowDialog(
-   // Since we only generate PDF, only show printers that support PDF.
-   // TODO(thestig) Add more capabilities to support?
+@@ -434,7 +434,7 @@ void PrintDialogGtk::ShowDialog(
    GtkPrintCapabilities cap = static_cast<GtkPrintCapabilities>(
--      GTK_PRINT_CAPABILITY_GENERATE_PDF | GTK_PRINT_CAPABILITY_PAGE_SET |
-+      GTK_PRINT_CAPABILITY_GENERATE_PS | GTK_PRINT_CAPABILITY_GENERATE_PDF | GTK_PRINT_CAPABILITY_PAGE_SET |
+       GTK_PRINT_CAPABILITY_GENERATE_PDF | GTK_PRINT_CAPABILITY_PAGE_SET |
        GTK_PRINT_CAPABILITY_COPIES | GTK_PRINT_CAPABILITY_COLLATE |
-       GTK_PRINT_CAPABILITY_REVERSE);
+-      GTK_PRINT_CAPABILITY_REVERSE);
++      GTK_PRINT_CAPABILITY_REVERSE | GTK_PRINT_CAPABILITY_GENERATE_PS);
    gtk_print_unix_dialog_set_manual_capabilities(GTK_PRINT_UNIX_DIALOG(dialog_),
+                                                 cap);
+   gtk_print_unix_dialog_set_embed_page_setup(GTK_PRINT_UNIX_DIALOG(dialog_),
diff --git a/chromium/patches/patch-ui_message__center_views_message__popup__view.cc b/chromium/patches/patch-ui_message__center_views_message__popup__view.cc
index 1aa53c3eda..b9d15deb2d 100644
--- a/chromium/patches/patch-ui_message__center_views_message__popup__view.cc
+++ b/chromium/patches/patch-ui_message__center_views_message__popup__view.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/message_center/views/message_popup_view.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/message_center/views/message_popup_view.cc.orig	2024-07-24 02:45:10.708081700 +0000
 +++ ui/message_center/views/message_popup_view.cc
-@@ -101,7 +101,7 @@ void MessagePopupView::AutoCollapse() {
- void MessagePopupView::Show() {
-   views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
+@@ -137,7 +137,7 @@ void MessagePopupView::Show() {
    params.z_order = ui::ZOrderLevel::kFloatingWindow;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    // Make the widget explicitly activatable as TYPE_POPUP is not activatable by
    // default but we need focus for the inline reply textarea.
-   params.activatable = views::Widget::InitParams::ACTIVATABLE_YES;
+   params.activatable = views::Widget::InitParams::Activatable::kYes;
diff --git a/chromium/patches/patch-ui_native__theme_native__theme.h b/chromium/patches/patch-ui_native__theme_native__theme.h
index f71900bc44..77676ded47 100644
--- a/chromium/patches/patch-ui_native__theme_native__theme.h
+++ b/chromium/patches/patch-ui_native__theme_native__theme.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/native_theme/native_theme.h.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/native_theme/native_theme.h.orig	2024-07-24 02:45:10.712082000 +0000
 +++ ui/native_theme/native_theme.h
-@@ -51,7 +51,7 @@ class NATIVE_THEME_EXPORT NativeTheme {
-   // The part to be painted / sized.
-   enum Part {
+@@ -62,7 +62,7 @@ class NATIVE_THEME_EXPORT NativeTheme {
      kCheckbox,
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
      kFrameTopArea,
  #endif
      kInnerSpinButton,
diff --git a/chromium/patches/patch-ui_native__theme_native__theme__base.cc b/chromium/patches/patch-ui_native__theme_native__theme__base.cc
index 2e78ef3f21..b3f7a823f4 100644
--- a/chromium/patches/patch-ui_native__theme_native__theme__base.cc
+++ b/chromium/patches/patch-ui_native__theme_native__theme__base.cc
@@ -1,22 +1,17 @@
 $NetBSD$
 
---- ui/native_theme/native_theme_base.cc.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/native_theme/native_theme_base.cc.orig	2024-07-24 02:45:10.712082000 +0000
 +++ ui/native_theme/native_theme_base.cc
-@@ -255,7 +255,7 @@ void NativeThemeBase::Paint(cc::PaintCan
-     case kCheckbox:
-       PaintCheckbox(canvas, state, rect, extra.button, color_scheme);
+@@ -236,7 +236,7 @@ void NativeThemeBase::Paint(cc::PaintCan
        break;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
      case kFrameTopArea:
-       PaintFrameTopArea(canvas, state, rect, extra.frame_top_area,
-                         color_scheme);
-@@ -1483,7 +1483,7 @@ SkColor NativeThemeBase::OutlineColor(Sk
-   SkScalar min_diff =
-       base::ClampToRange((hsv1[1] + hsv2[1]) * 1.2f, 0.28f, 0.5f);
-   SkScalar diff =
--      base::ClampToRange(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
-+      base::ClampToRange(fabsf(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
- 
-   if (hsv1[2] + hsv2[2] > 1.0)
-     diff = -diff;
+       PaintFrameTopArea(canvas, state, rect,
+                         absl::get<FrameTopAreaExtraParams>(extra),
diff --git a/chromium/patches/patch-ui_native__theme_native__theme__features.cc b/chromium/patches/patch-ui_native__theme_native__theme__features.cc
new file mode 100644
index 0000000000..606fe06d52
--- /dev/null
+++ b/chromium/patches/patch-ui_native__theme_native__theme__features.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/native_theme/native_theme_features.cc.orig	2024-07-24 02:45:10.716082300 +0000
++++ ui/native_theme/native_theme_features.cc
+@@ -54,7 +54,7 @@ bool IsOverlayScrollbarEnabled() {
+ 
+ bool IsFluentScrollbarEnabled() {
+ // Fluent scrollbars are only used for some OSes due to UI design guidelines.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return base::FeatureList::IsEnabled(features::kFluentScrollbar) ||
+          IsFluentOverlayScrollbarEnabled();
+ #else
+@@ -63,7 +63,7 @@ bool IsFluentScrollbarEnabled() {
+ }
+ bool IsFluentOverlayScrollbarEnabled() {
+ // Fluent scrollbars are only used for some OSes due to UI design guidelines.
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return base::FeatureList::IsEnabled(features::kFluentOverlayScrollbar);
+ #else
+   return false;
diff --git a/chromium/patches/patch-ui_ozone_common_egl__util.cc b/chromium/patches/patch-ui_ozone_common_egl__util.cc
new file mode 100644
index 0000000000..745177c75e
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_common_egl__util.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/common/egl_util.cc.orig	2024-07-24 02:45:10.716082300 +0000
++++ ui/ozone/common/egl_util.cc
+@@ -26,9 +26,9 @@ const base::FilePath::CharType kDefaultG
+     FILE_PATH_LITERAL("libGLESv2.so");
+ #else  // BUILDFLAG(IS_FUCHSIA)
+ const base::FilePath::CharType kDefaultEglSoname[] =
+-    FILE_PATH_LITERAL("libEGL.so.1");
++    FILE_PATH_LITERAL("libEGL.so");
+ const base::FilePath::CharType kDefaultGlesSoname[] =
+-    FILE_PATH_LITERAL("libGLESv2.so.2");
++    FILE_PATH_LITERAL("libGLESv2.so");
+ #endif
+ const base::FilePath::CharType kAngleEglSoname[] =
+     FILE_PATH_LITERAL("libEGL.so");
diff --git a/chromium/patches/patch-ui_ozone_common_features.cc b/chromium/patches/patch-ui_ozone_common_features.cc
new file mode 100644
index 0000000000..1799d63663
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_common_features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/common/features.cc.orig	2024-07-24 02:45:10.716082300 +0000
++++ ui/ozone/common/features.cc
+@@ -30,7 +30,7 @@ BASE_FEATURE(kWaylandSurfaceSubmissionIn
+ // enabled.
+ BASE_FEATURE(kWaylandFractionalScaleV1,
+              "WaylandFractionalScaleV1",
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chromium/patches/patch-ui_ozone_platform_headless_headless__surface__factory.cc b/chromium/patches/patch-ui_ozone_platform_headless_headless__surface__factory.cc
new file mode 100644
index 0000000000..43496c492c
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_headless_headless__surface__factory.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/headless/headless_surface_factory.cc.orig	2024-07-24 02:45:10.740084600 +0000
++++ ui/ozone/platform/headless/headless_surface_factory.cc
+@@ -34,7 +34,7 @@
+ #include "ui/ozone/platform/headless/headless_window_manager.h"
+ #include "ui/ozone/public/surface_ozone_canvas.h"
+ 
+-#if BUILDFLAG(ENABLE_VULKAN) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA))
++#if BUILDFLAG(ENABLE_VULKAN) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD))
+ #include "ui/ozone/platform/headless/vulkan_implementation_headless.h"
+ #endif
+ 
+@@ -281,7 +281,7 @@ std::unique_ptr<gpu::VulkanImplementatio
+ HeadlessSurfaceFactory::CreateVulkanImplementation(
+     bool use_swiftshader,
+     bool allow_protected_memory) {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)
+   return std::make_unique<VulkanImplementationHeadless>(use_swiftshader);
+ #else
+   return nullptr;
diff --git a/chromium/patches/patch-ui_ozone_platform_headless_ozone__platform__headless.cc b/chromium/patches/patch-ui_ozone_platform_headless_ozone__platform__headless.cc
new file mode 100644
index 0000000000..d13794c315
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_headless_ozone__platform__headless.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/headless/ozone_platform_headless.cc.orig	2024-07-24 02:45:10.740084600 +0000
++++ ui/ozone/platform/headless/ozone_platform_headless.cc
+@@ -103,7 +103,7 @@ class OzonePlatformHeadless : public Ozo
+   }
+ 
+ // Desktop Linux, not CastOS.
+-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CASTOS)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CASTOS)
+   const PlatformProperties& GetPlatformProperties() override {
+     static base::NoDestructor<OzonePlatform::PlatformProperties> properties;
+     static bool initialized = false;
diff --git a/chromium/patches/patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc b/chromium/patches/patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc
new file mode 100644
index 0000000000..314fa2343c
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_headless_vulkan__implementation__headless.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/headless/vulkan_implementation_headless.cc.orig	2024-07-24 02:45:10.740084600 +0000
++++ ui/ozone/platform/headless/vulkan_implementation_headless.cc
+@@ -118,7 +118,7 @@ VulkanImplementationHeadless::ExportVkFe
+ 
+ VkExternalSemaphoreHandleTypeFlagBits
+ VulkanImplementationHeadless::GetExternalSemaphoreHandleType() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT;
+ #else
+   return VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT;
+@@ -128,7 +128,7 @@ VulkanImplementationHeadless::GetExterna
+ bool VulkanImplementationHeadless::CanImportGpuMemoryBuffer(
+     gpu::VulkanDeviceQueue* device_queue,
+     gfx::GpuMemoryBufferType memory_buffer_type) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   const auto& enabled_extensions = device_queue->enabled_extensions();
+   return gfx::HasExtension(enabled_extensions,
+                            VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME) &&
+@@ -151,7 +151,7 @@ VulkanImplementationHeadless::CreateImag
+       VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT |
+       VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
+   auto tiling = VK_IMAGE_TILING_OPTIMAL;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (gmb_handle.native_pixmap_handle.modifier !=
+       gfx::NativePixmapHandle::kNoModifier) {
+     tiling = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT;
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_BUILD.gn b/chromium/patches/patch-ui_ozone_platform_wayland_BUILD.gn
deleted file mode 100644
index 8e017a4924..0000000000
--- a/chromium/patches/patch-ui_ozone_platform_wayland_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/ozone/platform/wayland/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
-+++ ui/ozone/platform/wayland/BUILD.gn
-@@ -173,7 +173,7 @@ source_set("wayland") {
-     "//ui/platform_window/platform_window_handler",
-   ]
- 
--  if (is_linux && !is_chromeos) {
-+  if ((is_linux || is_bsd) && !is_chromeos) {
-     deps += [ "//ui/base/ime/linux" ]
-   }
- 
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_common_wayland__util.cc b/chromium/patches/patch-ui_ozone_platform_wayland_common_wayland__util.cc
new file mode 100644
index 0000000000..739d06c766
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_common_wayland__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/common/wayland_util.cc.orig	2024-07-24 02:45:10.744085000 +0000
++++ ui/ozone/platform/wayland/common/wayland_util.cc
+@@ -336,7 +336,7 @@ void TransformToWlArray(
+ }
+ 
+ base::TimeTicks EventMillisecondsToTimeTicks(uint32_t milliseconds) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // TODO(crbug.com/40287874): `milliseconds` comes from Weston that
+   // uses timestamp from libinput, which is different from TimeTicks.
+   // Use EventTimeForNow(), for now.
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.cc b/chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.cc
new file mode 100644
index 0000000000..36558f78dd
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/emulate/wayland_input_emulate.cc.orig	2024-07-24 02:45:10.744085000 +0000
++++ ui/ozone/platform/wayland/emulate/wayland_input_emulate.cc
+@@ -284,7 +284,7 @@ void WaylandInputEmulate::EmulateUpdateD
+ }
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void WaylandInputEmulate::ForceUseScreenCoordinatesOnce() {
+   force_use_screen_coordinates_once_ = true;
+ }
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.h b/chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.h
new file mode 100644
index 0000000000..336e04cdd1
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_emulate_wayland__input__emulate.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/emulate/wayland_input_emulate.h.orig	2024-07-24 02:45:10.744085000 +0000
++++ ui/ozone/platform/wayland/emulate/wayland_input_emulate.h
+@@ -68,7 +68,7 @@ class WaylandInputEmulate : public wl::W
+                             uint32_t request_id);
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   void ForceUseScreenCoordinatesOnce();
+ #endif
+ 
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc b/chromium/patches/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc
new file mode 100644
index 0000000000..53989381ec
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/gpu/vulkan_implementation_wayland.cc.orig	2024-07-24 02:45:10.744085000 +0000
++++ ui/ozone/platform/wayland/gpu/vulkan_implementation_wayland.cc
+@@ -38,7 +38,11 @@ bool VulkanImplementationWayland::Initia
+ 
+     path = path.Append("libvk_swiftshader.so");
+   } else {
++#if BUILDFLAG(IS_BSD)
++    path = base::FilePath("libvulkan.so");
++#else
+     path = base::FilePath("libvulkan.so.1");
++#endif
+   }
+ 
+   return vulkan_instance_.Initialize(path, required_extensions, {});
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__connection.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__connection.cc
new file mode 100644
index 0000000000..106adf2c0b
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__connection.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_connection.cc.orig	2024-07-24 02:45:10.752086000 +0000
++++ ui/ozone/platform/wayland/host/wayland_connection.cc
+@@ -532,7 +532,7 @@ bool WaylandConnection::ShouldUseOverlay
+   // isn't present on any non-exo Wayland compositors.
+   bool should_use_overlay_delegation =
+       IsWaylandOverlayDelegationEnabled() && !fractional_scale_manager_v1();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Overlay delegation also requires a single-pixel-buffer protocol, which
+   // allows creation of non-backed solid color buffers. Even though only video
+   // overlays can be supported on Linux, these color buffers are still needed
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__input__method__context.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__input__method__context.cc
new file mode 100644
index 0000000000..e05b613b59
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__input__method__context.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_input_method_context.cc.orig	2024-07-24 02:45:10.756086300 +0000
++++ ui/ozone/platform/wayland/host/wayland_input_method_context.cc
+@@ -55,7 +55,7 @@ namespace {
+ // Only enable the preedit string for sequence mode (i.e. when using dead keys
+ // or the Compose key) on Linux ozone/wayland (see b/220370007).
+ constexpr CharacterComposer::PreeditStringMode kPreeditStringMode =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     CharacterComposer::PreeditStringMode::kAlwaysEnabled;
+ #else
+     CharacterComposer::PreeditStringMode::kHexModeOnly;
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__popup.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__popup.cc
new file mode 100644
index 0000000000..49f4796311
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__popup.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_popup.cc.orig	2024-07-24 02:45:10.756086300 +0000
++++ ui/ozone/platform/wayland/host/wayland_popup.cc
+@@ -34,7 +34,7 @@ WaylandPopup::WaylandPopup(PlatformWindo
+                            WaylandWindow* parent)
+     : WaylandWindow(delegate, connection) {
+   set_parent_window(parent);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // TODO(crbug.com/330384470): Whether the popup appear depends on whether
+   // anchor point is outside of the parent xdg_surface. On Mutter the popup will
+   // not show when outside.
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.cc
new file mode 100644
index 0000000000..39687357d8
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_toplevel_window.cc.orig	2024-07-24 02:45:10.760086800 +0000
++++ ui/ozone/platform/wayland/host/wayland_toplevel_window.cc
+@@ -604,7 +604,7 @@ void WaylandToplevelWindow::HandleAuraTo
+   const bool did_active_change = is_active_ != window_states.is_activated;
+   is_active_ = window_states.is_activated;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // The tiled state affects the window geometry, so apply it here.
+   if (window_states.tiled_edges != tiled_state_) {
+     // This configure changes the decoration insets.  We should adjust the
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.h b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.h
new file mode 100644
index 0000000000..fcdae580be
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__toplevel__window.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_toplevel_window.h.orig	2024-07-24 02:45:10.760086800 +0000
++++ ui/ozone/platform/wayland/host/wayland_toplevel_window.h
+@@ -258,7 +258,7 @@ class WaylandToplevelWindow : public Way
+   // The display ID to switch to in case the state is `kFullscreen`.
+   int64_t fullscreen_display_id_ = display::kInvalidDisplayId;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Contains the current state of the tiled edges.
+   WindowTiledEdges tiled_state_;
+ #endif
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.cc
new file mode 100644
index 0000000000..c76f60c85a
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.cc
@@ -0,0 +1,50 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_window.cc.orig	2024-07-24 02:45:10.760086800 +0000
++++ ui/ozone/platform/wayland/host/wayland_window.cc
+@@ -295,7 +295,7 @@ void WaylandWindow::OnPointerFocusChange
+   // Whenever the window gets the pointer focus back, the cursor shape must be
+   // updated. Otherwise, it is invalidated upon wl_pointer::leave and is not
+   // restored by the Wayland compositor.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (focused && async_cursor_) {
+     async_cursor_->AddCursorLoadedCallback(
+         base::BindOnce(&WaylandWindow::OnCursorLoaded,
+@@ -554,7 +554,7 @@ bool WaylandWindow::ShouldUseNativeFrame
+ void WaylandWindow::SetCursor(scoped_refptr<PlatformCursor> platform_cursor) {
+   DCHECK(platform_cursor);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   auto async_cursor = WaylandAsyncCursor::FromPlatformCursor(platform_cursor);
+ 
+   if (async_cursor_ == async_cursor) {
+@@ -766,7 +766,7 @@ std::string WaylandWindow::WindowStates:
+   } else {
+     base::TrimString(states, " ", &states);
+   }
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   states += "; tiled_edges: ";
+   std::string tiled = "";
+   if (tiled_edges.left) {
+@@ -1256,12 +1256,12 @@ void WaylandWindow::UpdateCursorShape(sc
+         cursor->bitmaps(), hotspot_in_dips,
+         std::ceil(cursor->cursor_image_scale_factor()));
+   }
+-#if !BUILDFLAG(IS_LINUX)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD)
+   cursor_ = cursor;
+ #endif
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void WaylandWindow::OnCursorLoaded(scoped_refptr<WaylandAsyncCursor> cursor,
+                                    scoped_refptr<BitmapCursor> bitmap_cursor) {
+   if (HasPointerFocus() && async_cursor_ == cursor && bitmap_cursor) {
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.h b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.h
new file mode 100644
index 0000000000..4e2dbe71ff
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_wayland__window.h
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/wayland_window.h.orig	2024-07-24 02:45:10.760086800 +0000
++++ ui/ozone/platform/wayland/host/wayland_window.h
+@@ -41,7 +41,7 @@
+ #include "ui/platform_window/platform_window_init_properties.h"
+ #include "ui/platform_window/wm/wm_drag_handler.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/ozone/platform/wayland/host/wayland_async_cursor.h"
+ #endif
+ 
+@@ -269,7 +269,7 @@ class WaylandWindow : public PlatformWin
+     bool is_snapped_secondary = false;
+     bool is_floated = false;
+     bool is_pip = false;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     WindowTiledEdges tiled_edges;
+ #endif
+ 
+@@ -551,7 +551,7 @@ class WaylandWindow : public PlatformWin
+ 
+   void UpdateCursorShape(scoped_refptr<BitmapCursor> cursor);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   void OnCursorLoaded(scoped_refptr<WaylandAsyncCursor> cursor,
+                       scoped_refptr<BitmapCursor> bitmap_cursor);
+ #endif
+@@ -620,7 +620,7 @@ class WaylandWindow : public PlatformWin
+ 
+   wl::Object<zaura_surface> aura_surface_;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // The current asynchronously loaded cursor (Linux specific).
+   scoped_refptr<WaylandAsyncCursor> async_cursor_;
+ #else
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc
new file mode 100644
index 0000000000..6d3fdf389c
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_xdg__toplevel__wrapper__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc.orig	2024-07-24 02:45:10.768087400 +0000
++++ ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc
+@@ -316,7 +316,7 @@ void XDGToplevelWrapperImpl::OnToplevelC
+   window_states.is_activated =
+       CheckIfWlArrayHasValue(states, XDG_TOPLEVEL_STATE_ACTIVATED);
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (xdg_toplevel_get_version(toplevel) >=
+       XDG_TOPLEVEL_STATE_TILED_LEFT_SINCE_VERSION) {
+     // All four tiled states have the same since version, so it is enough to
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc b/chromium/patches/patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc
new file mode 100644
index 0000000000..eda53c1d54
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_host_zwp__text__input__wrapper__v1.cc
@@ -0,0 +1,27 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc.orig	2024-07-24 02:45:10.768087400 +0000
++++ ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc
+@@ -226,6 +226,10 @@ void ZWPTextInputWrapperV1::SetSurroundi
+   // so if it exceeds 16 bits, it may be broken.
+   static constexpr size_t kSizeLimit = 60000;
+   if (HasAdvancedSurroundingTextSupport() && text.length() > kSizeLimit) {
++#if defined(__FreeBSD_version) && __FreeBSD_version < 1300048
++    PLOG(ERROR) << "memfd is not supported";
++    return;
++#else
+     base::ScopedFD memfd(memfd_create("surrounding_text", MFD_CLOEXEC));
+     if (!memfd.get()) {
+       PLOG(ERROR) << "Failed to create memfd";
+@@ -238,6 +242,7 @@ void ZWPTextInputWrapperV1::SetSurroundi
+     zcr_extended_text_input_v1_set_large_surrounding_text(
+         extended_obj_.get(), memfd.get(), text.length(),
+         selection_range.start(), selection_range.end());
++#endif
+   } else {
+     zwp_text_input_v1_set_surrounding_text(obj_.get(), text.c_str(),
+                                            selection_range.start(),
diff --git a/chromium/patches/patch-ui_ozone_platform_wayland_ozone__platform__wayland.cc b/chromium/patches/patch-ui_ozone_platform_wayland_ozone__platform__wayland.cc
new file mode 100644
index 0000000000..cab669b28b
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_wayland_ozone__platform__wayland.cc
@@ -0,0 +1,60 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/wayland/ozone_platform_wayland.cc.orig	2024-07-24 02:45:10.768087400 +0000
++++ ui/ozone/platform/wayland/ozone_platform_wayland.cc
+@@ -66,13 +66,13 @@
+ #include "ui/events/ozone/layout/stub/stub_keyboard_layout_engine.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/ozone/platform/wayland/host/wayland_cursor_factory.h"
+ #else
+ #include "ui/ozone/common/bitmap_cursor_factory.h"
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/ozone/platform/wayland/host/linux_ui_delegate_wayland.h"
+ #endif
+ 
+@@ -267,7 +267,7 @@ class OzonePlatformWayland : public Ozon
+ 
+     buffer_manager_connector_ = std::make_unique<WaylandBufferManagerConnector>(
+         connection_->buffer_manager_host());
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     cursor_factory_ = std::make_unique<WaylandCursorFactory>(connection_.get());
+ #else
+     cursor_factory_ = std::make_unique<BitmapCursorFactory>();
+@@ -277,7 +277,7 @@ class OzonePlatformWayland : public Ozon
+ 
+     supported_buffer_formats_ =
+         connection_->buffer_manager_host()->GetSupportedBufferFormats();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     linux_ui_delegate_ =
+         std::make_unique<LinuxUiDelegateWayland>(connection_.get());
+ #endif
+@@ -343,7 +343,7 @@ class OzonePlatformWayland : public Ozon
+       properties->supports_global_screen_coordinates =
+           kDefaultScreenCoordinateEnabled;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       // TODO(crbug.com/40800718): Revisit (and maybe remove) once proper
+       // support, probably backed by org.freedesktop.portal.Screenshot.PickColor
+       // API is implemented. Note: this is restricted to Linux Desktop as Lacros
+@@ -536,7 +536,7 @@ class OzonePlatformWayland : public Ozon
+   DrmRenderNodePathFinder path_finder_;
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   std::unique_ptr<LinuxUiDelegateWayland> linux_ui_delegate_;
+ #endif
+ };
diff --git a/chromium/patches/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc b/chromium/patches/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc
new file mode 100644
index 0000000000..5f2db27462
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/x11/vulkan_implementation_x11.cc.orig	2024-07-24 02:45:10.780088700 +0000
++++ ui/ozone/platform/x11/vulkan_implementation_x11.cc
+@@ -59,7 +59,11 @@ bool VulkanImplementationX11::Initialize
+ 
+     path = path.Append("libvk_swiftshader.so");
+   } else {
++#if BUILDFLAG(IS_BSD) 
++    path = base::FilePath("libvulkan.so");
++#else
+     path = base::FilePath("libvulkan.so.1");
++#endif
+   }
+ 
+   return vulkan_instance_.Initialize(path, required_extensions, {});
diff --git a/chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.cc b/chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.cc
new file mode 100644
index 0000000000..23b07c04a5
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/x11/x11_screen_ozone.cc.orig	2024-07-24 02:45:10.780088700 +0000
++++ ui/ozone/platform/x11/x11_screen_ozone.cc
+@@ -22,7 +22,7 @@
+ #include "ui/ozone/platform/x11/x11_window.h"
+ #include "ui/ozone/platform/x11/x11_window_manager.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+ 
+@@ -97,7 +97,7 @@ X11ScreenOzone::X11ScreenOzone()
+       window_manager_(X11WindowManager::GetInstance()),
+       x11_display_manager_(std::make_unique<XDisplayManager>(this)) {
+   DCHECK(window_manager_);
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (auto* linux_ui = ui::LinuxUi::instance()) {
+     display_scale_factor_observer_.Observe(linux_ui);
+   }
+@@ -260,7 +260,7 @@ void X11ScreenOzone::OnEvent(const x11::
+   x11_display_manager_->OnEvent(xev);
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void X11ScreenOzone::OnDeviceScaleFactorChanged() {
+   x11_display_manager_->DispatchDelayedDisplayListUpdate();
+ }
diff --git a/chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.h b/chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.h
new file mode 100644
index 0000000000..78d4fa6378
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_x11_x11__screen__ozone.h
@@ -0,0 +1,44 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/x11/x11_screen_ozone.h.orig	2024-07-24 02:45:10.780088700 +0000
++++ ui/ozone/platform/x11/x11_screen_ozone.h
+@@ -16,7 +16,7 @@
+ #include "ui/gfx/x/event.h"
+ #include "ui/ozone/public/platform_screen.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/device_scale_factor_observer.h"
+ #include "ui/linux/linux_ui.h"
+ #endif
+@@ -29,7 +29,7 @@ class X11WindowManager;
+ class X11ScreenOzone : public PlatformScreen,
+                        public x11::EventObserver,
+                        public XDisplayManager::Delegate
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     ,
+                        public DeviceScaleFactorObserver
+ #endif
+@@ -97,7 +97,7 @@ class X11ScreenOzone : public PlatformSc
+   // ui::XDisplayManager::Delegate:
+   void OnXDisplayListUpdated() override;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // DeviceScaleFactorObserver:
+   void OnDeviceScaleFactorChanged() override;
+ #endif
+@@ -109,7 +109,7 @@ class X11ScreenOzone : public PlatformSc
+   // Indicates that |this| is initialized.
+   bool initialized_ = false;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   base::ScopedObservation<ui::LinuxUi, DeviceScaleFactorObserver>
+       display_scale_factor_observer_{this};
+ #endif
diff --git a/chromium/patches/patch-ui_ozone_platform_x11_x11__window.cc b/chromium/patches/patch-ui_ozone_platform_x11_x11__window.cc
new file mode 100644
index 0000000000..0c870b9134
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_platform_x11_x11__window.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/platform/x11/x11_window.cc.orig	2024-07-24 02:45:10.784089000 +0000
++++ ui/ozone/platform/x11/x11_window.cc
+@@ -1497,7 +1497,7 @@ void X11Window::OnXWindowStateChanged() 
+   WindowTiledEdges tiled_state = GetTiledState();
+   if (tiled_state != tiled_state_) {
+     tiled_state_ = tiled_state;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     platform_window_delegate_->OnWindowTiledStateChanged(tiled_state);
+     UpdateDecorationInsets();
+ #endif
diff --git a/chromium/patches/patch-ui_ozone_test_mock__platform__window__delegate.h b/chromium/patches/patch-ui_ozone_test_mock__platform__window__delegate.h
new file mode 100644
index 0000000000..b136791417
--- /dev/null
+++ b/chromium/patches/patch-ui_ozone_test_mock__platform__window__delegate.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/ozone/test/mock_platform_window_delegate.h.orig	2024-07-24 02:45:10.788089300 +0000
++++ ui/ozone/test/mock_platform_window_delegate.h
+@@ -35,7 +35,7 @@ class MockPlatformWindowDelegate : publi
+   MOCK_METHOD2(OnWindowStateChanged,
+                void(PlatformWindowState old_state,
+                     PlatformWindowState new_state));
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   MOCK_METHOD1(OnWindowTiledStateChanged,
+                void(WindowTiledEdges new_tiled_edges));
+ #endif
diff --git a/chromium/patches/patch-ui_platform__window_common_BUILD.gn b/chromium/patches/patch-ui_platform__window_common_BUILD.gn
deleted file mode 100644
index 38227b6619..0000000000
--- a/chromium/patches/patch-ui_platform__window_common_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/platform_window/common/BUILD.gn.orig	2020-06-25 09:32:24.000000000 +0000
-+++ ui/platform_window/common/BUILD.gn
-@@ -4,7 +4,7 @@
- 
- import("//build/config/ui.gni")
- 
--assert(is_linux)
-+assert(is_linux || is_bsd)
- 
- component("common") {
-   output_name = "platform_window_common"
diff --git a/chromium/patches/patch-ui_platform__window_extensions_BUILD.gn b/chromium/patches/patch-ui_platform__window_extensions_BUILD.gn
deleted file mode 100644
index e9060855cc..0000000000
--- a/chromium/patches/patch-ui_platform__window_extensions_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/platform_window/extensions/BUILD.gn.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/platform_window/extensions/BUILD.gn
-@@ -19,7 +19,7 @@ source_set("extensions") {
-     "//ui/platform_window",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "x11_extension.cc",
-       "x11_extension.h",
diff --git a/chromium/patches/patch-ui_platform__window_platform__window__delegate.cc b/chromium/patches/patch-ui_platform__window_platform__window__delegate.cc
new file mode 100644
index 0000000000..ed549b528e
--- /dev/null
+++ b/chromium/patches/patch-ui_platform__window_platform__window__delegate.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/platform_window/platform_window_delegate.cc.orig	2024-07-24 02:45:10.788089300 +0000
++++ ui/platform_window/platform_window_delegate.cc
+@@ -61,7 +61,7 @@ gfx::Insets PlatformWindowDelegate::Calc
+   return gfx::Insets();
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void PlatformWindowDelegate::OnWindowTiledStateChanged(
+     WindowTiledEdges new_tiled_edges) {}
+ #endif
diff --git a/chromium/patches/patch-ui_platform__window_platform__window__delegate.h b/chromium/patches/patch-ui_platform__window_platform__window__delegate.h
new file mode 100644
index 0000000000..ba43fcb0ce
--- /dev/null
+++ b/chromium/patches/patch-ui_platform__window_platform__window__delegate.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/platform_window/platform_window_delegate.h.orig	2024-07-24 02:45:10.788089300 +0000
++++ ui/platform_window/platform_window_delegate.h
+@@ -181,7 +181,7 @@ class COMPONENT_EXPORT(PLATFORM_WINDOW) 
+   virtual void OnWindowStateChanged(PlatformWindowState old_state,
+                                     PlatformWindowState new_state) = 0;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Notifies the delegate that the tiled state of the window edges has changed.
+   virtual void OnWindowTiledStateChanged(WindowTiledEdges new_tiled_edges);
+ #endif
diff --git a/chromium/patches/patch-ui_platform__window_platform__window__init__properties.h b/chromium/patches/patch-ui_platform__window_platform__window__init__properties.h
index e2976bc26f..38fc0d3c4d 100644
--- a/chromium/patches/patch-ui_platform__window_platform__window__init__properties.h
+++ b/chromium/patches/patch-ui_platform__window_platform__window__init__properties.h
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- ui/platform_window/platform_window_init_properties.h.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/platform_window/platform_window_init_properties.h.orig	2024-07-24 02:45:10.788089300 +0000
 +++ ui/platform_window/platform_window_init_properties.h
-@@ -41,7 +41,7 @@ enum class PlatformWindowOpacity {
- 
- class WorkspaceExtensionDelegate;
+@@ -56,7 +56,7 @@ class WorkspaceExtensionDelegate;
+ class ScenicWindowDelegate;
+ #endif
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  class X11ExtensionDelegate;
  #endif
  
-@@ -82,7 +82,7 @@ struct COMPONENT_EXPORT(PLATFORM_WINDOW)
+@@ -121,7 +121,7 @@ struct COMPONENT_EXPORT(PLATFORM_WINDOW)
  
-   WorkspaceExtensionDelegate* workspace_extension_delegate = nullptr;
+   PlatformWindowShadowType shadow_type = PlatformWindowShadowType::kDefault;
  
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    bool prefer_dark_theme = false;
-   gfx::ImageSkia* icon = nullptr;
-   base::Optional<int> background_color;
+   raw_ptr<gfx::ImageSkia> icon = nullptr;
+   std::optional<SkColor> background_color;
diff --git a/chromium/patches/patch-ui_qt_BUILD.gn b/chromium/patches/patch-ui_qt_BUILD.gn
new file mode 100644
index 0000000000..e038a94582
--- /dev/null
+++ b/chromium/patches/patch-ui_qt_BUILD.gn
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/qt/BUILD.gn.orig	2024-07-24 02:45:10.792089700 +0000
++++ ui/qt/BUILD.gn
+@@ -20,7 +20,7 @@ config("qt_internal_config") {
+ 
+   # It's OK to depend on the system libstdc++ since it's a dependency of QT, so
+   # it will get loaded into the process anyway.
+-  libs = [ "stdc++" ]
++  # libs = [ "stdc++" ]
+ 
+   configs = [
+     "//build/config/linux:runtime_library",
diff --git a/chromium/patches/patch-ui_qt_qt.gni b/chromium/patches/patch-ui_qt_qt.gni
new file mode 100644
index 0000000000..71b17cebde
--- /dev/null
+++ b/chromium/patches/patch-ui_qt_qt.gni
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/qt/qt.gni.orig	2024-07-24 02:45:10.792089700 +0000
++++ ui/qt/qt.gni
+@@ -14,7 +14,7 @@ declare_args() {
+ 
+ declare_args() {
+   if (!use_sysroot && use_qt) {
+-    moc_qt5_path = ""
++    moc_qt5_path = "@QTDIR@/bin"
+   }
+ }
+ 
diff --git a/chromium/patches/patch-ui_shell__dialogs_BUILD.gn b/chromium/patches/patch-ui_shell__dialogs_BUILD.gn
deleted file mode 100644
index 152594f208..0000000000
--- a/chromium/patches/patch-ui_shell__dialogs_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/shell_dialogs/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
-+++ ui/shell_dialogs/BUILD.gn
-@@ -34,7 +34,7 @@ jumbo_component("shell_dialogs") {
-     "shell_dialogs_export.h",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     sources += [
-       "shell_dialog_linux.cc",
-       "shell_dialog_linux.h",
diff --git a/chromium/patches/patch-ui_strings_app__locale__settings.grd b/chromium/patches/patch-ui_strings_app__locale__settings.grd
deleted file mode 100644
index 10964d9f80..0000000000
--- a/chromium/patches/patch-ui_strings_app__locale__settings.grd
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/strings/app_locale_settings.grd.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/strings/app_locale_settings.grd
-@@ -217,7 +217,7 @@
-           75%
-         </message>
-       </if>
--      <if expr="(is_linux or is_android or is_bsd) and not chromeos">
-+      <if expr="is_posix and not chromeos">
-         <!-- The font used in Web UI (e.g. History). Note that these are only
-              backups. We try to use the system font if possible. -->
-         <message name="IDS_WEB_FONT_FAMILY" use_name_for_id="true">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__bn.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__bn.xtb
new file mode 100644
index 0000000000..993cdcc9b2
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__bn.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_bn.xtb.orig	2024-07-24 02:45:10.808091400 +0000
++++ ui/strings/translations/app_locale_settings_bn.xtb
+@@ -10,7 +10,7 @@
+   <translation id="IDS_WEB_FONT_FAMILY">Vrinda</translation>
+   <translation id="IDS_WEB_FONT_FAMILY_XP">Vrinda</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+   <translation id="IDS_WEB_FONT_FAMILY">Lohit Bengali</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__ja.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__ja.xtb
new file mode 100644
index 0000000000..12f675b055
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__ja.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_ja.xtb.orig	2024-07-24 02:45:10.812091600 +0000
++++ ui/strings/translations/app_locale_settings_ja.xtb
+@@ -12,7 +12,7 @@
+ <if expr="is_ios">
+   <translation id="IDS_WEB_FONT_FAMILY">Helvetica,Hiragino Kaku Gothic ProN,sans-serif</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+   <translation id="IDS_WEB_FONT_FAMILY">VL PGothic,Sazanami Gothic,Kochi Gothic,sans-serif</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__ko.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__ko.xtb
new file mode 100644
index 0000000000..7d986eb763
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__ko.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_ko.xtb.orig	2024-07-24 02:45:10.812091600 +0000
++++ ui/strings/translations/app_locale_settings_ko.xtb
+@@ -12,7 +12,7 @@
+ <if expr="is_ios">
+   <translation id="IDS_WEB_FONT_FAMILY">Helvetica,Apple SD Gothic Neo,AppleGothic,sans-serif</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+   <translation id="IDS_WEB_FONT_FAMILY">Noto Sans CJK KR,NanumGothic,UnDotum,Baekmuk Gulim,sans-serif</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__ml.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__ml.xtb
new file mode 100644
index 0000000000..5c45022fbc
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__ml.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_ml.xtb.orig	2024-07-24 02:45:10.812091600 +0000
++++ ui/strings/translations/app_locale_settings_ml.xtb
+@@ -9,7 +9,7 @@
+   <translation id="IDS_WEB_FONT_FAMILY">'Segoe UI',Arial,AnjaliOldLipi,Rachana,Kartika</translation>
+   <translation id="IDS_WEB_FONT_FAMILY_XP">Arial,AnjaliOldLipi,Rachana,Kartika</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+   <translation id="IDS_WEB_FONT_FAMILY">Arial,AnjaliOldLipi,Rachana,Kartika,sans-serif</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__th.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__th.xtb
new file mode 100644
index 0000000000..14199e4595
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__th.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_th.xtb.orig	2024-07-24 02:45:10.812091600 +0000
++++ ui/strings/translations/app_locale_settings_th.xtb
+@@ -6,7 +6,7 @@
+   <translation id="IDS_WEB_FONT_FAMILY">Tahoma,sans-serif</translation>
+   <translation id="IDS_WEB_FONT_FAMILY_XP">Tahoma,sans-serif</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+   <translation id="IDS_WEB_FONT_FAMILY">Norasi,Waree,Garuda,Loma,sans-serif</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-CN.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-CN.xtb
new file mode 100644
index 0000000000..1f7d10c0fe
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-CN.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_zh-CN.xtb.orig	2024-07-24 02:45:10.812091600 +0000
++++ ui/strings/translations/app_locale_settings_zh-CN.xtb
+@@ -12,7 +12,7 @@
+ <if expr="is_ios">
+   <translation id="IDS_WEB_FONT_FAMILY">Helvetica,PingFang SC,STHeiti,sans-serif</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+   <translation id="IDS_WEB_FONT_FAMILY">Noto Sans CJK SC, WenQuanYi Zen Hei, sans-serif</translation>
+ </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-TW.xtb b/chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-TW.xtb
new file mode 100644
index 0000000000..3a75d18b21
--- /dev/null
+++ b/chromium/patches/patch-ui_strings_translations_app__locale__settings__zh-TW.xtb
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/strings/translations/app_locale_settings_zh-TW.xtb.orig	2024-07-24 02:45:10.812091600 +0000
++++ ui/strings/translations/app_locale_settings_zh-TW.xtb
+@@ -12,7 +12,7 @@
+ <if expr="is_ios">
+   <translation id="IDS_WEB_FONT_FAMILY">Helvetica,PingFang TC,Heiti TC,sans-serif</translation>
+ </if>
+-<if expr="is_linux">
++<if expr="is_posix">
+   <translation id="IDS_WEB_FONT_FAMILY">Noto Sans CJK TC, WenQuanYi Zen Hei, sans-serif</translation>
+   </if>
+ <if expr="is_chromeos">
diff --git a/chromium/patches/patch-ui_views_BUILD.gn b/chromium/patches/patch-ui_views_BUILD.gn
deleted file mode 100644
index 5acebc4f13..0000000000
--- a/chromium/patches/patch-ui_views_BUILD.gn
+++ /dev/null
@@ -1,60 +0,0 @@
-$NetBSD$
-
---- ui/views/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
-+++ ui/views/BUILD.gn
-@@ -521,12 +521,12 @@ jumbo_component("views") {
-     deps += [ "//ui/display/util" ]
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     public += [ "color_chooser/color_chooser_view.h" ]
-     sources += [ "color_chooser/color_chooser_view.cc" ]
-   }
- 
--  if (is_linux && !is_chromeos) {
-+  if ((is_linux || is_bsd) && !is_chromeos) {
-     sources -= [ "window/window_button_order_provider.cc" ]
-     public_deps += [ "//ui/base/cursor:theme_manager" ]
-     deps += [
-@@ -791,7 +791,7 @@ jumbo_component("views") {
-           "widget/desktop_aura/desktop_screen_ozone.cc",
-         ]
-       }
--      if (is_linux) {
-+      if (is_linux || is_bsd) {
-         public += [ "widget/desktop_aura/desktop_window_tree_host_linux.h" ]
-         sources += [
-           "style/platform_style_linux.cc",
-@@ -805,7 +805,7 @@ jumbo_component("views") {
-           "//ui/platform_window/extensions",
-         ]
-       }
--      if (is_linux || is_fuchsia) {
-+      if (is_linux || is_fuchsia || is_bsd) {
-         public += [
-           "widget/desktop_aura/desktop_window_tree_host_platform.h",
-           "widget/desktop_aura/window_move_client_platform.h",
-@@ -1190,7 +1190,7 @@ test("views_unittests") {
-     ]
-   }
- 
--  if (is_linux && !is_chromeos) {
-+  if ((is_linux || is_bsd) && !is_chromeos) {
-     deps += [ "//ui/base/ime/linux" ]
-   }
- 
-@@ -1282,11 +1282,11 @@ test("views_unittests") {
-         ]
-         deps += [ "//ui/base/x:test_support" ]
-       }
--      if (is_linux || is_fuchsia) {
-+      if (is_linux || is_fuchsia || is_bsd) {
-         sources += [
-           "widget/desktop_aura/desktop_window_tree_host_platform_unittest.cc",
-         ]
--        if (is_linux) {
-+        if (is_linux || is_bsd) {
-           sources += [
-             "widget/desktop_aura/desktop_window_tree_host_linux_unittest.cc",
-           ]
diff --git a/chromium/patches/patch-ui_views_bubble_bubble__dialog__delegate__view.cc b/chromium/patches/patch-ui_views_bubble_bubble__dialog__delegate__view.cc
deleted file mode 100644
index 33a71ce3c7..0000000000
--- a/chromium/patches/patch-ui_views_bubble_bubble__dialog__delegate__view.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/views/bubble/bubble_dialog_delegate_view.cc.orig	2020-07-15 18:56:49.000000000 +0000
-+++ ui/views/bubble/bubble_dialog_delegate_view.cc
-@@ -283,7 +283,7 @@ Widget* BubbleDialogDelegate::CreateBubb
-   bubble_delegate->SetAnchorView(bubble_delegate->GetAnchorView());
-   Widget* bubble_widget = CreateBubbleWidget(bubble_delegate);
- 
--#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_MACOSX)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)) || defined(OS_MACOSX)
-   // Linux clips bubble windows that extend outside their parent window bounds.
-   // Mac never adjusts.
-   bubble_delegate->set_adjust_if_offscreen(false);
diff --git a/chromium/patches/patch-ui_views_controls_label.cc b/chromium/patches/patch-ui_views_controls_label.cc
deleted file mode 100644
index cae25cf470..0000000000
--- a/chromium/patches/patch-ui_views_controls_label.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- ui/views/controls/label.cc.orig	2020-07-15 18:56:49.000000000 +0000
-+++ ui/views/controls/label.cc
-@@ -710,7 +710,7 @@ bool Label::OnMousePressed(const ui::Mou
-     GetFocusManager()->SetFocusedView(this);
-   }
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   if (event.IsOnlyMiddleMouseButton() && GetFocusManager() && !had_focus)
-     GetFocusManager()->SetFocusedView(this);
- #endif
-@@ -896,7 +896,7 @@ bool Label::PasteSelectionClipboard() {
- }
- 
- void Label::UpdateSelectionClipboard() {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   if (!GetObscured()) {
-     ui::ScopedClipboardWriter(ui::ClipboardBuffer::kSelection)
-         .WriteText(GetSelectedText());
diff --git a/chromium/patches/patch-ui_views_controls_prefix__selector.cc b/chromium/patches/patch-ui_views_controls_prefix__selector.cc
new file mode 100644
index 0000000000..62460a0d6a
--- /dev/null
+++ b/chromium/patches/patch-ui_views_controls_prefix__selector.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/controls/prefix_selector.cc.orig	2024-07-24 02:45:10.900100200 +0000
++++ ui/views/controls/prefix_selector.cc
+@@ -174,7 +174,7 @@ bool PrefixSelector::ShouldDoLearning() 
+   return false;
+ }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ bool PrefixSelector::SetCompositionFromExistingText(
+     const gfx::Range& range,
+     const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) {
diff --git a/chromium/patches/patch-ui_views_controls_prefix__selector.h b/chromium/patches/patch-ui_views_controls_prefix__selector.h
new file mode 100644
index 0000000000..fddff3d8f2
--- /dev/null
+++ b/chromium/patches/patch-ui_views_controls_prefix__selector.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/controls/prefix_selector.h.orig	2024-07-24 02:45:10.900100200 +0000
++++ ui/views/controls/prefix_selector.h
+@@ -83,7 +83,7 @@ class VIEWS_EXPORT PrefixSelector : publ
+   ukm::SourceId GetClientSourceForMetrics() const override;
+   bool ShouldDoLearning() override;
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   bool SetCompositionFromExistingText(
+       const gfx::Range& range,
+       const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override;
diff --git a/chromium/patches/patch-ui_views_controls_textfield_textfield.cc b/chromium/patches/patch-ui_views_controls_textfield_textfield.cc
index 00bff20812..16ac28b886 100644
--- a/chromium/patches/patch-ui_views_controls_textfield_textfield.cc
+++ b/chromium/patches/patch-ui_views_controls_textfield_textfield.cc
@@ -1,75 +1,70 @@
 $NetBSD$
 
---- ui/views/controls/textfield/textfield.cc.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/controls/textfield/textfield.cc.orig	2024-07-24 02:45:10.908101000 +0000
 +++ ui/views/controls/textfield/textfield.cc
-@@ -64,7 +64,7 @@
+@@ -91,7 +91,7 @@
  #include "base/win/win_util.h"
  #endif
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/base/ime/linux/text_edit_command_auralinux.h"  // nogncheck
- #include "ui/base/ime/linux/text_edit_key_bindings_delegate_auralinux.h"  // nogncheck
- #endif
-@@ -185,14 +185,14 @@ ui::TextEditCommand GetCommandForKeyEven
- #endif
-         return ui::TextEditCommand::DELETE_BACKWARD;
-       }
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-       // Only erase by line break on Linux and ChromeOS.
-       if (shift)
-         return ui::TextEditCommand::DELETE_TO_BEGINNING_OF_LINE;
- #endif
-       return ui::TextEditCommand::DELETE_WORD_BACKWARD;
-     case ui::VKEY_DELETE:
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-       // Only erase by line break on Linux and ChromeOS.
-       if (shift && control)
-         return ui::TextEditCommand::DELETE_TO_END_OF_LINE;
-@@ -260,7 +260,7 @@ bool IsControlKeyModifier(int flags) {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/base/ime/linux/text_edit_command_auralinux.h"
+ #include "ui/base/ime/text_input_flags.h"
+ #include "ui/linux/linux_ui.h"
+@@ -189,7 +189,7 @@ bool IsControlKeyModifier(int flags) {
  // Control-modified key combination, but we cannot extend it to other platforms
  // as Control has different meanings and behaviors.
  // https://crrev.com/2580483002/#msg46
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    return flags & ui::EF_CONTROL_DOWN;
  #else
    return false;
-@@ -711,7 +711,7 @@ bool Textfield::OnMousePressed(const ui:
- #endif
-   }
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   if (!handled && !had_focus && event.IsOnlyMiddleMouseButton())
-     RequestFocusWithPointer(ui::EventPointerType::kMouse);
- #endif
-@@ -757,7 +757,7 @@ bool Textfield::OnKeyPressed(const ui::K
+@@ -747,7 +747,7 @@ bool Textfield::OnKeyPressed(const ui::K
    if (!textfield)
      return handled;
  
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   ui::TextEditKeyBindingsDelegateAuraLinux* delegate =
-       ui::GetTextEditKeyBindingsDelegate();
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   auto* linux_ui = ui::LinuxUi::instance();
    std::vector<ui::TextEditCommandAuraLinux> commands;
-@@ -909,7 +909,7 @@ void Textfield::AboutToRequestFocusFromT
+   if (!handled && linux_ui &&
+@@ -930,7 +930,7 @@ void Textfield::AboutToRequestFocusFromT
  }
  
  bool Textfield::SkipDefaultKeyEventProcessing(const ui::KeyEvent& event) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    // Skip any accelerator handling that conflicts with custom keybindings.
-   ui::TextEditKeyBindingsDelegateAuraLinux* delegate =
-       ui::GetTextEditKeyBindingsDelegate();
-@@ -2195,7 +2195,7 @@ bool Textfield::PasteSelectionClipboard(
+   auto* linux_ui = ui::LinuxUi::instance();
+   std::vector<ui::TextEditCommandAuraLinux> commands;
+@@ -1997,7 +1997,7 @@ bool Textfield::ShouldDoLearning() {
+   return false;
  }
  
- void Textfield::UpdateSelectionClipboard() {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   if (text_input_type_ != ui::TEXT_INPUT_TYPE_PASSWORD) {
-     ui::ScopedClipboardWriter(ui::ClipboardBuffer::kSelection)
-         .WriteText(GetSelectedText());
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ // TODO(crbug.com/41452689): Implement this method to support Korean IME
+ // reconversion feature on native text fields (e.g. find bar).
+ bool Textfield::SetCompositionFromExistingText(
+@@ -2501,14 +2501,14 @@ ui::TextEditCommand Textfield::GetComman
+ #endif
+         return ui::TextEditCommand::DELETE_BACKWARD;
+       }
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+       // Only erase by line break on Linux and ChromeOS.
+       if (shift)
+         return ui::TextEditCommand::DELETE_TO_BEGINNING_OF_LINE;
+ #endif
+       return ui::TextEditCommand::DELETE_WORD_BACKWARD;
+     case ui::VKEY_DELETE:
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+       // Only erase by line break on Linux and ChromeOS.
+       if (shift && control)
+         return ui::TextEditCommand::DELETE_TO_END_OF_LINE;
diff --git a/chromium/patches/patch-ui_views_controls_textfield_textfield.h b/chromium/patches/patch-ui_views_controls_textfield_textfield.h
new file mode 100644
index 0000000000..8a9310f01c
--- /dev/null
+++ b/chromium/patches/patch-ui_views_controls_textfield_textfield.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/controls/textfield/textfield.h.orig	2024-07-24 02:45:10.908101000 +0000
++++ ui/views/controls/textfield/textfield.h
+@@ -47,7 +47,7 @@
+ #include "ui/views/view_observer.h"
+ #include "ui/views/word_lookup_client.h"
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include <vector>
+ #endif
+ 
+@@ -462,7 +462,7 @@ class VIEWS_EXPORT Textfield : public Vi
+   // Set whether the text should be used to improve typing suggestions.
+   void SetShouldDoLearning(bool value) { should_do_learning_ = value; }
+ 
+-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+   bool SetCompositionFromExistingText(
+       const gfx::Range& range,
+       const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override;
diff --git a/chromium/patches/patch-ui_views_controls_webview_BUILD.gn b/chromium/patches/patch-ui_views_controls_webview_BUILD.gn
deleted file mode 100644
index c20441cabd..0000000000
--- a/chromium/patches/patch-ui_views_controls_webview_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/views/controls/webview/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
-+++ ui/views/controls/webview/BUILD.gn
-@@ -59,7 +59,7 @@ jumbo_component("webview") {
-     "//ui/views",
-   ]
- 
--  if (is_linux || is_android || is_fuchsia) {
-+  if (is_linux || is_android || is_fuchsia || is_bsd) {
-     sources += [ "unhandled_keyboard_event_handler_default.cc" ]
-   }
- }
diff --git a/chromium/patches/patch-ui_views_corewm_tooltip__aura.cc b/chromium/patches/patch-ui_views_corewm_tooltip__aura.cc
index 9650aaa147..d563ff76e0 100644
--- a/chromium/patches/patch-ui_views_corewm_tooltip__aura.cc
+++ b/chromium/patches/patch-ui_views_corewm_tooltip__aura.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/views/corewm/tooltip_aura.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/corewm/tooltip_aura.cc.orig	2024-07-24 02:45:10.916101700 +0000
 +++ ui/views/corewm/tooltip_aura.cc
-@@ -46,7 +46,7 @@ constexpr int kVerticalPaddingBottom = 5
- 
- // TODO(varkha): Update if native widget can be transparent on Linux.
+@@ -36,7 +36,7 @@ namespace {
  bool CanUseTranslucentTooltipWidget() {
--#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_WIN)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)) || defined(OS_WIN)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_WIN)
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)
    return false;
  #else
    return true;
diff --git a/chromium/patches/patch-ui_views_examples_BUILD.gn b/chromium/patches/patch-ui_views_examples_BUILD.gn
deleted file mode 100644
index 1d2614b87f..0000000000
--- a/chromium/patches/patch-ui_views_examples_BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/views/examples/BUILD.gn.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/views/examples/BUILD.gn
-@@ -145,7 +145,7 @@ source_set("views_examples_proc") {
-     "//ui/views:test_support",
-   ]
- 
--  if (is_win || is_mac || (is_linux && !is_chromeos)) {
-+  if (is_win || is_mac || ((is_linux || is_bsd) && !is_chromeos)) {
-     sources += [
-       "examples_skia_gold_pixel_diff.cc",
-       "examples_skia_gold_pixel_diff.h",
diff --git a/chromium/patches/patch-ui_views_examples_widget__example.cc b/chromium/patches/patch-ui_views_examples_widget__example.cc
index 3efcb02eee..a74b39bf13 100644
--- a/chromium/patches/patch-ui_views_examples_widget__example.cc
+++ b/chromium/patches/patch-ui_views_examples_widget__example.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/views/examples/widget_example.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/examples/widget_example.cc.orig	2024-07-24 02:45:10.928103000 +0000
 +++ ui/views/examples/widget_example.cc
-@@ -79,7 +79,7 @@ void WidgetExample::CreateExampleView(Vi
-               DIALOG);
-   BuildButton(container, GetStringUTF16(IDS_WIDGET_MODAL_BUTTON_LABEL),
-               MODAL_DIALOG);
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
+@@ -49,7 +49,7 @@ void WidgetExample::CreateExampleView(Vi
+   modal_button->SetCallback(
+       base::BindRepeating(&WidgetExample::CreateDialogWidget,
+                           base::Unretained(this), modal_button, true));
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
    // Windows does not support TYPE_CONTROL top-level widgets.
-   BuildButton(container, GetStringUTF16(IDS_WIDGET_CHILD_WIDGET_BUTTON_LABEL),
-               CHILD);
+   LabelButton* control_button = BuildButton(
+       container, GetStringUTF16(IDS_WIDGET_CHILD_WIDGET_BUTTON_LABEL));
diff --git a/chromium/patches/patch-ui_views_focus_focus__manager.cc b/chromium/patches/patch-ui_views_focus_focus__manager.cc
new file mode 100644
index 0000000000..06f7d45f73
--- /dev/null
+++ b/chromium/patches/patch-ui_views_focus_focus__manager.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/focus/focus_manager.cc.orig	2024-07-24 02:45:10.928103000 +0000
++++ ui/views/focus/focus_manager.cc
+@@ -582,7 +582,7 @@ bool FocusManager::RedirectAcceleratorTo
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   // Processing an accelerator can delete things. Because we
+   // need these objects afterwards on Linux, save widget_ as weak pointer and
+   // save the close_on_deactivate property value of widget_delegate in a
+@@ -599,7 +599,7 @@ bool FocusManager::RedirectAcceleratorTo
+ 
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
+   // Need to manually close the bubble widget on Linux. On Linux when the
+   // bubble is shown, the main widget remains active. Because of that when
+   // focus is set to the main widget to process accelerator, the main widget
diff --git a/chromium/patches/patch-ui_views_selection__controller.cc b/chromium/patches/patch-ui_views_selection__controller.cc
deleted file mode 100644
index 1f0ee00797..0000000000
--- a/chromium/patches/patch-ui_views_selection__controller.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/views/selection_controller.cc.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/views/selection_controller.cc
-@@ -23,7 +23,7 @@ SelectionController::SelectionController
-       delegate_(delegate),
-       handles_selection_clipboard_(false) {
- // On Linux, update the selection clipboard on a text selection.
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   set_handles_selection_clipboard(true);
- #endif
- 
diff --git a/chromium/patches/patch-ui_views_style_platform__style.cc b/chromium/patches/patch-ui_views_style_platform__style.cc
index c43b9fe113..c40c1efaab 100644
--- a/chromium/patches/patch-ui_views_style_platform__style.cc
+++ b/chromium/patches/patch-ui_views_style_platform__style.cc
@@ -1,13 +1,35 @@
 $NetBSD$
 
---- ui/views/style/platform_style.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/style/platform_style.cc.orig	2024-07-24 02:45:10.944104400 +0000
 +++ ui/views/style/platform_style.cc
-@@ -74,7 +74,7 @@ gfx::Range PlatformStyle::RangeToDeleteB
+@@ -17,7 +17,7 @@
+ #include "ui/views/controls/focusable_border.h"
+ #include "ui/views/controls/scrollbar/scroll_bar_views.h"
  
- #endif  // OS_MACOSX
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/views/controls/scrollbar/overlay_scroll_bar.h"
+ #endif
  
--#if !BUILDFLAG(ENABLE_DESKTOP_AURA) || !defined(OS_LINUX)
-+#if !BUILDFLAG(ENABLE_DESKTOP_AURA) || (!defined(OS_LINUX) && !defined(OS_BSD))
+@@ -50,7 +50,7 @@ const View::FocusBehavior PlatformStyle:
+ // Linux clips bubble windows that extend outside their parent window
+ // bounds.
+ const bool PlatformStyle::kAdjustBubbleIfOffscreen =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     false;
+ #else
+     true;
+@@ -59,7 +59,7 @@ const bool PlatformStyle::kAdjustBubbleI
  // static
- std::unique_ptr<Border> PlatformStyle::CreateThemedLabelButtonBorder(
-     LabelButton* button) {
+ std::unique_ptr<ScrollBar> PlatformStyle::CreateScrollBar(
+     ScrollBar::Orientation orientation) {
+-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   return std::make_unique<OverlayScrollBar>(orientation);
+ #else
+   return std::make_unique<ScrollBarViews>(orientation);
diff --git a/chromium/patches/patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc b/chromium/patches/patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc
new file mode 100644
index 0000000000..c4e19cd50e
--- /dev/null
+++ b/chromium/patches/patch-ui_views_test_ui__controls__factory__desktop__aura__ozone.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/test/ui_controls_factory_desktop_aura_ozone.cc.orig	2024-07-24 02:45:10.948104900 +0000
++++ ui/views/test/ui_controls_factory_desktop_aura_ozone.cc
+@@ -296,7 +296,7 @@ void UpdateDisplaySync(const std::string
+ }
+ #endif
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // static
+ void ForceUseScreenCoordinatesOnce() {
+   g_ozone_ui_controls_test_helper->ForceUseScreenCoordinatesOnce();
diff --git a/chromium/patches/patch-ui_views_views__delegate.cc b/chromium/patches/patch-ui_views_views__delegate.cc
index a94426831b..619bab40a5 100644
--- a/chromium/patches/patch-ui_views_views__delegate.cc
+++ b/chromium/patches/patch-ui_views_views__delegate.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/views/views_delegate.cc.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/views_delegate.cc.orig	2024-07-24 02:45:10.960106100 +0000
 +++ ui/views/views_delegate.cc
-@@ -85,7 +85,7 @@ HICON ViewsDelegate::GetSmallWindowIcon(
- bool ViewsDelegate::IsWindowInMetro(gfx::NativeWindow window) const {
+@@ -95,7 +95,7 @@ bool ViewsDelegate::IsWindowInMetro(gfx:
    return false;
  }
--#elif defined(OS_LINUX) && BUILDFLAG(ENABLE_DESKTOP_AURA)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(ENABLE_DESKTOP_AURA)
+ #elif BUILDFLAG(ENABLE_DESKTOP_AURA) && \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
  gfx::ImageSkia* ViewsDelegate::GetDefaultWindowIcon() const {
    return nullptr;
  }
diff --git a/chromium/patches/patch-ui_views_views__delegate.h b/chromium/patches/patch-ui_views_views__delegate.h
index 68940e4e83..97c645a995 100644
--- a/chromium/patches/patch-ui_views_views__delegate.h
+++ b/chromium/patches/patch-ui_views_views__delegate.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/views/views_delegate.h.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/views_delegate.h.orig	2024-07-24 02:45:10.960106100 +0000
 +++ ui/views/views_delegate.h
-@@ -133,7 +133,7 @@ class VIEWS_EXPORT ViewsDelegate {
-   // Returns true if the window passed in is in the Windows 8 metro
+@@ -146,7 +146,7 @@ class VIEWS_EXPORT ViewsDelegate {
    // environment.
    virtual bool IsWindowInMetro(gfx::NativeWindow window) const;
--#elif defined(OS_LINUX) && BUILDFLAG(ENABLE_DESKTOP_AURA)
-+#elif (defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(ENABLE_DESKTOP_AURA)
+ #elif BUILDFLAG(ENABLE_DESKTOP_AURA) && \
+-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD))
    virtual gfx::ImageSkia* GetDefaultWindowIcon() const;
  #endif
  
diff --git a/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc
new file mode 100644
index 0000000000..d5203e0863
--- /dev/null
+++ b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.cc.orig	2024-07-24 02:45:10.960106100 +0000
++++ ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.cc
+@@ -205,7 +205,7 @@ DragOperation DesktopDragDropClientOzone
+   return selected_operation_;
+ }
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void DesktopDragDropClientOzone::UpdateDragImage(const gfx::ImageSkia& image,
+                                                  const gfx::Vector2d& offset) {
+   DCHECK(drag_handler_);
diff --git a/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h
new file mode 100644
index 0000000000..bbe68d69d1
--- /dev/null
+++ b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.h.orig	2024-07-24 02:45:10.960106100 +0000
++++ ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.h
+@@ -65,7 +65,7 @@ class VIEWS_EXPORT DesktopDragDropClient
+     // The offset of |drag_widget_| relative to the mouse position.
+     gfx::Vector2d offset;
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     // The last received drag location.  The drag widget is moved asynchronously
+     // so its position is updated when the UI thread has time for that.  When
+     // the first change to the location happens, a call to UpdateDragWidget()
+@@ -86,7 +86,7 @@ class VIEWS_EXPORT DesktopDragDropClient
+       const gfx::Point& root_location,
+       int allowed_operations,
+       ui::mojom::DragEventSource source) override;
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   void UpdateDragImage(const gfx::ImageSkia& image,
+                        const gfx::Vector2d& offset) override;
+ #endif
diff --git a/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc
index dfdf36fdf6..f089c2cec7 100644
--- a/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc
+++ b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc
@@ -1,13 +1,35 @@
 $NetBSD$
 
---- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc.orig	2024-07-24 02:45:10.964106300 +0000
 +++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
-@@ -787,7 +787,7 @@ void DesktopWindowTreeHostPlatform::AddA
+@@ -48,7 +48,7 @@
+ #include "ui/wm/core/window_util.h"
+ #include "ui/wm/public/window_move_client.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone_linux.h"
+ #endif
+ 
+@@ -358,7 +358,7 @@ std::unique_ptr<aura::client::DragDropCl
+ DesktopWindowTreeHostPlatform::CreateDragDropClient() {
+   ui::WmDragHandler* drag_handler = ui::GetWmDragHandler(*(platform_window()));
+   std::unique_ptr<DesktopDragDropClientOzone> drag_drop_client =
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+       std::make_unique<DesktopDragDropClientOzoneLinux>(window(), drag_handler);
+ #else
+       std::make_unique<DesktopDragDropClientOzone>(window(), drag_handler);
+@@ -1162,7 +1162,7 @@ bool DesktopWindowTreeHostPlatform::Rota
  // DesktopWindowTreeHost:
  
  // Linux subclasses this host and adds some Linux specific bits.
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
+-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)
++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)
  // static
  DesktopWindowTreeHost* DesktopWindowTreeHost::Create(
      internal::NativeWidgetDelegate* native_widget_delegate,
diff --git a/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform__impl__interactive__uitest.cc b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform__impl__interactive__uitest.cc
new file mode 100644
index 0000000000..6861c59774
--- /dev/null
+++ b/chromium/patches/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform__impl__interactive__uitest.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/widget/desktop_aura/desktop_window_tree_host_platform_impl_interactive_uitest.cc.orig	2024-07-24 02:45:10.964106300 +0000
++++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform_impl_interactive_uitest.cc
+@@ -23,7 +23,7 @@
+ #include "ui/views/widget/widget_delegate.h"
+ #include "ui/views/window/native_frame_view.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h"
+ #include "ui/views/widget/desktop_aura/window_event_filter_linux.h"
+ using DesktopWindowTreeHostPlatformImpl = views::DesktopWindowTreeHostLinux;
diff --git a/chromium/patches/patch-ui_views_widget_native__widget__aura.cc b/chromium/patches/patch-ui_views_widget_native__widget__aura.cc
deleted file mode 100644
index 7c52aa07f5..0000000000
--- a/chromium/patches/patch-ui_views_widget_native__widget__aura.cc
+++ /dev/null
@@ -1,38 +0,0 @@
-$NetBSD$
-
---- ui/views/widget/native_widget_aura.cc.orig	2020-07-15 18:56:49.000000000 +0000
-+++ ui/views/widget/native_widget_aura.cc
-@@ -64,7 +64,7 @@
- #include "ui/views/widget/desktop_aura/desktop_window_tree_host_win.h"
- #endif
- 
--#if BUILDFLAG(ENABLE_DESKTOP_AURA) && defined(OS_LINUX)
-+#if BUILDFLAG(ENABLE_DESKTOP_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- #include "ui/views/linux_ui/linux_ui.h"
- #include "ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h"
- #endif
-@@ -1072,7 +1072,7 @@ void NativeWidgetAura::SetInitialFocus(u
- // Widget, public:
- 
- namespace {
--#if BUILDFLAG(ENABLE_DESKTOP_AURA) && (defined(OS_WIN) || defined(OS_LINUX))
-+#if BUILDFLAG(ENABLE_DESKTOP_AURA) && (defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD))
- void CloseWindow(aura::Window* window) {
-   if (window) {
-     Widget* widget = Widget::GetWidgetForNativeView(window);
-@@ -1102,13 +1102,13 @@ void Widget::CloseAllSecondaryWidgets() 
-   EnumThreadWindows(GetCurrentThreadId(), WindowCallbackProc, 0);
- #endif
- 
--#if BUILDFLAG(ENABLE_DESKTOP_AURA) && defined(OS_LINUX)
-+#if BUILDFLAG(ENABLE_DESKTOP_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
-   DesktopWindowTreeHostLinux::CleanUpWindowList(CloseWindow);
- #endif
- }
- 
- const ui::NativeTheme* Widget::GetNativeTheme() const {
--#if BUILDFLAG(ENABLE_DESKTOP_AURA) && defined(OS_LINUX)
-+#if BUILDFLAG(ENABLE_DESKTOP_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
-   const LinuxUI* linux_ui = LinuxUI::instance();
-   if (linux_ui) {
-     ui::NativeTheme* native_theme =
diff --git a/chromium/patches/patch-ui_views_widget_root__view.cc b/chromium/patches/patch-ui_views_widget_root__view.cc
new file mode 100644
index 0000000000..a20da906fc
--- /dev/null
+++ b/chromium/patches/patch-ui_views_widget_root__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/widget/root_view.cc.orig	2024-07-24 02:45:10.968106700 +0000
++++ ui/views/widget/root_view.cc
+@@ -128,7 +128,7 @@ class AnnounceTextView : public View {
+ #if BUILDFLAG(IS_CHROMEOS)
+     // On ChromeOS, kAlert role can invoke an unnecessary event on reparenting.
+     node_data->role = ax::mojom::Role::kStaticText;
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+     // TODO(crbug.com/40658933): Use live regions (do not use alerts).
+     // May require setting kLiveStatus, kContainerLiveStatus to "polite".
+     node_data->role = ax::mojom::Role::kAlert;
diff --git a/chromium/patches/patch-ui_views_widget_widget.cc b/chromium/patches/patch-ui_views_widget_widget.cc
new file mode 100644
index 0000000000..4c2fdb9e30
--- /dev/null
+++ b/chromium/patches/patch-ui_views_widget_widget.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/widget/widget.cc.orig	2024-07-24 02:45:10.972107200 +0000
++++ ui/views/widget/widget.cc
+@@ -57,7 +57,7 @@
+ #include "ui/views/window/custom_frame_view.h"
+ #include "ui/views/window/dialog_delegate.h"
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "ui/linux/linux_ui.h"
+ #endif
+ 
+@@ -2172,7 +2172,7 @@ const ui::NativeTheme* Widget::GetNative
+   if (parent_)
+     return parent_->GetNativeTheme();
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   if (auto* linux_ui_theme = ui::LinuxUiTheme::GetForWindow(GetNativeWindow()))
+     return linux_ui_theme->GetNativeTheme();
+ #endif
diff --git a/chromium/patches/patch-ui_views_window_custom__frame__view.cc b/chromium/patches/patch-ui_views_window_custom__frame__view.cc
index b3b8fdab87..2329eb4ae4 100644
--- a/chromium/patches/patch-ui_views_window_custom__frame__view.cc
+++ b/chromium/patches/patch-ui_views_window_custom__frame__view.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/views/window/custom_frame_view.cc.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/window/custom_frame_view.cc.orig	2024-07-24 02:45:10.980108000 +0000
 +++ ui/views/window/custom_frame_view.cc
-@@ -283,7 +283,7 @@ int CustomFrameView::NonClientTopBorderH
- int CustomFrameView::CaptionButtonY() const {
-   // Maximized buttons start at window top so that even if their images aren't
+@@ -267,7 +267,7 @@ int CustomFrameView::CaptionButtonY() co
    // drawn flush with the screen edge, they still obey Fitts' Law.
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)
    return FrameBorderThickness();
  #else
    return frame_->IsMaximized() ? FrameBorderThickness() : kFrameShadowThickness;
diff --git a/chromium/patches/patch-ui_views_window_dialog__delegate.cc b/chromium/patches/patch-ui_views_window_dialog__delegate.cc
index c821f43de4..cad483f655 100644
--- a/chromium/patches/patch-ui_views_window_dialog__delegate.cc
+++ b/chromium/patches/patch-ui_views_window_dialog__delegate.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/views/window/dialog_delegate.cc.orig	2020-07-15 18:56:49.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/window/dialog_delegate.cc.orig	2024-07-24 02:45:10.980108000 +0000
 +++ ui/views/window/dialog_delegate.cc
-@@ -62,7 +62,7 @@ Widget* DialogDelegate::CreateDialogWidg
+@@ -109,7 +109,7 @@ Widget* DialogDelegate::CreateDialogWidg
  
  // static
  bool DialogDelegate::CanSupportCustomFrame(gfx::NativeView parent) {
--#if defined(OS_LINUX) && BUILDFLAG(ENABLE_DESKTOP_AURA)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(ENABLE_DESKTOP_AURA)
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+     BUILDFLAG(ENABLE_DESKTOP_AURA)
    // The new style doesn't support unparented dialogs on Linux desktop.
    return parent != nullptr;
- #else
diff --git a/chromium/patches/patch-ui_views_window_frame__background.cc b/chromium/patches/patch-ui_views_window_frame__background.cc
index 16d22a180e..01c9ff8d97 100644
--- a/chromium/patches/patch-ui_views_window_frame__background.cc
+++ b/chromium/patches/patch-ui_views_window_frame__background.cc
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- ui/views/window/frame_background.cc.orig	2020-07-15 18:56:34.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- ui/views/window/frame_background.cc.orig	2024-07-24 02:45:10.980108000 +0000
 +++ ui/views/window/frame_background.cc
-@@ -99,7 +99,7 @@ void FrameBackground::PaintMaximized(gfx
-                                      const View* view) const {
+@@ -110,7 +110,7 @@ void FrameBackground::PaintMaximized(gfx
+                                      int width) const {
  // Fill the top with the frame color first so we have a constant background
  // for areas not covered by the theme image.
--#if defined(OS_LINUX) && BUILDFLAG(ENABLE_DESKTOP_AURA)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && BUILDFLAG(ENABLE_DESKTOP_AURA)
-   auto* native_theme = view->GetNativeTheme();
-   ui::NativeTheme::ExtraParams params;
-   params.frame_top_area.use_custom_frame = use_custom_frame_;
+-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \
+     BUILDFLAG(ENABLE_DESKTOP_AURA)
+   ui::NativeTheme::FrameTopAreaExtraParams frame_top_area;
+   frame_top_area.use_custom_frame = use_custom_frame_;
diff --git a/chromium/patches/patch-ui_webui_resources_js_cr.js b/chromium/patches/patch-ui_webui_resources_js_cr.js
deleted file mode 100644
index 2ee7d95bc4..0000000000
--- a/chromium/patches/patch-ui_webui_resources_js_cr.js
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD$
-
---- ui/webui/resources/js/cr.js.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/webui/resources/js/cr.js
-@@ -431,6 +431,11 @@ var cr = cr || function(global) {
-       return /Mac/.test(navigator.platform);
-     },
- 
-+    /** Whether this is on *BSD. */
-+    get isBSD() {
-+      return /BSD/.test(navigator.platform);
-+    },
-+
-     /** Whether this is on the Windows platform or not. */
-     get isWindows() {
-       return /Win/.test(navigator.platform);
diff --git a/chromium/patches/patch-ui_webui_resources_js_icon.js b/chromium/patches/patch-ui_webui_resources_js_icon.js
deleted file mode 100644
index 06f3fcb330..0000000000
--- a/chromium/patches/patch-ui_webui_resources_js_icon.js
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- ui/webui/resources/js/icon.js.orig	2020-07-15 18:56:34.000000000 +0000
-+++ ui/webui/resources/js/icon.js
-@@ -16,7 +16,7 @@ cr.define('cr.icon', function() {
-       // supports SCALE_FACTOR_100P on all non-iOS platforms.
-       supportedScaleFactors.push(1);
-     }
--    if (cr.isMac || cr.isChromeOS || cr.isWindows || cr.isLinux) {
-+    if (cr.isMac || cr.isChromeOS || cr.isWindows || cr.isLinux || cr.isBSD) {
-       // All desktop platforms support zooming which also updates the renderer's
-       // device scale factors (a.k.a devicePixelRatio), and these platforms have
-       // high DPI assets for 2x.  Let the renderer pick the closest image for
diff --git a/chromium/patches/patch-ui_webui_webui__features.gni b/chromium/patches/patch-ui_webui_webui__features.gni
deleted file mode 100644
index 6667f79fee..0000000000
--- a/chromium/patches/patch-ui_webui_webui__features.gni
+++ /dev/null
@@ -1,11 +0,0 @@
-$NetBSD$
-
---- ui/webui/webui_features.gni.orig	2020-07-15 18:56:49.000000000 +0000
-+++ ui/webui/webui_features.gni
-@@ -9,5 +9,5 @@ declare_args() {
-   optimize_webui = !is_debug
- 
-   # Enable the WebUI version of the browser's tab strip.
--  enable_webui_tab_strip = is_chromeos || is_linux || is_win
-+  enable_webui_tab_strip = is_chromeos || is_linux || is_win || is_bsd
- }
diff --git a/chromium/patches/patch-v8_BUILD.gn b/chromium/patches/patch-v8_BUILD.gn
index e55c4e534b..a4f31dad74 100644
--- a/chromium/patches/patch-v8_BUILD.gn
+++ b/chromium/patches/patch-v8_BUILD.gn
@@ -1,50 +1,139 @@
 $NetBSD$
 
---- v8/BUILD.gn.orig	2020-06-25 09:34:52.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/BUILD.gn.orig	2024-07-24 02:47:45.455070700 +0000
 +++ v8/BUILD.gn
-@@ -3336,7 +3336,7 @@ v8_source_set("v8_base_without_compiler"
+@@ -876,6 +876,9 @@ external_v8_defines = [
+   "V8_TARGET_OS_MACOS",
+   "V8_TARGET_OS_WIN",
+   "V8_TARGET_OS_CHROMEOS",
++  "V8_TARGET_OS_OPENBSD",
++  "V8_TARGET_OS_FREEBSD",
++  "V8_TARGET_OS_NETBSD",
+ ]
+ 
+ enabled_external_v8_defines = []
+@@ -948,6 +951,15 @@ if (target_os == "android") {
+ } else if (target_os == "chromeos") {
+   enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ]
+   enabled_external_v8_defines += [ "V8_TARGET_OS_CHROMEOS" ]
++} else if (target_os == "openbsd") {
++  enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ]
++  enabled_external_v8_defines += [ "V8_TARGET_OS_OPENBSD" ]
++} else if (target_os == "freebsd") {
++  enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ]
++  enabled_external_v8_defines += [ "V8_TARGET_OS_FREEBSD" ]
++} else if (target_os == "netbsd") {
++  enabled_external_v8_defines += [ "V8_HAVE_TARGET_OS" ]
++  enabled_external_v8_defines += [ "V8_TARGET_OS_NETBSD" ]
+ }
+ 
+ disabled_external_v8_defines = external_v8_defines - enabled_external_v8_defines
+@@ -2367,6 +2379,23 @@ action("generate_bytecode_builtins_list"
+   ]
+ }
+ 
++action("run_paxctl_mksnapshot") {
++    deps = [ ":mksnapshot($v8_snapshot_toolchain)" ]
++
++    script = "tools/run-paxctl.py"
++    stamp = "$target_gen_dir/paxctl_stamp"
++    outputs = [ stamp ]
++
++    sources = []
++    data = []
++
++    args = [
++      rebase_path(stamp, root_build_dir), "/usr/sbin/paxctl", "+m", "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)",
++                                        "root_out_dir") + "/mksnapshot",
++                         root_build_dir),
++    ]
++}
++
+ # Template to generate different V8 snapshots based on different runtime flags.
+ # Can be invoked with run_mksnapshot(<name>). The target will resolve to
+ # run_mksnapshot_<name>. If <name> is "default", no file suffixes will be used.
+@@ -2385,7 +2414,11 @@ template("run_mksnapshot") {
+     suffix = "_$name"
+   }
+   action("run_mksnapshot_" + name) {
+-    deps = [ ":mksnapshot($v8_snapshot_toolchain)" ]
++    if (target_os == "netbsd") {
++      deps = [ ":mksnapshot($v8_snapshot_toolchain)", ":run_paxctl_mksnapshot" ]
++    } else {
++      deps = [ ":mksnapshot($v8_snapshot_toolchain)" ]
++    }
+ 
+     script = "tools/run.py"
+ 
+@@ -2442,6 +2475,12 @@ template("run_mksnapshot") {
+       if (!v8_enable_builtins_profiling && v8_enable_builtins_reordering) {
+         args += [ "--reorder-builtins" ]
+       }
++
++      if (v8_current_cpu == "x86") {
++        args -= [
++          "--abort-on-bad-builtin-profile-data",
++        ]
++      }
+     }
  
-     # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
-     # based on Darwin and thus POSIX-compliant to a similar degree.
--    if (is_linux || is_mac || is_ios || target_os == "freebsd") {
-+    if (is_linux || is_mac || is_ios || target_os == "freebsd" || is_bsd) {
-       sources += [
-         "src/trap-handler/handler-inside-posix.cc",
-         "src/trap-handler/handler-inside-posix.h",
-@@ -3677,7 +3677,7 @@ v8_source_set("v8_base_without_compiler"
-     libs += [ "atomic" ]
+     # This is needed to distinguish between generating code for the simulator
+@@ -4475,7 +4514,7 @@ v8_header_set("v8_internal_headers") {
+       # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
+       # based on Darwin and thus POSIX-compliant to a similar degree.
+       if (is_linux || is_chromeos || is_mac || is_ios ||
+-          target_os == "freebsd") {
++          target_os == "freebsd" || target_os == "netbsd") {
+         sources += [ "src/trap-handler/handler-inside-posix.h" ]
+       } else if (is_win) {
+         sources += [ "src/trap-handler/handler-inside-win.h" ]
+@@ -5863,7 +5902,7 @@ v8_source_set("v8_base_without_compiler"
+       # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
+       # based on Darwin and thus POSIX-compliant to a similar degree.
+       if (is_linux || is_chromeos || is_mac || is_ios ||
+-          target_os == "freebsd") {
++          target_os == "freebsd" || target_os == "netbsd") {
+         sources += [
+           "src/trap-handler/handler-inside-posix.cc",
+           "src/trap-handler/handler-outside-posix.cc",
+@@ -6490,7 +6529,7 @@ v8_component("v8_libbase") {
+     }
    }
  
--  if (v8_enable_vtunetracemark && (is_linux || is_win)) {
-+  if (v8_enable_vtunetracemark && (is_linux || is_win || is_bsd)) {
+-  if (is_linux || is_chromeos) {
++  if ((is_linux || is_chromeos) && !is_bsd) {
      sources += [
-       "src/extensions/vtunedomain-support-extension.cc",
-       "src/extensions/vtunedomain-support-extension.h",
-@@ -3932,6 +3932,16 @@ v8_component("v8_libbase") {
+       "src/base/debug/stack_trace_posix.cc",
+       "src/base/platform/platform-linux.cc",
+@@ -6501,6 +6540,27 @@ v8_component("v8_libbase") {
        "dl",
        "rt",
      ]
++  } else if (is_openbsd) {
++    sources += [
++      "src/base/debug/stack_trace_posix.cc",
++      "src/base/platform/platform-openbsd.cc",
++    ]
++    libs = [ "execinfo" ]
 +  } else if (is_netbsd) {
 +    sources += [
 +      "src/base/debug/stack_trace_posix.cc",
 +      "src/base/platform/platform-openbsd.cc",
 +    ]
-+
 +    libs = [
 +      "rt",
 +      "execinfo",
 +    ]
++  } else if (is_freebsd) {
++    sources += [
++      "src/base/debug/stack_trace_posix.cc",
++      "src/base/platform/platform-freebsd.cc",
++    ]
++    libs = [ "execinfo" ]
    } else if (current_os == "aix") {
      sources += [
        "src/base/debug/stack_trace_posix.cc",
-@@ -4354,6 +4364,10 @@ if (current_toolchain == v8_snapshot_too
-       "src/snapshot/snapshot-empty.cc",
-     ]
- 
-+    if (is_bsd) {
-+      libs = ["execinfo"]
-+    }
-+
-     configs = [ ":internal_config" ]
- 
-     deps = [
diff --git a/chromium/patches/patch-v8_gni_v8.gni b/chromium/patches/patch-v8_gni_v8.gni
deleted file mode 100644
index c689c406e2..0000000000
--- a/chromium/patches/patch-v8_gni_v8.gni
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- v8/gni/v8.gni.orig	2020-07-15 19:01:43.000000000 +0000
-+++ v8/gni/v8.gni
-@@ -215,7 +215,7 @@ template("v8_executable") {
-       configs -= invoker.remove_configs
-     }
-     configs += invoker.configs
--    if (is_linux) {
-+    if (is_linux || is_bsd) {
-       # For enabling ASLR.
-       ldflags = [ "-pie" ]
-     }
diff --git a/chromium/patches/patch-v8_include_v8-internal.h b/chromium/patches/patch-v8_include_v8-internal.h
new file mode 100644
index 0000000000..0a575779f1
--- /dev/null
+++ b/chromium/patches/patch-v8_include_v8-internal.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/include/v8-internal.h.orig	2024-07-24 02:47:45.467072000 +0000
++++ v8/include/v8-internal.h
+@@ -213,7 +213,7 @@ using SandboxedPointer_t = Address;
+ #ifdef V8_ENABLE_SANDBOX
+ 
+ // Size of the sandbox, excluding the guard regions surrounding it.
+-#if defined(V8_TARGET_OS_ANDROID)
++#if (defined(V8_TARGET_OS_ANDROID) || defined(V8_TARGET_OS_OPENBSD))
+ // On Android, most 64-bit devices seem to be configured with only 39 bits of
+ // virtual address space for userspace. As such, limit the sandbox to 128GB (a
+ // quarter of the total available address space).
diff --git a/chromium/patches/patch-v8_include_v8config.h b/chromium/patches/patch-v8_include_v8config.h
new file mode 100644
index 0000000000..7249c6d255
--- /dev/null
+++ b/chromium/patches/patch-v8_include_v8config.h
@@ -0,0 +1,50 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/include/v8config.h.orig	2024-07-24 02:47:45.475072600 +0000
++++ v8/include/v8config.h
+@@ -193,6 +193,9 @@ path. Add it with -I<path> to the comman
+   && !defined(V8_TARGET_OS_FUCHSIA) \
+   && !defined(V8_TARGET_OS_IOS) \
+   && !defined(V8_TARGET_OS_LINUX) \
++  && !defined(V8_TARGET_OS_OPENBSD) \
++  && !defined(V8_TARGET_OS_FREEBSD) \
++  && !defined(V8_TARGET_OS_NETBSD) \
+   && !defined(V8_TARGET_OS_MACOS) \
+   && !defined(V8_TARGET_OS_WIN) \
+   && !defined(V8_TARGET_OS_CHROMEOS)
+@@ -205,6 +208,9 @@ path. Add it with -I<path> to the comman
+   || defined(V8_TARGET_OS_FUCHSIA) \
+   || defined(V8_TARGET_OS_IOS) \
+   || defined(V8_TARGET_OS_LINUX) \
++  || defined(V8_TARGET_OS_OPENBSD) \
++  || defined(V8_TARGET_OS_FREEBSD) \
++  || defined(V8_TARGET_OS_NETBSD) \
+   || defined(V8_TARGET_OS_MACOS) \
+   || defined(V8_TARGET_OS_WIN) \
+   || defined(V8_TARGET_OS_CHROMEOS)
+@@ -228,6 +234,21 @@ path. Add it with -I<path> to the comman
+ # define V8_TARGET_OS_LINUX
+ #endif
+ 
++#ifdef V8_OS_OPENBSD
++# define V8_TARGET_OS_OPENBSD
++# define V8_TARGET_OS_BSD
++#endif
++
++#ifdef V8_OS_FREEBSD
++# define V8_TARGET_OS_OPENBSD
++# define V8_TARGET_OS_BSD
++#endif
++
++#ifdef V8_OS_NETBSD
++# define V8_TARGET_OS_NETBSD
++# define V8_TARGET_OS_BSD
++#endif
++
+ #ifdef V8_OS_MACOS
+ # define V8_TARGET_OS_MACOS
+ #endif
diff --git a/chromium/patches/patch-v8_src_api_api.cc b/chromium/patches/patch-v8_src_api_api.cc
index e24f9b033b..7636518fc6 100644
--- a/chromium/patches/patch-v8_src_api_api.cc
+++ b/chromium/patches/patch-v8_src_api_api.cc
@@ -1,22 +1,26 @@
 $NetBSD$
 
---- v8/src/api/api.cc.orig	2020-07-15 19:01:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/api/api.cc.orig	2024-07-24 02:47:45.479073000 +0000
 +++ v8/src/api/api.cc
-@@ -113,7 +113,7 @@
- #include "src/wasm/wasm-result.h"
+@@ -145,7 +145,7 @@
  #include "src/wasm/wasm-serialization.h"
+ #endif  // V8_ENABLE_WEBASSEMBLY
  
--#if V8_OS_LINUX || V8_OS_MACOSX || V8_OS_FREEBSD
-+#if V8_OS_LINUX || V8_OS_MACOSX || V8_OS_FREEBSD || V8_OS_NETBSD
+-#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD
++#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
  #include <signal.h>
- #include "include/v8-wasm-trap-handler-posix.h"
- #include "src/trap-handler/handler-inside-posix.h"
-@@ -5674,7 +5674,7 @@ bool v8::V8::Initialize(const int build_
+ #include <unistd.h>
+ 
+@@ -6452,7 +6452,7 @@ bool v8::V8::Initialize(const int build_
    return true;
  }
  
--#if V8_OS_LINUX || V8_OS_MACOSX
-+#if V8_OS_LINUX || V8_OS_MACOSX || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
+-#if V8_OS_LINUX || V8_OS_DARWIN
++#if V8_OS_LINUX || V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD|| V8_OS_NETBSD
  bool TryHandleWebAssemblyTrapPosix(int sig_code, siginfo_t* info,
                                     void* context) {
- #if V8_TARGET_ARCH_X64 && !V8_OS_ANDROID
+ #if V8_ENABLE_WEBASSEMBLY && V8_TRAP_HANDLER_SUPPORTED
diff --git a/chromium/patches/patch-v8_src_base_atomicops.h b/chromium/patches/patch-v8_src_base_atomicops.h
new file mode 100644
index 0000000000..fa3112bdf2
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_atomicops.h
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/atomicops.h.orig	2024-07-24 02:47:45.491074300 +0000
++++ v8/src/base/atomicops.h
+@@ -57,10 +57,10 @@ using Atomic64 = SbAtomic64;
+ using Atomic8 = char;
+ using Atomic16 = int16_t;
+ using Atomic32 = int32_t;
+-#if defined(V8_HOST_ARCH_64_BIT)
++#if defined(V8_HOST_ARCH_64_BIT) || defined(V8_OS_OPENBSD)
+ // We need to be able to go between Atomic64 and AtomicWord implicitly.  This
+ // means Atomic64 and AtomicWord should be the same type on 64-bit.
+-#if defined(__ILP32__)
++#if defined(__ILP32__) && !defined(V8_OS_OPENBSD)
+ using Atomic64 = int64_t;
+ #else
+ using Atomic64 = intptr_t;
+@@ -266,7 +266,7 @@ inline Atomic32 SeqCst_Load(volatile con
+                                    std::memory_order_seq_cst);
+ }
+ 
+-#if defined(V8_HOST_ARCH_64_BIT)
++#if defined(V8_HOST_ARCH_64_BIT) || defined(V8_OS_OPENBSD)
+ 
+ inline Atomic64 Relaxed_CompareAndSwap(volatile Atomic64* ptr,
+                                        Atomic64 old_value, Atomic64 new_value) {
diff --git a/chromium/patches/patch-v8_src_base_cpu.cc b/chromium/patches/patch-v8_src_base_cpu.cc
deleted file mode 100644
index 355383c4a1..0000000000
--- a/chromium/patches/patch-v8_src_base_cpu.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$NetBSD$
-
---- v8/src/base/cpu.cc.orig	2020-07-15 19:01:43.000000000 +0000
-+++ v8/src/base/cpu.cc
-@@ -475,6 +475,7 @@ CPU::CPU()
- 
- #if V8_OS_LINUX
- 
-+#if V8_OS_LINUX
-   CPUInfo cpu_info;
- 
-   // Extract implementor from the "CPU implementer" field.
-@@ -497,6 +498,7 @@ CPU::CPU()
-     }
-     delete[] variant;
-   }
-+#endif
- 
-   // Extract part number from the "CPU part" field.
-   char* part = cpu_info.ExtractField("CPU part");
diff --git a/chromium/patches/patch-v8_src_base_platform_memory.h b/chromium/patches/patch-v8_src_base_platform_memory.h
new file mode 100644
index 0000000000..4052a72e91
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_platform_memory.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/platform/memory.h.orig	2024-07-24 02:47:45.499075000 +0000
++++ v8/src/base/platform/memory.h
+@@ -19,11 +19,11 @@
+ 
+ #if V8_OS_DARWIN
+ #include <malloc/malloc.h>
+-#else  // !V8_OS_DARWIN
++#elif !V8_OS_BSD
+ #include <malloc.h>
+ #endif  // !V8_OS_DARWIN
+ 
+-#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS) || V8_OS_WIN
++#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS && !V8_OS_BSD) || V8_OS_WIN
+ #define V8_HAS_MALLOC_USABLE_SIZE 1
+ #endif  // (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS) || V8_OS_WIN
+ 
diff --git a/chromium/patches/patch-v8_src_base_platform_platform-freebsd.cc b/chromium/patches/patch-v8_src_base_platform_platform-freebsd.cc
new file mode 100644
index 0000000000..e6ca234f5c
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_platform_platform-freebsd.cc
@@ -0,0 +1,38 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/platform/platform-freebsd.cc.orig	2024-07-24 02:47:45.499075000 +0000
++++ v8/src/base/platform/platform-freebsd.cc
+@@ -43,14 +43,10 @@ TimezoneCache* OS::CreateTimezoneCache()
+   return new PosixDefaultTimezoneCache();
+ }
+ 
+-static unsigned StringToLong(char* buffer) {
+-  return static_cast<unsigned>(strtol(buffer, nullptr, 16));
+-}
+-
+ std::vector<OS::SharedLibraryAddress> OS::GetSharedLibraryAddresses() {
+   std::vector<SharedLibraryAddress> result;
+   int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_VMMAP, getpid()};
+-  size_t miblen = sizeof(mib) / sizeof(mib[0]);
++  unsigned int miblen = sizeof(mib) / sizeof(mib[0]);
+   size_t buffer_size;
+   if (sysctl(mib, miblen, nullptr, &buffer_size, nullptr, 0) == 0) {
+     // Overallocate the buffer by 1/3 to account for concurrent
+@@ -82,8 +78,13 @@ std::vector<OS::SharedLibraryAddress> OS
+             lib_name = std::string(path);
+           }
+           result.push_back(SharedLibraryAddress(
++#if defined(__i386__) || defined(OS_FREEBSD)
++              lib_name, static_cast<uintptr_t>(map->kve_start),
++              static_cast<uintptr_t>(map->kve_end)));
++#else
+               lib_name, reinterpret_cast<uintptr_t>(map->kve_start),
+               reinterpret_cast<uintptr_t>(map->kve_end)));
++#endif
+         }
+ 
+         start += ssize;
diff --git a/chromium/patches/patch-v8_src_base_platform_platform-openbsd.cc b/chromium/patches/patch-v8_src_base_platform_platform-openbsd.cc
new file mode 100644
index 0000000000..f84ca87c74
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_platform_platform-openbsd.cc
@@ -0,0 +1,53 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/platform/platform-openbsd.cc.orig	2024-07-24 02:47:45.503075400 +0000
++++ v8/src/base/platform/platform-openbsd.cc
+@@ -6,6 +6,9 @@
+ // POSIX-compatible parts, the implementation is in platform-posix.cc.
+ 
+ #include <pthread.h>
++#if !defined(__NetBSD__)
++#include <pthread_np.h>
++#endif
+ #include <semaphore.h>
+ #include <signal.h>
+ #include <stdlib.h>
+@@ -122,6 +125,34 @@ void OS::SignalCodeMovingGC() {
+ 
+ void OS::AdjustSchedulingParams() {}
+ 
++// static
++Stack::StackSlot Stack::ObtainCurrentThreadStackStart() {
++#if defined(__NetBSD__)
++  pthread_attr_t attr;
++  int error;
++  pthread_attr_init(&attr);
++  error = pthread_attr_get_np(pthread_self(), &attr);
++  if (!error) {
++    void* base;
++    size_t size;
++    error = pthread_attr_getstack(&attr, &base, &size);
++    CHECK(!error);
++    pthread_attr_destroy(&attr);
++    return reinterpret_cast<uint8_t*>(base) + size;
++  }
++  pthread_attr_destroy(&attr);
++  return nullptr;
++#else
++  stack_t ss;
++  void *base;
++  if (pthread_stackseg_np(pthread_self(), &ss) != 0)
++    return nullptr;
++
++  base = (void*)((size_t) ss.ss_sp - ss.ss_size);
++  return reinterpret_cast<uint8_t*>(base) + ss.ss_size;
++#endif
++}
++
+ std::optional<OS::MemoryRange> OS::GetFirstFreeMemoryRangeWithin(
+     OS::Address boundary_start, OS::Address boundary_end, size_t minimum_size,
+     size_t alignment) {
diff --git a/chromium/patches/patch-v8_src_base_platform_platform-posix.cc b/chromium/patches/patch-v8_src_base_platform_platform-posix.cc
index febcba8fbd..7e7f1b1759 100644
--- a/chromium/patches/patch-v8_src_base_platform_platform-posix.cc
+++ b/chromium/patches/patch-v8_src_base_platform_platform-posix.cc
@@ -1,10 +1,14 @@
 $NetBSD$
 
---- v8/src/base/platform/platform-posix.cc.orig	2020-07-15 19:01:43.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/platform/platform-posix.cc.orig	2024-07-24 02:47:45.503075400 +0000
 +++ v8/src/base/platform/platform-posix.cc
-@@ -25,6 +25,9 @@
+@@ -27,6 +27,9 @@
      defined(__NetBSD__) || defined(__OpenBSD__)
- #include <sys/sysctl.h>  // NOLINT, for sysctl
+ #include <sys/sysctl.h>  // for sysctl
  #endif
 +#if defined(__NetBSD__)
 +#include <lwp.h>
@@ -12,48 +16,95 @@ $NetBSD$
  
  #if defined(ANDROID) && !defined(V8_ANDROID_LOG_STDOUT)
  #define LOG_TAG "v8"
-@@ -433,7 +436,7 @@ bool OS::DiscardSystemPages(void* addres
+@@ -54,7 +57,7 @@
+ #if V8_OS_DARWIN
+ #include <mach/mach.h>
+ #include <malloc/malloc.h>
+-#else
++#elif !V8_OS_BSD
+ #include <malloc.h>
+ #endif
+ 
+@@ -72,9 +75,11 @@
+ #include <sys/syscall.h>
+ #endif
+ 
+-#if V8_OS_FREEBSD || V8_OS_DARWIN || V8_OS_OPENBSD || V8_OS_SOLARIS
++#if V8_OS_FREEBSD || V8_OS_DARWIN || V8_OS_BSD || V8_OS_SOLARIS
++#ifndef MAP_ANONYMOUS
+ #define MAP_ANONYMOUS MAP_ANON
+ #endif
++#endif
+ 
+ #if defined(V8_OS_SOLARIS)
+ #if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__)
+@@ -305,6 +310,13 @@ void OS::SetRandomMmapSeed(int64_t seed)
+   }
+ }
+ 
++#if V8_OS_OPENBSD
++// Allow OpenBSD's mmap to select a random address on OpenBSD
++// static
++void* OS::GetRandomMmapAddr() {
++  return nullptr;
++}
++#else
+ // static
+ void* OS::GetRandomMmapAddr() {
+   uintptr_t raw_addr;
+@@ -401,6 +413,7 @@ void* OS::GetRandomMmapAddr() {
+ #endif
+   return reinterpret_cast<void*>(raw_addr);
+ }
++#endif
+ 
+ // TODO(bbudge) Move Cygwin and Fuchsia stuff into platform-specific files.
+ #if !V8_OS_CYGWIN && !V8_OS_FUCHSIA
+@@ -672,7 +685,7 @@ void OS::DestroySharedMemoryHandle(Platf
  
  // static
  bool OS::HasLazyCommits() {
--#if V8_OS_AIX || V8_OS_LINUX || V8_OS_MACOSX
-+#if V8_OS_AIX || V8_OS_LINUX || V8_OS_MACOSX || V8_OS_FREEBSD || V8_OS_NETBSD
+-#if V8_OS_AIX || V8_OS_LINUX || V8_OS_DARWIN
++#if V8_OS_AIX || V8_OS_LINUX || V8_OS_DARWIN || V8_OS_BSD
    return true;
  #else
    // TODO(bbudge) Return true for all POSIX platforms.
-@@ -568,6 +571,10 @@ int OS::GetCurrentThreadId() {
+@@ -824,6 +837,8 @@ int OS::GetCurrentThreadId() {
    return static_cast<int>(thread_self());
  #elif V8_OS_FUCHSIA
    return static_cast<int>(zx_thread_self());
-+#elif V8_OS_FREEBSD
-+  return static_cast<int>(pthread_getthreadid_np());
 +#elif V8_OS_NETBSD
 +  return static_cast<int>(_lwp_self());
  #elif V8_OS_SOLARIS
    return static_cast<int>(pthread_self());
  #else
-@@ -756,9 +763,15 @@ Thread::Thread(const Options& options)
-     : data_(new PlatformData),
+@@ -1116,7 +1131,11 @@ Thread::Thread(const Options& options)
        stack_size_(options.stack_size()),
+       priority_(options.priority()),
        start_semaphore_(nullptr) {
 +#if !defined(V8_OS_NETBSD)
-   if (stack_size_ > 0 && static_cast<size_t>(stack_size_) < PTHREAD_STACK_MIN) {
-     stack_size_ = PTHREAD_STACK_MIN;
-   }
+   const int min_stack_size = static_cast<int>(PTHREAD_STACK_MIN);
 +#else
-+  if (stack_size_ > 0 && static_cast<size_t>(stack_size_) < static_cast<size_t>(sysconf(_SC_THREAD_STACK_MIN))) {
-+    stack_size_ = sysconf(_SC_THREAD_STACK_MIN);
-+  }
++  const int min_stack_size = static_cast<int>(sysconf(_SC_THREAD_STACK_MIN));
 +#endif
+   if (stack_size_ > 0) stack_size_ = std::max(stack_size_, min_stack_size);
    set_name(options.name());
  }
- 
-@@ -773,7 +786,7 @@ static void SetThreadName(const char* na
+@@ -1131,7 +1150,7 @@ static void SetThreadName(const char* na
    pthread_set_name_np(pthread_self(), name);
  #elif V8_OS_NETBSD
-   STATIC_ASSERT(Thread::kMaxThreadNameLength <= PTHREAD_MAX_NAMELEN_NP);
+   static_assert(Thread::kMaxThreadNameLength <= PTHREAD_MAX_NAMELEN_NP);
 -  pthread_setname_np(pthread_self(), "%s", name);
 +  pthread_setname_np(pthread_self(), "%s", (void *)name);
- #elif V8_OS_MACOSX
+ #elif V8_OS_DARWIN
    // pthread_setname_np is only available in 10.6 or later, so test
    // for it at runtime.
+@@ -1306,7 +1325,7 @@ void Thread::SetThreadLocal(LocalStorage
+ // keep this version in POSIX as most Linux-compatible derivatives will
+ // support it. MacOS and FreeBSD are different here.
+ #if !defined(V8_OS_FREEBSD) && !defined(V8_OS_DARWIN) && !defined(_AIX) && \
+-    !defined(V8_OS_SOLARIS)
++    !defined(V8_OS_SOLARIS) && !defined(V8_OS_OPENBSD) && !defined(V8_OS_NETBSD)
+ 
+ namespace {
+ #if DEBUG
diff --git a/chromium/patches/patch-v8_src_base_small-vector.h b/chromium/patches/patch-v8_src_base_small-vector.h
new file mode 100644
index 0000000000..3500d872dc
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_small-vector.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/small-vector.h.orig	2024-07-24 02:47:45.507075800 +0000
++++ v8/src/base/small-vector.h
+@@ -22,7 +22,7 @@ template <typename T, size_t kSize, type
+ class SmallVector {
+   // Currently only support trivially copyable and trivially destructible data
+   // types, as it uses memcpy to copy elements and never calls destructors.
+-  ASSERT_TRIVIALLY_COPYABLE(T);
++  // XXX FREEBSD ASSERT_TRIVIALLY_COPYABLE(T);
+   static_assert(std::is_trivially_destructible<T>::value);
+ 
+  public:
diff --git a/chromium/patches/patch-v8_src_base_strings.h b/chromium/patches/patch-v8_src_base_strings.h
new file mode 100644
index 0000000000..be95d301f3
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_strings.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/strings.h.orig	2024-07-24 02:47:45.507075800 +0000
++++ v8/src/base/strings.h
+@@ -8,6 +8,9 @@
+ #include "src/base/base-export.h"
+ #include "src/base/macros.h"
+ #include "src/base/vector.h"
++#if defined(__NetBSD__)
++#include <stdarg.h>
++#endif
+ 
+ namespace v8 {
+ namespace base {
diff --git a/chromium/patches/patch-v8_src_base_sys-info.cc b/chromium/patches/patch-v8_src_base_sys-info.cc
new file mode 100644
index 0000000000..470d5eae06
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_sys-info.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/sys-info.cc.orig	2024-07-24 02:47:45.507075800 +0000
++++ v8/src/base/sys-info.cc
+@@ -37,8 +37,12 @@ namespace base {
+ 
+ // static
+ int SysInfo::NumberOfProcessors() {
++#if V8_OS_OPENBSD || V8_OS_NETBSD
+ #if V8_OS_OPENBSD
++  int mib[2] = {CTL_HW, HW_NCPUONLINE};
++#else
+   int mib[2] = {CTL_HW, HW_NCPU};
++#endif
+   int ncpu = 0;
+   size_t len = sizeof(ncpu);
+   if (sysctl(mib, arraysize(mib), &ncpu, &len, nullptr, 0) != 0) {
diff --git a/chromium/patches/patch-v8_src_base_utils_random-number-generator.cc b/chromium/patches/patch-v8_src_base_utils_random-number-generator.cc
new file mode 100644
index 0000000000..85397f3702
--- /dev/null
+++ b/chromium/patches/patch-v8_src_base_utils_random-number-generator.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/base/utils/random-number-generator.cc.orig	2024-07-24 02:47:45.507075800 +0000
++++ v8/src/base/utils/random-number-generator.cc
+@@ -56,7 +56,7 @@ RandomNumberGenerator::RandomNumberGener
+   DCHECK_EQ(0, result);
+   USE(result);
+   SetSeed((static_cast<int64_t>(first_half) << 32) + second_half);
+-#elif V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD
++#elif V8_OS_DARWIN || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
+   // Despite its prefix suggests it is not RC4 algorithm anymore.
+   // It always succeeds while having decent performance and
+   // no file descriptor involved.
diff --git a/chromium/patches/patch-v8_src_diagnostics_perf-jit.cc b/chromium/patches/patch-v8_src_diagnostics_perf-jit.cc
new file mode 100644
index 0000000000..74bb717813
--- /dev/null
+++ b/chromium/patches/patch-v8_src_diagnostics_perf-jit.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/diagnostics/perf-jit.cc.orig	2024-07-24 02:47:46.027126000 +0000
++++ v8/src/diagnostics/perf-jit.cc
+@@ -31,7 +31,7 @@
+ #include "src/flags/flags.h"
+ 
+ // Only compile the {LinuxPerfJitLogger} on Linux.
+-#if V8_OS_LINUX
++#if defined(V8_OS_LINUX) || defined(V8_OS_BSD)
+ 
+ #include <fcntl.h>
+ #include <sys/mman.h>
diff --git a/chromium/patches/patch-v8_src_diagnostics_perf-jit.h b/chromium/patches/patch-v8_src_diagnostics_perf-jit.h
new file mode 100644
index 0000000000..f77169d7d2
--- /dev/null
+++ b/chromium/patches/patch-v8_src_diagnostics_perf-jit.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/diagnostics/perf-jit.h.orig	2024-07-24 02:47:46.027126000 +0000
++++ v8/src/diagnostics/perf-jit.h
+@@ -31,7 +31,7 @@
+ #include "include/v8config.h"
+ 
+ // {LinuxPerfJitLogger} is only implemented on Linux.
+-#if V8_OS_LINUX
++#if defined(V8_OS_LINUX) || defined(V8_OS_BSD)
+ 
+ #include "src/logging/log.h"
+ 
diff --git a/chromium/patches/patch-v8_src_execution_isolate.cc b/chromium/patches/patch-v8_src_execution_isolate.cc
new file mode 100644
index 0000000000..5b78522b7f
--- /dev/null
+++ b/chromium/patches/patch-v8_src_execution_isolate.cc
@@ -0,0 +1,33 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/execution/isolate.cc.orig	2024-07-24 02:47:46.043127800 +0000
++++ v8/src/execution/isolate.cc
+@@ -157,6 +157,10 @@
+ #include "src/execution/simulator-base.h"
+ #endif
+ 
++#if defined(V8_OS_OPENBSD)
++#include <sys/mman.h>
++#endif
++
+ extern "C" const uint8_t v8_Default_embedded_blob_code_[];
+ extern "C" uint32_t v8_Default_embedded_blob_code_size_;
+ extern "C" const uint8_t v8_Default_embedded_blob_data_[];
+@@ -4541,6 +4545,13 @@ void Isolate::InitializeDefaultEmbeddedB
+   const uint8_t* data = DefaultEmbeddedBlobData();
+   uint32_t data_size = DefaultEmbeddedBlobDataSize();
+ 
++#if defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32)
++  if (code_size > 0) {
++    mprotect(reinterpret_cast<void *>(const_cast<uint8_t *>(code)),
++            code_size, PROT_READ | PROT_EXEC);
++  }
++#endif
++
+   if (StickyEmbeddedBlobCode() != nullptr) {
+     base::MutexGuard guard(current_embedded_blob_refcount_mutex_.Pointer());
+     // Check again now that we hold the lock.
diff --git a/chromium/patches/patch-v8_src_flags_flags.cc b/chromium/patches/patch-v8_src_flags_flags.cc
new file mode 100644
index 0000000000..d85658f745
--- /dev/null
+++ b/chromium/patches/patch-v8_src_flags_flags.cc
@@ -0,0 +1,42 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/flags/flags.cc.orig	2024-07-24 02:47:46.063129700 +0000
++++ v8/src/flags/flags.cc
+@@ -15,6 +15,10 @@
+ #include <set>
+ #include <sstream>
+ 
++#if V8_OS_OPENBSD
++#include <sys/mman.h>
++#endif
++
+ #include "src/base/functional.h"
+ #include "src/base/lazy-instance.h"
+ #include "src/base/platform/platform.h"
+@@ -34,7 +38,11 @@
+ namespace v8::internal {
+ 
+ // Define {v8_flags}, declared in flags.h.
++#if V8_OS_OPENBSD
++FlagValues v8_flags __attribute__((section(".openbsd.mutable")));
++#else
+ FlagValues v8_flags;
++#endif
+ 
+ // {v8_flags} needs to be aligned to a memory page, and the size needs to be a
+ // multiple of a page size. This is required for memory-protection of the memory
+@@ -806,6 +814,10 @@ void FlagList::FreezeFlags() {
+   // Note that for string flags we only protect the pointer itself, but not the
+   // string storage. TODO(12887): Fix this.
+   base::OS::SetDataReadOnly(&v8_flags, sizeof(v8_flags));
++#if V8_OS_OPENBSD
++  if (mimmutable(&v8_flags, sizeof(v8_flags)) == -1)
++    FATAL("unable to set immutability of v8_flags");
++#endif
+ }
+ 
+ // static
diff --git a/chromium/patches/patch-v8_src_sandbox_sandbox.cc b/chromium/patches/patch-v8_src_sandbox_sandbox.cc
new file mode 100644
index 0000000000..0b262ac58d
--- /dev/null
+++ b/chromium/patches/patch-v8_src_sandbox_sandbox.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/sandbox/sandbox.cc.orig	2024-07-24 02:47:46.331155500 +0000
++++ v8/src/sandbox/sandbox.cc
+@@ -47,7 +47,7 @@ static Address DetermineAddressSpaceLimi
+   }
+ #endif  // V8_TARGET_ARCH_X64
+ 
+-#if defined(V8_TARGET_ARCH_ARM64) && defined(V8_TARGET_OS_ANDROID)
++#if defined(V8_TARGET_ARCH_ARM64) && (defined(V8_TARGET_OS_ANDROID) || defined(V8_TARGET_OS_OPENBSD))
+   // On Arm64 Android assume a 40-bit virtual address space (39 bits for
+   // userspace and kernel each) as that appears to be the most common
+   // configuration and there seems to be no easy way to retrieve the actual
diff --git a/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc b/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc
new file mode 100644
index 0000000000..0ac27bb91e
--- /dev/null
+++ b/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc.orig	2024-07-24 02:47:46.335156000 +0000
++++ v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc
+@@ -143,6 +143,8 @@ EmbeddedTargetOs ToEmbeddedTargetOs(cons
+     return EmbeddedTargetOs::kWin;
+   } else if (string == "starboard") {
+     return EmbeddedTargetOs::kStarboard;
++  } else if (string == "openbsd") {
++    return EmbeddedTargetOs::kOpenBSD;
+   } else {
+     return EmbeddedTargetOs::kGeneric;
+   }
diff --git a/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h b/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h
new file mode 100644
index 0000000000..a87675faff
--- /dev/null
+++ b/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-base.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/snapshot/embedded/platform-embedded-file-writer-base.h.orig	2024-07-24 02:47:46.335156000 +0000
++++ v8/src/snapshot/embedded/platform-embedded-file-writer-base.h
+@@ -31,6 +31,7 @@ enum class EmbeddedTargetOs {
+   kMac,
+   kWin,
+   kStarboard,
++  kOpenBSD,
+   kGeneric,  // Everything not covered above falls in here.
+ };
+ 
diff --git a/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc b/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc
new file mode 100644
index 0000000000..5ab34dd84e
--- /dev/null
+++ b/chromium/patches/patch-v8_src_snapshot_embedded_platform-embedded-file-writer-generic.cc
@@ -0,0 +1,48 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/snapshot/embedded/platform-embedded-file-writer-generic.cc.orig	2024-07-24 02:47:46.335156000 +0000
++++ v8/src/snapshot/embedded/platform-embedded-file-writer-generic.cc
+@@ -9,6 +9,10 @@
+ 
+ #include "src/objects/instruction-stream.h"
+ 
++#if V8_OS_OPENBSD
++#include <sys/param.h>
++#endif
++
+ namespace v8 {
+ namespace internal {
+ 
+@@ -35,6 +39,10 @@ const char* DirectiveAsString(DataDirect
+ void PlatformEmbeddedFileWriterGeneric::SectionText() {
+   if (target_os_ == EmbeddedTargetOs::kChromeOS) {
+     fprintf(fp_, ".section .text.hot.embedded\n");
++#if !defined(V8_TARGET_ARCH_IA32)
++  } else if (target_os_ == EmbeddedTargetOs::kOpenBSD) {
++    fprintf(fp_, ".section .openbsd.mutable,\"a\"\n");
++#endif
+   } else {
+     fprintf(fp_, ".section .text\n");
+   }
+@@ -66,6 +74,8 @@ void PlatformEmbeddedFileWriterGeneric::
+   // On these architectures and platforms, we remap the builtins, so need these
+   // to be aligned on a page boundary.
+   fprintf(fp_, ".balign 4096\n");
++#elif defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32)
++  fprintf(fp_, ".balign %d\n", PAGE_SIZE);
+ #elif V8_TARGET_ARCH_X64
+   // On x64 use 64-bytes code alignment to allow 64-bytes loop header alignment.
+   static_assert(64 >= kCodeAlignment);
+@@ -86,6 +96,8 @@ void PlatformEmbeddedFileWriterGeneric::
+     (V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_ARM64)
+   // Since the builtins are remapped, need to pad until the next page boundary.
+   fprintf(fp_, ".balign 4096\n");
++#elif defined(V8_OS_OPENBSD) && !defined(V8_TARGET_ARCH_IA32)
++  fprintf(fp_, ".balign %d\n", PAGE_SIZE);
+ #endif
+ }
+ 
diff --git a/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.cc b/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.cc
index 0e6a65205e..c530cb2ab4 100644
--- a/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.cc
+++ b/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.cc
@@ -1,6 +1,10 @@
 $NetBSD$
 
---- v8/src/trap-handler/handler-inside-posix.cc.orig	2020-07-15 19:01:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/trap-handler/handler-inside-posix.cc.orig	2024-07-24 02:47:46.359158300 +0000
 +++ v8/src/trap-handler/handler-inside-posix.cc
 @@ -27,7 +27,7 @@
  
@@ -9,14 +13,31 @@ $NetBSD$
 -#if defined(V8_OS_LINUX) || defined(V8_OS_FREEBSD)
 +#if defined(V8_OS_LINUX) || defined(V8_OS_FREEBSD) || defined(V8_OS_NETBSD)
  #include <ucontext.h>
- #elif V8_OS_MACOSX
+ #elif V8_OS_DARWIN
  #include <sys/ucontext.h>
-@@ -114,6 +114,8 @@ bool TryHandleSignal(int signum, siginfo
-     auto* context_rip = &uc->uc_mcontext->__ss.__rip;
+@@ -61,6 +61,10 @@ namespace trap_handler {
+ #define CONTEXT_REG(reg, REG) &uc->uc_mcontext->__ss.__##reg
  #elif V8_OS_FREEBSD
-     auto* context_rip = &uc->uc_mcontext.mc_rip;
+ #define CONTEXT_REG(reg, REG) &uc->uc_mcontext.mc_##reg
++#elif V8_OS_OPENBSD
++#define CONTEXT_REG(reg, REG) &uc->sc_##reg
 +#elif V8_OS_NETBSD
-+    auto* context_rip = &_UC_MACHINE_PC(uc);
++#define CONTEXT_REG(reg, REG) &uc->uc_mcontext.__gregs[_REG_##REG]
  #else
- #error Unsupported platform
+ #error "Unsupported platform."
  #endif
+@@ -80,8 +84,12 @@ bool IsKernelGeneratedSignal(siginfo_t* 
+   // si_code at its default of 0 for signals that don’t originate in hardware.
+   // The other conditions are only relevant for Linux.
+   return info->si_code > 0 && info->si_code != SI_USER &&
+-         info->si_code != SI_QUEUE && info->si_code != SI_TIMER &&
+-         info->si_code != SI_ASYNCIO && info->si_code != SI_MESGQ;
++         info->si_code != SI_QUEUE && info->si_code != SI_TIMER
++#ifdef V8_OS_OPENBSD
++         ;
++#else
++         && info->si_code != SI_ASYNCIO && info->si_code != SI_MESGQ;
++#endif
+ }
+ 
+ class UnmaskOobSignalScope {
diff --git a/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.h b/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.h
index 9ca8728583..3056a96c35 100644
--- a/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.h
+++ b/chromium/patches/patch-v8_src_trap-handler_handler-inside-posix.h
@@ -1,13 +1,17 @@
 $NetBSD$
 
---- v8/src/trap-handler/handler-inside-posix.h.orig	2020-07-15 19:01:44.000000000 +0000
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/trap-handler/handler-inside-posix.h.orig	2024-07-24 02:47:46.359158300 +0000
 +++ v8/src/trap-handler/handler-inside-posix.h
-@@ -12,7 +12,7 @@ namespace v8 {
+@@ -13,7 +13,7 @@ namespace v8 {
  namespace internal {
  namespace trap_handler {
  
 -#if V8_OS_LINUX || V8_OS_FREEBSD
-+#if V8_OS_LINUX || V8_OS_FREEBSD || V8_OS_NETBSD
++#if V8_OS_LINUX || V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD
  constexpr int kOobSignal = SIGSEGV;
- #elif V8_OS_MACOSX
+ #elif V8_OS_DARWIN
  constexpr int kOobSignal = SIGBUS;
diff --git a/chromium/patches/patch-v8_src_trap-handler_trap-handler.h b/chromium/patches/patch-v8_src_trap-handler_trap-handler.h
new file mode 100644
index 0000000000..d35c3b9f45
--- /dev/null
+++ b/chromium/patches/patch-v8_src_trap-handler_trap-handler.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/trap-handler/trap-handler.h.orig	2024-07-24 02:47:46.359158300 +0000
++++ v8/src/trap-handler/trap-handler.h
+@@ -20,7 +20,7 @@ namespace trap_handler {
+ // X64 on Linux, Windows, MacOS, FreeBSD.
+ #if V8_HOST_ARCH_X64 && V8_TARGET_ARCH_X64 &&                        \
+     ((V8_OS_LINUX && !V8_OS_ANDROID) || V8_OS_WIN || V8_OS_DARWIN || \
+-     V8_OS_FREEBSD)
++     V8_OS_FREEBSD || V8_OS_OPENBSD || V8_OS_NETBSD)
+ #define V8_TRAP_HANDLER_SUPPORTED true
+ // Arm64 (non-simulator) on Mac and Linux.
+ #elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_ARM64 && \
diff --git a/chromium/patches/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h b/chromium/patches/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h
new file mode 100644
index 0000000000..2762a7f740
--- /dev/null
+++ b/chromium/patches/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32-inl.h
@@ -0,0 +1,134 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h.orig	2024-07-24 02:47:46.367159100 +0000
++++ v8/src/wasm/baseline/ia32/liftoff-assembler-ia32-inl.h
+@@ -492,7 +492,7 @@ void LiftoffAssembler::StoreTaggedPointe
+ }
+ 
+ void LiftoffAssembler::Load(LiftoffRegister dst, Register src_addr,
+-                            Register offset_reg, uint32_t offset_imm,
++                            Register offset_reg, uintptr_t offset_imm,
+                             LoadType type, uint32_t* protected_load_pc,
+                             bool /* is_load_mem */, bool /* i64_offset */,
+                             bool needs_shift) {
+@@ -569,7 +569,7 @@ void LiftoffAssembler::Load(LiftoffRegis
+ }
+ 
+ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
+-                             uint32_t offset_imm, LiftoffRegister src,
++                             uintptr_t offset_imm, LiftoffRegister src,
+                              StoreType type, LiftoffRegList pinned,
+                              uint32_t* protected_store_pc,
+                              bool /* is_store_mem */, bool /* i64_offset */) {
+@@ -645,7 +645,7 @@ void LiftoffAssembler::Store(Register ds
+ }
+ 
+ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, Register src_addr,
+-                                  Register offset_reg, uint32_t offset_imm,
++                                  Register offset_reg, uintptr_t offset_imm,
+                                   LoadType type, LiftoffRegList /* pinned */,
+                                   bool /* i64_offset */) {
+   if (type.value() != LoadType::kI64Load) {
+@@ -663,7 +663,7 @@ void LiftoffAssembler::AtomicLoad(Liftof
+ }
+ 
+ void LiftoffAssembler::AtomicStore(Register dst_addr, Register offset_reg,
+-                                   uint32_t offset_imm, LiftoffRegister src,
++                                   uintptr_t offset_imm, LiftoffRegister src,
+                                    StoreType type, LiftoffRegList pinned,
+                                    bool /* i64_offset */) {
+   DCHECK_LE(offset_imm, std::numeric_limits<int32_t>::max());
+@@ -733,7 +733,7 @@ enum Binop { kAdd, kSub, kAnd, kOr, kXor
+ 
+ inline void AtomicAddOrSubOrExchange32(LiftoffAssembler* lasm, Binop binop,
+                                        Register dst_addr, Register offset_reg,
+-                                       uint32_t offset_imm,
++                                       uintptr_t offset_imm,
+                                        LiftoffRegister value,
+                                        LiftoffRegister result, StoreType type) {
+   DCHECK_EQ(value, result);
+@@ -801,7 +801,7 @@ inline void AtomicAddOrSubOrExchange32(L
+ }
+ 
+ inline void AtomicBinop32(LiftoffAssembler* lasm, Binop op, Register dst_addr,
+-                          Register offset_reg, uint32_t offset_imm,
++                          Register offset_reg, uintptr_t offset_imm,
+                           LiftoffRegister value, LiftoffRegister result,
+                           StoreType type) {
+   DCHECK_EQ(value, result);
+@@ -916,7 +916,7 @@ inline void AtomicBinop32(LiftoffAssembl
+ }
+ 
+ inline void AtomicBinop64(LiftoffAssembler* lasm, Binop op, Register dst_addr,
+-                          Register offset_reg, uint32_t offset_imm,
++                          Register offset_reg, uintptr_t offset_imm,
+                           LiftoffRegister value, LiftoffRegister result) {
+   // We need {ebx} here, which is the root register. As the root register it
+   // needs special treatment. As we use {ebx} directly in the code below, we
+@@ -1012,7 +1012,7 @@ inline void AtomicBinop64(LiftoffAssembl
+ }  // namespace liftoff
+ 
+ void LiftoffAssembler::AtomicAdd(Register dst_addr, Register offset_reg,
+-                                 uint32_t offset_imm, LiftoffRegister value,
++                                 uintptr_t offset_imm, LiftoffRegister value,
+                                  LiftoffRegister result, StoreType type,
+                                  bool /* i64_offset */) {
+   if (type.value() == StoreType::kI64Store) {
+@@ -1026,7 +1026,7 @@ void LiftoffAssembler::AtomicAdd(Registe
+ }
+ 
+ void LiftoffAssembler::AtomicSub(Register dst_addr, Register offset_reg,
+-                                 uint32_t offset_imm, LiftoffRegister value,
++                                 uintptr_t offset_imm, LiftoffRegister value,
+                                  LiftoffRegister result, StoreType type,
+                                  bool /* i64_offset */) {
+   if (type.value() == StoreType::kI64Store) {
+@@ -1039,7 +1039,7 @@ void LiftoffAssembler::AtomicSub(Registe
+ }
+ 
+ void LiftoffAssembler::AtomicAnd(Register dst_addr, Register offset_reg,
+-                                 uint32_t offset_imm, LiftoffRegister value,
++                                 uintptr_t offset_imm, LiftoffRegister value,
+                                  LiftoffRegister result, StoreType type,
+                                  bool /* i64_offset */) {
+   if (type.value() == StoreType::kI64Store) {
+@@ -1053,7 +1053,7 @@ void LiftoffAssembler::AtomicAnd(Registe
+ }
+ 
+ void LiftoffAssembler::AtomicOr(Register dst_addr, Register offset_reg,
+-                                uint32_t offset_imm, LiftoffRegister value,
++                                uintptr_t offset_imm, LiftoffRegister value,
+                                 LiftoffRegister result, StoreType type,
+                                 bool /* i64_offset */) {
+   if (type.value() == StoreType::kI64Store) {
+@@ -1067,7 +1067,7 @@ void LiftoffAssembler::AtomicOr(Register
+ }
+ 
+ void LiftoffAssembler::AtomicXor(Register dst_addr, Register offset_reg,
+-                                 uint32_t offset_imm, LiftoffRegister value,
++                                 uintptr_t offset_imm, LiftoffRegister value,
+                                  LiftoffRegister result, StoreType type,
+                                  bool /* i64_offset */) {
+   if (type.value() == StoreType::kI64Store) {
+@@ -1081,7 +1081,7 @@ void LiftoffAssembler::AtomicXor(Registe
+ }
+ 
+ void LiftoffAssembler::AtomicExchange(Register dst_addr, Register offset_reg,
+-                                      uint32_t offset_imm,
++                                      uintptr_t offset_imm,
+                                       LiftoffRegister value,
+                                       LiftoffRegister result, StoreType type,
+                                       bool /* i64_offset */) {
+@@ -1096,7 +1096,7 @@ void LiftoffAssembler::AtomicExchange(Re
+ }
+ 
+ void LiftoffAssembler::AtomicCompareExchange(
+-    Register dst_addr, Register offset_reg, uint32_t offset_imm,
++    Register dst_addr, Register offset_reg, uintptr_t offset_imm,
+     LiftoffRegister expected, LiftoffRegister new_value, LiftoffRegister result,
+     StoreType type, bool /* i64_offset */) {
+   // We expect that the offset has already been added to {dst_addr}, and no
diff --git a/chromium/patches/patch-v8_tools_run-paxctl.py b/chromium/patches/patch-v8_tools_run-paxctl.py
new file mode 100644
index 0000000000..256a943542
--- /dev/null
+++ b/chromium/patches/patch-v8_tools_run-paxctl.py
@@ -0,0 +1,25 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/tools/run-paxctl.py.orig	2024-08-01 14:09:02.160198653 +0000
++++ v8/tools/run-paxctl.py
+@@ -0,0 +1,16 @@
++#!@PYTHONBIN@
++# Copyright 2014 the V8 project 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 program wraps an arbitrary command since gn currently can only execute
++scripts."""
++
++import subprocess
++import sys
++import os
++
++with open(sys.argv[1], 'w'):
++  os.utime(sys.argv[1], None)
++
++sys.exit(subprocess.call(sys.argv[2:]))
diff --git a/chromium/patches/patch-v8_tools_run.py b/chromium/patches/patch-v8_tools_run.py
new file mode 100644
index 0000000000..1d73f678bb
--- /dev/null
+++ b/chromium/patches/patch-v8_tools_run.py
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build chromium on NetBSD
+* Based on OpenBSD's chromium patches, and
+  pkgsrc's qt5-qtwebengine patches
+
+--- v8/tools/run.py.orig	2024-07-24 02:47:47.827300500 +0000
++++ v8/tools/run.py
+@@ -9,7 +9,7 @@ scripts."""
+ import subprocess
+ import sys
+ 
+-result = subprocess.call(sys.argv[1:])
++sys.exit(subprocess.call(sys.argv[1:], env={"LD_LIBRARY_PATH":"${WRKSRC}/out/Release"}))
+ if result != 0:
+   # Windows error codes such as 0xC0000005 and 0xC0000409 are much easier
+   # to recognize and differentiate in hex.
diff --git a/chromium/patches/patch-weblayer_BUILD.gn b/chromium/patches/patch-weblayer_BUILD.gn
deleted file mode 100644
index 706f86c31f..0000000000
--- a/chromium/patches/patch-weblayer_BUILD.gn
+++ /dev/null
@@ -1,27 +0,0 @@
-$NetBSD$
-
---- weblayer/BUILD.gn.orig	2020-07-15 18:56:49.000000000 +0000
-+++ weblayer/BUILD.gn
-@@ -586,13 +586,21 @@ source_set("weblayer_lib_base") {
-     }
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [
-       "//build/config/freetype",
-       "//third_party/fontconfig",
-     ]
-   }
- 
-+  if (is_bsd) {
-+    deps -= [
-+      "//components/crash/content/browser",
-+      "//components/crash/core/app",
-+      "//components/crash/core/common",
-+    ]
-+  }
-+
-   if (toolkit_views) {
-     deps += [ "//ui/views" ]
-   }
diff --git a/chromium/patches/patch-weblayer_app_content__main__delegate__impl.cc b/chromium/patches/patch-weblayer_app_content__main__delegate__impl.cc
deleted file mode 100644
index f26b8f6837..0000000000
--- a/chromium/patches/patch-weblayer_app_content__main__delegate__impl.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- weblayer/app/content_main_delegate_impl.cc.orig	2020-07-15 18:56:34.000000000 +0000
-+++ weblayer/app/content_main_delegate_impl.cc
-@@ -219,7 +219,7 @@ bool ContentMainDelegateImpl::ShouldCrea
- }
- 
- void ContentMainDelegateImpl::PreSandboxStartup() {
--#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX))
-+#if defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD))
-   // Create an instance of the CPU class to parse /proc/cpuinfo and cache
-   // cpu_brand info.
-   base::CPU cpu_info;
diff --git a/chromium/patches/patch-weblayer_browser_browser__main__parts__impl.cc b/chromium/patches/patch-weblayer_browser_browser__main__parts__impl.cc
deleted file mode 100644
index 832bcb8f86..0000000000
--- a/chromium/patches/patch-weblayer_browser_browser__main__parts__impl.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- weblayer/browser/browser_main_parts_impl.cc.orig	2020-07-15 18:56:34.000000000 +0000
-+++ weblayer/browser/browser_main_parts_impl.cc
-@@ -56,7 +56,7 @@
- #if defined(USE_AURA) && defined(USE_X11)
- #include "ui/events/devices/x11/touch_factory_x11.h"  // nogncheck
- #endif
--#if !defined(OS_CHROMEOS) && defined(USE_AURA) && defined(OS_LINUX)
-+#if !defined(OS_CHROMEOS) && defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
- #include "ui/base/ime/init/input_method_initializer.h"
- #endif
- 
-@@ -140,7 +140,7 @@ int BrowserMainPartsImpl::PreEarlyInitia
- #if defined(USE_X11)
-   ui::SetDefaultX11ErrorHandlers();
- #endif
--#if defined(USE_AURA) && defined(OS_LINUX)
-+#if defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD))
-   ui::InitializeInputMethodForTesting();
- #endif
- #if defined(OS_ANDROID)
diff --git a/chromium/patches/patch-weblayer_browser_content__browser__client__impl.cc b/chromium/patches/patch-weblayer_browser_content__browser__client__impl.cc
deleted file mode 100644
index 7f4d9b89a7..0000000000
--- a/chromium/patches/patch-weblayer_browser_content__browser__client__impl.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- weblayer/browser/content_browser_client_impl.cc.orig	2020-07-15 18:56:49.000000000 +0000
-+++ weblayer/browser/content_browser_client_impl.cc
-@@ -120,7 +120,7 @@
- #include "weblayer/browser/safe_browsing/safe_browsing_service.h"
- #endif
- 
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- #include "content/public/common/content_descriptors.h"
- #endif
- 
-@@ -355,7 +355,7 @@ void ContentBrowserClientImpl::Configure
- 
- void ContentBrowserClientImpl::OnNetworkServiceCreated(
-     network::mojom::NetworkService* network_service) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   network::mojom::CryptConfigPtr config = network::mojom::CryptConfig::New();
-   content::GetNetworkService()->SetCryptConfig(std::move(config));
- #endif
-@@ -708,7 +708,7 @@ SafeBrowsingService* ContentBrowserClien
- }
- #endif
- 
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- void ContentBrowserClientImpl::GetAdditionalMappedFilesForChildProcess(
-     const base::CommandLine& command_line,
-     int child_process_id,
diff --git a/chromium/patches/patch-weblayer_browser_content__browser__client__impl.h b/chromium/patches/patch-weblayer_browser_content__browser__client__impl.h
deleted file mode 100644
index 263de80940..0000000000
--- a/chromium/patches/patch-weblayer_browser_content__browser__client__impl.h
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- weblayer/browser/content_browser_client_impl.h.orig	2020-07-15 18:56:49.000000000 +0000
-+++ weblayer/browser/content_browser_client_impl.h
-@@ -111,7 +111,7 @@ class ContentBrowserClientImpl : public 
-   void RenderProcessWillLaunch(content::RenderProcessHost* host) override;
-   scoped_refptr<content::QuotaPermissionContext> CreateQuotaPermissionContext()
-       override;
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
-   void GetAdditionalMappedFilesForChildProcess(
-       const base::CommandLine& command_line,
-       int child_process_id,
diff --git a/chromium/patches/patch-weblayer_browser_system__network__context__manager.cc b/chromium/patches/patch-weblayer_browser_system__network__context__manager.cc
deleted file mode 100644
index b9a0bf0cb4..0000000000
--- a/chromium/patches/patch-weblayer_browser_system__network__context__manager.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD$
-
---- weblayer/browser/system_network_context_manager.cc.orig	2020-07-15 18:56:34.000000000 +0000
-+++ weblayer/browser/system_network_context_manager.cc
-@@ -64,7 +64,7 @@ void SystemNetworkContextManager::Config
-     network::mojom::NetworkContextParams* network_context_params,
-     const std::string& user_agent) {
-   network_context_params->user_agent = user_agent;
--#if defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
-   // We're not configuring the cookie encryption on these platforms yet.
-   network_context_params->enable_encrypted_cookies = false;
- #endif
diff --git a/chromium/patches/patch-weblayer_common_weblayer__paths.cc b/chromium/patches/patch-weblayer_common_weblayer__paths.cc
deleted file mode 100644
index 505d36f9f2..0000000000
--- a/chromium/patches/patch-weblayer_common_weblayer__paths.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD$
-
---- weblayer/common/weblayer_paths.cc.orig	2020-07-15 18:56:34.000000000 +0000
-+++ weblayer/common/weblayer_paths.cc
-@@ -17,7 +17,7 @@
- 
- #if defined(OS_WIN)
- #include "base/base_paths_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #include "base/nix/xdg_util.h"
- #endif
- 
-@@ -35,7 +35,7 @@ bool GetDefaultUserDataDirectory(base::F
-     return false;
-   *result = result->AppendASCII("weblayer");
-   return true;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   std::unique_ptr<base::Environment> env(base::Environment::Create());
-   base::FilePath config_dir(base::nix::GetXDGDirectory(
-       env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir));
diff --git a/chromium/patches/patch-weblayer_shell_BUILD.gn b/chromium/patches/patch-weblayer_shell_BUILD.gn
deleted file mode 100644
index 4b209a373b..0000000000
--- a/chromium/patches/patch-weblayer_shell_BUILD.gn
+++ /dev/null
@@ -1,31 +0,0 @@
-$NetBSD$
-
---- weblayer/shell/BUILD.gn.orig	2020-07-15 18:56:34.000000000 +0000
-+++ weblayer/shell/BUILD.gn
-@@ -61,7 +61,7 @@ static_library("weblayer_shell_lib") {
-     "//weblayer:resources",
-   ]
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [
-       "//third_party/fontconfig",
-       "//ui/gfx:test_support",
-@@ -103,7 +103,7 @@ static_library("weblayer_shell_lib") {
-     }
-   }
- 
--  if (is_linux) {
-+  if (is_linux || is_bsd) {
-     deps += [ "//build/config/freetype" ]
-   }
- }
-@@ -259,7 +259,7 @@ if (is_android) {
-           [ "//third_party/crashpad/crashpad/handler:crashpad_handler" ]
-     }
- 
--    if (is_linux && !is_component_build) {
-+    if ((is_linux || is_bsd) && !is_component_build) {
-       # Set rpath to find our own libfreetype even in a non-component build.
-       configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
-     }
diff --git a/chromium/tests.mk b/chromium/tests.mk
new file mode 100644
index 0000000000..c156b76414
--- /dev/null
+++ b/chromium/tests.mk
@@ -0,0 +1,62 @@
+# $NetBSD$
+
+REGRESS_DISTFILE=		chromium-${VERSION}-testdata${EXTRACT_SUFX}
+FONTS_DISTFILE=			test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz
+SITES.${FONTS_DISTFILE}=	http://nerd.hu/distfiles/
+DISTFILES+=			${REGRESS_DISTFILE}
+DISTFILES+=			${FONTS_DISTFILE}
+EXTRACT_ONLY=			${DISTNAME}${EXTRACT_SUFX} ${PROFILE_DISTFILE}
+
+USE_TOOLS+=	xzcat gzip tar
+
+#TEST_ENV+=	FONTCONFIG_SYSROOT=${WRKSRC}/third_party/test_fonts
+
+TEST_TARGET=	base_unittests
+TEST_TARGET+=	blink_unittests
+TEST_TARGET+=	chromedriver_unittests
+
+# third_party/crashpad/crashpad/handler/handler_main.cc: error:
+# use of undeclared identifier 'ReinstallCrashHandler'
+# use of undeclared identifier 'InstallCrashHandler'
+# use of undeclared identifier 'CrashReportExceptionHandler'
+# use of undeclared identifier 'exception_handler_server'
+#TEST_TARGET+=	components_unittests
+
+TEST_TARGET+=	content_unittests
+TEST_TARGET+=	crypto_unittests
+TEST_TARGET+=	gl_tests
+TEST_TARGET+=	gpu_unittests
+TEST_TARGET+=	headless_unittests
+TEST_TARGET+=	media_unittests
+
+# third_party/ipcz/src/reference_drivers/wrapped_file_descriptor.h:
+# no member named 'kFileDescriptor' in 'ipcz::reference_drivers::Object'
+#TEST_TARGET+=	mojo_unittests
+
+TEST_TARGET+=	net_unittests
+TEST_TARGET+=	pdf_unittests
+
+# printing/mojom/printing_context_mojom_traits_unittest.cc:88:2:
+# error: "System print dialog support not implemented for this platform."
+#TEST_TARGET+=	printing_unittests
+
+TEST_TARGET+=	skia_unittests
+TEST_TARGET+=	url_unittests
+TEST_TARGET+=	wm_unittests
+
+pre-test:
+	@${ECHO_MSG} "=> Extracting ${REGRESS_DISTFILE}"
+	${XZCAT} ${DISTDIR}/${REGRESS_DISTFILE} | ${TAR} -C ${WRKDIR} -xf -
+	@${ECHO_MSG} "=> Extracting ${FONTS_DISTFILE}"
+	${GZIP_CMD} -dc ${DISTDIR}/${FONTS_DISTFILE} | ${TAR} -C ${WRKSRC}/third_party/test_fonts -xf -
+	${MKDIR} ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin
+	${LN} -sf ${PREFIX}/bin/clang++ ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin/clang++
+	${LN} -sf ${PREFIX}/bin/clang ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin/clang
+	${LN} -sf ${PREFIX}/bin/llvm-ar ${WRKSRC}/third_party/llvm-build/Release+Asserts/bin/llvm-ar
+
+do-test:
+.for t in ${TEST_TARGET}
+	@${ECHO_MSG} "=> Test target: ${t}"
+	cd ${WRKSRC} && \
+	${SETENV} ${TEST_ENV} ${PREFIX}/bin/ninja -j ${MAKE_JOBS:U1} -C out/${BUILDTYPE} ${t}
+.endfor


Home | Main Index | Thread Index | Old Index